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

25_30_44

  • Got rid (mostly) of custom JSON serialization
  • Some code cleanup
Location:
binary-improvements/7dtd-server-fixes/src
Files:
2 deleted
7 edited

Legend:

Unmodified
Added
Removed
  • binary-improvements/7dtd-server-fixes/src/API.cs

    r446 r455  
    11using System.Collections.Generic;
    22using AllocsFixes.PersistentData;
     3using JetBrains.Annotations;
    34using Platform.Steam;
    45
    56namespace AllocsFixes {
     7        [UsedImplicitly]
    68        public class API : IModApi {
    79                public void InitMod (Mod _modInstance) {
    810                        ModEvents.GameStartDone.RegisterHandler (GameAwake);
    9                         ModEvents.GameShutdown.RegisterHandler (GameShutdown);
    1011                        ModEvents.SavePlayerData.RegisterHandler (SavePlayerData);
    1112                        ModEvents.PlayerSpawning.RegisterHandler (PlayerSpawning);
     
    1516                }
    1617
    17                 public void GameAwake () {
     18                private static void GameAwake () {
    1819                        PersistentContainer.Load ();
    1920                }
    2021
    21                 public void GameShutdown () {
    22                 }
    23 
    24                 public void SavePlayerData (ClientInfo _cInfo, PlayerDataFile _playerDataFile) {
     22                private static void SavePlayerData (ClientInfo _cInfo, PlayerDataFile _playerDataFile) {
    2523                        PersistentContainer.Instance.Players.GetOrCreate (_cInfo.InternalId, _cInfo.PlatformId, _cInfo.CrossplatformId).Update (_cInfo, _playerDataFile);
    2624                }
    2725
    28                 public void PlayerSpawning (ClientInfo _cInfo, int _chunkViewDim, PlayerProfile _playerProfile) {
     26                private static void PlayerSpawning (ClientInfo _cInfo, int _chunkViewDim, PlayerProfile _playerProfile) {
    2927                        string owner = null;
    3028                        if (_cInfo.PlatformId is UserIdentifierSteam identifierSteam) {
     
    3230                        }
    3331
    34                         Log.Out ("Player connected" +
    35                                  ", entityid=" + _cInfo.entityId +
    36                                  ", name=" + _cInfo.playerName +
    37                                  ", pltfmid=" + (_cInfo.PlatformId?.CombinedString ?? "<unknown>") +
    38                                  ", crossid=" + (_cInfo.CrossplatformId?.CombinedString ?? "<unknown/none>") +
    39                                  ", steamOwner=" + (owner ?? "<unknown/none>") +
    40                                  ", ip=" + _cInfo.ip
     32                        Log.Out (
     33                                $"Player connected, entityid={_cInfo.entityId}, name={_cInfo.playerName}, pltfmid={_cInfo.PlatformId?.CombinedString ?? "<unknown>"}, crossid={_cInfo.CrossplatformId?.CombinedString ?? "<unknown/none>"}, steamOwner={owner ?? "<unknown/none>"}, ip={_cInfo.ip}"
    4134                        );
    4235                }
    4336
    44                 public void PlayerDisconnected (ClientInfo _cInfo, bool _bShutdown) {
     37                private static void PlayerDisconnected (ClientInfo _cInfo, bool _bShutdown) {
    4538                        Player p = PersistentContainer.Instance.Players.GetByInternalId (_cInfo.InternalId);
    4639                        if (p != null) {
     
    5346                }
    5447
    55                 public void PlayerSpawned (ClientInfo _cInfo, RespawnType _respawnReason, Vector3i _spawnPos) {
     48                private static void PlayerSpawned (ClientInfo _cInfo, RespawnType _respawnReason, Vector3i _spawnPos) {
    5649                        PersistentContainer.Instance.Players.GetOrCreate (_cInfo.InternalId, _cInfo.PlatformId, _cInfo.CrossplatformId).SetOnline (_cInfo);
    5750                        PersistentContainer.Instance.Save ();
    5851                }
    5952
    60                 private const string ANSWER =
    61                         "     [ff0000]I[-] [ff7f00]W[-][ffff00]A[-][80ff00]S[-] [00ffff]H[-][0080ff]E[-][0000ff]R[-][8b00ff]E[-]";
     53                private const string ANSWER = "     [ff0000]I[-] [ff7f00]W[-][ffff00]A[-][80ff00]S[-] [00ffff]H[-][0080ff]E[-][0000ff]R[-][8b00ff]E[-]";
    6254
    63                 public bool ChatMessage (ClientInfo _cInfo, EChatType _type, int _senderId, string _msg, string _mainName,
     55                private static bool ChatMessage (ClientInfo _cInfo, EChatType _type, int _senderId, string _msg, string _mainName,
    6456                        bool _localizeMain, List<int> _recipientEntityIds) {
    6557                        if (string.IsNullOrEmpty (_msg) || !_msg.EqualsCaseInsensitive ("/alloc")) {
     
    6860
    6961                        if (_cInfo != null) {
    70                                 Log.Out ("Sent chat hook reply to {0}", _cInfo.InternalId);
     62                                Log.Out ($"Sent chat hook reply to {_cInfo.InternalId}");
    7163                                _cInfo.SendPackage (NetPackageManager.GetPackage<NetPackageChat> ().Setup (EChatType.Whisper, -1, ANSWER, "", false, null));
    7264                        } else {
    73                                 Log.Error ("ChatHookExample: Argument _cInfo null on message: {0}", _msg);
     65                                Log.Error ($"ChatHookExample: Argument _cInfo null on message: {_msg}");
    7466                        }
    7567
  • binary-improvements/7dtd-server-fixes/src/AllocsUtils.cs

    r325 r455  
    44        public static class AllocsUtils {
    55                public static string ColorToHex (Color _color) {
    6                         return string.Format ("{0:X02}{1:X02}{2:X02}", (int) (_color.r * 255), (int) (_color.g * 255),
    7                                 (int) (_color.b * 255));
     6                        return $"{(int)(_color.r * 255):X02}{(int)(_color.g * 255):X02}{(int)(_color.b * 255):X02}";
    87                }
    98        }
  • binary-improvements/7dtd-server-fixes/src/PersistentData/Attributes.cs

    r326 r455  
    88
    99                public bool HideChatCommands {
    10                         get { return hideChatCommands; }
    11                         set { hideChatCommands = value; }
     10                        get => hideChatCommands;
     11                        set => hideChatCommands = value;
    1212                }
    1313
    1414                public string HideChatCommandPrefix {
    15                         get {
    16                                 if (hideChatCommandPrefix == null) {
    17                                         hideChatCommandPrefix = "";
    18                                 }
    19 
    20                                 return hideChatCommandPrefix;
    21                         }
    22                         set { hideChatCommandPrefix = value; }
     15                        get => hideChatCommandPrefix ??= "";
     16                        set => hideChatCommandPrefix = value;
    2317                }
    2418        }
  • binary-improvements/7dtd-server-fixes/src/PersistentData/Inventory.cs

    r351 r455  
    2424                }
    2525
    26                 private void ProcessInv (List<InvItem> _target, ItemStack[] _sourceFields, int _id) {
     26                private void ProcessInv (ICollection<InvItem> _target, IReadOnlyList<ItemStack> _sourceFields, int _id) {
    2727                        _target.Clear ();
    28                         for (int i = 0; i < _sourceFields.Length; i++) {
     28                        for (int i = 0; i < _sourceFields.Count; i++) {
    2929                                InvItem item = CreateInvItem (_sourceFields [i].itemValue, _sourceFields [i].count, _id);
    3030                                if (item != null && _sourceFields [i].itemValue.Modifications != null) {
     
    4343                }
    4444
    45                 private void ProcessParts (ItemValue[] _parts, InvItem _item, int _playerId) {
    46                         InvItem[] itemParts = new InvItem[_parts.Length];
    47                         for (int i = 0; i < _parts.Length; i++) {
     45                private void ProcessParts (IReadOnlyList<ItemValue> _parts, InvItem _item, int _playerId) {
     46                        InvItem[] itemParts = new InvItem[_parts.Count];
     47                        for (int i = 0; i < _parts.Count; i++) {
    4848                                InvItem partItem = CreateInvItem (_parts [i], 1, _playerId);
    4949                                if (partItem != null && _parts [i].Modifications != null) {
     
    6767
    6868                        if (_count > maxAllowed) {
    69                                 Log.Out ("Player with ID " + _playerId + " has stack for \"" + name + "\" greater than allowed (" +
    70                                          _count + " > " + maxAllowed + ")");
     69                                Log.Out ($"Player with ID {_playerId} has stack for \"{name}\" greater than allowed ({_count} > {maxAllowed})");
    7170                        }
    7271
  • binary-improvements/7dtd-server-fixes/src/PersistentData/PersistentContainer.cs

    r448 r455  
    1212                [OptionalField] private Attributes attributes;
    1313
    14                 public Players Players {
    15                         get {
    16                                 if (players == null) {
    17                                         players = new Players ();
    18                                 }
     14                public Players Players => players ??= new Players ();
    1915
    20                                 return players;
    21                         }
    22                 }
    23 
    24                 public Attributes Attributes {
    25                         get {
    26                                 if (attributes == null) {
    27                                         attributes = new Attributes ();
    28                                 }
    29 
    30                                 return attributes;
    31                         }
    32                 }
     16                public Attributes Attributes => attributes ??= new Attributes ();
    3317
    3418                private static PersistentContainer instance;
    3519
    36                 public static PersistentContainer Instance {
    37                         get {
    38                                 if (instance == null) {
    39                                         instance = new PersistentContainer ();
    40                                 }
    41 
    42                                 return instance;
    43                         }
    44                 }
     20                public static PersistentContainer Instance => instance ??= new PersistentContainer ();
    4521
    4622                private PersistentContainer () {
     
    4925                public void Save () {
    5026                        lock (fileLockObject) {
    51                                 using Stream stream = File.Open (GameIO.GetSaveGameDir () + persistentDataFileName, FileMode.Create);
     27                                using Stream stream = File.Open ($"{GameIO.GetSaveGameDir ()}{persistentDataFileName}", FileMode.Create);
    5228                                BinaryFormatter bFormatter = new BinaryFormatter ();
    5329                                bFormatter.Serialize (stream, this);
     
    5632
    5733                public static bool Load () {
    58                         if (!File.Exists (GameIO.GetSaveGameDir () + persistentDataFileName)) {
     34                        var filePath = $"{GameIO.GetSaveGameDir ()}{persistentDataFileName}";
     35                       
     36                        if (!File.Exists (filePath)) {
    5937                                return false;
    6038                        }
     
    6341                                PersistentContainer obj;
    6442                                lock (fileLockObject) {
    65                                         using Stream stream = File.Open (GameIO.GetSaveGameDir () + persistentDataFileName, FileMode.Open);
     43                                        using Stream stream = File.Open (filePath, FileMode.Open);
    6644                                        BinaryFormatter bFormatter = new BinaryFormatter ();
    6745                                        obj = (PersistentContainer)bFormatter.Deserialize (stream);
  • binary-improvements/7dtd-server-fixes/src/PersistentData/Player.cs

    r447 r455  
    124124                        }
    125125
    126                         Log.Out ("Player set to offline: " + InternalId);
     126                        Log.Out ($"Player set to offline: {InternalId}");
    127127                        lastOnline = DateTime.Now;
    128128                        try {
     
    140140
    141141                public void SetOnline (ClientInfo _ci) {
    142                         Log.Out ("Player set to online: " + InternalId);
     142                        Log.Out ($"Player set to online: {InternalId}");
    143143                        clientInfo = _ci;
    144144            entityId = _ci.entityId;
  • binary-improvements/7dtd-server-fixes/src/PersistentData/Players.cs

    r446 r455  
    1919                        }
    2020
    21                         Log.Out ("Created new player entry for ID: " + _internalId);
     21                        Log.Out ($"Created new player entry for ID: {_internalId}");
    2222                        Player p = new Player (_internalId, _platformId, _crossPlatformId);
    2323                        Dict.Add (_internalId, p);
Note: See TracChangeset for help on using the changeset viewer.