From b26a6d7ccc92809e37b897440c42d0b6483dc2de Mon Sep 17 00:00:00 2001 From: Evil Factory <36804725+evilfactory@users.noreply.github.com> Date: Thu, 16 Sep 2021 12:00:48 -0300 Subject: [PATCH] sending error messages longer than 1024 bytes for some reason breaks barotrauma, fixed my splitting the message into multiple chunks --- .../SharedSource/Lua/LuaSetup.cs | 25 +++++++++++++------ 1 file changed, 17 insertions(+), 8 deletions(-) diff --git a/Barotrauma/BarotraumaShared/SharedSource/Lua/LuaSetup.cs b/Barotrauma/BarotraumaShared/SharedSource/Lua/LuaSetup.cs index 91a169d83..aed10729c 100644 --- a/Barotrauma/BarotraumaShared/SharedSource/Lua/LuaSetup.cs +++ b/Barotrauma/BarotraumaShared/SharedSource/Lua/LuaSetup.cs @@ -8,6 +8,7 @@ using Microsoft.Xna.Framework; using System.Threading.Tasks; using Barotrauma.Items.Components; using System.Diagnostics; +using System.Linq; namespace Barotrauma { @@ -40,21 +41,29 @@ namespace Barotrauma public void PrintMessage(object message) { if (message == null) { message = "nil"; } - Console.WriteLine(message.ToString()); + string str = message.ToString(); + + Console.WriteLine(str); + + for (int i = 0; i < str.Length; i += 1024) + { + string subStr = str.Substring(i, Math.Min(1024, str.Length - i)); + #if SERVER - if (GameMain.Server != null) - { - foreach (var c in GameMain.Server.ConnectedClients) + if (GameMain.Server != null) { - GameMain.Server.SendDirectChatMessage(message.ToString(), c, ChatMessageType.Console); - } + foreach (var c in GameMain.Server.ConnectedClients) + { + GameMain.Server.SendDirectChatMessage(subStr, c, ChatMessageType.Console); + } - GameServer.Log("[LUA] " + message.ToString(), ServerLog.MessageType.ServerMessage); - } + GameServer.Log("[LUA] " + subStr, ServerLog.MessageType.ServerMessage); + } #else DebugConsole.NewMessage("[LUA] " + message.ToString()); #endif + } }