From a55af9f667aace28a8f170121b270ce83444b53d Mon Sep 17 00:00:00 2001 From: Michael Chen Date: Tue, 18 Jan 2022 10:43:15 +0100 Subject: [PATCH] Increase chunk size to send fewer messages. Fixed logging lock (causes color issues in parallel env) --- MinecraftDiscordBot/ClientScript.lua | 5 ++++- MinecraftDiscordBot/Program.cs | 29 ++++++++++++++-------------- 2 files changed, 19 insertions(+), 15 deletions(-) diff --git a/MinecraftDiscordBot/ClientScript.lua b/MinecraftDiscordBot/ClientScript.lua index 514a97a..13333fe 100644 --- a/MinecraftDiscordBot/ClientScript.lua +++ b/MinecraftDiscordBot/ClientScript.lua @@ -1,9 +1,12 @@ local secretToken = "$TOKEN" local connectionUri = "$HOST" local waitSeconds = 5 +-- https://github.com/cc-tweaked/CC-Tweaked/blob/9cf70b10effeeed23e0e9c537bbbe0b2ff0d1a0f/src/main/java/dan200/computercraft/core/apis/http/options/AddressRule.java#L29 +-- Chunk size must be less than packet size (type reply, success, chunkids, content: chunk) 16 kb for buffer +local maxMessageSize = (128 - 16) * 1024 local function chunkString(value, chunkSize) - if not chunkSize then chunkSize = 10000 end + if not chunkSize then chunkSize = maxMessageSize end local length = value:len() local total = math.ceil(length / chunkSize) local chunks = {} diff --git a/MinecraftDiscordBot/Program.cs b/MinecraftDiscordBot/Program.cs index c41b8b4..09a7474 100644 --- a/MinecraftDiscordBot/Program.cs +++ b/MinecraftDiscordBot/Program.cs @@ -274,21 +274,22 @@ public class Program : IDisposable, ICommandHandler, IUserRoleMana } public static void Log(LogMessage msg) { - var oldColor = Console.ForegroundColor; - try { - Console.ForegroundColor = msg.Severity switch { - LogSeverity.Critical => ConsoleColor.Magenta, - LogSeverity.Error => ConsoleColor.Red, - LogSeverity.Warning => ConsoleColor.Yellow, - LogSeverity.Info => ConsoleColor.White, - LogSeverity.Verbose => ConsoleColor.Blue, - LogSeverity.Debug => ConsoleColor.DarkBlue, - _ => ConsoleColor.Cyan, - }; - lock (LogLock) + lock (LogLock) { + var oldColor = Console.ForegroundColor; + try { + Console.ForegroundColor = msg.Severity switch { + LogSeverity.Critical => ConsoleColor.Magenta, + LogSeverity.Error => ConsoleColor.Red, + LogSeverity.Warning => ConsoleColor.Yellow, + LogSeverity.Info => ConsoleColor.White, + LogSeverity.Verbose => ConsoleColor.Blue, + LogSeverity.Debug => ConsoleColor.DarkBlue, + _ => ConsoleColor.Cyan, + }; Console.WriteLine(msg.ToString()); - } finally { - Console.ForegroundColor = oldColor; + } finally { + Console.ForegroundColor = oldColor; + } } }