Ignore:
Timestamp:
Aug 7, 2022, 3:02:24 PM (2 years ago)
Author:
alloc
Message:

Major refactoring/cleanup

Location:
binary-improvements2/7dtd-server-fixes
Files:
1 deleted
22 edited
1 moved

Legend:

Unmodified
Added
Removed
  • binary-improvements2/7dtd-server-fixes/7dtd-server-fixes.csproj

    r386 r391  
    9191    <Compile Include="src\PersistentData\Players.cs" />
    9292    <Compile Include="src\PersistentData\Player.cs" />
    93     <Compile Include="src\JSON\JSONNode.cs" />
    94     <Compile Include="src\JSON\JSONArray.cs" />
    95     <Compile Include="src\JSON\JSONObject.cs" />
    96     <Compile Include="src\JSON\JSONNumber.cs" />
    97     <Compile Include="src\JSON\JSONString.cs" />
    98     <Compile Include="src\JSON\JSONBoolean.cs" />
    99     <Compile Include="src\BlockingQueue.cs" />
     93    <Compile Include="src\JSON\JsonNode.cs" />
     94    <Compile Include="src\JSON\JsonArray.cs" />
     95    <Compile Include="src\JSON\JsonObject.cs" />
     96    <Compile Include="src\JSON\JsonNumber.cs" />
     97    <Compile Include="src\JSON\JsonString.cs" />
     98    <Compile Include="src\JSON\JsonBoolean.cs" />
    10099    <Compile Include="src\JSON\Parser.cs" />
    101     <Compile Include="src\JSON\JSONNull.cs" />
     100    <Compile Include="src\JSON\JsonNull.cs" />
    102101    <Compile Include="src\JSON\MalformedJSONException.cs" />
    103102    <Compile Include="src\FileCache\AbstractCache.cs" />
     
    105104    <Compile Include="src\FileCache\SimpleCache.cs" />
    106105    <Compile Include="src\FileCache\MapTileCache.cs" />
    107     <Compile Include="src\API.cs" />
     106    <Compile Include="src\ModApi.cs" />
    108107    <Compile Include="src\AllocsUtils.cs" />
    109108    <Compile Include="src\LandClaimList.cs" />
    110109    <Compile Include="src\PersistentData\Attributes.cs" />
    111     <Compile Include="src\JSON\JSONValue.cs" />
     110    <Compile Include="src\JSON\JsonValue.cs" />
    112111    <Compile Include="src\LiveData\EntityFilterList.cs" />
    113112  </ItemGroup>
     
    116115    <Folder Include="src\" />
    117116    <Folder Include="src\PersistentData\" />
    118     <Folder Include="src\JSON\Parser\" />
    119117    <Folder Include="src\FileCache\" />
    120118  </ItemGroup>
  • binary-improvements2/7dtd-server-fixes/ModInfo.xml

    r370 r391  
    22<xml>
    33        <ModInfo>
    4                 <Name value="Allocs server fixes" />
     4                <Name value="Server extensions" />
    55                <Description value="Common functions" />
    6                 <Author value="Christian 'Alloc' Illy" />
    7                 <Version value="24" />
    8                 <Website value="http://7dtd.illy.bz" />
     6                <Author value="The Fun Pimps LLC" />
     7                <Version value="1" />
     8                <Website value="" />
    99        </ModInfo>
    1010</xml>
  • binary-improvements2/7dtd-server-fixes/src/AllocsUtils.cs

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

    r325 r391  
    77[assembly: AssemblyDescription ("")]
    88[assembly: AssemblyConfiguration ("")]
    9 [assembly: AssemblyCompany ("")]
     9[assembly: AssemblyCompany ("The Fun Pimps LLC")]
    1010[assembly: AssemblyProduct ("")]
    11 [assembly: AssemblyCopyright ("Alloc")]
     11[assembly: AssemblyCopyright ("The Fun Pimps LLC")]
    1212[assembly: AssemblyTrademark ("")]
    1313[assembly: AssemblyCulture ("")]
  • binary-improvements2/7dtd-server-fixes/src/FileCache/DirectAccess.cs

    r351 r391  
    77                public override byte[] GetFileContent (string _filename) {
    88                        try {
    9                                 if (!File.Exists (_filename)) {
    10                                         return null;
    11                                 }
    12 
    13                                 return File.ReadAllBytes (_filename);
     9                                return File.Exists (_filename) ? File.ReadAllBytes (_filename) : null;
    1410                        } catch (Exception e) {
    1511                                Log.Out ("Error in DirectAccess.GetFileContent: " + e);
  • binary-improvements2/7dtd-server-fixes/src/FileCache/MapTileCache.cs

    r351 r391  
    3636                                lock (cache) {
    3737                                        CurrentZoomFile cacheEntry = cache [_zoomlevel];
    38                                        
    39                                         if (cacheEntry.filename == null || !cacheEntry.filename.Equals (_filename)) {
    40                                                 cacheEntry.filename = _filename;
    4138
    42                                                 if (!File.Exists (_filename)) {
    43                                                         cacheEntry.pngData = null;
    44                                                         return null;
    45                                                 }
     39                                        if (cacheEntry.filename != null && cacheEntry.filename.Equals (_filename)) {
     40                                                return cacheEntry.pngData;
     41                                        }
    4642
    47                                                 Profiler.BeginSample ("ReadPng");
    48                                                 cacheEntry.pngData = ReadAllBytes (_filename);
    49                                                 Profiler.EndSample ();
     43                                        cacheEntry.filename = _filename;
     44
     45                                        if (!File.Exists (_filename)) {
     46                                                cacheEntry.pngData = null;
     47                                                return null;
    5048                                        }
     49
     50                                        Profiler.BeginSample ("ReadPng");
     51                                        cacheEntry.pngData = ReadAllBytes (_filename);
     52                                        Profiler.EndSample ();
    5153
    5254                                        return cacheEntry.pngData;
     
    103105                                        }
    104106
    105                                         if (!File.Exists (_filename)) {
    106                                                 return transparentTile;
    107                                         }
    108 
    109                                         return ReadAllBytes (_filename);
     107                                        return !File.Exists (_filename) ? transparentTile : ReadAllBytes (_filename);
    110108                                }
    111109                        } catch (Exception e) {
  • binary-improvements2/7dtd-server-fixes/src/FileCache/SimpleCache.cs

    r351 r391  
    1111                        try {
    1212                                lock (fileCache) {
    13                                         if (!fileCache.ContainsKey (_filename)) {
    14                                                 if (!File.Exists (_filename)) {
    15                                                         return null;
    16                                                 }
     13                                        if (fileCache.ContainsKey (_filename)) {
     14                                                return fileCache [_filename];
     15                                        }
    1716
    18                                                 fileCache.Add (_filename, File.ReadAllBytes (_filename));
     17                                        if (!File.Exists (_filename)) {
     18                                                return null;
    1919                                        }
     20
     21                                        fileCache.Add (_filename, File.ReadAllBytes (_filename));
    2022
    2123                                        return fileCache [_filename];
  • binary-improvements2/7dtd-server-fixes/src/JSON/JSONArray.cs

    r351 r391  
    33
    44namespace AllocsFixes.JSON {
    5         public class JSONArray : JSONNode {
    6                 private readonly List<JSONNode> nodes = new List<JSONNode> ();
     5        public class JsonArray : JsonNode {
     6                private readonly List<JsonNode> nodes = new List<JsonNode> ();
    77
    8                 public JSONNode this [int _index] {
    9                         get { return nodes [_index]; }
    10                         set { nodes [_index] = value; }
     8                public JsonNode this [int _index] {
     9                        get => nodes [_index];
     10                        set => nodes [_index] = value;
    1111                }
    1212
    13                 public int Count {
    14                         get { return nodes.Count; }
    15                 }
     13                public int Count => nodes.Count;
    1614
    17                 public void Add (JSONNode _node) {
     15                public void Add (JsonNode _node) {
    1816                        nodes.Add (_node);
    1917                }
     
    2523                        }
    2624
    27                         foreach (JSONNode n in nodes) {
     25                        foreach (JsonNode n in nodes) {
    2826                                if (_prettyPrint) {
    2927                                        _stringBuilder.Append (new string ('\t', _currentLevel + 1));
     
    4846                }
    4947
    50                 public static JSONArray Parse (string _json, ref int _offset) {
     48                public static JsonArray Parse (string _json, ref int _offset) {
    5149                        //Log.Out ("ParseArray enter (" + offset + ")");
    52                         JSONArray arr = new JSONArray ();
     50                        JsonArray arr = new JsonArray ();
    5351
    5452                        bool nextElemAllowed = true;
     
    6361                                                        _offset++;
    6462                                                } else {
    65                                                         throw new MalformedJSONException (
     63                                                        throw new MalformedJsonException (
    6664                                                                "Could not parse array, found a comma without a value first");
    6765                                                }
  • binary-improvements2/7dtd-server-fixes/src/JSON/JSONBoolean.cs

    r389 r391  
    22
    33namespace AllocsFixes.JSON {
    4         public class JSONBoolean : JSONValue {
     4        public class JsonBoolean : JsonValue {
    55                private readonly bool value;
    66
    7                 public JSONBoolean (bool _value) {
     7                public JsonBoolean (bool _value) {
    88                        value = _value;
    99                }
     
    1717                }
    1818
    19                 public static JSONBoolean Parse (string _json, ref int _offset) {
     19                public static JsonBoolean Parse (string _json, ref int _offset) {
    2020                        //Log.Out ("ParseBool enter (" + offset + ")");
    2121
     
    2323                                //Log.Out ("JSON:Parsed Bool: true");
    2424                                _offset += 4;
    25                                 return new JSONBoolean (true);
     25                                return new JsonBoolean (true);
    2626                        }
    2727
     
    2929                                //Log.Out ("JSON:Parsed Bool: false");
    3030                                _offset += 5;
    31                                 return new JSONBoolean (false);
     31                                return new JsonBoolean (false);
    3232                        }
    3333
    34                         throw new MalformedJSONException ("No valid boolean found");
     34                        throw new MalformedJsonException ("No valid boolean found");
    3535                }
    3636
  • binary-improvements2/7dtd-server-fixes/src/JSON/JSONNode.cs

    r351 r391  
    22
    33namespace AllocsFixes.JSON {
    4         public abstract class JSONNode {
     4        public abstract class JsonNode {
    55                public abstract void ToString (StringBuilder _stringBuilder, bool _prettyPrint = false, int _currentLevel = 0);
    66
  • binary-improvements2/7dtd-server-fixes/src/JSON/JSONNull.cs

    r389 r391  
    33
    44namespace AllocsFixes.JSON {
    5         public class JSONNull : JSONValue {
     5        public class JsonNull : JsonValue {
    66                public override void ToString (StringBuilder _stringBuilder, bool _prettyPrint = false, int _currentLevel = 0) {
    77                        _stringBuilder.Append ("null");
    88                }
    99
    10                 public static JSONNull Parse (string _json, ref int _offset) {
     10                public static JsonNull Parse (string _json, ref int _offset) {
    1111                        //Log.Out ("ParseNull enter (" + offset + ")");
    1212
    1313                        if (!_json.Substring (_offset, 4).Equals ("null")) {
    14                                 throw new MalformedJSONException ("No valid null value found");
     14                                throw new MalformedJsonException ("No valid null value found");
    1515                        }
    1616
    1717                        //Log.Out ("JSON:Parsed Null");
    1818                        _offset += 4;
    19                         return new JSONNull ();
     19                        return new JsonNull ();
    2020                }
    2121
  • binary-improvements2/7dtd-server-fixes/src/JSON/JSONNumber.cs

    r389 r391  
    33
    44namespace AllocsFixes.JSON {
    5         public class JSONNumber : JSONValue {
     5        public class JsonNumber : JsonValue {
    66                private readonly double value;
    77
    8                 public JSONNumber (double _value) {
     8                public JsonNumber (double _value) {
    99                        value = _value;
    1010                }
     
    2222                }
    2323
    24                 public static JSONNumber Parse (string _json, ref int _offset) {
     24                public static JsonNumber Parse (string _json, ref int _offset) {
    2525                        //Log.Out ("ParseNumber enter (" + offset + ")");
    2626                        StringBuilder sbNum = new StringBuilder ();
     
    3737                                } else if (_json [_offset] == '.') {
    3838                                        if (hasExp) {
    39                                                 throw new MalformedJSONException ("Decimal separator in exponent");
     39                                                throw new MalformedJsonException ("Decimal separator in exponent");
    4040                                        }
    4141
    4242                                        if (hasDec) {
    43                                                 throw new MalformedJSONException ("Multiple decimal separators in number found");
     43                                                throw new MalformedJsonException ("Multiple decimal separators in number found");
    4444                                        }
    4545
    4646                                        if (sbNum.Length == 0) {
    47                                                 throw new MalformedJSONException ("No leading digits before decimal separator found");
     47                                                throw new MalformedJsonException ("No leading digits before decimal separator found");
    4848                                        }
    4949
     
    5353                                        if (hasExp) {
    5454                                                if (sbExp.Length > 0) {
    55                                                         throw new MalformedJSONException ("Negative sign in exponent after digits");
     55                                                        throw new MalformedJsonException ("Negative sign in exponent after digits");
    5656                                                }
    5757
     
    5959                                        } else {
    6060                                                if (sbNum.Length > 0) {
    61                                                         throw new MalformedJSONException ("Negative sign in mantissa after digits");
     61                                                        throw new MalformedJsonException ("Negative sign in mantissa after digits");
    6262                                                }
    6363
     
    6666                                } else if (_json [_offset] == 'e' || _json [_offset] == 'E') {
    6767                                        if (hasExp) {
    68                                                 throw new MalformedJSONException ("Multiple exponential markers in number found");
     68                                                throw new MalformedJsonException ("Multiple exponential markers in number found");
    6969                                        }
    7070
    7171                                        if (sbNum.Length == 0) {
    72                                                 throw new MalformedJSONException ("No leading digits before exponential marker found");
     72                                                throw new MalformedJsonException ("No leading digits before exponential marker found");
    7373                                        }
    7474
     
    7878                                        if (hasExp) {
    7979                                                if (sbExp.Length > 0) {
    80                                                         throw new MalformedJSONException ("Positive sign in exponent after digits");
     80                                                        throw new MalformedJsonException ("Positive sign in exponent after digits");
    8181                                                }
    8282
    8383                                                sbExp.Append (_json [_offset]);
    8484                                        } else {
    85                                                 throw new MalformedJSONException ("Positive sign in mantissa found");
     85                                                throw new MalformedJsonException ("Positive sign in mantissa found");
    8686                                        }
    8787                                } else {
    88                                         double number;
    89                                         if (!StringParsers.TryParseDouble (sbNum.ToString (), out number)) {
    90                                                 throw new MalformedJSONException ("Mantissa is not a valid decimal (\"" + sbNum + "\")");
     88                                        if (!StringParsers.TryParseDouble (sbNum.ToString (), out double number)) {
     89                                                throw new MalformedJsonException ("Mantissa is not a valid decimal (\"" + sbNum + "\")");
    9190                                        }
    9291
    9392                                        if (hasExp) {
    94                                                 int exp;
    95                                                 if (!int.TryParse (sbExp.ToString (), out exp)) {
    96                                                         throw new MalformedJSONException ("Exponent is not a valid integer (\"" + sbExp + "\")");
     93                                                if (!int.TryParse (sbExp.ToString (), out int exp)) {
     94                                                        throw new MalformedJsonException ("Exponent is not a valid integer (\"" + sbExp + "\")");
    9795                                                }
    9896
    99                                                 number = number * Math.Pow (10, exp);
     97                                                number *= Math.Pow (10, exp);
    10098                                        }
    10199
    102100                                        //Log.Out ("JSON:Parsed Number: " + number.ToString ());
    103                                         return new JSONNumber (number);
     101                                        return new JsonNumber (number);
    104102                                }
    105103
     
    107105                        }
    108106
    109                         throw new MalformedJSONException ("End of JSON reached before parsing number finished");
     107                        throw new MalformedJsonException ("End of JSON reached before parsing number finished");
    110108                }
    111109
  • binary-improvements2/7dtd-server-fixes/src/JSON/JSONObject.cs

    r389 r391  
    33
    44namespace AllocsFixes.JSON {
    5         public class JSONObject : JSONNode {
    6                 private readonly Dictionary<string, JSONNode> nodes = new Dictionary<string, JSONNode> ();
     5        public class JsonObject : JsonNode {
     6                private readonly Dictionary<string, JsonNode> nodes = new Dictionary<string, JsonNode> ();
    77
    8                 public JSONNode this [string _name] {
     8                public JsonNode this [string _name] {
    99                        get => nodes [_name];
    1010                        set => nodes [_name] = value;
     
    1919                }
    2020
    21                 public bool TryGetValue (string _name, out JSONNode _node) {
     21                public bool TryGetValue (string _name, out JsonNode _node) {
    2222                        return nodes.TryGetValue (_name, out _node);
    2323                }
    2424
    25                 public void Add (string _name, JSONNode _node) {
     25                public void Add (string _name, JsonNode _node) {
    2626                        nodes.Add (_name, _node);
    2727                }
     
    3333                        }
    3434
    35                         foreach (KeyValuePair<string, JSONNode> kvp in nodes) {
     35                        foreach ((string key, JsonNode value) in nodes) {
    3636                                if (_prettyPrint) {
    3737                                        _stringBuilder.Append (new string ('\t', _currentLevel + 1));
    3838                                }
    3939
    40                                 _stringBuilder.Append (string.Format ("\"{0}\":", kvp.Key));
     40                                _stringBuilder.Append ($"\"{key}\":");
    4141                                if (_prettyPrint) {
    4242                                        _stringBuilder.Append (" ");
    4343                                }
    4444
    45                                 kvp.Value.ToString (_stringBuilder, _prettyPrint, _currentLevel + 1);
     45                                value.ToString (_stringBuilder, _prettyPrint, _currentLevel + 1);
    4646                                _stringBuilder.Append (",");
    4747                                if (_prettyPrint) {
     
    6161                }
    6262
    63                 public static JSONObject Parse (string _json, ref int _offset) {
     63                public static JsonObject Parse (string _json, ref int _offset) {
    6464                        //Log.Out ("ParseObject enter (" + offset + ")");
    65                         JSONObject obj = new JSONObject ();
     65                        JsonObject obj = new JsonObject ();
    6666
    6767                        bool nextElemAllowed = true;
     
    7272                                        case '"':
    7373                                                if (nextElemAllowed) {
    74                                                         JSONString key = JSONString.Parse (_json, ref _offset);
     74                                                        JsonString key = JsonString.Parse (_json, ref _offset);
    7575                                                        Parser.SkipWhitespace (_json, ref _offset);
    7676                                                        if (_json [_offset] != ':') {
    77                                                                 throw new MalformedJSONException (
     77                                                                throw new MalformedJsonException (
    7878                                                                        "Could not parse object, missing colon (\":\") after key");
    7979                                                        }
    8080
    8181                                                        _offset++;
    82                                                         JSONNode val = Parser.ParseInternal (_json, ref _offset);
     82                                                        JsonNode val = Parser.ParseInternal (_json, ref _offset);
    8383                                                        obj.Add (key.GetString (), val);
    8484                                                        nextElemAllowed = false;
    8585                                                } else {
    86                                                         throw new MalformedJSONException (
     86                                                        throw new MalformedJsonException (
    8787                                                                "Could not parse object, found new key without a separating comma");
    8888                                                }
     
    9494                                                        _offset++;
    9595                                                } else {
    96                                                         throw new MalformedJSONException (
     96                                                        throw new MalformedJsonException (
    9797                                                                "Could not parse object, found a comma without a key/value pair first");
    9898                                                }
  • binary-improvements2/7dtd-server-fixes/src/JSON/JSONString.cs

    r389 r391  
    22
    33namespace AllocsFixes.JSON {
    4         public class JSONString : JSONValue {
     4        public class JsonString : JsonValue {
    55                private readonly string value;
    66
    7                 public JSONString (string _value) {
     7                public JsonString (string _value) {
    88                        value = _value;
    99                }
     
    1414
    1515                public override void ToString (StringBuilder _stringBuilder, bool _prettyPrint = false, int _currentLevel = 0) {
    16                         if (value == null || value.Length == 0) {
     16                        if (string.IsNullOrEmpty (value)) {
    1717                                _stringBuilder.Append ("\"\"");
    1818                                return;
     
    6464                }
    6565
    66                 public static JSONString Parse (string _json, ref int _offset) {
     66                public static JsonString Parse (string _json, ref int _offset) {
    6767                        //Log.Out ("ParseString enter (" + offset + ")");
    6868                        StringBuilder sb = new StringBuilder ();
     
    104104
    105105                                                //Log.Out ("JSON:Parsed String: " + sb.ToString ());
    106                                                 return new JSONString (sb.ToString ());
     106                                                return new JsonString (sb.ToString ());
    107107                                        default:
    108108                                                sb.Append (_json [_offset]);
     
    112112                        }
    113113
    114                         throw new MalformedJSONException ("End of JSON reached before parsing string finished");
     114                        throw new MalformedJsonException ("End of JSON reached before parsing string finished");
    115115                }
    116116
  • binary-improvements2/7dtd-server-fixes/src/JSON/JSONValue.cs

    r389 r391  
    11namespace AllocsFixes.JSON {
    2         public abstract class JSONValue : JSONNode {
     2        public abstract class JsonValue : JsonNode {
    33                public abstract string AsString { get; }
    44                public abstract int AsInt { get; }
  • binary-improvements2/7dtd-server-fixes/src/JSON/JsonManualBuilder.cs

    r354 r391  
    99                        NonEmpty = 1,
    1010                        Object = 2,
    11                         Array = 4,
     11                        Array = 4
    1212                }
    1313
     
    2020                private int currentLevelNumber;
    2121
    22                 private ELevelInfo CurrentLevelInfo {
    23                         get { return (ELevelInfo) (currentLevelType & levelBitsMask); }
    24                 }
    25 
    26                 private bool CurrentLevelIsNonEmpty {
    27                         get { return (CurrentLevelInfo & ELevelInfo.NonEmpty) == ELevelInfo.NonEmpty; }
    28                 }
    29 
    30                 private bool CurrentLevelIsArray {
    31                         get { return (CurrentLevelInfo & ELevelInfo.Array) != ELevelInfo.Array; }
    32                 }
    33 
    34                 private bool CurrentLevelIsObject {
    35                         get { return (CurrentLevelInfo & ELevelInfo.Object) != ELevelInfo.Object; }
    36                 }
    37                
     22                private ELevelInfo CurrentLevelInfo => (ELevelInfo) (currentLevelType & levelBitsMask);
     23
     24                private bool CurrentLevelIsNonEmpty => (CurrentLevelInfo & ELevelInfo.NonEmpty) == ELevelInfo.NonEmpty;
     25
     26                private bool CurrentLevelIsArray => (CurrentLevelInfo & ELevelInfo.Array) != ELevelInfo.Array;
     27
     28                private bool CurrentLevelIsObject => (CurrentLevelInfo & ELevelInfo.Object) != ELevelInfo.Object;
     29
    3830                public JsonManualBuilder (bool _prettyPrint) {
    3931                        prettyPrint = _prettyPrint;
     
    5446                        }
    5547
    56                         currentLevelType = currentLevelType | (long) ELevelInfo.NonEmpty;
     48                        currentLevelType |= (long) ELevelInfo.NonEmpty;
    5749                }
    5850
     
    210202
    211203                        currentLevelNumber--;
    212                         currentLevelType = currentLevelType >> levelTypeBits;
     204                        currentLevelType >>= levelTypeBits;
    213205
    214206                        if (prettyPrint) {
  • binary-improvements2/7dtd-server-fixes/src/JSON/MalformedJSONException.cs

    r351 r391  
    33
    44namespace AllocsFixes.JSON {
    5         public class MalformedJSONException : ApplicationException {
    6                 public MalformedJSONException () {
     5        public class MalformedJsonException : ApplicationException {
     6                public MalformedJsonException () {
    77                }
    88
    9                 public MalformedJSONException (string _message) : base (_message) {
     9                public MalformedJsonException (string _message) : base (_message) {
    1010                }
    1111
    12                 public MalformedJSONException (string _message, Exception _inner) : base (_message, _inner) {
     12                public MalformedJsonException (string _message, Exception _inner) : base (_message, _inner) {
    1313                }
    1414
    15                 protected MalformedJSONException (SerializationInfo _info, StreamingContext _context) : base (_info, _context) {
     15                protected MalformedJsonException (SerializationInfo _info, StreamingContext _context) : base (_info, _context) {
    1616                }
    1717        }
  • binary-improvements2/7dtd-server-fixes/src/JSON/Parser.cs

    r351 r391  
    11namespace AllocsFixes.JSON {
    2         public class Parser {
    3                 public static JSONNode Parse (string _json) {
     2        public static class Parser {
     3                public static JsonNode Parse (string _json) {
    44                        int offset = 0;
    55                        return ParseInternal (_json, ref offset);
    66                }
    77
    8                 public static JSONNode ParseInternal (string _json, ref int _offset) {
     8                public static JsonNode ParseInternal (string _json, ref int _offset) {
    99                        SkipWhitespace (_json, ref _offset);
    1010
     
    1212                        switch (_json [_offset]) {
    1313                                case '[':
    14                                         return JSONArray.Parse (_json, ref _offset);
     14                                        return JsonArray.Parse (_json, ref _offset);
    1515                                case '{':
    16                                         return JSONObject.Parse (_json, ref _offset);
     16                                        return JsonObject.Parse (_json, ref _offset);
    1717                                case '"':
    18                                         return JSONString.Parse (_json, ref _offset);
     18                                        return JsonString.Parse (_json, ref _offset);
    1919                                case 't':
    2020                                case 'f':
    21                                         return JSONBoolean.Parse (_json, ref _offset);
     21                                        return JsonBoolean.Parse (_json, ref _offset);
    2222                                case 'n':
    23                                         return JSONNull.Parse (_json, ref _offset);
     23                                        return JsonNull.Parse (_json, ref _offset);
    2424                                default:
    25                                         return JSONNumber.Parse (_json, ref _offset);
     25                                        return JsonNumber.Parse (_json, ref _offset);
    2626                        }
    2727                }
     
    4242                        }
    4343
    44                         throw new MalformedJSONException ("End of JSON reached before parsing finished");
     44                        throw new MalformedJsonException ("End of JSON reached before parsing finished");
    4545                }
    4646        }
  • binary-improvements2/7dtd-server-fixes/src/LandClaimList.cs

    r369 r391  
    2020                        Dictionary<PersistentPlayerData, List<Vector3i>> owners =
    2121                                new Dictionary<PersistentPlayerData, List<Vector3i>> ();
    22                         foreach (KeyValuePair<Vector3i, PersistentPlayerData> kvp in d) {
     22                        foreach ((Vector3i claimPos, PersistentPlayerData owner) in d) {
    2323                                bool allowed = true;
    2424                                if (_positionFilters != null) {
    2525                                        foreach (PositionFilter pf in _positionFilters) {
    26                                                 if (!pf (kvp.Key)) {
    27                                                         allowed = false;
    28                                                         break;
     26                                                if (pf (claimPos)) {
     27                                                        continue;
    2928                                                }
     29
     30                                                allowed = false;
     31                                                break;
    3032                                        }
    3133                                }
    3234
    33                                 if (allowed) {
    34                                         if (!owners.ContainsKey (kvp.Value)) {
    35                                                 owners.Add (kvp.Value, new List<Vector3i> ());
    36                                         }
     35                                if (!allowed) {
     36                                        continue;
     37                                }
    3738
    38                                         owners [kvp.Value].Add (kvp.Key);
     39                                if (!owners.ContainsKey (owner)) {
     40                                        owners.Add (owner, new List<Vector3i> ());
    3941                                }
     42
     43                                owners [owner].Add (claimPos);
    4044                        }
    4145
    42                         foreach (KeyValuePair<PersistentPlayerData, List<Vector3i>> kvp in owners) {
    43                                 Player p = PersistentContainer.Instance.Players [kvp.Key.UserIdentifier, false];
    44                                 if (p == null) {
    45                                         p = new Player (kvp.Key.UserIdentifier);
    46                                 }
     46                        foreach ((PersistentPlayerData owner, List<Vector3i> claimPositions) in owners) {
     47                                Player p = PersistentContainer.Instance.Players [owner.UserIdentifier, false] ?? new Player (owner.UserIdentifier);
    4748
    4849                                bool allowed = true;
    4950                                if (_ownerFilters != null) {
    5051                                        foreach (OwnerFilter of in _ownerFilters) {
    51                                                 if (!of (p)) {
    52                                                         allowed = false;
    53                                                         break;
     52                                                if (of (p)) {
     53                                                        continue;
    5454                                                }
     55
     56                                                allowed = false;
     57                                                break;
    5558                                        }
    5659                                }
    5760
    58                                 if (allowed) {
    59                                         result.Add (p, new List<Vector3i> ());
    60                                         foreach (Vector3i v in kvp.Value) {
    61                                                 result [p].Add (v);
    62                                         }
     61                                if (!allowed) {
     62                                        continue;
     63                                }
     64
     65                                result.Add (p, new List<Vector3i> ());
     66                                foreach (Vector3i v in claimPositions) {
     67                                        result [p].Add (v);
    6368                                }
    6469                        }
  • binary-improvements2/7dtd-server-fixes/src/ModApi.cs

    r390 r391  
    11using System.Collections.Generic;
    22using AllocsFixes.PersistentData;
     3using JetBrains.Annotations;
    34using Platform.Steam;
    45
    56namespace AllocsFixes {
    6         public class API : IModApi {
     7        [UsedImplicitly]
     8        public class ModApi : IModApi {
    79                public void InitMod (Mod _modInstance) {
    810                        ModEvents.GameStartDone.RegisterHandler (GameAwake);
    9                         ModEvents.GameShutdown.RegisterHandler (GameShutdown);
    1011                        ModEvents.SavePlayerData.RegisterHandler (SavePlayerData);
    1112                        ModEvents.PlayerSpawning.RegisterHandler (PlayerSpawning);
     
    1516                }
    1617
    17                 public void GameAwake () {
     18                private void GameAwake () {
    1819                        PersistentContainer.Load ();
    1920                }
    2021
    21                 public void GameShutdown () {
    22                 }
    23 
    24                 public void SavePlayerData (ClientInfo _cInfo, PlayerDataFile _playerDataFile) {
     22                private void SavePlayerData (ClientInfo _cInfo, PlayerDataFile _playerDataFile) {
    2523                        PersistentContainer.Instance.Players [_cInfo.InternalId, true].Update (_playerDataFile);
    2624                }
    2725
    28                 public void PlayerSpawning (ClientInfo _cInfo, int _chunkViewDim, PlayerProfile _playerProfile) {
     26                private void PlayerSpawning (ClientInfo _cInfo, int _chunkViewDim, PlayerProfile _playerProfile) {
    2927                        string owner = null;
    3028                        if (_cInfo.PlatformId is UserIdentifierSteam identifierSteam) {
     
    4240                }
    4341
    44                 public void PlayerDisconnected (ClientInfo _cInfo, bool _bShutdown) {
     42                private void PlayerDisconnected (ClientInfo _cInfo, bool _bShutdown) {
    4543                        Player p = PersistentContainer.Instance.Players [_cInfo.InternalId, false];
    4644                        if (p != null) {
     
    5351                }
    5452
    55                 public void PlayerSpawned (ClientInfo _cInfo, RespawnType _respawnReason, Vector3i _spawnPos) {
     53                private void PlayerSpawned (ClientInfo _cInfo, RespawnType _respawnReason, Vector3i _spawnPos) {
    5654                        PersistentContainer.Instance.Players [_cInfo.InternalId, true].SetOnline (_cInfo);
    5755                        PersistentContainer.Instance.Save ();
    5856                }
    5957
    60                 private const string ANSWER =
     58                private const string testChatAnswer =
    6159                        "     [ff0000]I[-] [ff7f00]W[-][ffff00]A[-][80ff00]S[-] [00ffff]H[-][0080ff]E[-][0000ff]R[-][8b00ff]E[-]";
    6260
    63                 public bool ChatMessage (ClientInfo _cInfo, EChatType _type, int _senderId, string _msg, string _mainName,
     61                private bool ChatMessage (ClientInfo _cInfo, EChatType _type, int _senderId, string _msg, string _mainName,
    6462                        bool _localizeMain, List<int> _recipientEntityIds) {
    6563                        if (string.IsNullOrEmpty (_msg) || !_msg.EqualsCaseInsensitive ("/alloc")) {
     
    6967                        if (_cInfo != null) {
    7068                                Log.Out ("Sent chat hook reply to {0}", _cInfo.InternalId);
    71                                 _cInfo.SendPackage (NetPackageManager.GetPackage<NetPackageChat> ().Setup (EChatType.Whisper, -1, ANSWER, "", false, null));
     69                                _cInfo.SendPackage (NetPackageManager.GetPackage<NetPackageChat> ().Setup (EChatType.Whisper, -1, testChatAnswer, "", false, null));
    7270                        } else {
    7371                                Log.Error ("ChatHookExample: Argument _cInfo null on message: {0}", _msg);
  • binary-improvements2/7dtd-server-fixes/src/PersistentData/Attributes.cs

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

    r369 r391  
    1010                [OptionalField] private Attributes attributes;
    1111
    12                 public Players Players {
    13                         get {
    14                                 if (players == null) {
    15                                         players = new Players ();
    16                                 }
     12                public Players Players => players ?? (players = new Players ());
    1713
    18                                 return players;
    19                         }
    20                 }
    21 
    22                 public Attributes Attributes {
    23                         get {
    24                                 if (attributes == null) {
    25                                         attributes = new Attributes ();
    26                                 }
    27 
    28                                 return attributes;
    29                         }
    30                 }
     14                public Attributes Attributes => attributes ?? (attributes = new Attributes ());
    3115
    3216                private static PersistentContainer instance;
    3317
    34                 public static PersistentContainer Instance {
    35                         get {
    36                                 if (instance == null) {
    37                                         instance = new PersistentContainer ();
    38                                 }
    39 
    40                                 return instance;
    41                         }
    42                 }
     18                public static PersistentContainer Instance => instance ?? (instance = new PersistentContainer ());
    4319
    4420                private PersistentContainer () {
     
    5834
    5935                        try {
    60                                 PersistentContainer obj;
    6136                                Stream stream = File.Open (GameIO.GetSaveGameDir () + "/AllocsPeristentData.bin", FileMode.Open);
    6237                                BinaryFormatter bFormatter = new BinaryFormatter ();
    63                                 obj = (PersistentContainer) bFormatter.Deserialize (stream);
     38                                PersistentContainer obj = (PersistentContainer) bFormatter.Deserialize (stream);
    6439                                stream.Close ();
    6540                                instance = obj;
  • binary-improvements2/7dtd-server-fixes/src/PersistentData/Players.cs

    r383 r391  
    4141
    4242                        if (int.TryParse (_nameOrId, out int entityId)) {
    43                                 foreach (KeyValuePair<PlatformUserIdentifierAbs, Player> kvp in Dict) {
    44                                         if (kvp.Value.IsOnline && kvp.Value.EntityID == entityId) {
    45                                                 return kvp.Key;
     43                                foreach ((PlatformUserIdentifierAbs iUserId, Player player) in Dict) {
     44                                        if (player.IsOnline && player.EntityID == entityId) {
     45                                                return iUserId;
    4646                                        }
    4747                                }
    4848                        }
    4949
    50                         foreach (KeyValuePair<PlatformUserIdentifierAbs, Player> kvp in Dict) {
    51                                 string name = kvp.Value.Name;
     50                        foreach ((PlatformUserIdentifierAbs iUserId, Player player) in Dict) {
     51                                string name = player.Name;
    5252                                if (_ignoreColorCodes) {
    5353                                        name = Regex.Replace (name, "\\[[0-9a-fA-F]{6}\\]", "");
    5454                                }
    5555
    56                                 if (kvp.Value.IsOnline && name.EqualsCaseInsensitive (_nameOrId)) {
    57                                         return kvp.Key;
     56                                if (player.IsOnline && name.EqualsCaseInsensitive (_nameOrId)) {
     57                                        return iUserId;
    5858                                }
    5959                        }
Note: See TracChangeset for help on using the changeset viewer.