From 87b3c8b0a0e625e9850f2e641e03b138b6229730 Mon Sep 17 00:00:00 2001 From: Bluzume <39113159+KuromeSan@users.noreply.github.com> Date: Wed, 24 Nov 2021 22:46:54 -0500 Subject: [PATCH] Allow bbcode in chat for admins --- HorseIsleServer/HorseIsleServer/Game/Chat/Chat.cs | 2 +- HorseIsleServer/HorseIsleServer/Resources/server.properties | 5 +++++ HorseIsleServer/HorseIsleServer/Server/ConfigReader.cs | 4 ++++ HorseIsleServer/HorseIsleServer/Server/GameServer.cs | 5 ++++- 4 files changed, 14 insertions(+), 2 deletions(-) diff --git a/HorseIsleServer/HorseIsleServer/Game/Chat/Chat.cs b/HorseIsleServer/HorseIsleServer/Game/Chat/Chat.cs index a81726a..324a43e 100644 --- a/HorseIsleServer/HorseIsleServer/Game/Chat/Chat.cs +++ b/HorseIsleServer/HorseIsleServer/Game/Chat/Chat.cs @@ -492,7 +492,7 @@ namespace HISP.Game.Chat } public static string EscapeMessage(string message) { - return message.Replace("<", "<"); + return message.Replace("&", "&").Replace("<", "<"); } public static string FormatChatForOthers(User user, ChatChannel channel, string message, bool autoReply=false) diff --git a/HorseIsleServer/HorseIsleServer/Resources/server.properties b/HorseIsleServer/HorseIsleServer/Resources/server.properties index 63697b2..9e8b286 100644 --- a/HorseIsleServer/HorseIsleServer/Resources/server.properties +++ b/HorseIsleServer/HorseIsleServer/Resources/server.properties @@ -54,6 +54,11 @@ enable_spam_filter=true # but of course you can make it whatever you want intrest_rate=3333 +# Allows all users to use BBCODE in chat +# BBCode is the [b] [blue] etc colors +# If false, this only works for admins and moderators. +allow_bbcode_in_chat=false + # Should print extra debug logs # 0 - no logs # 1 - errors only diff --git a/HorseIsleServer/HorseIsleServer/Server/ConfigReader.cs b/HorseIsleServer/HorseIsleServer/Server/ConfigReader.cs index 9a7e71a..0eeb4c6 100644 --- a/HorseIsleServer/HorseIsleServer/Server/ConfigReader.cs +++ b/HorseIsleServer/HorseIsleServer/Server/ConfigReader.cs @@ -23,6 +23,7 @@ namespace HISP.Server public static int LogLevel = 0; public static bool EnableSpamFilter = true; public static bool AllUsersSubbed = false; + public static bool AllowBbcode = false; public static bool BadWords = true; public static bool DoCorrections = true; public static bool DoNonViolations = true; @@ -107,6 +108,9 @@ namespace HISP.Server case "enable_spam_filter": EnableSpamFilter = data == "true"; break; + case "allow_bbcode_in_chat": + AllowBbcode = data == "true"; + break; case "enable_word_filter": BadWords = data == "true"; break; diff --git a/HorseIsleServer/HorseIsleServer/Server/GameServer.cs b/HorseIsleServer/HorseIsleServer/Server/GameServer.cs index 05a641e..091714b 100644 --- a/HorseIsleServer/HorseIsleServer/Server/GameServer.cs +++ b/HorseIsleServer/HorseIsleServer/Server/GameServer.cs @@ -5856,6 +5856,7 @@ namespace HISP.Server RiddleEvent.Win(sender.LoggedinUser); + // Check if player is muting channel if( (sender.LoggedinUser.MuteGlobal && channel == Chat.ChatChannel.All) || (sender.LoggedinUser.MuteAds && channel == Chat.ChatChannel.Ads) || (sender.LoggedinUser.MuteHere && channel == Chat.ChatChannel.Here) && (sender.LoggedinUser.MuteBuddy && channel == Chat.ChatChannel.Buddies) && (sender.LoggedinUser.MuteNear && channel == Chat.ChatChannel.Near) && (sender.LoggedinUser.MuteIsland && channel == Chat.ChatChannel.Isle)) @@ -5885,7 +5886,9 @@ namespace HISP.Server byte chatSide = Chat.GetSide(channel); message = Chat.DoCorrections(message); message = Chat.EscapeMessage(message); - + // Encode bbcode message. + if(ConfigReader.AllowBbcode || (sender.LoggedinUser.Moderator || sender.LoggedinUser.Administrator)) + message = BBCode.EncodeBBCodeToMeta(message); string failedReason = Chat.NonViolationChecks(sender.LoggedinUser, message); if (failedReason != null)