From 8bd130eb3a9edeeec84bd55ddc1fae4d9be6b215 Mon Sep 17 00:00:00 2001 From: ORelio Date: Tue, 29 Sep 2015 14:07:11 +0200 Subject: [PATCH] Add setting for hiding system/xpbar messages Add settings for disabling: - System Messages - XP Bar Messages Fix #95 --- MinecraftClient/Protocol/Handlers/Protocol18.cs | 12 +++++++++++- MinecraftClient/Settings.cs | 6 ++++++ 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/MinecraftClient/Protocol/Handlers/Protocol18.cs b/MinecraftClient/Protocol/Handlers/Protocol18.cs index 92512110..f728c470 100644 --- a/MinecraftClient/Protocol/Handlers/Protocol18.cs +++ b/MinecraftClient/Protocol/Handlers/Protocol18.cs @@ -140,7 +140,17 @@ namespace MinecraftClient.Protocol.Handlers SendPacket(0x00, packetData); break; case 0x02: //Chat message - handler.OnTextReceived(ChatParser.ParseText(readNextString(ref packetData))); + string message = readNextString(ref packetData); + try + { + //Hide system messages or xp bar messages? + byte messageType = readData(1, ref packetData)[0]; + if ((messageType == 1 && !Settings.DisplaySystemMessages) + || (messageType == 2 && !Settings.DisplayXPBarMessages)) + break; + } + catch (IndexOutOfRangeException) { /* No message type */ } + handler.OnTextReceived(ChatParser.ParseText(message)); break; case 0x38: //Player List update if (protocolversion >= MC18Version) diff --git a/MinecraftClient/Settings.cs b/MinecraftClient/Settings.cs index 7a4a4cb5..129e8d6d 100644 --- a/MinecraftClient/Settings.cs +++ b/MinecraftClient/Settings.cs @@ -50,6 +50,8 @@ namespace MinecraftClient public static string chatbotLogFile = ""; public static bool CacheScripts = true; public static string BrandInfo = MCCBrandInfo; + public static bool DisplaySystemMessages = true; + public static bool DisplayXPBarMessages = true; //AntiAFK Settings public static bool AntiAFK_Enabled = false; @@ -171,6 +173,8 @@ namespace MinecraftClient case "mcversion": ServerVersion = argValue; break; case "splitmessagedelay": splitMessageDelay = TimeSpan.FromSeconds(str2int(argValue)); break; case "scriptcache": CacheScripts = str2bool(argValue); break; + case "showsystemmessages": DisplaySystemMessages = str2bool(argValue); break; + case "showxpbarmessages": DisplaySystemMessages = str2bool(argValue); break; case "botowners": Bots_Owners.Clear(); @@ -395,6 +399,8 @@ namespace MinecraftClient + "mcversion=auto #use 'auto' or '1.X.X' values\r\n" + "brandinfo=mcc #use 'mcc','vanilla', or 'none'\r\n" + "chatbotlogfile= #leave empty for no logfile\r\n" + + "showsystemmessages=true #system messages for server ops\r\n" + + "showxpbarmessages=true #messages displayed above xp bar\r\n" + "accountlist=accounts.txt\r\n" + "serverlist=servers.txt\r\n" + "playerheadicon=true\r\n"