mirror of
https://github.com/sp-tarkov/assembly-tool.git
synced 2025-02-13 01:30:45 -05:00
Fix a bunch of compiler warnings
This commit is contained in:
parent
c4d81ce4ba
commit
3de6be24ce
@ -818,7 +818,7 @@ public partial class ReCodeItForm : Form
|
||||
AutoMapperFPBox.Items.Add(fp);
|
||||
}
|
||||
|
||||
foreach (var mp in settings.MethodParamaterBlackList)
|
||||
foreach (var mp in settings.MethodParameterBlackList)
|
||||
{
|
||||
AutoMapperMethodBox.Items.Add(mp);
|
||||
}
|
||||
@ -908,7 +908,7 @@ public partial class ReCodeItForm : Form
|
||||
{
|
||||
AutoMapperMethodBox.Items.Add(AutoMapperMethodTextBox.Text);
|
||||
|
||||
AppSettings.AutoMapper.MethodParamaterBlackList.Add(AutoMapperMethodTextBox.Text);
|
||||
AppSettings.AutoMapper.MethodParameterBlackList.Add(AutoMapperMethodTextBox.Text);
|
||||
|
||||
DataProvider.SaveAppSettings();
|
||||
AutoMapperMethodTextBox.Clear();
|
||||
@ -919,7 +919,7 @@ public partial class ReCodeItForm : Form
|
||||
{
|
||||
if (AutoMapperMethodBox.SelectedItem != null)
|
||||
{
|
||||
AppSettings.AutoMapper.MethodParamaterBlackList
|
||||
AppSettings.AutoMapper.MethodParameterBlackList
|
||||
.RemoveAt(AutoMapperMethodBox.SelectedIndex);
|
||||
|
||||
AutoMapperMethodBox.Items
|
||||
|
@ -225,8 +225,8 @@ public class DumperClass
|
||||
// as of 01/11/24 firstMethod returns true, so its now only 2 instructions, was 55 (this may change, BSG have byppassed their own SSL checks atm)
|
||||
if (firstMethod?.Body.Instructions.Count != 2 || secondMethod?.Body.Instructions.Count != 14)
|
||||
{
|
||||
Logger.Log($"Instruction count has changed, method with 'certificate' as a param - before: 51, now: {firstMethod.Body.Instructions.Count}, " +
|
||||
$"method with 'certificateData' as a param - before: 14, now: {secondMethod.Body.Instructions.Count}", ConsoleColor.Red);
|
||||
Logger.Log($"Instruction count has changed, method with 'certificate' as a param - before: 51, now: {firstMethod?.Body.Instructions.Count}, " +
|
||||
$"method with 'certificateData' as a param - before: 14, now: {secondMethod?.Body.Instructions.Count}", ConsoleColor.Red);
|
||||
}
|
||||
|
||||
if (methods.Count() != 2)
|
||||
@ -266,41 +266,41 @@ public class DumperClass
|
||||
|
||||
if (method == null || method.Body.Instructions.Count != 23)
|
||||
{
|
||||
Logger.Log($"RunValidation Instructions count has changed from 23 to {method.Body.Instructions.Count}");
|
||||
Logger.Log($"RunValidation Instructions count has changed from 23 to {method?.Body.Instructions.Count}");
|
||||
}
|
||||
|
||||
if (method2 == null || method2.Body.Instructions.Count != 171)
|
||||
{
|
||||
Logger.Log($"RunValidation's MoveNext Instructions count has changed from 171 to {method2.Body.Instructions.Count}");
|
||||
Logger.Log($"RunValidation's MoveNext Instructions count has changed from 171 to {method2?.Body.Instructions.Count}");
|
||||
}
|
||||
|
||||
// Clear these from the body of each method respectively
|
||||
method.Body.Instructions.Clear();
|
||||
method2.Body.Instructions.Clear();
|
||||
method2.Body.Variables.Clear();
|
||||
method2.Body.ExceptionHandlers.Clear();
|
||||
method?.Body.Instructions.Clear();
|
||||
method2?.Body.Instructions.Clear();
|
||||
method2?.Body.Variables.Clear();
|
||||
method2?.Body.ExceptionHandlers.Clear();
|
||||
|
||||
var liList = DumpyILHelper.GetRunValidationInstructions(method, _gameModule, _msModule, _gameImporter);
|
||||
var liList2 = DumpyILHelper.GetRunValidationInstructionsMoveNext(method2, _gameModule, _msModule, _gameImporter);
|
||||
var liList = DumpyILHelper.GetRunValidationInstructions(method!, _gameModule!, _msModule!, _gameImporter);
|
||||
var liList2 = DumpyILHelper.GetRunValidationInstructionsMoveNext(method2!, _gameModule!, _msModule!, _gameImporter);
|
||||
|
||||
foreach (var instruction in liList)
|
||||
{
|
||||
method.Body.Instructions.Add(instruction);
|
||||
method?.Body.Instructions.Add(instruction);
|
||||
}
|
||||
|
||||
foreach (var instruction in liList2)
|
||||
{
|
||||
method2.Body.Instructions.Add(instruction);
|
||||
method2?.Body.Instructions.Add(instruction);
|
||||
}
|
||||
|
||||
var ins = Instruction.Create(OpCodes.Leave_S, method2.Body.Instructions[14]); // Create instruction to jump to index 14
|
||||
var ins1 = Instruction.Create(OpCodes.Leave_S, method2.Body.Instructions.Last()); // Create instruction to jump to last index
|
||||
var ins = Instruction.Create(OpCodes.Leave_S, method2?.Body.Instructions[14]); // Create instruction to jump to index 14
|
||||
var ins1 = Instruction.Create(OpCodes.Leave_S, method2?.Body.Instructions.Last()); // Create instruction to jump to last index
|
||||
|
||||
method2.Body.Instructions.InsertAfter(method2.Body.Instructions[5], ins); // Instruction to jump from 5 to 14
|
||||
method2.Body.Instructions.InsertAfter(method2.Body.Instructions[14], ins1); // Instruction to jump from 14 to last index
|
||||
method2?.Body.Instructions.InsertAfter(method2.Body.Instructions[5], ins); // Instruction to jump from 5 to 14
|
||||
method2?.Body.Instructions.InsertAfter(method2.Body.Instructions[14], ins1); // Instruction to jump from 14 to last index
|
||||
|
||||
// Add exception handler to method body
|
||||
method2.Body.ExceptionHandlers.Add(DumpyILHelper.GetExceptionHandler(method2, _gameImporter, _msModule));
|
||||
method2?.Body.ExceptionHandlers.Add(DumpyILHelper.GetExceptionHandler(method2, _gameImporter, _msModule!));
|
||||
}
|
||||
|
||||
private void SetDumpyTaskCode(TypeDef type)
|
||||
@ -312,13 +312,13 @@ public class DumperClass
|
||||
Logger.Log($"MainMenu is null or isnt 62 instructions, SOMETHING HAD CHANGED!", ConsoleColor.Red);
|
||||
}
|
||||
|
||||
var liList = DumpyILHelper.GetDumpyTaskInstructions(method,_dumpModule, _gameImporter);
|
||||
var liList = DumpyILHelper.GetDumpyTaskInstructions(method!,_dumpModule!, _gameImporter);
|
||||
|
||||
var index = method.Body.Instructions.First(x => x.OpCode == OpCodes.Ret);
|
||||
var index = method?.Body.Instructions.First(x => x.OpCode == OpCodes.Ret);
|
||||
|
||||
foreach (var item in liList)
|
||||
{
|
||||
method.Body.Instructions.InsertBefore(index, item);
|
||||
method?.Body.Instructions.InsertBefore(index!, item);
|
||||
}
|
||||
}
|
||||
|
||||
@ -335,19 +335,19 @@ public class DumperClass
|
||||
|
||||
if (method == null || method.Body.Instructions.Count != 152)
|
||||
{
|
||||
Logger.Log($"EnsureConsistency Instructions count has changed from 152 to {method.Body.Instructions.Count}", ConsoleColor.Red);
|
||||
Logger.Log($"EnsureConsistency Instructions count has changed from 152 to {method?.Body.Instructions.Count}", ConsoleColor.Red);
|
||||
}
|
||||
|
||||
// clear these from the method body
|
||||
method.Body.Instructions.Clear();
|
||||
method.Body.Variables.Clear();
|
||||
method.Body.ExceptionHandlers.Clear();
|
||||
method?.Body.Instructions.Clear();
|
||||
method?.Body.Variables.Clear();
|
||||
method?.Body.ExceptionHandlers.Clear();
|
||||
|
||||
var liList = DumpyILHelper.GetEnsureConsistencyInstructions(method, _checkerModule, _msModule, _checkImporter);
|
||||
var liList = DumpyILHelper.GetEnsureConsistencyInstructions(method!, _checkerModule!, _msModule!, _checkImporter);
|
||||
|
||||
foreach (var li in liList)
|
||||
{
|
||||
method.Body.Instructions.Add(li);
|
||||
method?.Body.Instructions.Add(li);
|
||||
}
|
||||
}
|
||||
|
||||
@ -364,19 +364,19 @@ public class DumperClass
|
||||
|
||||
if (method == null || method.Body.Instructions.Count != 101)
|
||||
{
|
||||
Logger.Log($"EnsureConsistencySingle Instructions count has changed from 101 to {method.Body.Instructions.Count}", ConsoleColor.Red);
|
||||
Logger.Log($"EnsureConsistencySingle Instructions count has changed from 101 to {method?.Body.Instructions.Count}", ConsoleColor.Red);
|
||||
}
|
||||
|
||||
// clear these from the method body
|
||||
method.Body.Instructions.Clear();
|
||||
method.Body.Variables.Clear();
|
||||
method.Body.ExceptionHandlers.Clear();
|
||||
method?.Body.Instructions.Clear();
|
||||
method?.Body.Variables.Clear();
|
||||
method?.Body.ExceptionHandlers.Clear();
|
||||
|
||||
var liList = DumpyILHelper.GetEnsureConsistencyInstructions(method, _checkerModule, _msModule, _checkImporter);
|
||||
var liList = DumpyILHelper.GetEnsureConsistencyInstructions(method!, _checkerModule!, _msModule!, _checkImporter);
|
||||
|
||||
foreach (var li in liList)
|
||||
{
|
||||
method.Body.Instructions.Add(li);
|
||||
method?.Body.Instructions.Add(li);
|
||||
}
|
||||
}
|
||||
}
|
@ -7,9 +7,9 @@ namespace ReCodeIt.Models;
|
||||
/// </summary>
|
||||
public class Settings
|
||||
{
|
||||
private AppSettings _appSettings;
|
||||
private AppSettings? _appSettings;
|
||||
|
||||
public AppSettings AppSettings
|
||||
public AppSettings? AppSettings
|
||||
{
|
||||
get { return _appSettings; }
|
||||
set
|
||||
@ -19,9 +19,9 @@ public class Settings
|
||||
}
|
||||
}
|
||||
|
||||
private RemapperSettings _remapper;
|
||||
private RemapperSettings? _remapper;
|
||||
|
||||
public RemapperSettings Remapper
|
||||
public RemapperSettings? Remapper
|
||||
{
|
||||
get { return _remapper; }
|
||||
set
|
||||
@ -31,9 +31,9 @@ public class Settings
|
||||
}
|
||||
}
|
||||
|
||||
private AutoMapperSettings _autoMapper;
|
||||
private AutoMapperSettings? _autoMapper;
|
||||
|
||||
public AutoMapperSettings AutoMapper
|
||||
public AutoMapperSettings? AutoMapper
|
||||
{
|
||||
get { return _autoMapper; }
|
||||
set
|
||||
@ -89,7 +89,7 @@ public class AppSettings
|
||||
/// </summary>
|
||||
public class RemapperSettings
|
||||
{
|
||||
private string _assemblyPath;
|
||||
private string _assemblyPath = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// Path to the assembly we want to remap
|
||||
@ -104,7 +104,7 @@ public class RemapperSettings
|
||||
}
|
||||
}
|
||||
|
||||
private string _outputPath;
|
||||
private string _outputPath = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// Path including the filename and extension we want to write the changes to
|
||||
@ -119,7 +119,7 @@ public class RemapperSettings
|
||||
}
|
||||
}
|
||||
|
||||
private string _mappingPath;
|
||||
private string _mappingPath = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// Path to the mapping file
|
||||
@ -149,9 +149,9 @@ public class RemapperSettings
|
||||
}
|
||||
}
|
||||
|
||||
private MappingSettings _mappingSettings;
|
||||
private MappingSettings? _mappingSettings;
|
||||
|
||||
public MappingSettings MappingSettings
|
||||
public MappingSettings? MappingSettings
|
||||
{
|
||||
get { return _mappingSettings; }
|
||||
set
|
||||
@ -172,7 +172,7 @@ public class RemapperSettings
|
||||
/// </summary>
|
||||
public class AutoMapperSettings
|
||||
{
|
||||
private string _assemblyPath;
|
||||
private string _assemblyPath = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// Path to the assembly we want to remap
|
||||
@ -187,7 +187,7 @@ public class AutoMapperSettings
|
||||
}
|
||||
}
|
||||
|
||||
private string _outputPath;
|
||||
private string _outputPath = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// Path including the filename and extension we want to write the changes to
|
||||
@ -248,9 +248,9 @@ public class AutoMapperSettings
|
||||
}
|
||||
}
|
||||
|
||||
private MappingSettings _mappingSettings;
|
||||
private MappingSettings? _mappingSettings;
|
||||
|
||||
public MappingSettings MappingSettings
|
||||
public MappingSettings? MappingSettings
|
||||
{
|
||||
get { return _mappingSettings; }
|
||||
set
|
||||
@ -260,7 +260,7 @@ public class AutoMapperSettings
|
||||
}
|
||||
}
|
||||
|
||||
private List<string> _typesToIgnore;
|
||||
private List<string> _typesToIgnore = [];
|
||||
|
||||
/// <summary>
|
||||
/// Any member name you want to ignore while iterating through the assembly
|
||||
@ -275,7 +275,7 @@ public class AutoMapperSettings
|
||||
}
|
||||
}
|
||||
|
||||
private List<string> _tokensToMatch;
|
||||
private List<string> _tokensToMatch = [];
|
||||
|
||||
/// <summary>
|
||||
/// The auto mapper will look for these tokens in class names and prioritize those
|
||||
@ -290,7 +290,7 @@ public class AutoMapperSettings
|
||||
}
|
||||
}
|
||||
|
||||
private List<string> _propertyFieldBlacklist;
|
||||
private List<string> _propertyFieldBlacklist = [];
|
||||
|
||||
/// <summary>
|
||||
/// Property or fields names to ignore in the automap, these are case sanitized so case does not matter
|
||||
@ -305,17 +305,17 @@ public class AutoMapperSettings
|
||||
}
|
||||
}
|
||||
|
||||
private List<string> _methodParamaterBlackList;
|
||||
private List<string> _methodParameterBlackList = [];
|
||||
|
||||
/// <summary>
|
||||
/// method parameter names to ignore in the automap, these are case sanitized so case does not matter
|
||||
/// </summary>
|
||||
public List<string> MethodParamaterBlackList
|
||||
public List<string> MethodParameterBlackList
|
||||
{
|
||||
get { return _methodParamaterBlackList; }
|
||||
get { return _methodParameterBlackList; }
|
||||
set
|
||||
{
|
||||
_methodParamaterBlackList = value;
|
||||
_methodParameterBlackList = value;
|
||||
Save();
|
||||
}
|
||||
}
|
||||
|
@ -1,71 +0,0 @@
|
||||
namespace ReCodeIt.Models;
|
||||
|
||||
public class CrossCompilerProjectModel
|
||||
{
|
||||
#region REQUIRED_ON_CREATION
|
||||
|
||||
/// <summary>
|
||||
/// The path of the original assembly
|
||||
///
|
||||
/// (Required on creation)
|
||||
/// </summary>
|
||||
public string OriginalAssemblyPath { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// The path to the working directory vs project
|
||||
///
|
||||
/// (Required on creation)
|
||||
/// </summary>
|
||||
public string VisualStudioSolutionPath { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// The path to the dependency folder for the active solution. Also where the remapped dll is
|
||||
/// built to and replaced
|
||||
///
|
||||
/// (Required on creation)
|
||||
/// </summary>
|
||||
public string VisualStudioDependencyPath { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// This is where the final dll is built to
|
||||
///
|
||||
/// (Required on creation)
|
||||
/// </summary>
|
||||
public string BuildDirectory { get; set; }
|
||||
|
||||
#endregion REQUIRED_ON_CREATION
|
||||
|
||||
/// <summary>
|
||||
/// The path to the working directory vs project
|
||||
/// </summary>
|
||||
public string VisualStudioSolutionDirectoryPath => Path.GetDirectoryName(VisualStudioSolutionPath)!;
|
||||
|
||||
public string ProjectDllName => SolutionName.Replace(".sln", ".dll");
|
||||
|
||||
public string OriginalAssemblyDllName => Path.GetFileName(OriginalAssemblyPath);
|
||||
|
||||
/// <summary>
|
||||
/// Name of the solution
|
||||
/// </summary>
|
||||
public string SolutionName => Path.GetFileName(VisualStudioSolutionPath);
|
||||
|
||||
/// <summary>
|
||||
/// Remapped output hash
|
||||
/// </summary>
|
||||
public string OriginalAssemblyHash { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Remapped output hash
|
||||
/// </summary>
|
||||
public string RemappedAssemblyHash { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Key: Remapped name, value: old name
|
||||
/// </summary>
|
||||
public Dictionary<string, string> ChangedTypes { get; set; } = [];
|
||||
|
||||
/// <summary>
|
||||
/// Remap models used on this project
|
||||
/// </summary>
|
||||
public List<RemapModel> RemapModels { get; set; } = [];
|
||||
}
|
@ -2,8 +2,8 @@
|
||||
|
||||
public class ItemTemplateModel
|
||||
{
|
||||
public string _id;
|
||||
public string _name;
|
||||
public string _parent;
|
||||
public string _type;
|
||||
public string? _id;
|
||||
public string? _name;
|
||||
public string? _parent;
|
||||
public string? _type;
|
||||
}
|
@ -27,7 +27,7 @@ public class RemapModel
|
||||
/// This is the final chosen type we will use to remap
|
||||
/// </summary>
|
||||
[JsonIgnore]
|
||||
public TypeDef TypePrimeCandidate { get; set; }
|
||||
public TypeDef? TypePrimeCandidate { get; set; }
|
||||
|
||||
public string NewTypeName { get; set; } = string.Empty;
|
||||
|
||||
|
@ -60,7 +60,6 @@ public static class Deobfuscator
|
||||
: $"--un-name \"!^<>[a-z0-9]$&!^<>[a-z0-9]__.*$&![A-Z][A-Z]\\$<>.*$&^[a-zA-Z_<{{$][a-zA-Z_0-9<>{{}}$.`-]*$\" \"{assemblyPath}\" --strtyp delegate --strtok \"{token}\"";
|
||||
|
||||
var executablePath = Path.Combine(AppContext.BaseDirectory, "de4dot", "de4dot-x64.exe");
|
||||
var two = 2;
|
||||
|
||||
var process = Process.Start(executablePath, cmd);
|
||||
process.WaitForExit();
|
||||
|
@ -5,12 +5,14 @@ namespace ReCodeIt.ReMapper;
|
||||
|
||||
internal static class SPTPublicizer
|
||||
{
|
||||
private static ModuleDefMD MainModule;
|
||||
private static ModuleDefMD? MainModule;
|
||||
|
||||
public static void PublicizeClasses(ModuleDefMD definition, bool isLauncher = false)
|
||||
{
|
||||
var types = definition.GetTypes();
|
||||
|
||||
MainModule = definition;
|
||||
|
||||
foreach (var type in types)
|
||||
{
|
||||
if (type.IsNested) continue; // Nested types are handled when publicizing the parent type
|
||||
@ -124,7 +126,7 @@ internal static class SPTPublicizer
|
||||
if (type.BaseType != null && !type.BaseType.Name.Contains("Object"))
|
||||
{
|
||||
var baseTypeDefinition = MainModule?.Find(type.BaseType).ResolveTypeDef();
|
||||
var baseTypeInterfaces = GetFlattenedInterfacesRecursive(baseTypeDefinition);
|
||||
var baseTypeInterfaces = GetFlattenedInterfacesRecursive(baseTypeDefinition!);
|
||||
|
||||
if (baseTypeInterfaces.Any())
|
||||
{
|
||||
|
@ -26,7 +26,7 @@ public class ReCodeItRemapper
|
||||
|
||||
private static readonly Stopwatch Stopwatch = new();
|
||||
|
||||
private RemapperSettings Settings => DataProvider.Settings.Remapper;
|
||||
private RemapperSettings? Settings => DataProvider.Settings?.Remapper;
|
||||
|
||||
private string OutPath { get; set; } = string.Empty;
|
||||
|
||||
@ -71,7 +71,7 @@ public class ReCodeItRemapper
|
||||
cleanedName = $"{cleanedName}-cleaned.dll";
|
||||
|
||||
var newPath = Path.GetDirectoryName(assemblyPath);
|
||||
newPath = Path.Combine(newPath, cleanedName);
|
||||
newPath = Path.Combine(newPath!, cleanedName);
|
||||
|
||||
Console.WriteLine($"Cleaning assembly: {newPath}");
|
||||
|
||||
@ -119,7 +119,7 @@ public class ReCodeItRemapper
|
||||
Task.WaitAll(renameTasks.ToArray());
|
||||
|
||||
// Don't publicize and unseal until after the remapping, so we can use those as search parameters
|
||||
if (Settings.MappingSettings.Publicize)
|
||||
if (Settings!.MappingSettings!.Publicize)
|
||||
{
|
||||
Logger.Log("Publicizing classes...", ConsoleColor.Yellow);
|
||||
|
||||
@ -160,7 +160,7 @@ public class ReCodeItRemapper
|
||||
/// <param name="mapping">Mapping to score</param>
|
||||
private void ScoreMapping(RemapModel mapping, IEnumerable<TypeDef> types)
|
||||
{
|
||||
var tokens = DataProvider.Settings.AutoMapper.TokensToMatch;
|
||||
var tokens = DataProvider.Settings?.AutoMapper?.TokensToMatch;
|
||||
|
||||
if (mapping.UseForceRename)
|
||||
{
|
||||
@ -171,7 +171,7 @@ public class ReCodeItRemapper
|
||||
// Filter down nested objects
|
||||
if (mapping.SearchParams.IsNested is false or null)
|
||||
{
|
||||
types = types.Where(type => tokens.Any(token => type.Name.StartsWith(token)));
|
||||
types = types.Where(type => tokens!.Any(token => type.Name.StartsWith(token)));
|
||||
}
|
||||
|
||||
// Run through a series of filters and report an error if all types are filtered out.
|
||||
@ -477,13 +477,13 @@ public class ReCodeItRemapper
|
||||
.GetField("TypeTable")
|
||||
.GetValue(templateMappingClass);
|
||||
|
||||
BuildAssociationFromTable(typeTable, "ItemClass");
|
||||
BuildAssociationFromTable(typeTable!, "ItemClass");
|
||||
|
||||
var templateTypeTable = (Dictionary<string, Type>)templateMappingClass
|
||||
.GetField("TemplateTypeTable")
|
||||
.GetValue(templateMappingClass);
|
||||
|
||||
BuildAssociationFromTable(templateTypeTable, "TemplateClass");
|
||||
BuildAssociationFromTable(templateTypeTable!, "TemplateClass");
|
||||
}
|
||||
|
||||
private void BuildAssociationFromTable(Dictionary<string, Type> table, string extName)
|
||||
@ -558,18 +558,18 @@ public class ReCodeItRemapper
|
||||
/// </summary>
|
||||
private void WriteAssembly()
|
||||
{
|
||||
var moduleName = Module.Name;
|
||||
var moduleName = Module?.Name;
|
||||
|
||||
var dllName = "-cleaned-remapped.dll";
|
||||
if (Settings.MappingSettings.Publicize)
|
||||
if (Settings!.MappingSettings!.Publicize)
|
||||
{
|
||||
dllName = "-cleaned-remapped-publicized.dll";
|
||||
}
|
||||
OutPath = Path.Combine(OutPath, moduleName.Replace(".dll", dllName));
|
||||
OutPath = Path.Combine(OutPath, moduleName?.Replace(".dll", dllName));
|
||||
|
||||
try
|
||||
{
|
||||
Module.Write(OutPath);
|
||||
Module!.Write(OutPath);
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
@ -581,7 +581,7 @@ public class ReCodeItRemapper
|
||||
Hollow();
|
||||
|
||||
var hollowedDir = Path.GetDirectoryName(OutPath);
|
||||
var hollowedPath = Path.Combine(hollowedDir, "Assembly-CSharp-hollowed.dll");
|
||||
var hollowedPath = Path.Combine(hollowedDir!, "Assembly-CSharp-hollowed.dll");
|
||||
|
||||
try
|
||||
{
|
||||
@ -595,9 +595,9 @@ public class ReCodeItRemapper
|
||||
|
||||
DisplayEndBanner(hollowedPath);
|
||||
|
||||
if (DataProvider.Settings.Remapper.MappingPath != string.Empty)
|
||||
if (DataProvider.Settings?.Remapper?.MappingPath != string.Empty)
|
||||
{
|
||||
DataProvider.UpdateMapping(DataProvider.Settings.Remapper.MappingPath.Replace("mappings.", "mappings-new."), _remaps);
|
||||
DataProvider.UpdateMapping(DataProvider.Settings!.Remapper!.MappingPath.Replace("mappings.", "mappings-new."), _remaps);
|
||||
}
|
||||
|
||||
Stopwatch.Reset();
|
||||
@ -612,7 +612,7 @@ public class ReCodeItRemapper
|
||||
/// </summary>
|
||||
private void Hollow()
|
||||
{
|
||||
foreach (var type in Module.GetTypes())
|
||||
foreach (var type in Module!.GetTypes())
|
||||
{
|
||||
foreach (var method in type.Methods.Where(m => m.HasBody))
|
||||
{
|
||||
|
@ -6,7 +6,7 @@ namespace ReCodeIt.ReMapper;
|
||||
|
||||
internal static class RenameHelper
|
||||
{
|
||||
private static List<string> TokensToMatch => DataProvider.Settings.AutoMapper.TokensToMatch;
|
||||
private static List<string>? TokensToMatch => DataProvider.Settings?.AutoMapper?.TokensToMatch;
|
||||
|
||||
/// <summary>
|
||||
/// Only used by the manual remapper, should probably be removed
|
||||
@ -17,9 +17,9 @@ internal static class RenameHelper
|
||||
public static void RenameAll(IEnumerable<TypeDef> types, RemapModel remap)
|
||||
{
|
||||
// Rename all fields and properties first
|
||||
if (DataProvider.Settings.Remapper.MappingSettings.RenameFields)
|
||||
if (DataProvider.Settings!.Remapper!.MappingSettings!.RenameFields)
|
||||
{
|
||||
if (remap.TypePrimeCandidate == null)
|
||||
if (remap.TypePrimeCandidate is null)
|
||||
{
|
||||
Logger.Log($"Unable to rename {remap.NewTypeName} as TypePrimeCandidate value is null/empty, skipping", ConsoleColor.Red);
|
||||
return;
|
||||
@ -34,7 +34,7 @@ internal static class RenameHelper
|
||||
if (DataProvider.Settings.Remapper.MappingSettings.RenameProperties)
|
||||
{
|
||||
RenameAllProperties(
|
||||
remap.TypePrimeCandidate.Name.String,
|
||||
remap!.TypePrimeCandidate!.Name.String,
|
||||
remap.NewTypeName,
|
||||
types);
|
||||
}
|
||||
@ -42,7 +42,7 @@ internal static class RenameHelper
|
||||
FixMethods(types, remap);
|
||||
RenameType(types, remap);
|
||||
|
||||
//Logger.Log($"{remap.TypePrimeCandidate.Name.String} Renamed.", ConsoleColor.Green);
|
||||
Logger.Log($"{remap!.TypePrimeCandidate!.Name.String} Renamed.", ConsoleColor.Green);
|
||||
}
|
||||
|
||||
private static void FixMethods(
|
||||
@ -52,7 +52,7 @@ internal static class RenameHelper
|
||||
foreach (var type in typesToCheck)
|
||||
{
|
||||
var methods = type.Methods
|
||||
.Where(method => method.Name.StartsWith(remap.TypePrimeCandidate.Name.String));
|
||||
.Where(method => method.Name.StartsWith(remap!.TypePrimeCandidate!.Name.String));
|
||||
|
||||
foreach (var method in methods)
|
||||
{
|
||||
@ -68,8 +68,7 @@ internal static class RenameHelper
|
||||
/// <param name="oldTypeName"></param>
|
||||
/// <param name="newTypeName"></param>
|
||||
/// <param name="typesToCheck"></param>
|
||||
/// <returns></returns>
|
||||
public static IEnumerable<TypeDef> RenameAllFields(
|
||||
private static void RenameAllFields(
|
||||
|
||||
string oldTypeName,
|
||||
string newTypeName,
|
||||
@ -78,7 +77,7 @@ internal static class RenameHelper
|
||||
foreach (var type in typesToCheck)
|
||||
{
|
||||
var fields = type.Fields
|
||||
.Where(field => field.Name.IsFieldOrPropNameInList(TokensToMatch));
|
||||
.Where(field => field.Name.IsFieldOrPropNameInList(TokensToMatch!));
|
||||
|
||||
if (!fields.Any()) { continue; }
|
||||
|
||||
@ -103,8 +102,6 @@ internal static class RenameHelper
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return typesToCheck;
|
||||
}
|
||||
|
||||
private static void UpdateAllTypeFieldMemberRefs(IEnumerable<TypeDef> typesToCheck, FieldDef newDef, string oldName)
|
||||
@ -139,7 +136,7 @@ internal static class RenameHelper
|
||||
/// <param name="oldTypeName"></param>
|
||||
/// <param name="newTypeName"></param>
|
||||
/// <param name="typesToCheck"></param>
|
||||
public static void RenameAllProperties(
|
||||
private static void RenameAllProperties(
|
||||
string oldTypeName,
|
||||
string newTypeName,
|
||||
IEnumerable<TypeDef> typesToCheck)
|
||||
@ -147,7 +144,7 @@ internal static class RenameHelper
|
||||
foreach (var type in typesToCheck)
|
||||
{
|
||||
var properties = type.Properties
|
||||
.Where(prop => prop.Name.IsFieldOrPropNameInList(TokensToMatch));
|
||||
.Where(prop => prop.Name.IsFieldOrPropNameInList(TokensToMatch!));
|
||||
|
||||
if (!properties.Any()) { continue; }
|
||||
|
||||
@ -187,10 +184,10 @@ internal static class RenameHelper
|
||||
{
|
||||
if (type.HasNestedTypes)
|
||||
{
|
||||
RenameType(type.NestedTypes, remap);
|
||||
RenameType(type.NestedTypes, remap!);
|
||||
}
|
||||
|
||||
if (remap.TypePrimeCandidate.Name is null) { continue; }
|
||||
if (remap?.TypePrimeCandidate?.Name is null) { continue; }
|
||||
|
||||
if (remap.SearchParams.IsNested is true &&
|
||||
type.IsNested && type.Name == remap.TypePrimeCandidate.Name)
|
||||
|
@ -22,7 +22,7 @@ public static class DataProvider
|
||||
public static List<RemapModel> Remaps { get; set; } = [];
|
||||
public static Dictionary<string, ItemTemplateModel>? ItemTemplates { get; private set; }
|
||||
|
||||
public static Settings Settings { get; private set; }
|
||||
public static Settings? Settings { get; private set; }
|
||||
|
||||
public static void LoadAppSettings()
|
||||
{
|
||||
@ -91,11 +91,11 @@ public static class DataProvider
|
||||
Formatting = Formatting.Indented
|
||||
};
|
||||
|
||||
var path = Settings.Remapper.MappingPath;
|
||||
var path = Settings?.Remapper?.MappingPath;
|
||||
|
||||
var jsonText = JsonConvert.SerializeObject(Remaps, settings);
|
||||
|
||||
File.WriteAllText(path, jsonText);
|
||||
File.WriteAllText(path!, jsonText);
|
||||
Logger.Log($"Mapping File Saved To {path}");
|
||||
}
|
||||
|
||||
|
@ -128,7 +128,7 @@ public static class Logger
|
||||
}
|
||||
private class LogMessage
|
||||
{
|
||||
public object Message { get; init; }
|
||||
public object? Message { get; init; }
|
||||
public ConsoleColor Color { get; init; }
|
||||
public bool Silent { get; init; }
|
||||
public int ThreadId { get; init; }
|
||||
|
Loading…
x
Reference in New Issue
Block a user