diff --git a/NeosModLoader/Configuration.cs b/NeosModLoader/Configuration.cs index a11c200..727581c 100644 --- a/NeosModLoader/Configuration.cs +++ b/NeosModLoader/Configuration.cs @@ -33,7 +33,11 @@ internal static Configuration get() if ("unsafe".Equals(key) && "true".Equals(value)) { - _configuration.UnsafeMode = true; + _configuration.Unsafe = true; + } + else if ("debug".Equals(key) && "true".Equals(value)) + { + _configuration.Debug = true; } } } @@ -65,6 +69,7 @@ private static string GetAssemblyDirectory() return Path.GetDirectoryName(path); } - public bool UnsafeMode { get; private set; } = true; + public bool Unsafe { get; private set; } = false; + public bool Debug { get; private set; } = false; } } diff --git a/NeosModLoader/ExecutionHook.cs b/NeosModLoader/ExecutionHook.cs index 55a5787..a645485 100644 --- a/NeosModLoader/ExecutionHook.cs +++ b/NeosModLoader/ExecutionHook.cs @@ -15,7 +15,7 @@ static ExecutionHook() { try { - Logger.DebugInternal($"NeosModLoader v{ModLoader.VERSION} starting up!"); + Logger.MsgInternal($"NeosModLoader v{ModLoader.VERSION} starting up!{(Configuration.get().Debug ? " Debug logs will be shown." : "")}"); NeosVersionReset.Initialize(); ModLoader.LoadMods(); } diff --git a/NeosModLoader/Logger.cs b/NeosModLoader/Logger.cs index 44cdbd2..3d68471 100644 --- a/NeosModLoader/Logger.cs +++ b/NeosModLoader/Logger.cs @@ -10,12 +10,18 @@ internal class Logger { internal static void DebugExternal(string message) { - LogInternal(LogType.DEBUG, message, SourceFromStackTrace()); + if (Configuration.get().Debug) + { + LogInternal(LogType.DEBUG, message, SourceFromStackTrace()); + } } internal static void DebugInternal(string message) { - LogInternal(LogType.DEBUG, message); + if (Configuration.get().Debug) + { + LogInternal(LogType.DEBUG, message); + } } internal static void MsgExternal(string message) @@ -52,11 +58,11 @@ private static void LogInternal(LogType logType, string message, string source = { if (source == null) { - UniLog.Log($"[NeosModLoader][{LogTypeName(logType)}] {message}"); + UniLog.Log($"{GetTagFromLogType(logType)}[NeosModLoader] {message}"); } else { - UniLog.Log($"[NeosModLoader/{source}][{LogTypeName(logType)}] {message}"); + UniLog.Log($"{GetTagFromLogType(logType)}[NeosModLoader/{source}] {message}"); } } @@ -85,15 +91,15 @@ private enum LogType ERROR, } - private static string LogTypeName(LogType logType) + private static string GetTagFromLogType(LogType logType) { - switch(logType) + switch (logType) { - case LogType.DEBUG: return "DEBUG"; - case LogType.INFO: return "INFO"; - case LogType.WARN: return "WARN"; - case LogType.ERROR: return "ERROR"; - default: return Enum.GetName(typeof(LogType), logType); + case LogType.DEBUG: return "[DEBUG]"; + case LogType.INFO: return "[INFO] "; + case LogType.WARN: return "[WARN] "; + case LogType.ERROR: return "[ERROR]"; + default: return $"[{Enum.GetName(typeof(LogType), logType)}]"; // should never happen, but just in case... } } } diff --git a/NeosModLoader/ModLoader.cs b/NeosModLoader/ModLoader.cs index efa4ebe..8482b40 100644 --- a/NeosModLoader/ModLoader.cs +++ b/NeosModLoader/ModLoader.cs @@ -10,7 +10,7 @@ namespace NeosModLoader { internal class ModLoader { - public static readonly string VERSION = "1.1.0"; + public static readonly string VERSION = "1.2.0"; private static readonly Type NEOS_MOD_TYPE = typeof(NeosMod); internal static Dictionary LoadedMods { get; } = new Dictionary(); @@ -25,6 +25,8 @@ internal static void LoadMods() modsToLoad = Directory.GetFiles(modDirectory, "*.dll") .Select(file => new ModAssembly(file)) .ToArray(); + + Array.Sort(modsToLoad, (a, b) => string.CompareOrdinal(a.File, b.File)); } catch (Exception e) { @@ -103,7 +105,8 @@ private static void HookMod(ModAssembly mod) if (modClasses.Length == 0) { Logger.ErrorInternal($"no mods found in {mod.File}"); - } else if (modClasses.Length != 1) + } + else if (modClasses.Length != 1) { Logger.ErrorInternal($"more than one mod found in {mod.File}. no mods will be loaded."); } diff --git a/NeosModLoader/NeosVersionReset.cs b/NeosModLoader/NeosVersionReset.cs index 66e6d49..ab37aaa 100644 --- a/NeosModLoader/NeosVersionReset.cs +++ b/NeosModLoader/NeosVersionReset.cs @@ -8,7 +8,6 @@ using System.Reflection.Emit; using System.Runtime.CompilerServices; using System.Security.Cryptography; -using System.Text; namespace NeosModLoader { @@ -25,9 +24,9 @@ internal static void Initialize() return; } - if (Configuration.get().UnsafeMode) + if (Configuration.get().Unsafe) { - Logger.WarnInternal("Unsafe mode is on! Beware of using plugin components in multiplayer!"); + Logger.WarnInternal("Unsafe mode is on! Version will be reset even if other plugins are detected! Beware of using plugin components in multiplayer!"); extraAssemblies.Clear(); } else if (extraAssemblies.Count != 0) diff --git a/NeosModLoader/Properties/AssemblyInfo.cs b/NeosModLoader/Properties/AssemblyInfo.cs index b93af26..f7e423c 100644 --- a/NeosModLoader/Properties/AssemblyInfo.cs +++ b/NeosModLoader/Properties/AssemblyInfo.cs @@ -31,5 +31,5 @@ // You can specify all the values or you can default the Build and Revision Numbers // by using the '*' as shown below: // [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("1.1.0.0")] -[assembly: AssemblyFileVersion("1.1.0.0")] +[assembly: AssemblyVersion("1.2.0.0")] +[assembly: AssemblyFileVersion("1.2.0.0")]