Ignore:
Timestamp:
Jul 31, 2023, 4:06:13 PM (17 months ago)
Author:
alloc
Message:

25_30_44

  • Got rid (mostly) of custom JSON serialization
  • Some code cleanup
Location:
binary-improvements/AllocsCommands
Files:
1 deleted
6 edited

Legend:

Unmodified
Added
Removed
  • binary-improvements/AllocsCommands/AllocsCommands.csproj

    r450 r455  
    6060  </ItemGroup>
    6161  <ItemGroup>
    62     <Compile Include="API.cs" />
    6362    <Compile Include="AssemblyInfo.cs" />
    6463    <Compile Include="Commands\ListKnownPlayers.cs" />
  • binary-improvements/AllocsCommands/Commands/ListKnownPlayers.cs

    r446 r455  
    11using System.Collections.Generic;
    22using AllocsFixes.PersistentData;
     3using JetBrains.Annotations;
    34
    45namespace AllocsFixes.CustomCommands {
     6        [UsedImplicitly]
    57        public class ListKnownPlayers : ConsoleCmdAbstract {
    68                protected override string getDescription () {
  • binary-improvements/AllocsCommands/Commands/ListLandProtection.cs

    r446 r455  
    22using System.Collections.Generic;
    33using AllocsFixes.PersistentData;
     4using JetBrains.Annotations;
    45
    56namespace AllocsFixes.CustomCommands {
     7        [UsedImplicitly]
    68        public class ListLandProtection : ConsoleCmdAbstract {
    79                protected override string getDescription () {
     
    5759                                                userIdFilter = ci.InternalId;
    5860                                        } else {
    59                                                 SdtdConsole.Instance.Output ("Player name or entity id \"" + _params [0] + "\" not found.");
     61                                                SdtdConsole.Instance.Output ($"Player name or entity id \"{_params[0]}\" not found.");
    6062                                                return;
    6163                                        }
     
    7981                                        } catch (Exception e) {
    8082                                                SdtdConsole.Instance.Output ("Error getting current player's position");
    81                                                 Log.Out ("Error in ListLandProtection.Run: " + e);
     83                                                Log.Out ($"Error in ListLandProtection.Run: {e}");
    8284                                                return;
    8385                                        }
     
    102104
    103105                        foreach (KeyValuePair<Player, List<Vector3i>> kvp in claims) {
    104                                 SdtdConsole.Instance.Output (string.Format (
    105                                         "Player \"{0} ({1})\" owns {4} keystones (protected: {2}, current hardness multiplier: {3})",
    106                                         kvp.Key.Name,
    107                                         kvp.Key.InternalId,
    108                                         kvp.Key.LandProtectionActive,
    109                                         kvp.Key.LandProtectionMultiplier,
    110                                         kvp.Value.Count));
    111                                 if (!summaryOnly) {
    112                                         foreach (Vector3i v in kvp.Value) {
    113                                                 if (parseableOutput) {
    114                                                         SdtdConsole.Instance.Output ("LandProtectionOf: id=" + kvp.Key.InternalId +
    115                                                                                      ", playerName=" + kvp.Key.Name + ", location=" + v);
    116                                                 } else {
    117                                                         SdtdConsole.Instance.Output ("   (" + v + ")");
    118                                                 }
     106                                SdtdConsole.Instance.Output (
     107                                        $"Player \"{kvp.Key.Name} ({kvp.Key.InternalId})\" owns {kvp.Value.Count} keystones (protected: {kvp.Key.LandProtectionActive}, current hardness multiplier: {kvp.Key.LandProtectionMultiplier})");
     108                                if (summaryOnly) {
     109                                        continue;
     110                                }
     111
     112                                foreach (Vector3i v in kvp.Value) {
     113                                        if (parseableOutput) {
     114                                                SdtdConsole.Instance.Output ($"LandProtectionOf: id={kvp.Key.InternalId}, playerName={kvp.Key.Name}, location={v}");
     115                                        } else {
     116                                                SdtdConsole.Instance.Output ($"   ({v})");
    119117                                        }
    120118                                }
     
    122120
    123121                        if (userIdFilter == null) {
    124                                 SdtdConsole.Instance.Output ("Total of " + ppl.m_lpBlockMap.Count + " keystones in the game");
     122                                SdtdConsole.Instance.Output ($"Total of {ppl.m_lpBlockMap.Count} keystones in the game");
    125123                        }
    126124                }
  • binary-improvements/AllocsCommands/Commands/RemoveLandProtection.cs

    r420 r455  
    22using System.Collections.Generic;
    33using AllocsFixes.PersistentData;
     4using JetBrains.Annotations;
    45
    56namespace AllocsFixes.CustomCommands {
     7        [UsedImplicitly]
    68        public class RemoveLandProtection : ConsoleCmdAbstract {
    79                protected override string getDescription () {
     
    4749                                GameManager.Instance.SetBlocksRPC (changes);
    4850
    49                                 SdtdConsole.Instance.Output ("Tried to remove #" + changes.Count +
    50                                                              " land protection blocks for player \"" + _id + "\". Note " +
    51                                                              "that only blocks in chunks that are currently loaded (close to any player) could be removed. " +
    52                                                              "Please check for remaining blocks by running:");
    53                                 SdtdConsole.Instance.Output ("  listlandprotection " + _id);
     51                                SdtdConsole.Instance.Output (
     52                                        $"Tried to remove #{changes.Count} land protection blocks for player \"{_id}\". Note that only blocks in chunks that are currently loaded (close to any player) could be removed. Please check for remaining blocks by running:");
     53                                SdtdConsole.Instance.Output ($"  listlandprotection {_id}");
    5454                        } catch (Exception e) {
    55                                 Log.Out ("Error in RemoveLandProtection.removeById: " + e);
     55                                Log.Out ($"Error in RemoveLandProtection.removeById: {e}");
    5656                        }
    5757                }
    5858
    59                 private void removeByPosition (List<string> _coords) {
     59                private void removeByPosition (IReadOnlyList<string> _coords) {
    6060                        int.TryParse (_coords [0], out int x);
    6161                        int.TryParse (_coords [1], out int y);
     
    8484                        GameManager.Instance.SetBlocksRPC (changes);
    8585
    86                         SdtdConsole.Instance.Output ("Land protection block at (" + v + ") removed");
     86                        SdtdConsole.Instance.Output ($"Land protection block at ({v}) removed");
    8787                }
    8888
     
    125125                                        } catch (Exception e) {
    126126                                                SdtdConsole.Instance.Output ("Error removing claims");
    127                                                 Log.Out ("Error in RemoveLandProtection.Run: " + e);
     127                                                Log.Out ($"Error in RemoveLandProtection.Run: {e}");
    128128                                        }
    129129                                } catch (Exception e) {
    130130                                        SdtdConsole.Instance.Output ("Error getting current player's position");
    131                                         Log.Out ("Error in RemoveLandProtection.Run: " + e);
     131                                        Log.Out ($"Error in RemoveLandProtection.Run: {e}");
    132132                                }
    133133                        } else if (_params.Count == 1) {
  • binary-improvements/AllocsCommands/Commands/ShowInventory.cs

    r446 r455  
    11using System.Collections.Generic;
    22using AllocsFixes.PersistentData;
     3using JetBrains.Annotations;
    34
    45namespace AllocsFixes.CustomCommands {
     6        [UsedImplicitly]
    57        public class ShowInventory : ConsoleCmdAbstract {
    68                protected override string getDescription () {
     
    4446
    4547                        if (tag == null) {
    46                                 SdtdConsole.Instance.Output ("Belt of player " + p.Name + ":");
     48                                SdtdConsole.Instance.Output ($"Belt of player {p.Name}:");
    4749                        }
    4850
     
    5355
    5456                        if (tag == null) {
    55                                 SdtdConsole.Instance.Output ("Bagpack of player " + p.Name + ":");
     57                                SdtdConsole.Instance.Output ($"Bagpack of player {p.Name}:");
    5658                        }
    5759
     
    6264
    6365                        if (tag == null) {
    64                                 SdtdConsole.Instance.Output ("Equipment of player " + p.Name + ":");
     66                                SdtdConsole.Instance.Output ($"Equipment of player {p.Name}:");
    6567                        }
    6668
     
    6870
    6971                        if (tag != null) {
    70                                 SdtdConsole.Instance.Output ("tracker_item id=" + p.EntityID + ", tag=" + tag +
    71                                                              ", SHOWINVENTORY DONE");
     72                                SdtdConsole.Instance.Output ($"tracker_item id={p.EntityID}, tag={tag}, SHOWINVENTORY DONE");
    7273                        }
    7374                }
    7475
    75                 private void PrintInv (List<InvItem> _inv, int _entityId, string _location, string _tag) {
     76                private static void PrintInv (IReadOnlyList<InvItem> _inv, int _entityId, string _location, string _tag) {
    7677                        for (int i = 0; i < _inv.Count; i++) {
    77                                 if (_inv [i] != null) {
    78                                         if (_tag == null) {
    79                                                 // no Tag defined -> readable output
    80                                                 if (_inv [i].quality < 0) {
    81                                                         SdtdConsole.Instance.Output (string.Format ("    Slot {0}: {1:000} * {2}", i,
    82                                                                 _inv [i].count, _inv [i].itemName));
    83                                                 } else {
    84                                                         SdtdConsole.Instance.Output (string.Format ("    Slot {0}: {1:000} * {2} - quality: {3}", i,
    85                                                                 _inv [i].count, _inv [i].itemName, _inv [i].quality));
    86                                                 }
     78                                if (_inv[i] == null) {
     79                                        continue;
     80                                }
    8781
    88                                                 DoParts (_inv [i].parts, 1, null);
     82                                if (_tag == null) {
     83                                        // no Tag defined -> readable output
     84                                        if (_inv [i].quality < 0) {
     85                                                SdtdConsole.Instance.Output (string.Format ("    Slot {0}: {1:000} * {2}", i,
     86                                                        _inv [i].count, _inv [i].itemName));
    8987                                        } else {
    90                                                 // Tag defined -> parseable output
    91                                                 string partsMsg = DoParts (_inv [i].parts, 1, "");
    92                                                 string msg = "tracker_item id=" + _entityId + ", tag=" + _tag + ", location=" + _location +
    93                                                              ", slot=" + i + ", item=" + _inv [i].itemName + ", qnty=" + _inv [i].count +
    94                                                              ", quality=" + _inv [i].quality + ", parts=(" + partsMsg + ")";
    95                                                 SdtdConsole.Instance.Output (msg);
     88                                                SdtdConsole.Instance.Output (string.Format ("    Slot {0}: {1:000} * {2} - quality: {3}", i,
     89                                                        _inv [i].count, _inv [i].itemName, _inv [i].quality));
    9690                                        }
     91
     92                                        DoParts (_inv [i].parts, 1, null);
     93                                } else {
     94                                        // Tag defined -> parseable output
     95                                        string partsMsg = DoParts (_inv [i].parts, 1, "");
     96                                        string msg = "tracker_item id=" + _entityId + ", tag=" + _tag + ", location=" + _location +
     97                                                     ", slot=" + i + ", item=" + _inv [i].itemName + ", qnty=" + _inv [i].count +
     98                                                     ", quality=" + _inv [i].quality + ", parts=(" + partsMsg + ")";
     99                                        SdtdConsole.Instance.Output (msg);
    97100                                }
    98101                        }
    99102                }
    100103
    101                 private void PrintEquipment (InvItem[] _equipment, int _entityId, string _location, string _tag) {
     104                private static void PrintEquipment (IReadOnlyList<InvItem> _equipment, int _entityId, string _location, string _tag) {
    102105                        AddEquipment ("head", _equipment, EquipmentSlots.Headgear, _entityId, _location, _tag);
    103106                        AddEquipment ("eyes", _equipment, EquipmentSlots.Eyewear, _entityId, _location, _tag);
     
    115118                }
    116119
    117                 private void AddEquipment (string _slotname, InvItem[] _items, EquipmentSlots _slot, int _entityId,
     120                private static void AddEquipment (string _slotname, IReadOnlyList<InvItem> _items, EquipmentSlots _slot, int _entityId,
    118121                        string _location, string _tag) {
    119122                        int[] slotindices = XUiM_PlayerEquipment.GetSlotIndicesByEquipmentSlot (_slot);
    120123
    121124                        for (int i = 0; i < slotindices.Length; i++) {
    122                                 if (_items != null && _items [slotindices [i]] != null) {
    123                                         InvItem item = _items [slotindices [i]];
    124                                         if (_tag == null) {
    125                                                 // no Tag defined -> readable output
    126                                                 if (item.quality < 0) {
    127                                                         SdtdConsole.Instance.Output (string.Format ("    Slot {0:8}: {1:000}", _slotname,
    128                                                                 item.itemName));
    129                                                 } else {
    130                                                         SdtdConsole.Instance.Output (string.Format ("    Slot {0:8}: {1:000} - quality: {2}",
    131                                                                 _slotname, item.itemName, item.quality));
    132                                                 }
     125                                if (_items == null || _items[slotindices[i]] == null) {
     126                                        continue;
     127                                }
    133128
    134                                                 DoParts (_items [slotindices [i]].parts, 1, null);
     129                                InvItem item = _items [slotindices [i]];
     130                                if (_tag == null) {
     131                                        // no Tag defined -> readable output
     132                                        if (item.quality < 0) {
     133                                                SdtdConsole.Instance.Output (string.Format ("    Slot {0:8}: {1:000}", _slotname,
     134                                                        item.itemName));
    135135                                        } else {
    136                                                 // Tag defined -> parseable output
    137                                                 string partsMsg = DoParts (_items [slotindices [i]].parts, 1, "");
    138                                                 string msg = "tracker_item id=" + _entityId + ", tag=" + _tag + ", location=" + _location +
    139                                                              ", slot=" + _slotname + ", item=" + item.itemName + ", qnty=1, quality=" +
    140                                                              item.quality + ", parts=(" + partsMsg + ")";
    141                                                 SdtdConsole.Instance.Output (msg);
     136                                                SdtdConsole.Instance.Output (string.Format ("    Slot {0:8}: {1:000} - quality: {2}",
     137                                                        _slotname, item.itemName, item.quality));
    142138                                        }
    143139
    144                                         return;
     140                                        DoParts (_items [slotindices [i]].parts, 1, null);
     141                                } else {
     142                                        // Tag defined -> parseable output
     143                                        string partsMsg = DoParts (_items [slotindices [i]].parts, 1, "");
     144                                        string msg = $"tracker_item id={_entityId}, tag={_tag}, location={_location}, slot={_slotname}, item={item.itemName}, qnty=1, quality={item.quality}, parts=({partsMsg})";
     145                                        SdtdConsole.Instance.Output (msg);
    145146                                }
     147
     148                                return;
    146149                        }
    147150                }
    148151
    149                 private string DoParts (InvItem[] _parts, int _indent, string _currentMessage) {
    150                         if (_parts != null && _parts.Length > 0) {
    151                                 string indenter = new string (' ', _indent * 4);
    152                                 for (int i = 0; i < _parts.Length; i++) {
    153                                         if (_parts [i] != null) {
    154                                                 if (_currentMessage == null) {
    155                                                         // no currentMessage given -> readable output
    156                                                         if (_parts [i].quality < 0) {
    157                                                                 SdtdConsole.Instance.Output (string.Format ("{0}         - {1}", indenter,
    158                                                                         _parts [i].itemName));
    159                                                         } else {
    160                                                                 SdtdConsole.Instance.Output (string.Format ("{0}         - {1} - quality: {2}",
    161                                                                         indenter, _parts [i].itemName, _parts [i].quality));
    162                                                         }
     152                private static string DoParts (IReadOnlyList<InvItem> _parts, int _indent, string _currentMessage) {
     153                        if (_parts == null || _parts.Count <= 0) {
     154                                return _currentMessage;
     155                        }
    163156
    164                                                         DoParts (_parts [i].parts, _indent + 1, null);
    165                                                 } else {
    166                                                         // currentMessage given -> parseable output
    167                                                         if (_currentMessage.Length > 0) {
    168                                                                 _currentMessage += ",";
    169                                                         }
     157                        string indenter = new string (' ', _indent * 4);
     158                        for (int i = 0; i < _parts.Count; i++) {
     159                                if (_parts[i] == null) {
     160                                        continue;
     161                                }
    170162
    171                                                         _currentMessage += _parts [i].itemName + "@" + _parts [i].quality;
    172                                                         _currentMessage = DoParts (_parts [i].parts, _indent + 1, _currentMessage);
    173                                                 }
     163                                if (_currentMessage == null) {
     164                                        // no currentMessage given -> readable output
     165                                        if (_parts [i].quality < 0) {
     166                                                SdtdConsole.Instance.Output (string.Format ("{0}         - {1}", indenter,
     167                                                        _parts [i].itemName));
     168                                        } else {
     169                                                SdtdConsole.Instance.Output (string.Format ("{0}         - {1} - quality: {2}",
     170                                                        indenter, _parts [i].itemName, _parts [i].quality));
    174171                                        }
     172
     173                                        DoParts (_parts [i].parts, _indent + 1, null);
     174                                } else {
     175                                        // currentMessage given -> parseable output
     176                                        if (_currentMessage.Length > 0) {
     177                                                _currentMessage += ",";
     178                                        }
     179
     180                                        _currentMessage += $"{_parts[i].itemName}@{_parts[i].quality}";
     181                                        _currentMessage = DoParts (_parts [i].parts, _indent + 1, _currentMessage);
    175182                                }
    176183                        }
  • binary-improvements/AllocsCommands/ModInfo.xml

    r446 r455  
    55                <Description value="Additional commands for server operation" />
    66                <Author value="Christian 'Alloc' Illy" />
    7                 <Version value="24" />
    8                 <Website value="http://7dtd.illy.bz" />
     7                <Version value="25" />
     8                <Website value="https://7dtd.illy.bz" />
    99        </ModInfo>
    1010</xml>
Note: See TracChangeset for help on using the changeset viewer.