From a36bd705059b05e3b051f386bfc1af4f0289e09b Mon Sep 17 00:00:00 2001 From: Evil Factory <36804725+evilfactory@users.noreply.github.com> Date: Fri, 13 Feb 2026 18:58:35 -0300 Subject: [PATCH] Strip down the original logger class --- .../BarotraumaClient/ClientSource/GameMain.cs | 2 - .../ClientSource/LuaCs/LuaCsSetup.cs | 8 - .../SharedSource/LuaCs/ModUtils.cs | 12 +- .../SharedSource/LuaCs/_Plugins/ACsMod.cs | 2 +- .../_Services/LuaScriptManagementService.cs | 4 +- .../_Services/_Lua/LuaClasses/LuaCsLogger.cs | 146 ++---------------- .../_Services/_Lua/LuaClasses/LuaCsTimer.cs | 6 +- 7 files changed, 24 insertions(+), 156 deletions(-) diff --git a/Barotrauma/BarotraumaClient/ClientSource/GameMain.cs b/Barotrauma/BarotraumaClient/ClientSource/GameMain.cs index b37ca5668..10086bdb0 100644 --- a/Barotrauma/BarotraumaClient/ClientSource/GameMain.cs +++ b/Barotrauma/BarotraumaClient/ClientSource/GameMain.cs @@ -985,8 +985,6 @@ namespace Barotrauma Screen.Selected.AddToGUIUpdateList(); - LuaCsLogger.AddToGUIUpdateList(); - Client?.AddToGUIUpdateList(); SubmarinePreview.AddToGUIUpdateList(); diff --git a/Barotrauma/BarotraumaClient/ClientSource/LuaCs/LuaCsSetup.cs b/Barotrauma/BarotraumaClient/ClientSource/LuaCs/LuaCsSetup.cs index 20839ed92..b24a584eb 100644 --- a/Barotrauma/BarotraumaClient/ClientSource/LuaCs/LuaCsSetup.cs +++ b/Barotrauma/BarotraumaClient/ClientSource/LuaCs/LuaCsSetup.cs @@ -13,14 +13,6 @@ namespace Barotrauma { partial class LuaCsSetup { - public void AddToGUIUpdateList() - { - if (!DisableErrorGUIOverlay) - { - LuaCsLogger.AddToGUIUpdateList(); - } - } - /// /// /// diff --git a/Barotrauma/BarotraumaShared/SharedSource/LuaCs/ModUtils.cs b/Barotrauma/BarotraumaShared/SharedSource/LuaCs/ModUtils.cs index fc30ce5db..a6588444e 100644 --- a/Barotrauma/BarotraumaShared/SharedSource/LuaCs/ModUtils.cs +++ b/Barotrauma/BarotraumaShared/SharedSource/LuaCs/ModUtils.cs @@ -74,27 +74,27 @@ namespace Barotrauma.LuaCs public static void PrintMessage(string s) { #if SERVER - LuaCsLogger.LogMessage($"[Server] {s}"); + GameMain.LuaCs.Logger.LogMessage($"{s}"); #else - LuaCsLogger.LogMessage($"[Client] {s}"); + GameMain.LuaCs.Logger.LogMessage($"{s}"); #endif } public static void PrintWarning(string s) { #if SERVER - LuaCsLogger.Log($"[Server] {s}", Color.Yellow); + GameMain.LuaCs.Logger.Log($"{s}", Color.Yellow); #else - LuaCsLogger.Log($"[Client] {s}", Color.Yellow); + GameMain.LuaCs.Logger.Log($"{s}", Color.Yellow); #endif } public static void PrintError(string s) { #if SERVER - LuaCsLogger.LogError($"[Server] {s}"); + GameMain.LuaCs.Logger.LogError($"{s}"); #else - LuaCsLogger.LogError($"[Client] {s}"); + GameMain.LuaCs.Logger.LogError($"{s}"); #endif } } diff --git a/Barotrauma/BarotraumaShared/SharedSource/LuaCs/_Plugins/ACsMod.cs b/Barotrauma/BarotraumaShared/SharedSource/LuaCs/_Plugins/ACsMod.cs index 9ee8833bc..8065d4dcc 100644 --- a/Barotrauma/BarotraumaShared/SharedSource/LuaCs/_Plugins/ACsMod.cs +++ b/Barotrauma/BarotraumaShared/SharedSource/LuaCs/_Plugins/ACsMod.cs @@ -48,7 +48,7 @@ namespace Barotrauma } catch (Exception e) { - LuaCsLogger.HandleException(e, LuaCsMessageOrigin.CSharpMod); + GameMain.LuaCs.Logger.HandleException(e); } IsDisposed = true; } diff --git a/Barotrauma/BarotraumaShared/SharedSource/LuaCs/_Services/LuaScriptManagementService.cs b/Barotrauma/BarotraumaShared/SharedSource/LuaCs/_Services/LuaScriptManagementService.cs index 5a3b2dbfb..13d339b1e 100644 --- a/Barotrauma/BarotraumaShared/SharedSource/LuaCs/_Services/LuaScriptManagementService.cs +++ b/Barotrauma/BarotraumaShared/SharedSource/LuaCs/_Services/LuaScriptManagementService.cs @@ -191,7 +191,7 @@ class LuaScriptManagementService : ILuaScriptManagementService, ILuaDataService _script = new Script(CoreModules.Preset_SoftSandbox | CoreModules.Debug | CoreModules.IO | CoreModules.OS_System); _script.Options.DebugPrint = (string msg) => { - _loggerService.Log(msg); + _loggerService.LogMessage($"[Lua] {msg}"); }; _script.Options.ScriptLoader = _luaScriptLoader; _script.Options.CheckThreadAccess = false; @@ -221,7 +221,7 @@ class LuaScriptManagementService : ILuaScriptManagementService, ILuaDataService _script.Globals["loadfile"] = (Func)LoadFile; _script.Globals["require"] = (Func)luaRequire.Require; - _script.Globals["printerror"] = (DynValue o) => { LuaCsLogger.LogError(o.ToString()); }; + _script.Globals["printerror"] = (DynValue o) => { _loggerService.LogError($"[Lua] {o.ToString()}"); }; _script.Globals["dostring"] = (Func)_script.DoString; _script.Globals["load"] = (Func)_script.LoadString; diff --git a/Barotrauma/BarotraumaShared/SharedSource/LuaCs/_Services/_Lua/LuaClasses/LuaCsLogger.cs b/Barotrauma/BarotraumaShared/SharedSource/LuaCs/_Services/_Lua/LuaClasses/LuaCsLogger.cs index e854a8e04..7179ece13 100644 --- a/Barotrauma/BarotraumaShared/SharedSource/LuaCs/_Services/_Lua/LuaClasses/LuaCsLogger.cs +++ b/Barotrauma/BarotraumaShared/SharedSource/LuaCs/_Services/_Lua/LuaClasses/LuaCsLogger.cs @@ -15,167 +15,43 @@ namespace Barotrauma partial class LuaCsLogger { - public static bool HideUserNames = true; - -#if SERVER - private const string LogPrefix = "SV"; - private const int NetMaxLength = 1024; // character limit of vanilla Barotrauma's chat system. - private const int NetMaxMessages = 60; - - // This is used so its possible to call logging functions inside the serverLog - // hook without creating an infinite loop - private static bool lockLog = false; -#else - private const string LogPrefix = "CL"; -#endif - - public static LuaCsMessageLogger MessageLogger; - public static LuaCsExceptionHandler ExceptionHandler; - public static void HandleException(Exception ex, LuaCsMessageOrigin origin) { - string errorString = ""; - switch (ex) - { - case NetRuntimeException netRuntimeException: - if (netRuntimeException.DecoratedMessage == null) - { - errorString = netRuntimeException.ToString(); - } - else - { - // FIXME: netRuntimeException.ToString() doesn't print the InnerException's stack trace... - errorString = $"{netRuntimeException.DecoratedMessage}: {netRuntimeException}"; - } - break; - case InterpreterException interpreterException: - if (interpreterException.DecoratedMessage == null) - { - errorString = interpreterException.ToString(); - } - else - { - errorString = interpreterException.DecoratedMessage; - } - break; - default: - errorString = ex.StackTrace != null - ? ex.ToString() - : $"{ex}\n{Environment.StackTrace}"; - break; - } - - LogError(Environment.UserName + " " + errorString, origin); + GameMain.LuaCs.Logger.HandleException(ex); } public static void LogError(string message, LuaCsMessageOrigin origin) { - if (HideUserNames && !Environment.UserName.IsNullOrEmpty()) - { - message = message.Replace(Environment.UserName, "USERNAME"); - } - - switch (origin) - { - case LuaCsMessageOrigin.LuaCs: - case LuaCsMessageOrigin.Unknown: - LogError($"[{LogPrefix} ERROR] {message}"); - break; - case LuaCsMessageOrigin.LuaMod: - LogError($"[{LogPrefix} LUA ERROR] {message}"); - break; - case LuaCsMessageOrigin.CSharpMod: - LogError($"[{LogPrefix} CS ERROR] {message}"); - break; - } + GameMain.LuaCs.Logger.LogError(message); } public static void LogError(string message) { - Log($"{message}", Color.Red, ServerLog.MessageType.Error); + GameMain.LuaCs.Logger.LogError(message); } public static void LogMessage(string message, Color? serverColor = null, Color? clientColor = null) { - if (serverColor == null) { serverColor = Color.MediumPurple; } - if (clientColor == null) { clientColor = Color.Purple; } - -#if SERVER - Log(message, serverColor); -#else - Log(message, clientColor); -#endif + GameMain.LuaCs.Logger.LogMessage(message, serverColor, clientColor); } public static void Log(string message, Color? color = null, ServerLog.MessageType messageType = ServerLog.MessageType.ServerMessage) { - MessageLogger?.Invoke(message); - - DebugConsole.NewMessage(message, color); - -#if SERVER - void broadcastMessage(string m) - { - foreach (var client in GameMain.Server.ConnectedClients) - { - //if (client.ChatMsgQueue.Count > NetMaxMessages) - //{ - // If there's an error or message happening many times per second (inside Update loop for example) - // we will need to discart some messages so the client doesn't get overloaded by all - // those net messages. - // continue; - //} - - ChatMessage consoleMessage = ChatMessage.Create("", m, ChatMessageType.Console, null, textColor: color); - GameMain.Server.SendDirectChatMessage(consoleMessage, client); - - if (!GameMain.Server.ServerSettings.SaveServerLogs || !client.HasPermission(ClientPermissions.ServerLog)) - { - continue; - } - - ChatMessage logMessage = ChatMessage.Create(messageType.ToString(), "[LuaCs] " + m, ChatMessageType.ServerLog, null); - GameMain.Server.SendDirectChatMessage(logMessage, client); - } - } - - if (GameMain.Server != null) - { - if (GameMain.Server.ServerSettings.SaveServerLogs) - { - string logMessage = "[LuaCs] " + message; - GameMain.Server.ServerSettings.ServerLog.WriteLine(logMessage, messageType, false); - - if (!lockLog) - { - lockLog = true; - GameMain.LuaCs?.Hook?.Call("serverLog", logMessage, messageType); - lockLog = false; - } - } - - for (int i = 0; i < message.Length; i += NetMaxLength) - { - string subStr = message.Substring(i, Math.Min(1024, message.Length - i)); - - broadcastMessage(subStr); - } - } -#endif + GameMain.LuaCs.Logger.Log(message, color, messageType); } } partial class LuaCsSetup { // Compatibility with cs mods that use this method. - public static void PrintLuaError(object message) => LuaCsLogger.LogError($"{message}", LuaCsMessageOrigin.LuaMod); - public static void PrintCsError(object message) => LuaCsLogger.LogError($"{message}", LuaCsMessageOrigin.CSharpMod); - public static void PrintGenericError(object message) => LuaCsLogger.LogError($"{message}", LuaCsMessageOrigin.LuaCs); + public static void PrintLuaError(object message) => GameMain.LuaCs.Logger.LogError($"{message}"); + public static void PrintCsError(object message) => GameMain.LuaCs.Logger.LogError($"{message}"); + public static void PrintGenericError(object message) => GameMain.LuaCs.Logger.LogError($"{message}"); - internal void PrintMessage(object message) => LuaCsLogger.LogMessage($"{message}"); + internal void PrintMessage(object message) => GameMain.LuaCs.Logger.LogMessage($"{message}"); - public static void PrintCsMessage(object message) => LuaCsLogger.LogMessage($"{message}"); + public static void PrintCsMessage(object message) => GameMain.LuaCs.Logger.LogMessage($"{message}"); - internal void HandleException(Exception ex, LuaCsMessageOrigin origin) => LuaCsLogger.HandleException(ex, origin); + internal void HandleException(Exception ex, LuaCsMessageOrigin origin) => GameMain.LuaCs.Logger.HandleException(ex); } } diff --git a/Barotrauma/BarotraumaShared/SharedSource/LuaCs/_Services/_Lua/LuaClasses/LuaCsTimer.cs b/Barotrauma/BarotraumaShared/SharedSource/LuaCs/_Services/_Lua/LuaClasses/LuaCsTimer.cs index 6d12bd068..d888c4597 100644 --- a/Barotrauma/BarotraumaShared/SharedSource/LuaCs/_Services/_Lua/LuaClasses/LuaCsTimer.cs +++ b/Barotrauma/BarotraumaShared/SharedSource/LuaCs/_Services/_Lua/LuaClasses/LuaCsTimer.cs @@ -57,10 +57,12 @@ namespace Barotrauma private List timedActions = new List(); private readonly IEventService _eventService; + private readonly ILoggerService _loggerService; - public LuaCsTimer(IEventService eventService) + public LuaCsTimer(IEventService eventService, ILoggerService loggerService) { _eventService = eventService; + _loggerService = loggerService; SubscribeToEvents(); } @@ -117,7 +119,7 @@ namespace Barotrauma } catch (Exception e) { - LuaCsLogger.HandleException(e, LuaCsMessageOrigin.CSharpMod); + _loggerService.HandleException(e); } timedActions.Remove(timedAction);