diff --git a/Libraries/FodyWeavers/JsonExtensionData.Fody/AssemblyProcessor.cs b/Libraries/FodyWeavers/JsonExtensionData.Fody/AssemblyProcessor.cs deleted file mode 100644 index 0466eb1f..00000000 --- a/Libraries/FodyWeavers/JsonExtensionData.Fody/AssemblyProcessor.cs +++ /dev/null @@ -1,30 +0,0 @@ -using System.Linq; -using Mono.Cecil; - -namespace JsonExtensionData.Fody; - -public partial class ModuleWeaver -{ - public void ProcessAssembly() - { - foreach (var type in allClasses) - { - if (!ShouldInclude(type)) - { - continue; - } - - if (ShouldIncludeType(type)) - { - ProcessType(type); - } - } - } - - public bool ShouldIncludeType(TypeDefinition type) - { - return IncludeNamespacesRegex.Any(r => r.IsMatch(type.Namespace)); - } - - static bool ShouldInclude(TypeDefinition type) => !type.IsSealed; -} diff --git a/Libraries/FodyWeavers/JsonExtensionData.Fody/CecilExtensions.cs b/Libraries/FodyWeavers/JsonExtensionData.Fody/CecilExtensions.cs deleted file mode 100644 index f7245f36..00000000 --- a/Libraries/FodyWeavers/JsonExtensionData.Fody/CecilExtensions.cs +++ /dev/null @@ -1,36 +0,0 @@ -using System.Collections.Generic; -using System.Linq; -using Mono.Cecil; - -namespace JsonExtensionData.Fody; - -public static class CecilExtensions -{ - public static List GetAllClasses(this ModuleDefinition moduleDefinition) - { - var definitions = new List(); - //First is always module so we will skip that; - GetTypes(moduleDefinition.Types.Skip(1), definitions); - return definitions; - } - - static void GetTypes(IEnumerable typeDefinitions, List definitions) - { - foreach (var typeDefinition in typeDefinitions) - { - GetTypes(typeDefinition.NestedTypes, definitions); - - if (typeDefinition.IsInterface) - { - continue; - } - - if (typeDefinition.IsEnum) - { - continue; - } - - definitions.Add(typeDefinition); - } - } -} diff --git a/Libraries/FodyWeavers/JsonExtensionData.Fody/ConfigReader.cs b/Libraries/FodyWeavers/JsonExtensionData.Fody/ConfigReader.cs deleted file mode 100644 index 91462406..00000000 --- a/Libraries/FodyWeavers/JsonExtensionData.Fody/ConfigReader.cs +++ /dev/null @@ -1,34 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Text.RegularExpressions; - -namespace JsonExtensionData.Fody; - -public partial class ModuleWeaver -{ - public List IncludeNamespacesRegex = new(); - - public void ReadConfig() - { - ReadExcludes(); - } - - void ReadExcludes() - { - var includeNamespacesElement = Config.Element("IncludeNamespacesRegex"); - if (includeNamespacesElement != null) - { - foreach (var item in includeNamespacesElement.Value - .Split( - [ - "\r\n", - "\n" - ], - StringSplitOptions.RemoveEmptyEntries) - .NonEmpty()) - { - IncludeNamespacesRegex.Add(new Regex(item)); - } - } - } -} diff --git a/Libraries/FodyWeavers/JsonExtensionData.Fody/Extensions.cs b/Libraries/FodyWeavers/JsonExtensionData.Fody/Extensions.cs deleted file mode 100644 index 883b2bbc..00000000 --- a/Libraries/FodyWeavers/JsonExtensionData.Fody/Extensions.cs +++ /dev/null @@ -1,10 +0,0 @@ -using System.Collections.Generic; -using System.Linq; - -namespace JsonExtensionData.Fody; - -public static class Extensions -{ - public static IEnumerable NonEmpty(this IEnumerable list) => - list.Select(_ => _.Trim()).Where(_ => _ != string.Empty); -} diff --git a/Libraries/FodyWeavers/JsonExtensionData.Fody/JsonExtensionData.Fody.csproj b/Libraries/FodyWeavers/JsonExtensionData.Fody/JsonExtensionData.Fody.csproj deleted file mode 100644 index 91463433..00000000 --- a/Libraries/FodyWeavers/JsonExtensionData.Fody/JsonExtensionData.Fody.csproj +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - netstandard2.0 - - - - - diff --git a/Libraries/FodyWeavers/JsonExtensionData.Fody/JsonExtensionData.Fody.xcf b/Libraries/FodyWeavers/JsonExtensionData.Fody/JsonExtensionData.Fody.xcf deleted file mode 100644 index 6971a73b..00000000 --- a/Libraries/FodyWeavers/JsonExtensionData.Fody/JsonExtensionData.Fody.xcf +++ /dev/null @@ -1,11 +0,0 @@ - - - - - Namespaces to use for adding JsonExtensionData properties and attribute - - - diff --git a/Libraries/FodyWeavers/JsonExtensionData.Fody/ModuleWeaver.cs b/Libraries/FodyWeavers/JsonExtensionData.Fody/ModuleWeaver.cs deleted file mode 100644 index c309f377..00000000 --- a/Libraries/FodyWeavers/JsonExtensionData.Fody/ModuleWeaver.cs +++ /dev/null @@ -1,24 +0,0 @@ -using System.Collections.Generic; -using Fody; -using Mono.Cecil; - -namespace JsonExtensionData.Fody; - -public partial class ModuleWeaver : BaseModuleWeaver -{ - List allClasses; - - public override void Execute() - { - allClasses = ModuleDefinition.GetAllClasses(); - ReadConfig(); - ProcessAssembly(); - } - - public override IEnumerable GetAssembliesForScanning() - { - return []; - } - - public override bool ShouldCleanReference => true; -} diff --git a/Libraries/FodyWeavers/JsonExtensionData.Fody/TypeProcessor.cs b/Libraries/FodyWeavers/JsonExtensionData.Fody/TypeProcessor.cs deleted file mode 100644 index 28a0b52e..00000000 --- a/Libraries/FodyWeavers/JsonExtensionData.Fody/TypeProcessor.cs +++ /dev/null @@ -1,67 +0,0 @@ -using System.Collections.Generic; -using System.Linq; -using Mono.Cecil; -using Mono.Cecil.Cil; - -namespace JsonExtensionData.Fody; - -public partial class ModuleWeaver -{ - private TypeReference? _dictionaryStringObjectReference; - private MethodReference? _jsonExtensionDataAttributeReference; - private MethodReference? _jsonIgnoreAttributeReference; - public void ProcessType(TypeDefinition typeDefinition) - { - _dictionaryStringObjectReference ??= ModuleDefinition.ImportReference(typeof(Dictionary)); - if (_jsonExtensionDataAttributeReference is null) - { - var jsonConstructorReference = ModuleDefinition.AssemblyResolver - .Resolve(AssemblyNameReference.Parse("System.Text.Json")).MainModule - .GetType("System.Text.Json.Serialization.JsonExtensionDataAttribute").Methods - .First(m => m.IsConstructor && !m.HasParameters); - _jsonExtensionDataAttributeReference = ModuleDefinition.ImportReference(jsonConstructorReference); - } - if (_jsonIgnoreAttributeReference is null) - { - var jsonIgnoreConstructorReference = ModuleDefinition.AssemblyResolver - .Resolve(AssemblyNameReference.Parse("System.Text.Json")).MainModule - .GetType("System.Text.Json.Serialization.JsonIgnoreAttribute").Methods - .First(m => m.IsConstructor && !m.HasParameters); - _jsonIgnoreAttributeReference = ModuleDefinition.ImportReference(jsonIgnoreConstructorReference); - } - var propertyDefinition = new PropertyDefinition("ExtensionData", PropertyAttributes.None, _dictionaryStringObjectReference); - propertyDefinition.CustomAttributes.Add(new CustomAttribute(_jsonExtensionDataAttributeReference)); - - // Add backing field - var field = new FieldDefinition("_extensionData", - FieldAttributes.Private, - _dictionaryStringObjectReference); - field.CustomAttributes.Add(new CustomAttribute(_jsonIgnoreAttributeReference)); - typeDefinition.Fields.Add(field); - - // Add getter - var get = new MethodDefinition("get_ExtensionData", - MethodAttributes.Public | MethodAttributes.SpecialName | MethodAttributes.HideBySig, - _dictionaryStringObjectReference); - get.Body.Instructions.Add(Instruction.Create(OpCodes.Ldarg_0)); - get.Body.Instructions.Add(Instruction.Create(OpCodes.Ldfld, field)); - get.Body.Instructions.Add(Instruction.Create(OpCodes.Ret)); - propertyDefinition.GetMethod = get; - typeDefinition.Methods.Add(get); - - // Add setter - var set = new MethodDefinition("set_ExtensionData", - MethodAttributes.Public | MethodAttributes.SpecialName | MethodAttributes.HideBySig, - ModuleDefinition.TypeSystem.Void); - set.Parameters.Add(new ParameterDefinition("value", ParameterAttributes.None, _dictionaryStringObjectReference)); - - set.Body.Instructions.Add(Instruction.Create(OpCodes.Ldarg_0)); - set.Body.Instructions.Add(Instruction.Create(OpCodes.Ldarg_1)); - set.Body.Instructions.Add(Instruction.Create(OpCodes.Stfld, field)); - set.Body.Instructions.Add(Instruction.Create(OpCodes.Ret)); - - propertyDefinition.SetMethod = set; - typeDefinition.Methods.Add(set); - typeDefinition.Properties.Add(propertyDefinition); - } -} diff --git a/Libraries/SPTarkov.Server.Core/FodyWeavers.xml b/Libraries/SPTarkov.Server.Core/FodyWeavers.xml index e389f2f3..c6787ffe 100644 --- a/Libraries/SPTarkov.Server.Core/FodyWeavers.xml +++ b/Libraries/SPTarkov.Server.Core/FodyWeavers.xml @@ -1,7 +1,4 @@  - - SPTarkov\.Server\.Core\.Models.* - diff --git a/Libraries/SPTarkov.Server.Core/SPTarkov.Server.Core.csproj b/Libraries/SPTarkov.Server.Core/SPTarkov.Server.Core.csproj index a8775ae3..07a260d0 100644 --- a/Libraries/SPTarkov.Server.Core/SPTarkov.Server.Core.csproj +++ b/Libraries/SPTarkov.Server.Core/SPTarkov.Server.Core.csproj @@ -33,7 +33,6 @@ all - diff --git a/server-csharp.sln b/server-csharp.sln index 9ff3f9ea..c7d84953 100644 --- a/server-csharp.sln +++ b/server-csharp.sln @@ -30,12 +30,6 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Benchmarks", "Benchmarks\Be EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SPTarkov.Reflection", "Libraries\SPTarkov.Reflection\SPTarkov.Reflection.csproj", "{9073A593-A2F5-471E-9678-B896A7226FD4}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Fody", "Fody", "{61D0AD50-5B86-41E6-8B19-F11944AC3EE4}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "JsonExtensionData", "JsonExtensionData", "{2938742B-34FA-47F2-A50B-E0470FB1D807}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "JsonExtensionData.Fody", "Libraries\FodyWeavers\JsonExtensionData.Fody\JsonExtensionData.Fody.csproj", "{905FBA04-D73A-4A46-930B-1B0C3A7C4EB8}" -EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "JsonExtensionDataGenerator", "Tools\JsonExtensionDataGenerator\JsonExtensionDataGenerator.csproj", "{6F4670CD-6861-47A8-9A02-2B63AD73A929}" EndProject Global @@ -84,10 +78,6 @@ Global {9073A593-A2F5-471E-9678-B896A7226FD4}.Debug|Any CPU.Build.0 = Debug|Any CPU {9073A593-A2F5-471E-9678-B896A7226FD4}.Release|Any CPU.ActiveCfg = Release|Any CPU {9073A593-A2F5-471E-9678-B896A7226FD4}.Release|Any CPU.Build.0 = Release|Any CPU - {905FBA04-D73A-4A46-930B-1B0C3A7C4EB8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {905FBA04-D73A-4A46-930B-1B0C3A7C4EB8}.Debug|Any CPU.Build.0 = Debug|Any CPU - {905FBA04-D73A-4A46-930B-1B0C3A7C4EB8}.Release|Any CPU.ActiveCfg = Release|Any CPU - {905FBA04-D73A-4A46-930B-1B0C3A7C4EB8}.Release|Any CPU.Build.0 = Release|Any CPU {6F4670CD-6861-47A8-9A02-2B63AD73A929}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {6F4670CD-6861-47A8-9A02-2B63AD73A929}.Debug|Any CPU.Build.0 = Debug|Any CPU {6F4670CD-6861-47A8-9A02-2B63AD73A929}.Release|Any CPU.ActiveCfg = Release|Any CPU @@ -104,9 +94,6 @@ Global {4B973AC0-0C60-4853-9AF7-7CB69127473E} = {F084DDFD-89F3-44F9-89C3-5CA11F4CDEEF} {C24B1FEB-F8AC-434E-998D-5DA4D1687295} = {587959C2-5AFA-4B77-B327-566610F9A289} {9073A593-A2F5-471E-9678-B896A7226FD4} = {F084DDFD-89F3-44F9-89C3-5CA11F4CDEEF} - {61D0AD50-5B86-41E6-8B19-F11944AC3EE4} = {F084DDFD-89F3-44F9-89C3-5CA11F4CDEEF} - {2938742B-34FA-47F2-A50B-E0470FB1D807} = {61D0AD50-5B86-41E6-8B19-F11944AC3EE4} - {905FBA04-D73A-4A46-930B-1B0C3A7C4EB8} = {2938742B-34FA-47F2-A50B-E0470FB1D807} {6F4670CD-6861-47A8-9A02-2B63AD73A929} = {587959C2-5AFA-4B77-B327-566610F9A289} EndGlobalSection EndGlobal