Ignore:
Timestamp:
Nov 9, 2021, 6:28:33 PM (3 years ago)
Author:
alloc
Message:

Preparations for A20 release
Changes usage of "SteamID" to "UserID" in console commands
Also changes a bunch of the WebAPI stuff to show / use UserIDs

File:
1 edited

Legend:

Unmodified
Added
Removed
  • binary-improvements/AllocsCommands/Commands/RemoveLandProtection.cs

    r359 r369  
    1111                public override string GetHelp () {
    1212                        return "Usage:" +
    13                                "  1. removelandprotection <steamid>\n" +
     13                               "  1. removelandprotection <userid>\n" +
    1414                               "  2. removelandprotection <x> <y> <z>\n" +
    1515                               "  3. removelandprotection nearby [length]\n" +
    16                                "1. Remove all land claims owned by the user with the given SteamID\n" +
     16                               "1. Remove all land claims owned by the user with the given UserID\n" +
    1717                               "2. Remove only the claim block on the exactly given block position\n" +
    1818                               "3. Remove all claims in a square with edge length of 64 (or the optionally specified size) around the executing player";
     
    2525                private void removeById (string _id) {
    2626                        try {
    27                                 PersistentPlayerList ppl = GameManager.Instance.GetPersistentPlayerList ();
    28 
    29                                 if (_id.Length < 1 || !ppl.Players.ContainsKey (_id)) {
     27                                if (!PlatformUserIdentifierAbs.TryFromCombinedString (_id, out PlatformUserIdentifierAbs userId)) {
    3028                                        SdtdConsole.Instance.Output (
    3129                                                "Not a valid Steam ID or user has never logged on. Use \"listlandprotection\" to get a list of keystones.");
    3230                                        return;
    3331                                }
     32                               
     33                                PersistentPlayerList ppl = GameManager.Instance.GetPersistentPlayerList ();
    3434
    35                                 if (ppl.Players [_id].LPBlocks == null || ppl.Players [_id].LPBlocks.Count == 0) {
     35                                if (ppl.Players [userId].LPBlocks == null || ppl.Players [userId].LPBlocks.Count == 0) {
    3636                                        SdtdConsole.Instance.Output (
    3737                                                "Player does not own any keystones. Use \"listlandprotection\" to get a list of keystones.");
     
    4040
    4141                                List<BlockChangeInfo> changes = new List<BlockChangeInfo> ();
    42                                 foreach (Vector3i pos in ppl.Players [_id].LPBlocks) {
     42                                foreach (Vector3i pos in ppl.Players [userId].LPBlocks) {
    4343                                        BlockChangeInfo bci = new BlockChangeInfo (pos, new BlockValue (0), true, false);
    4444                                        changes.Add (bci);
     
    5858
    5959                private void removeByPosition (List<string> _coords) {
    60                         int x, y, z;
    61                         int.TryParse (_coords [0], out x);
    62                         int.TryParse (_coords [1], out y);
    63                         int.TryParse (_coords [2], out z);
     60                        int.TryParse (_coords [0], out int x);
     61                        int.TryParse (_coords [1], out int y);
     62                        int.TryParse (_coords [2], out int z);
    6463
    6564                        if (x == int.MinValue || y == int.MinValue || z == int.MinValue) {
     
    8180                        BlockChangeInfo bci = new BlockChangeInfo (v, new BlockValue (0), true, false);
    8281
    83                         List<BlockChangeInfo> changes = new List<BlockChangeInfo> ();
    84                         changes.Add (bci);
     82                        List<BlockChangeInfo> changes = new List<BlockChangeInfo> {bci};
    8583
    8684                        GameManager.Instance.SetBlocksRPC (changes);
     
    9088
    9189                public override void Execute (List<string> _params, CommandSenderInfo _senderInfo) {
    92                         try {
     90                        if (_params.Count > 0 && _params [0].EqualsCaseInsensitive ("nearby")) {
    9391                                if (_senderInfo.RemoteClientInfo != null) {
    94                                         if (_params.Count >= 1 && _params [0].EqualsCaseInsensitive ("nearby")) {
    95                                                 _params.Add (_senderInfo.RemoteClientInfo.playerId);
    96                                         }
     92                                        _params.Add (_senderInfo.RemoteClientInfo.entityId.ToString ());
     93                                } else if (_senderInfo.IsLocalGame && !GameManager.IsDedicatedServer) {
     94                                        _params.Add (GameManager.Instance.World.GetPrimaryPlayerId ().ToString ());
    9795                                }
    9896
    99                                 if (_params.Count > 0 && _params [0].EqualsCaseInsensitive ("nearby")) {
    100                                         try {
    101                                                 int closeToDistance = 32;
    102                                                 if (_params.Count == 3) {
    103                                                         if (!int.TryParse (_params [1], out closeToDistance)) {
    104                                                                 SdtdConsole.Instance.Output ("Given length is not an integer!");
    105                                                                 return;
    106                                                         }
    107 
    108                                                         closeToDistance /= 2;
     97                                try {
     98                                        int closeToDistance = 32;
     99                                        if (_params.Count == 3) {
     100                                                if (!int.TryParse (_params [1], out closeToDistance)) {
     101                                                        SdtdConsole.Instance.Output ("Given length is not an integer!");
     102                                                        return;
    109103                                                }
    110104
    111                                                 ClientInfo ci = ConsoleHelper.ParseParamSteamIdOnline (_params [_params.Count - 1]);
    112                                                 EntityPlayer ep = GameManager.Instance.World.Players.dict [ci.entityId];
    113                                                 Vector3i closeTo = new Vector3i (ep.GetPosition ());
    114                                                 LandClaimList.PositionFilter[] posFilters =
    115                                                         {LandClaimList.CloseToFilter2dRect (closeTo, closeToDistance)};
    116                                                 Dictionary<Player, List<Vector3i>> claims = LandClaimList.GetLandClaims (null, posFilters);
     105                                                closeToDistance /= 2;
     106                                        }
    117107
    118                                                 try {
    119                                                         List<BlockChangeInfo> changes = new List<BlockChangeInfo> ();
    120                                                         foreach (KeyValuePair<Player, List<Vector3i>> kvp in claims) {
    121                                                                 foreach (Vector3i v in kvp.Value) {
    122                                                                         BlockChangeInfo bci = new BlockChangeInfo (v, new BlockValue (0), true, false);
    123                                                                         changes.Add (bci);
    124                                                                 }
     108                                        int entityId = int.Parse (_params [_params.Count - 1]);
     109                                        EntityPlayer ep = GameManager.Instance.World.Players.dict [entityId];
     110                                        Vector3i closeTo = new Vector3i (ep.GetPosition ());
     111                                        LandClaimList.PositionFilter[] posFilters =
     112                                                {LandClaimList.CloseToFilter2dRect (closeTo, closeToDistance)};
     113                                        Dictionary<Player, List<Vector3i>> claims = LandClaimList.GetLandClaims (null, posFilters);
     114
     115                                        try {
     116                                                List<BlockChangeInfo> changes = new List<BlockChangeInfo> ();
     117                                                foreach (KeyValuePair<Player, List<Vector3i>> kvp in claims) {
     118                                                        foreach (Vector3i v in kvp.Value) {
     119                                                                BlockChangeInfo bci = new BlockChangeInfo (v, new BlockValue (0), true, false);
     120                                                                changes.Add (bci);
    125121                                                        }
     122                                                }
    126123
    127                                                         GameManager.Instance.SetBlocksRPC (changes);
    128                                                 } catch (Exception e) {
    129                                                         SdtdConsole.Instance.Output ("Error removing claims");
    130                                                         Log.Out ("Error in RemoveLandProtection.Run: " + e);
    131                                                 }
     124                                                GameManager.Instance.SetBlocksRPC (changes);
    132125                                        } catch (Exception e) {
    133                                                 SdtdConsole.Instance.Output ("Error getting current player's position");
     126                                                SdtdConsole.Instance.Output ("Error removing claims");
    134127                                                Log.Out ("Error in RemoveLandProtection.Run: " + e);
    135128                                        }
    136                                 } else if (_params.Count == 1) {
    137                                         removeById (_params [0]);
    138                                 } else if (_params.Count == 3) {
    139                                         removeByPosition (_params);
    140                                 } else {
    141                                         SdtdConsole.Instance.Output ("Illegal parameters");
     129                                } catch (Exception e) {
     130                                        SdtdConsole.Instance.Output ("Error getting current player's position");
     131                                        Log.Out ("Error in RemoveLandProtection.Run: " + e);
    142132                                }
    143                         } catch (Exception e) {
    144                                 Log.Out ("Error in RemoveLandProtection.Run: " + e);
     133                        } else if (_params.Count == 1) {
     134                                removeById (_params [0]);
     135                        } else if (_params.Count == 3) {
     136                                removeByPosition (_params);
     137                        } else {
     138                                SdtdConsole.Instance.Output ("Illegal parameters");
    145139                        }
    146140                }
Note: See TracChangeset for help on using the changeset viewer.