- Timestamp:
- Jan 27, 2023, 7:28:00 PM (22 months ago)
- Location:
- binary-improvements2/WebServer/src/WebAPI/APIs
- Files:
-
- 1 added
- 1 moved
Legend:
- Unmodified
- Added
- Removed
-
binary-improvements2/WebServer/src/WebAPI/APIs/GetLandClaims.cs
r401 r402 1 using System.Collections.Generic;2 using System.Net;3 using AllocsFixes;4 using AllocsFixes.JSON;5 using AllocsFixes.PersistentData;6 using JetBrains.Annotations; 7 8 namespace Webserver.WebAPI { 9 [UsedImplicitly] 10 public class GetLandClaims : AbsWebAPI{11 public override void HandleRequest (RequestContext _context) { 12 PlatformUserIdentifierAbs requestedUserId = null; 13 if (_context.Request.QueryString ["userid"] != null) {14 if (!PlatformUserIdentifierAbs.TryFromCombinedString (_context.Request.QueryString ["userid"], out requestedUserId)) { 15 WebUtils.WriteText (_context.Response, "Invalid user id given", HttpStatusCode.BadRequest);16 return; 17 18 } 19 20 // default user, cheap way to avoid 'null reference exception' 21 PlatformUserIdentifierAbs userId = _context.Connection?.UserId; 22 23 bool bViewAll = WebConnection.CanViewAllClaims (_context.PermissionLevel); 24 25 JsonObject result = new JsonObject (); 26 result.Add ("claimsize", new JsonNumber (GamePrefs.GetInt (EnumUtils.Parse<EnumGamePrefs> ("LandClaimSize"))));27 28 JsonArray claimOwners = new JsonArray ();29 result.Add ("claimowners", claimOwners);30 31 LandClaimList.OwnerFilter[] ownerFilters = null;32 if (requestedUserId != null || !bViewAll) {33 if (requestedUserId != null && !bViewAll) {34 ownerFilters = new[] {35 LandClaimList.UserIdFilter (userId),36 LandClaimList.UserIdFilter (requestedUserId)37 };38 } else if (!bViewAll) {39 ownerFilters = new[] {LandClaimList.UserIdFilter (userId)};40 } else {41 ownerFilters = new[] {LandClaimList.UserIdFilter (requestedUserId)};42 }43 }44 45 LandClaimList.PositionFilter[] posFilters = null;46 47 Dictionary<Player, List<Vector3i>> claims = LandClaimList.GetLandClaims (ownerFilters, posFilters);48 49 foreach ((Player player, List<Vector3i> claimPositions) in claims) {50 JsonObject owner = new JsonObject ();51 claimOwners.Add (owner);52 53 owner.Add ("steamid", new JsonString (player.PlatformId.CombinedString));54 owner.Add ("claimactive", new JsonBoolean (player.LandProtectionActive));55 56 if (player.Name.Length > 0) {57 owner.Add ("playername", new JsonString (player.Name));58 } else {59 owner.Add ("playername", new JsonNull ());60 }61 62 JsonArray claimsJson = new JsonArray ();63 owner.Add ("claims", claimsJson);64 65 foreach (Vector3i v in claimPositions) {66 JsonObject claim = new JsonObject ();67 claim.Add ("x", new JsonNumber (v.x));68 claim.Add ("y", new JsonNumber (v.y));69 claim.Add ("z", new JsonNumber (v.z));70 71 claimsJson.Add (claim);72 }73 }74 75 WebUtils.WriteJson (_context.Response, result);76 }77 }78 }1 // using System.Collections.Generic; 2 // using System.Net; 3 // using AllocsFixes; 4 // using AllocsFixes.PersistentData; 5 // using JetBrains.Annotations; 6 // 7 // namespace Webserver.WebAPI.APIs { 8 // [UsedImplicitly] 9 // public class GetLandClaims : AbsWebAPI { 10 // public override void HandleRequest (RequestContext _context) { 11 // PlatformUserIdentifierAbs requestedUserId = null; 12 // if (_context.Request.QueryString ["userid"] != null) { 13 // if (!PlatformUserIdentifierAbs.TryFromCombinedString (_context.Request.QueryString ["userid"], out requestedUserId)) { 14 // WebUtils.WriteText (_context.Response, "Invalid user id given", HttpStatusCode.BadRequest); 15 // return; 16 // } 17 // } 18 // 19 // // default user, cheap way to avoid 'null reference exception' 20 // PlatformUserIdentifierAbs userId = _context.Connection?.UserId; 21 // 22 // bool bViewAll = WebConnection.CanViewAllClaims (_context.PermissionLevel); 23 // 24 // JsonObject result = new JsonObject (); 25 // result.Add ("claimsize", 26 // new JsonNumber (GamePrefs.GetInt (EnumUtils.Parse<EnumGamePrefs> (nameof (EnumGamePrefs.LandClaimSize))))); 27 // 28 // JsonArray claimOwners = new JsonArray (); 29 // result.Add ("claimowners", claimOwners); 30 // 31 // LandClaimList.OwnerFilter[] ownerFilters = null; 32 // if (requestedUserId != null || !bViewAll) { 33 // if (requestedUserId != null && !bViewAll) { 34 // ownerFilters = new[] { 35 // LandClaimList.UserIdFilter (userId), 36 // LandClaimList.UserIdFilter (requestedUserId) 37 // }; 38 // } else if (!bViewAll) { 39 // ownerFilters = new[] {LandClaimList.UserIdFilter (userId)}; 40 // } else { 41 // ownerFilters = new[] {LandClaimList.UserIdFilter (requestedUserId)}; 42 // } 43 // } 44 // 45 // LandClaimList.PositionFilter[] posFilters = null; 46 // 47 // Dictionary<Player, List<Vector3i>> claims = LandClaimList.GetLandClaims (ownerFilters, posFilters); 48 // 49 // foreach ((Player player, List<Vector3i> claimPositions) in claims) { 50 // JsonObject owner = new JsonObject (); 51 // claimOwners.Add (owner); 52 // 53 // owner.Add ("steamid", new JsonString (player.PlatformId.CombinedString)); 54 // owner.Add ("claimactive", new JsonBoolean (player.LandProtectionActive)); 55 // 56 // if (player.Name.Length > 0) { 57 // owner.Add ("playername", new JsonString (player.Name)); 58 // } else { 59 // owner.Add ("playername", new JsonNull ()); 60 // } 61 // 62 // JsonArray claimsJson = new JsonArray (); 63 // owner.Add ("claims", claimsJson); 64 // 65 // foreach (Vector3i v in claimPositions) { 66 // JsonObject claim = new JsonObject (); 67 // claim.Add ("x", new JsonNumber (v.x)); 68 // claim.Add ("y", new JsonNumber (v.y)); 69 // claim.Add ("z", new JsonNumber (v.z)); 70 // 71 // claimsJson.Add (claim); 72 // } 73 // } 74 // 75 // WebUtils.WriteJson (_context.Response, result); 76 // } 77 // } 78 // }
Note:
See TracChangeset
for help on using the changeset viewer.