Ignore:
Timestamp:
Sep 4, 2018, 1:00:48 PM (6 years ago)
Author:
alloc
Message:

Code style cleanup (mostly whitespace changes, enforcing braces, using cleanup)

Location:
binary-improvements/7dtd-server-fixes/src
Files:
32 edited

Legend:

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

    r324 r325  
    1 using System;
    21using System.Collections.Generic;
    32
    4 namespace AllocsFixes
    5 {
     3namespace AllocsFixes {
    64        public class API : IModApi {
     5                public void InitMod () {
     6                        ModEvents.GameAwake.RegisterHandler (GameAwake);
     7                        ModEvents.GameShutdown.RegisterHandler (GameShutdown);
     8                        ModEvents.SavePlayerData.RegisterHandler (SavePlayerData);
     9                        ModEvents.PlayerSpawning.RegisterHandler (PlayerSpawning);
     10                        ModEvents.PlayerDisconnected.RegisterHandler (PlayerDisconnected);
     11                        ModEvents.ChatMessage.RegisterHandler (ChatMessage);
     12                }
    713
    814                public void GameAwake () {
     
    1319                        StateManager.Shutdown ();
    1420                }
    15                
     21
    1622                public void SavePlayerData (ClientInfo _cInfo, PlayerDataFile _playerDataFile) {
    1723                        PlayerDataStuff.GM_SavePlayerData (_cInfo, _playerDataFile);
     
    2127                        AllocsLogFunctions.RequestToSpawnPlayer (_cInfo, _chunkViewDim, _playerProfile);
    2228                }
    23                
     29
    2430                public void PlayerDisconnected (ClientInfo _cInfo, bool _bShutdown) {
    2531                        AllocsLogFunctions.PlayerDisconnected (_cInfo, _bShutdown);
    2632                }
    2733
    28                 public bool ChatMessage (ClientInfo _cInfo, EChatType _type, int _senderId, string _msg, string _mainName, bool _localizeMain, List<int> _recipientEntityIds) {
     34                public bool ChatMessage (ClientInfo _cInfo, EChatType _type, int _senderId, string _msg, string _mainName,
     35                        bool _localizeMain, List<int> _recipientEntityIds) {
    2936                        return ChatHookExample.Hook (_cInfo, _type, _msg, _mainName);
    30                 }
    31 
    32                 public void InitMod () {
    33                         ModEvents.GameAwake.RegisterHandler (GameAwake);
    34                         ModEvents.GameShutdown.RegisterHandler (GameShutdown);
    35                         ModEvents.SavePlayerData.RegisterHandler (SavePlayerData);
    36                         ModEvents.PlayerSpawning.RegisterHandler (PlayerSpawning);
    37                         ModEvents.PlayerDisconnected.RegisterHandler (PlayerDisconnected);
    38                         ModEvents.ChatMessage.RegisterHandler (ChatMessage);
    3937                }
    4038        }
    4139}
    42 
  • binary-improvements/7dtd-server-fixes/src/AllocsLogFunctions.cs

    r273 r325  
     1using System;
    12using AllocsFixes.PersistentData;
    2 using System;
    3 using System.Collections.Generic;
    4 using UnityEngine;
    53
    6 namespace AllocsFixes
    7 {
    8         public class AllocsLogFunctions
    9         {
    10                 public static void RequestToSpawnPlayer (ClientInfo _cInfo, int _chunkViewDim, PlayerProfile _playerProfile)
    11                 {
     4namespace AllocsFixes {
     5        public class AllocsLogFunctions {
     6                public static void RequestToSpawnPlayer (ClientInfo _cInfo, int _chunkViewDim, PlayerProfile _playerProfile) {
    127                        try {
    138                                Log.Out ("Player connected" +
    14                                         ", entityid=" + _cInfo.entityId +
    15                                         ", name=" + _cInfo.playerName +
    16                                         ", steamid=" + _cInfo.playerId +
    17                                         ", steamOwner=" + _cInfo.ownerId +
    18                                         ", ip=" + _cInfo.ip
     9                                         ", entityid=" + _cInfo.entityId +
     10                                         ", name=" + _cInfo.playerName +
     11                                         ", steamid=" + _cInfo.playerId +
     12                                         ", steamOwner=" + _cInfo.ownerId +
     13                                         ", ip=" + _cInfo.ip
    1914                                );
    2015
    2116                                PersistentContainer.Instance.Players [_cInfo.playerId, true].SetOnline (_cInfo);
    22                                 PersistentData.PersistentContainer.Instance.Save ();
     17                                PersistentContainer.Instance.Save ();
    2318                        } catch (Exception e) {
    2419                                Log.Out ("Error in AllocsLogFunctions.RequestToSpawnPlayer: " + e);
     
    2621                }
    2722
    28                 public static void PlayerDisconnected (ClientInfo _cInfo, bool _bShutdown)
    29                 {
     23                public static void PlayerDisconnected (ClientInfo _cInfo, bool _bShutdown) {
    3024                        try {
    3125                                Player p = PersistentContainer.Instance.Players [_cInfo.playerId, true];
     
    3529                                        Log.Out ("Disconnected player not found in client list...");
    3630                                }
    37                                 PersistentData.PersistentContainer.Instance.Save ();
     31
     32                                PersistentContainer.Instance.Save ();
    3833                        } catch (Exception e) {
    3934                                Log.Out ("Error in AllocsLogFunctions.PlayerDisconnected: " + e);
  • binary-improvements/7dtd-server-fixes/src/AllocsUtils.cs

    r253 r325  
    1 using System;
     1using UnityEngine;
    22
    3 namespace AllocsFixes
    4 {
     3namespace AllocsFixes {
    54        public static class AllocsUtils {
    6 
    7                 public static string ColorToHex (UnityEngine.Color _color) {
    8                         return string.Format ("{0:X02}{1:X02}{2:X02}", (int)(_color.r * 255), (int)(_color.g * 255), (int)(_color.b * 255));
     5                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));
    98                }
    10 
    119        }
    1210}
    13 
  • binary-improvements/7dtd-server-fixes/src/AssemblyInfo.cs

    r244 r325  
    11using System.Reflection;
    2 using System.Runtime.CompilerServices;
    32
    43// Information about this assembly is defined by the following attributes.
    54// Change them to the values specific to your project.
    65
    7 [assembly: AssemblyTitle("7dtd-server-fixes")]
    8 [assembly: AssemblyDescription("")]
    9 [assembly: AssemblyConfiguration("")]
    10 [assembly: AssemblyCompany("")]
    11 [assembly: AssemblyProduct("")]
    12 [assembly: AssemblyCopyright("Alloc")]
    13 [assembly: AssemblyTrademark("")]
    14 [assembly: AssemblyCulture("")]
     6[assembly: AssemblyTitle ("7dtd-server-fixes")]
     7[assembly: AssemblyDescription ("")]
     8[assembly: AssemblyConfiguration ("")]
     9[assembly: AssemblyCompany ("")]
     10[assembly: AssemblyProduct ("")]
     11[assembly: AssemblyCopyright ("Alloc")]
     12[assembly: AssemblyTrademark ("")]
     13[assembly: AssemblyCulture ("")]
    1514
    1615// The assembly version has the format "{Major}.{Minor}.{Build}.{Revision}".
     
    1817// and "{Major}.{Minor}.{Build}.*" will update just the revision.
    1918
    20 [assembly: AssemblyVersion("0.0.0.0")]
     19[assembly: AssemblyVersion ("0.0.0.0")]
    2120
    2221// The following attributes are used to specify the signing key for the assembly,
     
    2524//[assembly: AssemblyDelaySign(false)]
    2625//[assembly: AssemblyKeyFile("")]
    27 
  • binary-improvements/7dtd-server-fixes/src/BlockingQueue.cs

    r190 r325  
    1 using System;
    21using System.Collections.Generic;
    32using System.Threading;
    43
    5 namespace AllocsFixes
    6 {
    7         public class BlockingQueue<T>
    8         {
    9                 private bool closing = false;
    10                 private Queue<T> queue = new Queue<T> ();
     4namespace AllocsFixes {
     5        public class BlockingQueue<T> {
     6                private readonly Queue<T> queue = new Queue<T> ();
     7                private bool closing;
    118
    12                 public void Enqueue (T item)
    13                 {
     9                public void Enqueue (T item) {
    1410                        lock (queue) {
    1511                                queue.Enqueue (item);
     
    1814                }
    1915
    20                 public T Dequeue ()
    21                 {
     16                public T Dequeue () {
    2217                        lock (queue) {
    2318                                while (queue.Count == 0) {
    2419                                        if (closing) {
    25                                                 return default(T);
     20                                                return default (T);
    2621                                        }
     22
    2723                                        Monitor.Wait (queue);
    2824                                }
     25
    2926                                return queue.Dequeue ();
    3027                        }
    3128                }
    3229
    33                 public void Close ()
    34                 {
     30                public void Close () {
    3531                        lock (queue) {
    3632                                closing = true;
     
    3834                        }
    3935                }
    40 
    4136        }
    4237}
    43 
  • binary-improvements/7dtd-server-fixes/src/ChatHookExample.cs

    r324 r325  
    1 using System;
    2 
    3 namespace AllocsFixes
    4 {
     1namespace AllocsFixes {
    52        public class ChatHookExample {
    6                 private const string ANSWER = "     [ff0000]I[-] [ff7f00]W[-][ffff00]A[-][80ff00]S[-] [00ffff]H[-][0080ff]E[-][0000ff]R[-][8b00ff]E[-]";
     3                private const string ANSWER =
     4                        "     [ff0000]I[-] [ff7f00]W[-][ffff00]A[-][80ff00]S[-] [00ffff]H[-][0080ff]E[-][0000ff]R[-][8b00ff]E[-]";
    75
    86                public static bool Hook (ClientInfo _cInfo, EChatType _type, string _message, string _playerName) {
     
    119                                        if (_cInfo != null) {
    1210                                                Log.Out ("Sent chat hook reply to {0}", _cInfo.playerId);
    13                                                 _cInfo.SendPackage (new NetPackageChat(EChatType.Whisper, -1, ANSWER, "", false, null));
     11                                                _cInfo.SendPackage (new NetPackageChat (EChatType.Whisper, -1, ANSWER, "", false, null));
    1412                                        } else {
    1513                                                Log.Error ("ChatHookExample: Argument _cInfo null on message: {0}", _message);
    1614                                        }
     15
    1716                                        return false;
    1817                                }
     
    2120                        return true;
    2221                }
    23 
    2422        }
    2523}
  • binary-improvements/7dtd-server-fixes/src/FileCache/AbstractCache.cs

    r324 r325  
    11namespace AllocsFixes.FileCache {
    2     public abstract class AbstractCache {
    3         public AbstractCache () {
    4         }
    5 
    6         public abstract byte[] GetFileContent (string filename);
    7     }
     2        public abstract class AbstractCache {
     3                public abstract byte[] GetFileContent (string filename);
     4        }
    85}
  • binary-improvements/7dtd-server-fixes/src/FileCache/DirectAccess.cs

    r199 r325  
    11using System;
    2 using System.Collections.Generic;
    32using System.IO;
    43
    5 namespace AllocsFixes.FileCache
    6 {
     4namespace AllocsFixes.FileCache {
    75        // Not caching at all, simply reading from disk on each request
    8         public class DirectAccess : AbstractCache
    9         {
    10 
    11                 public DirectAccess ()
    12                 {
    13                 }
    14 
    15                 public override byte[] GetFileContent (string filename)
    16                 {
     6        public class DirectAccess : AbstractCache {
     7                public override byte[] GetFileContent (string filename) {
    178                        try {
    189                                if (!File.Exists (filename)) {
     
    2415                                Log.Out ("Error in DirectAccess.GetFileContent: " + e);
    2516                        }
     17
    2618                        return null;
    2719                }
    28 
    2920        }
    3021}
    31 
  • binary-improvements/7dtd-server-fixes/src/FileCache/MapTileCache.cs

    r324 r325  
    22using System.IO;
    33using UnityEngine;
     4using Object = UnityEngine.Object;
    45
    5 namespace AllocsFixes.FileCache
    6 {
     6namespace AllocsFixes.FileCache {
    77        // Special "cache" for map tile folder as both map rendering and webserver access files in there.
    88        // Only map rendering tiles are cached. Writing is done by WriteThrough.
    9         public class MapTileCache : AbstractCache
    10         {
    11                 private struct CurrentZoomFile
    12                 {
    13                         public string filename;
    14                         public byte[] data;
    15                 }
    16 
     9        public class MapTileCache : AbstractCache {
     10                private readonly byte[] transparentTile;
    1711                private CurrentZoomFile[] cache;
    1812
    19                 private byte[] transparentTile;
    20 
    21                 public MapTileCache (int _tileSize)
    22                 {
     13                public MapTileCache (int _tileSize) {
    2314                        Texture2D tex = new Texture2D (_tileSize, _tileSize);
    2415                        Color nullColor = new Color (0, 0, 0, 0);
     
    2819                                }
    2920                        }
     21
    3022                        transparentTile = tex.EncodeToPNG ();
    31                         UnityEngine.Object.Destroy (tex);
     23                        Object.Destroy (tex);
    3224                }
    3325
    34                 public void SetZoomCount (int count)
    35                 {
     26                public void SetZoomCount (int count) {
    3627                        cache = new CurrentZoomFile[count];
    3728                }
    3829
    39                 public byte[] LoadTile (int zoomlevel, string filename)
    40                 {
     30                public byte[] LoadTile (int zoomlevel, string filename) {
    4131                        try {
    4232                                lock (cache) {
     
    5141                                                cache [zoomlevel].data = File.ReadAllBytes (filename);
    5242                                        }
     43
    5344                                        return cache [zoomlevel].data;
    5445                                }
     
    5647                                Log.Out ("Error in MapTileCache.LoadTile: " + e);
    5748                        }
     49
    5850                        return null;
    5951                }
    6052
    61                 public void SaveTile (int zoomlevel, byte[] content)
    62                 {
     53                public void SaveTile (int zoomlevel, byte[] content) {
    6354                        try {
    6455                                lock (cache) {
     
    7364                }
    7465
    75                 public override byte[] GetFileContent (string filename)
    76                 {
     66                public override byte[] GetFileContent (string filename) {
    7767                        try {
    7868                                lock (cache) {
    7969                                        foreach (CurrentZoomFile czf in cache) {
    80                                                 if (czf.filename != null && czf.filename.Equals (filename))
     70                                                if (czf.filename != null && czf.filename.Equals (filename)) {
    8171                                                        return czf.data;
     72                                                }
    8273                                        }
    8374
     
    8576                                                return transparentTile;
    8677                                        }
     78
    8779                                        return File.ReadAllBytes (filename);
    8880                                }
     
    9082                                Log.Out ("Error in MapTileCache.GetFileContent: " + e);
    9183                        }
     84
    9285                        return null;
    9386                }
    9487
     88                private struct CurrentZoomFile {
     89                        public string filename;
     90                        public byte[] data;
     91                }
    9592        }
    9693}
    97 
  • binary-improvements/7dtd-server-fixes/src/FileCache/SimpleCache.cs

    r199 r325  
    33using System.IO;
    44
    5 namespace AllocsFixes.FileCache
    6 {
     5namespace AllocsFixes.FileCache {
    76        // Caching all files, useful for completely static folders only
    8         public class SimpleCache : AbstractCache
    9         {
     7        public class SimpleCache : AbstractCache {
     8                private readonly Dictionary<string, byte[]> fileCache = new Dictionary<string, byte[]> ();
    109
    11                 private Dictionary<string, byte[]> fileCache = new Dictionary<string, byte[]> ();
    12 
    13                 public SimpleCache ()
    14                 {
    15                 }
    16 
    17                 public override byte[] GetFileContent (string filename)
    18                 {
     10                public override byte[] GetFileContent (string filename) {
    1911                        try {
    2012                                lock (fileCache) {
     
    3224                                Log.Out ("Error in SimpleCache.GetFileContent: " + e);
    3325                        }
     26
    3427                        return null;
    3528                }
    36 
    3729        }
    3830}
    39 
  • binary-improvements/7dtd-server-fixes/src/JSON/JSONArray.cs

    r315 r325  
    1 using System;
    21using System.Collections.Generic;
    32using System.Text;
    43
    5 namespace AllocsFixes.JSON
    6 {
    7         public class JSONArray : JSONNode
    8         {
    9                 private List<JSONNode> nodes = new List<JSONNode> ();
     4namespace AllocsFixes.JSON {
     5        public class JSONArray : JSONNode {
     6                private readonly List<JSONNode> nodes = new List<JSONNode> ();
    107
    118                public JSONNode this [int index] {
     
    1815                }
    1916
    20                 public void Add (JSONNode node)
    21                 {
     17                public void Add (JSONNode node) {
    2218                        nodes.Add (node);
    2319                }
    2420
    25                 public override void ToString (StringBuilder stringBuilder, bool prettyPrint = false, int currentLevel = 0)
    26                 {
     21                public override void ToString (StringBuilder stringBuilder, bool prettyPrint = false, int currentLevel = 0) {
    2722                        stringBuilder.Append ("[");
    28                         if (prettyPrint)
     23                        if (prettyPrint) {
    2924                                stringBuilder.Append ('\n');
     25                        }
     26
    3027                        foreach (JSONNode n in nodes) {
    31                                 if (prettyPrint)
    32                                         stringBuilder.Append (new String ('\t', currentLevel + 1));
     28                                if (prettyPrint) {
     29                                        stringBuilder.Append (new string ('\t', currentLevel + 1));
     30                                }
     31
    3332                                n.ToString (stringBuilder, prettyPrint, currentLevel + 1);
    3433                                stringBuilder.Append (",");
    35                                 if (prettyPrint)
     34                                if (prettyPrint) {
    3635                                        stringBuilder.Append ('\n');
     36                                }
    3737                        }
    38                         if (nodes.Count > 0)
     38
     39                        if (nodes.Count > 0) {
    3940                                stringBuilder.Remove (stringBuilder.Length - (prettyPrint ? 2 : 1), 1);
    40                         if (prettyPrint)
    41                                 stringBuilder.Append (new String ('\t', currentLevel));
     41                        }
     42
     43                        if (prettyPrint) {
     44                                stringBuilder.Append (new string ('\t', currentLevel));
     45                        }
     46
    4247                        stringBuilder.Append ("]");
    4348                }
    4449
    45                 public static JSONArray Parse (string json, ref int offset)
    46                 {
     50                public static JSONArray Parse (string json, ref int offset) {
    4751                        //Log.Out ("ParseArray enter (" + offset + ")");
    4852                        JSONArray arr = new JSONArray ();
     
    5862                                                        nextElemAllowed = true;
    5963                                                        offset++;
    60                                                 } else
    61                                                         throw new MalformedJSONException ("Could not parse array, found a comma without a value first");
     64                                                } else {
     65                                                        throw new MalformedJSONException (
     66                                                                "Could not parse array, found a comma without a value first");
     67                                                }
     68
    6269                                                break;
    6370                                        case ']':
    6471                                                offset++;
     72
    6573                                                //Log.Out ("JSON:Parsed Array: " + arr.ToString ());
    6674                                                return arr;
     
    7280                        }
    7381                }
    74 
    7582        }
    7683}
    77 
  • binary-improvements/7dtd-server-fixes/src/JSON/JSONBoolean.cs

    r309 r325  
    1 using System;
    21using System.Text;
    32
    4 namespace AllocsFixes.JSON
    5 {
    6         public class JSONBoolean : JSONValue
    7         {
    8                 private bool value;
     3namespace AllocsFixes.JSON {
     4        public class JSONBoolean : JSONValue {
     5                private readonly bool value;
    96
    10                 public JSONBoolean (bool value)
    11                 {
     7                public JSONBoolean (bool value) {
    128                        this.value = value;
    139                }
    1410
    15                 public bool GetBool ()
    16                 {
     11                public bool GetBool () {
    1712                        return value;
    1813                }
    1914
    20                 public override void ToString (StringBuilder stringBuilder, bool prettyPrint = false, int currentLevel = 0)
    21                 {
     15                public override void ToString (StringBuilder stringBuilder, bool prettyPrint = false, int currentLevel = 0) {
    2216                        stringBuilder.Append (value ? "true" : "false");
    2317                }
    2418
    25                 public static JSONBoolean Parse (string json, ref int offset)
    26                 {
     19                public static JSONBoolean Parse (string json, ref int offset) {
    2720                        //Log.Out ("ParseBool enter (" + offset + ")");
    2821
     
    3124                                offset += 4;
    3225                                return new JSONBoolean (true);
    33                         } else if (json.Substring (offset, 5).Equals ("false")) {
     26                        }
     27
     28                        if (json.Substring (offset, 5).Equals ("false")) {
    3429                                //Log.Out ("JSON:Parsed Bool: false");
    3530                                offset += 5;
    3631                                return new JSONBoolean (false);
    37                         } else {
    38                                 throw new MalformedJSONException ("No valid boolean found");
    3932                        }
     33
     34                        throw new MalformedJSONException ("No valid boolean found");
    4035                }
    41 
    4236        }
    4337}
    44 
  • binary-improvements/7dtd-server-fixes/src/JSON/JSONNode.cs

    r309 r325  
    1 using System;
    21using System.Text;
    32
    4 namespace AllocsFixes.JSON
    5 {
    6         public abstract class JSONNode
    7         {
    8                 public abstract void ToString(StringBuilder stringBuilder, bool prettyPrint = false, int currentLevel = 0);
     3namespace AllocsFixes.JSON {
     4        public abstract class JSONNode {
     5                public abstract void ToString (StringBuilder stringBuilder, bool prettyPrint = false, int currentLevel = 0);
    96
    107                public override string ToString () {
  • binary-improvements/7dtd-server-fixes/src/JSON/JSONNull.cs

    r309 r325  
    1 using System;
    21using System.Text;
    32
    4 namespace AllocsFixes.JSON
    5 {
    6         public class JSONNull : JSONValue
    7         {
    8                 public JSONNull ()
    9                 {
    10                 }
    11 
    12                 public override void ToString (StringBuilder stringBuilder, bool prettyPrint = false, int currentLevel = 0)
    13                 {
     3namespace AllocsFixes.JSON {
     4        public class JSONNull : JSONValue {
     5                public override void ToString (StringBuilder stringBuilder, bool prettyPrint = false, int currentLevel = 0) {
    146                        stringBuilder.Append ("null");
    157                }
    168
    17                 public static JSONNull Parse (string json, ref int offset)
    18                 {
     9                public static JSONNull Parse (string json, ref int offset) {
    1910                        //Log.Out ("ParseNull enter (" + offset + ")");
    2011
     
    2314                                offset += 4;
    2415                                return new JSONNull ();
    25                         } else {
    26                                 throw new MalformedJSONException ("No valid null value found");
    2716                        }
     17
     18                        throw new MalformedJSONException ("No valid null value found");
    2819                }
    29 
    3020        }
    3121}
    32 
  • binary-improvements/7dtd-server-fixes/src/JSON/JSONNumber.cs

    r324 r325  
    22using System.Text;
    33
    4 namespace AllocsFixes.JSON
    5 {
    6         public class JSONNumber : JSONValue
    7         {
    8                 private double value;
     4namespace AllocsFixes.JSON {
     5        public class JSONNumber : JSONValue {
     6                private readonly double value;
    97
    10                 public JSONNumber (double value)
    11                 {
     8                public JSONNumber (double value) {
    129                        this.value = value;
    1310                }
    1411
    15                 public double GetDouble ()
    16                 {
     12                public double GetDouble () {
    1713                        return value;
    1814                }
    1915
    20                 public int GetInt ()
    21                 {
    22                         return (int)Math.Round(value);
     16                public int GetInt () {
     17                        return (int) Math.Round (value);
    2318                }
    2419
    25                 public override void ToString (StringBuilder stringBuilder, bool prettyPrint = false, int currentLevel = 0)
    26                 {
     20                public override void ToString (StringBuilder stringBuilder, bool prettyPrint = false, int currentLevel = 0) {
    2721                        stringBuilder.Append (value.ToCultureInvariantString ());
    2822                }
    2923
    30                 public static JSONNumber Parse (string json, ref int offset)
    31                 {
     24                public static JSONNumber Parse (string json, ref int offset) {
    3225                        //Log.Out ("ParseNumber enter (" + offset + ")");
    3326                        StringBuilder sbNum = new StringBuilder ();
     
    3730                        while (offset < json.Length) {
    3831                                if (json [offset] >= '0' && json [offset] <= '9') {
    39                                         if (hasExp)
     32                                        if (hasExp) {
    4033                                                sbExp.Append (json [offset]);
    41                                         else
     34                                        } else {
    4235                                                sbNum.Append (json [offset]);
     36                                        }
    4337                                } else if (json [offset] == '.') {
    4438                                        if (hasExp) {
    4539                                                throw new MalformedJSONException ("Decimal separator in exponent");
     40                                        }
     41
     42                                        if (hasDec) {
     43                                                throw new MalformedJSONException ("Multiple decimal separators in number found");
     44                                        }
     45
     46                                        if (sbNum.Length == 0) {
     47                                                throw new MalformedJSONException ("No leading digits before decimal separator found");
     48                                        }
     49
     50                                        sbNum.Append ('.');
     51                                        hasDec = true;
     52                                } else if (json [offset] == '-') {
     53                                        if (hasExp) {
     54                                                if (sbExp.Length > 0) {
     55                                                        throw new MalformedJSONException ("Negative sign in exponent after digits");
     56                                                }
     57
     58                                                sbExp.Append (json [offset]);
    4659                                        } else {
    47                                                 if (hasDec)
    48                                                         throw new MalformedJSONException ("Multiple decimal separators in number found");
    49                                                 else if (sbNum.Length == 0) {
    50                                                         throw new MalformedJSONException ("No leading digits before decimal separator found");
    51                                                 } else {
    52                                                         sbNum.Append ('.');
    53                                                         hasDec = true;
     60                                                if (sbNum.Length > 0) {
     61                                                        throw new MalformedJSONException ("Negative sign in mantissa after digits");
    5462                                                }
    55                                         }
    56                                 } else  if (json [offset] == '-') {
    57                                         if (hasExp) {
    58                                                 if (sbExp.Length > 0)
    59                                                         throw new MalformedJSONException ("Negative sign in exponent after digits");
    60                                                 else
    61                                                         sbExp.Append (json [offset]);
    62                                         } else {
    63                                                 if (sbNum.Length > 0)
    64                                                         throw new MalformedJSONException ("Negative sign in mantissa after digits");
    65                                                 else
    66                                                         sbNum.Append (json [offset]);
     63
     64                                                sbNum.Append (json [offset]);
    6765                                        }
    6866                                } else if (json [offset] == 'e' || json [offset] == 'E') {
    69                                         if (hasExp)
     67                                        if (hasExp) {
    7068                                                throw new MalformedJSONException ("Multiple exponential markers in number found");
    71                                         else if (sbNum.Length == 0) {
     69                                        }
     70
     71                                        if (sbNum.Length == 0) {
    7272                                                throw new MalformedJSONException ("No leading digits before exponential marker found");
    73                                         } else {
    74                                                 sbExp = new StringBuilder ();
    75                                                 hasExp = true;
    7673                                        }
     74
     75                                        sbExp = new StringBuilder ();
     76                                        hasExp = true;
    7777                                } else if (json [offset] == '+') {
    7878                                        if (hasExp) {
    79                                                 if (sbExp.Length > 0)
     79                                                if (sbExp.Length > 0) {
    8080                                                        throw new MalformedJSONException ("Positive sign in exponent after digits");
    81                                                 else
    82                                                         sbExp.Append (json [offset]);
     81                                                }
     82
     83                                                sbExp.Append (json [offset]);
    8384                                        } else {
    8485                                                throw new MalformedJSONException ("Positive sign in mantissa found");
     
    8687                                } else {
    8788                                        double number;
    88                                         if (!StringParsers.TryParseDouble(sbNum.ToString (), out number)) {
    89                                                 throw new MalformedJSONException ("Mantissa is not a valid decimal (\"" + sbNum.ToString () + "\")");
     89                                        if (!StringParsers.TryParseDouble (sbNum.ToString (), out number)) {
     90                                                throw new MalformedJSONException ("Mantissa is not a valid decimal (\"" + sbNum + "\")");
    9091                                        }
    9192
     
    9394                                                int exp;
    9495                                                if (!int.TryParse (sbExp.ToString (), out exp)) {
    95                                                         throw new MalformedJSONException ("Exponent is not a valid integer (\"" + sbExp.ToString () + "\")");
     96                                                        throw new MalformedJSONException ("Exponent is not a valid integer (\"" + sbExp + "\")");
    9697                                                }
    9798
     
    102103                                        return new JSONNumber (number);
    103104                                }
     105
    104106                                offset++;
    105107                        }
     108
    106109                        throw new MalformedJSONException ("End of JSON reached before parsing number finished");
    107110                }
    108 
    109111        }
    110112}
    111 
  • binary-improvements/7dtd-server-fixes/src/JSON/JSONObject.cs

    r315 r325  
    1 using System;
    21using System.Collections.Generic;
    32using System.Text;
    43
    5 namespace AllocsFixes.JSON
    6 {
    7         public class JSONObject : JSONNode
    8         {
    9                 private Dictionary<string, JSONNode> nodes = new Dictionary<string, JSONNode> ();
     4namespace AllocsFixes.JSON {
     5        public class JSONObject : JSONNode {
     6                private readonly Dictionary<string, JSONNode> nodes = new Dictionary<string, JSONNode> ();
    107
    118                public JSONNode this [string name] {
     
    2219                }
    2320
    24                 public bool ContainsKey (string name)
    25                 {
     21                public bool ContainsKey (string name) {
    2622                        return nodes.ContainsKey (name);
    2723                }
    2824
    29                 public void Add (string name, JSONNode node)
    30                 {
     25                public void Add (string name, JSONNode node) {
    3126                        nodes.Add (name, node);
    3227                }
    3328
    34                 public override void ToString (StringBuilder stringBuilder, bool prettyPrint = false, int currentLevel = 0)
    35                 {
     29                public override void ToString (StringBuilder stringBuilder, bool prettyPrint = false, int currentLevel = 0) {
    3630                        stringBuilder.Append ("{");
    37                         if (prettyPrint)
     31                        if (prettyPrint) {
    3832                                stringBuilder.Append ('\n');
     33                        }
     34
    3935                        foreach (KeyValuePair<string, JSONNode> kvp in nodes) {
    40                                 if (prettyPrint)
    41                                         stringBuilder.Append (new String ('\t', currentLevel + 1));
    42                                 stringBuilder.Append (String.Format ("\"{0}\":", kvp.Key));
    43                                 if (prettyPrint)
     36                                if (prettyPrint) {
     37                                        stringBuilder.Append (new string ('\t', currentLevel + 1));
     38                                }
     39
     40                                stringBuilder.Append (string.Format ("\"{0}\":", kvp.Key));
     41                                if (prettyPrint) {
    4442                                        stringBuilder.Append (" ");
     43                                }
     44
    4545                                kvp.Value.ToString (stringBuilder, prettyPrint, currentLevel + 1);
    4646                                stringBuilder.Append (",");
    47                                 if (prettyPrint)
     47                                if (prettyPrint) {
    4848                                        stringBuilder.Append ('\n');
     49                                }
    4950                        }
    50                         if (nodes.Count > 0)
     51
     52                        if (nodes.Count > 0) {
    5153                                stringBuilder.Remove (stringBuilder.Length - (prettyPrint ? 2 : 1), 1);
    52                         if (prettyPrint)
    53                                 stringBuilder.Append (new String ('\t', currentLevel));
     54                        }
     55
     56                        if (prettyPrint) {
     57                                stringBuilder.Append (new string ('\t', currentLevel));
     58                        }
     59
    5460                        stringBuilder.Append ("}");
    5561                }
    5662
    57                 public static JSONObject Parse (string json, ref int offset)
    58                 {
     63                public static JSONObject Parse (string json, ref int offset) {
    5964                        //Log.Out ("ParseObject enter (" + offset + ")");
    6065                        JSONObject obj = new JSONObject ();
     
    7075                                                        Parser.SkipWhitespace (json, ref offset);
    7176                                                        if (json [offset] != ':') {
    72                                                                 throw new MalformedJSONException ("Could not parse object, missing colon (\":\") after key");
     77                                                                throw new MalformedJSONException (
     78                                                                        "Could not parse object, missing colon (\":\") after key");
    7379                                                        }
     80
    7481                                                        offset++;
    7582                                                        JSONNode val = Parser.ParseInternal (json, ref offset);
     
    7784                                                        nextElemAllowed = false;
    7885                                                } else {
    79                                                         throw new MalformedJSONException ("Could not parse object, found new key without a separating comma");
     86                                                        throw new MalformedJSONException (
     87                                                                "Could not parse object, found new key without a separating comma");
    8088                                                }
     89
    8190                                                break;
    8291                                        case ',':
     
    8493                                                        nextElemAllowed = true;
    8594                                                        offset++;
    86                                                 } else
    87                                                         throw new MalformedJSONException ("Could not parse object, found a comma without a key/value pair first");
     95                                                } else {
     96                                                        throw new MalformedJSONException (
     97                                                                "Could not parse object, found a comma without a key/value pair first");
     98                                                }
     99
    88100                                                break;
    89101                                        case '}':
    90102                                                offset++;
     103
    91104                                                //Log.Out ("JSON:Parsed Object: " + obj.ToString ());
    92105                                                return obj;
     
    94107                        }
    95108                }
    96 
    97109        }
    98110}
    99 
  • binary-improvements/7dtd-server-fixes/src/JSON/JSONString.cs

    r309 r325  
    1 using System;
    21using System.Text;
    32
    4 namespace AllocsFixes.JSON
    5 {
    6         public class JSONString : JSONValue
    7         {
    8                 private string value;
     3namespace AllocsFixes.JSON {
     4        public class JSONString : JSONValue {
     5                private readonly string value;
    96
    10                 public JSONString (string value)
    11                 {
     7                public JSONString (string value) {
    128                        this.value = value;
    139                }
    1410
    15                 public string GetString ()
    16                 {
     11                public string GetString () {
    1712                        return value;
    1813                }
    1914
    20                 public override void ToString (StringBuilder stringBuilder, bool prettyPrint = false, int currentLevel = 0)
    21                 {
     15                public override void ToString (StringBuilder stringBuilder, bool prettyPrint = false, int currentLevel = 0) {
    2216                        if (value == null || value.Length == 0) {
    2317                                stringBuilder.Append ("\"\"");
     
    2721                        int len = value.Length;
    2822
    29                         stringBuilder.EnsureCapacity (stringBuilder.Length + 2*len);
    30                         String t;
     23                        stringBuilder.EnsureCapacity (stringBuilder.Length + 2 * len);
    3124
    3225                        stringBuilder.Append ('"');
     
    3629                                        case '\\':
    3730                                        case '"':
     31
    3832//                                      case '/':
    3933                                                stringBuilder.Append ('\\');
     
    5852                                                if (c < ' ') {
    5953                                                        stringBuilder.Append ("\\u");
    60                                                         stringBuilder.Append (((int)c).ToString ("X4"));
     54                                                        stringBuilder.Append (((int) c).ToString ("X4"));
    6155                                                } else {
    6256                                                        stringBuilder.Append (c);
    6357                                                }
     58
    6459                                                break;
    6560                                }
     
    6964                }
    7065
    71                 public static JSONString Parse (string json, ref int offset)
    72                 {
     66                public static JSONString Parse (string json, ref int offset) {
    7367                        //Log.Out ("ParseString enter (" + offset + ")");
    7468                        StringBuilder sb = new StringBuilder ();
     
    10397                                                                break;
    10498                                                }
     99
    105100                                                offset++;
    106101                                                break;
    107102                                        case '"':
    108103                                                offset++;
     104
    109105                                                //Log.Out ("JSON:Parsed String: " + sb.ToString ());
    110106                                                return new JSONString (sb.ToString ());
     
    115111                                }
    116112                        }
     113
    117114                        throw new MalformedJSONException ("End of JSON reached before parsing string finished");
    118115                }
    119 
    120116        }
    121117}
    122 
  • binary-improvements/7dtd-server-fixes/src/JSON/JSONValue.cs

    r279 r325  
    1 using System;
    2 
    3 namespace AllocsFixes.JSON
    4 {
     1namespace AllocsFixes.JSON {
    52        public abstract class JSONValue : JSONNode {
    63        }
    74}
    8 
  • binary-improvements/7dtd-server-fixes/src/JSON/MalformedJSONException.cs

    r188 r325  
    22using System.Runtime.Serialization;
    33
    4 namespace AllocsFixes.JSON
    5 {
    6         public class MalformedJSONException : ApplicationException
    7         {
    8                 public MalformedJSONException ()
    9                 {
     4namespace AllocsFixes.JSON {
     5        public class MalformedJSONException : ApplicationException {
     6                public MalformedJSONException () {
    107                }
    118
    12                 public MalformedJSONException (string message) : base(message)
    13                 {
     9                public MalformedJSONException (string message) : base (message) {
    1410                }
    1511
    16                 public MalformedJSONException (string message, System.Exception inner) : base(message, inner)
    17                 {
     12                public MalformedJSONException (string message, Exception inner) : base (message, inner) {
    1813                }
    19  
    20                 protected MalformedJSONException (SerializationInfo info, StreamingContext context) : base(info, context)
    21                 {
     14
     15                protected MalformedJSONException (SerializationInfo info, StreamingContext context) : base (info, context) {
    2216                }
    2317        }
    2418}
    25 
  • binary-improvements/7dtd-server-fixes/src/JSON/Parser.cs

    r188 r325  
    1 using System;
    2 using System.Text;
    3 
    4 namespace AllocsFixes.JSON
    5 {
    6         public class Parser
    7         {
    8 
    9                 public static JSONNode Parse (string json)
    10                 {
     1namespace AllocsFixes.JSON {
     2        public class Parser {
     3                public static JSONNode Parse (string json) {
    114                        int offset = 0;
    125                        return ParseInternal (json, ref offset);
    136                }
    147
    15                 public static JSONNode ParseInternal (string json, ref int offset)
    16                 {
     8                public static JSONNode ParseInternal (string json, ref int offset) {
    179                        SkipWhitespace (json, ref offset);
     10
    1811                        //Log.Out ("ParseInternal (" + offset + "): Decide on: '" + json [offset] + "'");
    1912                        switch (json [offset]) {
     
    3427                }
    3528
    36                 public static void SkipWhitespace (string json, ref int offset)
    37                 {
     29                public static void SkipWhitespace (string json, ref int offset) {
    3830                        //Log.Out ("SkipWhitespace (" + offset + "): '" + json [offset] + "'");
    3931                        while (offset < json.Length) {
     
    4941                                }
    5042                        }
     43
    5144                        throw new MalformedJSONException ("End of JSON reached before parsing finished");
    5245                }
    53 
    54 
    5546        }
    5647}
    57 
  • binary-improvements/7dtd-server-fixes/src/LandClaimList.cs

    r253 r325  
    11using System;
    22using System.Collections.Generic;
    3 
    43using AllocsFixes.PersistentData;
    54
    6 namespace AllocsFixes
    7 {
     5namespace AllocsFixes {
    86        public class LandClaimList {
    97                public delegate bool OwnerFilter (Player owner);
     
    119                public delegate bool PositionFilter (Vector3i position);
    1210
    13                 public static Dictionary<Player, List<Vector3i>> GetLandClaims (OwnerFilter[] _ownerFilters, PositionFilter[] _positionFilters) {
     11                public static Dictionary<Player, List<Vector3i>> GetLandClaims (OwnerFilter[] _ownerFilters,
     12                        PositionFilter[] _positionFilters) {
    1413                        Dictionary<Vector3i, PersistentPlayerData> d = GameManager.Instance.GetPersistentPlayerList ().m_lpBlockMap;
    1514                        Dictionary<Player, List<Vector3i>> result = new Dictionary<Player, List<Vector3i>> ();
    1615
    1716                        if (d != null) {
    18                                 Dictionary<PersistentPlayerData, List<Vector3i>> owners = new Dictionary<PersistentPlayerData, List<Vector3i>> ();
     17                                Dictionary<PersistentPlayerData, List<Vector3i>> owners =
     18                                        new Dictionary<PersistentPlayerData, List<Vector3i>> ();
    1919                                foreach (KeyValuePair<Vector3i, PersistentPlayerData> kvp in d) {
    2020                                        bool allowed = true;
     
    2727                                                }
    2828                                        }
     29
    2930                                        if (allowed) {
    3031                                                if (!owners.ContainsKey (kvp.Value)) {
    3132                                                        owners.Add (kvp.Value, new List<Vector3i> ());
    3233                                                }
     34
    3335                                                owners [kvp.Value].Add (kvp.Key);
    3436                                        }
     
    3638
    3739                                foreach (KeyValuePair<PersistentPlayerData, List<Vector3i>> kvp in owners) {
    38                                         Player p = PersistentData.PersistentContainer.Instance.Players [kvp.Key.PlayerId, false];
     40                                        Player p = PersistentContainer.Instance.Players [kvp.Key.PlayerId, false];
    3941                                        if (p == null) {
    4042                                                p = new Player (kvp.Key.PlayerId);
     
    5961                                }
    6062                        }
     63
    6164                        return result;
    6265                }
     
    7376                        return p => _f1 (p) || _f2 (p);
    7477                }
    75 
    7678        }
    7779}
    78 
  • binary-improvements/7dtd-server-fixes/src/LiveData/Animals.cs

    r312 r325  
    1 using System;
    2 using System.Collections.Generic;
    3 
    4 namespace AllocsFixes.LiveData
    5 {
    6         public class Animals : EntityFilterList<EntityAnimal>
    7     {
    8 
     1namespace AllocsFixes.LiveData {
     2        public class Animals : EntityFilterList<EntityAnimal> {
    93                public static readonly Animals Instance = new Animals ();
    104
    115                protected override EntityAnimal predicate (Entity _e) {
    126                        if (_e is EntityAnimal) {
    13                                 EntityAnimal ea = (EntityAnimal)_e;
     7                                EntityAnimal ea = (EntityAnimal) _e;
    148
    159                                if (ea.IsAlive ()) {
     
    1711                                }
    1812                        }
     13
    1914                        return null;
    2015                }
    21 
    22     }
     16        }
    2317}
    24 
  • binary-improvements/7dtd-server-fixes/src/LiveData/EntityFilterList.cs

    r312 r325  
    22using System.Collections.Generic;
    33
    4 namespace AllocsFixes.LiveData
    5 {
    6         public abstract class EntityFilterList<T> where T: Entity
    7     {
     4namespace AllocsFixes.LiveData {
     5        public abstract class EntityFilterList<T> where T : Entity {
    86                public void Get (List<T> _list) {
    97                        _list.Clear ();
     
    1816                                        }
    1917                                }
    20                         }
    21                         catch (Exception e) {
     18                        } catch (Exception e) {
    2219                                Log.Exception (e);
    2320                        }
     
    3532                                        }
    3633                                }
    37                         }
    38                         catch (Exception e) {
     34                        } catch (Exception e) {
    3935                                Log.Exception (e);
    4036                        }
     37
    4138                        return count;
    4239                }
    4340
    4441                protected abstract T predicate (Entity _e);
    45 
    46     }
     42        }
    4743}
    48 
  • binary-improvements/7dtd-server-fixes/src/LiveData/Hostiles.cs

    r312 r325  
    1 using System;
    2 using System.Collections.Generic;
    3 
    4 namespace AllocsFixes.LiveData
    5 {
    6         public class Hostiles : EntityFilterList<EntityEnemy>
    7         {
    8 
     1namespace AllocsFixes.LiveData {
     2        public class Hostiles : EntityFilterList<EntityEnemy> {
    93                public static readonly Hostiles Instance = new Hostiles ();
    104
    11                 override protected EntityEnemy predicate (Entity _e) {
     5                protected override EntityEnemy predicate (Entity _e) {
    126                        if (_e is EntityEnemy) {
    137                                if (_e.IsAlive ()) {
     
    159                                }
    1610                        }
     11
    1712                        return null;
    1813                }
    19 
    2014        }
    2115}
    22 
  • binary-improvements/7dtd-server-fixes/src/PersistentData/Attributes.cs

    r273 r325  
    11using System;
    2 using System.Collections.Generic;
    3 using System.Runtime.Serialization;
    4 using System.Text.RegularExpressions;
    52
    6 namespace AllocsFixes.PersistentData
    7 {
     3namespace AllocsFixes.PersistentData {
    84        [Serializable]
    9         public class Attributes
    10         {
     5        public class Attributes {
    116                private bool hideChatCommands;
    127                private String hideChatCommandPrefix;
    138
    149                public bool HideChatCommands {
    15                         get {
    16                                 return hideChatCommands;
    17                         }
    18                         set {
    19                                 hideChatCommands = value;
    20                         }
     10                        get { return hideChatCommands; }
     11                        set { hideChatCommands = value; }
    2112                }
    2213
     
    2617                                        hideChatCommandPrefix = "";
    2718                                }
     19
    2820                                return hideChatCommandPrefix;
    2921                        }
    30                         set {
    31                                 hideChatCommandPrefix = value;
    32                         }
     22                        set { hideChatCommandPrefix = value; }
    3323                }
    34 
    3524        }
    3625}
    37 
  • binary-improvements/7dtd-server-fixes/src/PersistentData/InvItem.cs

    r287 r325  
    22using System.Runtime.Serialization;
    33
    4 namespace AllocsFixes.PersistentData
    5 {
     4namespace AllocsFixes.PersistentData {
    65        [Serializable]
    76        public class InvItem {
     
    2625        }
    2726}
    28 
  • binary-improvements/7dtd-server-fixes/src/PersistentData/Inventory.cs

    r324 r325  
    33
    44namespace AllocsFixes.PersistentData {
    5     [Serializable]
    6     public class Inventory {
    7         public List<InvItem> bag;
    8         public List<InvItem> belt;
    9         public InvItem[] equipment;
     5        [Serializable]
     6        public class Inventory {
     7                public List<InvItem> bag;
     8                public List<InvItem> belt;
     9                public InvItem[] equipment;
    1010
    11         public Inventory () {
    12             bag = new List<InvItem> ();
    13             belt = new List<InvItem> ();
    14             equipment = null;
    15         }
     11                public Inventory () {
     12                        bag = new List<InvItem> ();
     13                        belt = new List<InvItem> ();
     14                        equipment = null;
     15                }
    1616
    17         public void Update (PlayerDataFile pdf) {
    18             lock (this) {
    19                 //Log.Out ("Updating player inventory - player id: " + pdf.id);
    20                 ProcessInv (bag, pdf.bag, pdf.id);
    21                 ProcessInv (belt, pdf.inventory, pdf.id);
    22                 ProcessEqu (pdf.equipment, pdf.id);
    23             }
    24         }
     17                public void Update (PlayerDataFile pdf) {
     18                        lock (this) {
     19                                //Log.Out ("Updating player inventory - player id: " + pdf.id);
     20                                ProcessInv (bag, pdf.bag, pdf.id);
     21                                ProcessInv (belt, pdf.inventory, pdf.id);
     22                                ProcessEqu (pdf.equipment, pdf.id);
     23                        }
     24                }
    2525
    26         private void ProcessInv (List<InvItem> target, ItemStack[] sourceFields, int id) {
    27             target.Clear ();
    28             for (int i = 0; i < sourceFields.Length; i++) {
    29                 InvItem item = CreateInvItem (sourceFields [i].itemValue, sourceFields [i].count, id);
    30                 if (item != null && sourceFields [i].itemValue.Modifications != null) {
    31                     ProcessParts (sourceFields [i].itemValue.Modifications, item, id);
    32                 }
     26                private void ProcessInv (List<InvItem> target, ItemStack[] sourceFields, int id) {
     27                        target.Clear ();
     28                        for (int i = 0; i < sourceFields.Length; i++) {
     29                                InvItem item = CreateInvItem (sourceFields [i].itemValue, sourceFields [i].count, id);
     30                                if (item != null && sourceFields [i].itemValue.Modifications != null) {
     31                                        ProcessParts (sourceFields [i].itemValue.Modifications, item, id);
     32                                }
    3333
    34                 target.Add (item);
    35             }
    36         }
     34                                target.Add (item);
     35                        }
     36                }
    3737
    38         private void ProcessEqu (Equipment sourceEquipment, int _playerId) {
    39             equipment = new InvItem[sourceEquipment.GetSlotCount ()];
    40             for (int i = 0; i < sourceEquipment.GetSlotCount (); i++) {
    41                 equipment [i] = CreateInvItem (sourceEquipment.GetSlotItem (i), 1, _playerId);
    42             }
    43         }
     38                private void ProcessEqu (Equipment sourceEquipment, int _playerId) {
     39                        equipment = new InvItem[sourceEquipment.GetSlotCount ()];
     40                        for (int i = 0; i < sourceEquipment.GetSlotCount (); i++) {
     41                                equipment [i] = CreateInvItem (sourceEquipment.GetSlotItem (i), 1, _playerId);
     42                        }
     43                }
    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++) {
    48                 InvItem partItem = CreateInvItem (_parts [i], 1, _playerId);
    49                 if (partItem != null && _parts [i].Modifications != null) {
    50                     ProcessParts (_parts [i].Modifications, partItem, _playerId);
    51                 }
     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++) {
     48                                InvItem partItem = CreateInvItem (_parts [i], 1, _playerId);
     49                                if (partItem != null && _parts [i].Modifications != null) {
     50                                        ProcessParts (_parts [i].Modifications, partItem, _playerId);
     51                                }
    5252
    53                 itemParts [i] = partItem;
    54             }
     53                                itemParts [i] = partItem;
     54                        }
    5555
    56             _item.parts = itemParts;
    57         }
     56                        _item.parts = itemParts;
     57                }
    5858
    59         private InvItem CreateInvItem (ItemValue _itemValue, int _count, int _playerId) {
    60             if (_count > 0 && _itemValue != null && !_itemValue.Equals (ItemValue.None)) {
    61                 ItemClass itemClass = ItemClass.list [_itemValue.type];
    62                 int maxAllowed = itemClass.Stacknumber.Value;
    63                 string name = itemClass.GetItemName ();
     59                private InvItem CreateInvItem (ItemValue _itemValue, int _count, int _playerId) {
     60                        if (_count > 0 && _itemValue != null && !_itemValue.Equals (ItemValue.None)) {
     61                                ItemClass itemClass = ItemClass.list [_itemValue.type];
     62                                int maxAllowed = itemClass.Stacknumber.Value;
     63                                string name = itemClass.GetItemName ();
    6464
    65                 if (_count > maxAllowed) {
    66                     Log.Out ("Player with ID " + _playerId + " has stack for \"" + name + "\" greater than allowed (" +
    67                              _count + " > " + maxAllowed + ")");
    68                 }
     65                                if (_count > maxAllowed) {
     66                                        Log.Out ("Player with ID " + _playerId + " has stack for \"" + name + "\" greater than allowed (" +
     67                                                 _count + " > " + maxAllowed + ")");
     68                                }
    6969
    70                 InvItem item = null;
    71                 if (_itemValue.HasQuality) {
    72                     item = new InvItem (name, _count, _itemValue.Quality, _itemValue.MaxUseTimes, _itemValue.UseTimes);
    73                 } else {
    74                     item = new InvItem (name, _count, -1, _itemValue.MaxUseTimes, _itemValue.UseTimes);
    75                 }
     70                                InvItem item = null;
     71                                if (_itemValue.HasQuality) {
     72                                        item = new InvItem (name, _count, _itemValue.Quality, _itemValue.MaxUseTimes, _itemValue.UseTimes);
     73                                } else {
     74                                        item = new InvItem (name, _count, -1, _itemValue.MaxUseTimes, _itemValue.UseTimes);
     75                                }
    7676
    77                 item.icon = itemClass.GetIconName ();
     77                                item.icon = itemClass.GetIconName ();
    7878
    79                 item.iconcolor = AllocsUtils.ColorToHex (itemClass.GetIconTint ());
     79                                item.iconcolor = AllocsUtils.ColorToHex (itemClass.GetIconTint ());
    8080
    81                 return item;
    82             } else {
    83                 return null;
    84             }
    85         }
    86     }
     81                                return item;
     82                        }
     83
     84                        return null;
     85                }
     86        }
    8787}
  • binary-improvements/7dtd-server-fixes/src/PersistentData/PersistentContainer.cs

    r273 r325  
    44using System.Runtime.Serialization.Formatters.Binary;
    55
    6 namespace AllocsFixes.PersistentData
    7 {
     6namespace AllocsFixes.PersistentData {
    87        [Serializable]
    9         public class PersistentContainer
    10         {
     8        public class PersistentContainer {
    119                private Players players;
    12                 [OptionalField]
    13                 private Attributes attributes;
     10                [OptionalField] private Attributes attributes;
    1411
    1512                public Players Players {
    1613                        get {
    17                                 if (players == null)
     14                                if (players == null) {
    1815                                        players = new Players ();
     16                                }
     17
    1918                                return players;
    2019                        }
    2120                }
    2221
    23                 public Attributes Attributes
    24                 {
     22                public Attributes Attributes {
    2523                        get {
    2624                                if (attributes == null) {
    27                                         attributes = new Attributes();
     25                                        attributes = new Attributes ();
    2826                                }
     27
    2928                                return attributes;
    3029                        }
     
    3837                                        instance = new PersistentContainer ();
    3938                                }
     39
    4040                                return instance;
    4141                        }
    4242                }
    4343
    44                 private PersistentContainer ()
    45                 {
     44                private PersistentContainer () {
    4645                }
    4746
    48                 public void Save ()
    49                 {
     47                public void Save () {
    5048                        Stream stream = File.Open (GameUtils.GetSaveGameDir () + "/AllocsPeristentData.bin", FileMode.Create);
    5149                        BinaryFormatter bFormatter = new BinaryFormatter ();
     
    5452                }
    5553
    56                 public static bool Load ()
    57                 {
     54                public static bool Load () {
    5855                        if (File.Exists (GameUtils.GetSaveGameDir () + "/AllocsPeristentData.bin")) {
    5956                                try {
     
    6158                                        Stream stream = File.Open (GameUtils.GetSaveGameDir () + "/AllocsPeristentData.bin", FileMode.Open);
    6259                                        BinaryFormatter bFormatter = new BinaryFormatter ();
    63                                         obj = (PersistentContainer)bFormatter.Deserialize (stream);
     60                                        obj = (PersistentContainer) bFormatter.Deserialize (stream);
    6461                                        stream.Close ();
    6562                                        instance = obj;
     
    7067                                }
    7168                        }
     69
    7270                        return false;
    7371                }
    74 
    7572        }
    7673}
    77 
  • binary-improvements/7dtd-server-fixes/src/PersistentData/Player.cs

    r324 r325  
    44
    55namespace AllocsFixes.PersistentData {
    6     [Serializable]
    7     public class Player {
    8         private readonly string steamId;
    9         private int entityId;
    10         private string name;
    11         private string ip;
    12         private long totalPlayTime;
    13 
    14         [OptionalField] private DateTime
    15             lastOnline;
    16 
    17         private Inventory inventory;
    18 
    19         [OptionalField] private int
    20             lastPositionX, lastPositionY, lastPositionZ;
    21 
    22         [OptionalField] [Obsolete ("experience no longer available, use level and expToNextLevel instead")]
    23         private uint experience;
    24 
    25         [OptionalField] private bool chatMuted;
    26         [OptionalField] private int maxChatLength;
    27         [OptionalField] private string chatColor;
    28         [OptionalField] private bool chatName;
    29         [OptionalField] private uint expToNextLevel;
    30         [OptionalField] private int level;
    31 
    32         [NonSerialized] private ClientInfo
    33             clientInfo;
    34 
    35         public string SteamID {
    36             get { return steamId; }
    37         }
     6        [Serializable]
     7        public class Player {
     8                private readonly string steamId;
     9                private int entityId;
     10                private string name;
     11                private string ip;
     12                private long totalPlayTime;
     13
     14                [OptionalField] private DateTime lastOnline;
     15
     16                private Inventory inventory;
     17
     18                [OptionalField] private int lastPositionX, lastPositionY, lastPositionZ;
     19
     20                [OptionalField] [Obsolete ("experience no longer available, use level and expToNextLevel instead")]
     21                private uint experience;
     22
     23                [OptionalField] private bool chatMuted;
     24                [OptionalField] private int maxChatLength;
     25                [OptionalField] private string chatColor;
     26                [OptionalField] private bool chatName;
     27                [OptionalField] private uint expToNextLevel;
     28                [OptionalField] private int level;
     29
     30                [NonSerialized] private ClientInfo clientInfo;
     31
     32                public string SteamID {
     33                        get { return steamId; }
     34                }
    3835
    3936        public int EntityID {
     
    4138        }
    4239
    43         public string Name {
    44             get { return name == null ? string.Empty : name; }
    45         }
    46 
    47         public string IP {
    48             get { return ip == null ? string.Empty : ip; }
    49         }
    50 
    51         public Inventory Inventory {
    52             get {
    53                 if (inventory == null)
    54                     inventory = new Inventory ();
    55                 return inventory;
    56             }
    57         }
    58 
    59         public bool IsOnline {
    60             get { return clientInfo != null; }
    61         }
    62 
    63         public ClientInfo ClientInfo {
    64             get { return clientInfo; }
    65         }
    66 
    67         public EntityPlayer Entity {
    68             get {
    69                 if (IsOnline) {
    70                     return GameManager.Instance.World.Players.dict [clientInfo.entityId];
    71                 } else {
    72                     return null;
    73                 }
    74             }
    75         }
    76 
    77         public long TotalPlayTime {
    78             get {
    79                 if (IsOnline) {
    80                     return totalPlayTime + (long) (DateTime.Now - lastOnline).TotalSeconds;
    81                 } else {
    82                     return totalPlayTime;
    83                 }
    84             }
    85         }
    86 
    87         public DateTime LastOnline {
    88             get {
    89                 if (IsOnline)
    90                     return DateTime.Now;
    91                 else
    92                     return lastOnline;
    93             }
    94         }
    95 
    96         public Vector3i LastPosition {
    97             get {
    98                 if (IsOnline)
    99                     return new Vector3i (Entity.GetPosition ());
    100                 else
    101                     return new Vector3i (lastPositionX, lastPositionY, lastPositionZ);
    102             }
    103         }
    104 
    105         public bool LandProtectionActive {
    106             get {
    107                 return GameManager.Instance.World.IsLandProtectionValidForPlayer (GameManager.Instance
    108                     .GetPersistentPlayerList ().GetPlayerData (SteamID));
    109             }
    110         }
    111 
    112         public float LandProtectionMultiplier {
    113             get {
    114                 return GameManager.Instance.World.GetLandProtectionHardnessModifierForPlayer (GameManager.Instance
    115                     .GetPersistentPlayerList ().GetPlayerData (SteamID));
    116             }
    117         }
    118 
    119 
    120         [Obsolete ("Experience no longer available, use Level instead")]
    121         public uint Experience {
    122             get { return 0; }
    123         }
    124 
    125         public float Level {
    126             get {
    127                 float expForNextLevel =
    128                     (int) Math.Min ((Progression.BaseExpToLevel * Mathf.Pow (Progression.ExpMultiplier, level + 1)),
    129                         int.MaxValue);
    130                 float fLevel = level + 1f - ((float) expToNextLevel / expForNextLevel);
    131                 return fLevel;
    132             }
    133         }
    134 
    135         public bool IsChatMuted {
    136             get { return chatMuted; }
    137             set { chatMuted = value; }
    138         }
    139 
    140         public int MaxChatLength {
    141             get {
    142                 if (maxChatLength == 0) {
    143                     maxChatLength = 255;
    144                 }
    145 
    146                 return maxChatLength;
    147             }
    148             set { maxChatLength = value; }
    149         }
    150 
    151         public string ChatColor {
    152             get {
    153                 if (chatColor == null || chatColor == "") {
    154                     chatColor = "";
    155                 }
    156 
    157                 return chatColor;
    158             }
    159 
    160             set { chatColor = value; }
    161         }
    162 
    163         public bool ChatName {
    164             get { return chatName; }
    165 
    166             set { chatName = value; }
    167         }
    168 
    169         public void SetOffline () {
    170             if (clientInfo != null) {
    171                 Log.Out ("Player set to offline: " + steamId);
    172                 lastOnline = DateTime.Now;
    173                 try {
    174                     Vector3i lastPos = new Vector3i (Entity.GetPosition ());
    175                     lastPositionX = lastPos.x;
    176                     lastPositionY = lastPos.y;
    177                     lastPositionZ = lastPos.z;
    178                     totalPlayTime += (long) (Time.timeSinceLevelLoad - Entity.CreationTimeSinceLevelLoad);
    179                 } catch (NullReferenceException) {
    180                     Log.Out ("Entity not available. Something seems to be wrong here...");
    181                 }
    182 
    183                 clientInfo = null;
    184             }
    185         }
    186 
    187         public void SetOnline (ClientInfo ci) {
    188             Log.Out ("Player set to online: " + steamId);
    189             clientInfo = ci;
     40                public string Name {
     41                        get { return name == null ? string.Empty : name; }
     42                }
     43
     44                public string IP {
     45                        get { return ip == null ? string.Empty : ip; }
     46                }
     47
     48                public Inventory Inventory {
     49                        get {
     50                                if (inventory == null) {
     51                                        inventory = new Inventory ();
     52                                }
     53
     54                                return inventory;
     55                        }
     56                }
     57
     58                public bool IsOnline {
     59                        get { return clientInfo != null; }
     60                }
     61
     62                public ClientInfo ClientInfo {
     63                        get { return clientInfo; }
     64                }
     65
     66                public EntityPlayer Entity {
     67                        get {
     68                                if (IsOnline) {
     69                                        return GameManager.Instance.World.Players.dict [clientInfo.entityId];
     70                                }
     71
     72                                return null;
     73                        }
     74                }
     75
     76                public long TotalPlayTime {
     77                        get {
     78                                if (IsOnline) {
     79                                        return totalPlayTime + (long) (DateTime.Now - lastOnline).TotalSeconds;
     80                                }
     81
     82                                return totalPlayTime;
     83                        }
     84                }
     85
     86                public DateTime LastOnline {
     87                        get {
     88                                if (IsOnline) {
     89                                        return DateTime.Now;
     90                                }
     91
     92                                return lastOnline;
     93                        }
     94                }
     95
     96                public Vector3i LastPosition {
     97                        get {
     98                                if (IsOnline) {
     99                                        return new Vector3i (Entity.GetPosition ());
     100                                }
     101
     102                                return new Vector3i (lastPositionX, lastPositionY, lastPositionZ);
     103                        }
     104                }
     105
     106                public bool LandProtectionActive {
     107                        get {
     108                                return GameManager.Instance.World.IsLandProtectionValidForPlayer (GameManager.Instance
     109                                        .GetPersistentPlayerList ().GetPlayerData (SteamID));
     110                        }
     111                }
     112
     113                public float LandProtectionMultiplier {
     114                        get {
     115                                return GameManager.Instance.World.GetLandProtectionHardnessModifierForPlayer (GameManager.Instance
     116                                        .GetPersistentPlayerList ().GetPlayerData (SteamID));
     117                        }
     118                }
     119
     120
     121                [Obsolete ("Experience no longer available, use Level instead")]
     122                public uint Experience {
     123                        get { return 0; }
     124                }
     125
     126                public float Level {
     127                        get {
     128                                float expForNextLevel =
     129                                        (int) Math.Min (Progression.BaseExpToLevel * Mathf.Pow (Progression.ExpMultiplier, level + 1),
     130                                                int.MaxValue);
     131                                float fLevel = level + 1f - expToNextLevel / expForNextLevel;
     132                                return fLevel;
     133                        }
     134                }
     135
     136                public bool IsChatMuted {
     137                        get { return chatMuted; }
     138                        set { chatMuted = value; }
     139                }
     140
     141                public int MaxChatLength {
     142                        get {
     143                                if (maxChatLength == 0) {
     144                                        maxChatLength = 255;
     145                                }
     146
     147                                return maxChatLength;
     148                        }
     149                        set { maxChatLength = value; }
     150                }
     151
     152                public string ChatColor {
     153                        get {
     154                                if (chatColor == null || chatColor == "") {
     155                                        chatColor = "";
     156                                }
     157
     158                                return chatColor;
     159                        }
     160
     161                        set { chatColor = value; }
     162                }
     163
     164                public bool ChatName {
     165                        get { return chatName; }
     166
     167                        set { chatName = value; }
     168                }
     169
     170                public Player (string steamId) {
     171                        this.steamId = steamId;
     172                        inventory = new Inventory ();
     173                }
     174
     175                public void SetOffline () {
     176                        if (clientInfo != null) {
     177                                Log.Out ("Player set to offline: " + steamId);
     178                                lastOnline = DateTime.Now;
     179                                try {
     180                                        Vector3i lastPos = new Vector3i (Entity.GetPosition ());
     181                                        lastPositionX = lastPos.x;
     182                                        lastPositionY = lastPos.y;
     183                                        lastPositionZ = lastPos.z;
     184                                        totalPlayTime += (long) (Time.timeSinceLevelLoad - Entity.CreationTimeSinceLevelLoad);
     185                                } catch (NullReferenceException) {
     186                                        Log.Out ("Entity not available. Something seems to be wrong here...");
     187                                }
     188
     189                                clientInfo = null;
     190                        }
     191                }
     192
     193                public void SetOnline (ClientInfo ci) {
     194                        Log.Out ("Player set to online: " + steamId);
     195                        clientInfo = ci;
    190196            entityId = ci.entityId;
    191             name = ci.playerName;
    192             ip = ci.ip;
    193             lastOnline = DateTime.Now;
    194         }
    195 
    196         public void Update (PlayerDataFile _pdf) {
    197             UpdateProgression (_pdf);
    198             inventory.Update (_pdf);
    199         }
    200 
    201         private void UpdateProgression (PlayerDataFile _pdf) {
    202             if (_pdf.progressionData.Length > 0) {
    203                 using (PooledBinaryReader pbr = MemoryPools.poolBinaryReader.AllocSync (false)) {
    204                     pbr.SetBaseStream (_pdf.progressionData);
    205                     Progression p = Progression.Read (pbr, null);
    206                     expToNextLevel = (uint) p.ExpToNextLevel;
    207                     level = p.Level;
    208                 }
    209             }
    210         }
    211 
    212         public Player (string steamId) {
    213             this.steamId = steamId;
    214             this.inventory = new Inventory ();
    215         }
    216     }
     197                        name = ci.playerName;
     198                        ip = ci.ip;
     199                        lastOnline = DateTime.Now;
     200                }
     201
     202                public void Update (PlayerDataFile _pdf) {
     203                        UpdateProgression (_pdf);
     204                        inventory.Update (_pdf);
     205                }
     206
     207                private void UpdateProgression (PlayerDataFile _pdf) {
     208                        if (_pdf.progressionData.Length > 0) {
     209                                using (PooledBinaryReader pbr = MemoryPools.poolBinaryReader.AllocSync (false)) {
     210                                        pbr.SetBaseStream (_pdf.progressionData);
     211                                        Progression p = Progression.Read (pbr, null);
     212                                        expToNextLevel = (uint) p.ExpToNextLevel;
     213                                        level = p.Level;
     214                                }
     215                        }
     216                }
     217        }
    217218}
  • binary-improvements/7dtd-server-fixes/src/PersistentData/Players.cs

    r276 r325  
    11using System;
    22using System.Collections.Generic;
    3 using System.Runtime.Serialization;
    43using System.Text.RegularExpressions;
    54
    6 namespace AllocsFixes.PersistentData
    7 {
     5namespace AllocsFixes.PersistentData {
    86        [Serializable]
    97        public class Players {
    10                 private Dictionary<string, Player> players = new Dictionary<string, Player> ();
     8                private readonly Dictionary<string, Player> players = new Dictionary<string, Player> ();
    119
    1210                public Player this [string steamId, bool create] {
     
    1412                                if (string.IsNullOrEmpty (steamId)) {
    1513                                        return null;
    16                                 } else if (players.ContainsKey (steamId)) {
     14                                }
     15
     16                                if (players.ContainsKey (steamId)) {
    1717                                        return players [steamId];
    18                                 } else {
    19                                         if (create && steamId != null && steamId.Length == 17) {
    20                                                 Log.Out ("Created new player entry for ID: " + steamId);
    21                                                 Player p = new Player (steamId);
    22                                                 players.Add (steamId, p);
    23                                                 return p;
    24                                         }
    25                                         return null;
    2618                                }
     19
     20                                if (create && steamId != null && steamId.Length == 17) {
     21                                        Log.Out ("Created new player entry for ID: " + steamId);
     22                                        Player p = new Player (steamId);
     23                                        players.Add (steamId, p);
     24                                        return p;
     25                                }
     26
     27                                return null;
    2728                        }
    2829                }
     
    5354                        if (_nameOrId.Length == 17 && long.TryParse (_nameOrId, out tempLong)) {
    5455                                return _nameOrId;
    55                         } else {
    56                                 int entityId = -1;
    57                                 if (int.TryParse (_nameOrId, out entityId)) {
    58                                         foreach (KeyValuePair<string, Player> kvp in players) {
    59                                                 if (kvp.Value.IsOnline && kvp.Value.EntityID == entityId) {
    60                                                         return kvp.Key;
    61                                                 }
    62                                         }
    63                                 }
     56                        }
    6457
    65                                 _nameOrId = _nameOrId.ToLower ();
     58                        int entityId = -1;
     59                        if (int.TryParse (_nameOrId, out entityId)) {
    6660                                foreach (KeyValuePair<string, Player> kvp in players) {
    67                                         string name = kvp.Value.Name.ToLower ();
    68                                         if (_ignoreColorCodes) {
    69                                                 name = Regex.Replace (name, "\\[[0-9a-fA-F]{6}\\]", "");
    70                                         }
    71                                         if (kvp.Value.IsOnline && name.Equals (_nameOrId)) {
     61                                        if (kvp.Value.IsOnline && kvp.Value.EntityID == entityId) {
    7262                                                return kvp.Key;
    7363                                        }
    7464                                }
    7565                        }
     66
     67                        _nameOrId = _nameOrId.ToLower ();
     68                        foreach (KeyValuePair<string, Player> kvp in players) {
     69                                string name = kvp.Value.Name.ToLower ();
     70                                if (_ignoreColorCodes) {
     71                                        name = Regex.Replace (name, "\\[[0-9a-fA-F]{6}\\]", "");
     72                                }
     73
     74                                if (kvp.Value.IsOnline && name.Equals (_nameOrId)) {
     75                                        return kvp.Key;
     76                                }
     77                        }
     78
    7679                        return null;
    7780                }
    7881        }
    7982}
    80 
  • binary-improvements/7dtd-server-fixes/src/PlayerDataStuff.cs

    r233 r325  
     1using System;
    12using AllocsFixes.PersistentData;
    2 using System;
    3 using System.Collections.Generic;
    43
    5 namespace AllocsFixes
    6 {
    7         public class PlayerDataStuff
    8         {
    9 
    10                 public static void GM_SavePlayerData (ClientInfo _cInfo, PlayerDataFile _playerDataFile)
    11                 {
     4namespace AllocsFixes {
     5        public class PlayerDataStuff {
     6                public static void GM_SavePlayerData (ClientInfo _cInfo, PlayerDataFile _playerDataFile) {
    127                        try {
    13                                 PersistentContainer.Instance.Players[_cInfo.playerId, true].Update (_playerDataFile);
     8                                PersistentContainer.Instance.Players [_cInfo.playerId, true].Update (_playerDataFile);
    149                        } catch (Exception e) {
    1510                                Log.Out ("Error in GM_SavePlayerData: " + e);
    1611                        }
    1712                }
    18 
    19 
    2013        }
    2114}
  • binary-improvements/7dtd-server-fixes/src/StateManager.cs

    r306 r325  
    11using System;
    2 using System.Reflection;
     2using AllocsFixes.PersistentData;
    33
    4 namespace AllocsFixes
    5 {
    6         public class StateManager
    7         {
    8                 public static void Awake ()
    9                 {
     4namespace AllocsFixes {
     5        public class StateManager {
     6                public static void Awake () {
    107                        try {
    11                                 PersistentData.PersistentContainer.Load ();
     8                                PersistentContainer.Load ();
    129                        } catch (Exception e) {
    1310                                Log.Out ("Error in StateManager.Awake: " + e);
     
    1512                }
    1613
    17                 public static void Shutdown ()
    18                 {
     14                public static void Shutdown () {
    1915                        try {
    2016                                Log.Out ("Server shutting down!");
    21                                 PersistentData.PersistentContainer.Instance.Save ();
     17                                PersistentContainer.Instance.Save ();
    2218                        } catch (Exception e) {
    2319                                Log.Out ("Error in StateManager.Shutdown: " + e);
     
    2622        }
    2723}
    28 
Note: See TracChangeset for help on using the changeset viewer.