From 40a52c885e684137ab110eba7685726e6a5b54da Mon Sep 17 00:00:00 2001 From: Andrew <47818697+Nyeriah@users.noreply.github.com> Date: Sun, 10 May 2026 11:46:36 -0300 Subject: [PATCH] feat(Core/Scripts): Add ChatLog.Enable config to chat_log.cpp (#25795) Co-authored-by: Copilot <198982749+Copilot@users.noreply.github.com> --- .../apps/worldserver/worldserver.conf.dist | 9 +++++++++ src/server/game/World/WorldConfig.cpp | 2 ++ src/server/game/World/WorldConfig.h | 1 + src/server/scripts/World/chat_log.cpp | 16 ++++++++++++++++ 4 files changed, 28 insertions(+) diff --git a/src/server/apps/worldserver/worldserver.conf.dist b/src/server/apps/worldserver/worldserver.conf.dist index 9fdd35910..982d73c27 100644 --- a/src/server/apps/worldserver/worldserver.conf.dist +++ b/src/server/apps/worldserver/worldserver.conf.dist @@ -621,6 +621,15 @@ Allow.IP.Based.Action.Logging = 0 LogSpamReports = 1 +# +# ChatLog.Enable +# Description: Enable or disable chat logging (chat_log.cpp). +# Default: 0 - (Disabled) +# 1 - (Enabled) +# + +ChatLog.Enable = 0 + # # Appender config values: Given an appender "name" # Appender.name diff --git a/src/server/game/World/WorldConfig.cpp b/src/server/game/World/WorldConfig.cpp index 243e13499..d96915e15 100644 --- a/src/server/game/World/WorldConfig.cpp +++ b/src/server/game/World/WorldConfig.cpp @@ -604,6 +604,8 @@ void WorldConfig::BuildConfigCache() SetConfigValue(CONFIG_LOGSPAMREPORTS, "LogSpamReports", true); + SetConfigValue(CONFIG_CHATLOG_ENABLED, "ChatLog.Enable", false); + // Whether to use LoS from game objects SetConfigValue(CONFIG_CHECK_GOBJECT_LOS, "CheckGameObjectLoS", true); diff --git a/src/server/game/World/WorldConfig.h b/src/server/game/World/WorldConfig.h index 8d95ed5cc..c573fc287 100644 --- a/src/server/game/World/WorldConfig.h +++ b/src/server/game/World/WorldConfig.h @@ -492,6 +492,7 @@ enum ServerConfigs CONFIG_NEW_CHAR_STRING, CONFIG_VALIDATE_SKILL_LEARNED_BY_SPELLS, CONFIG_ACHIEVEMENT_REALM_FIRST_KILL_WINDOW, + CONFIG_CHATLOG_ENABLED, MAX_NUM_SERVER_CONFIGS }; diff --git a/src/server/scripts/World/chat_log.cpp b/src/server/scripts/World/chat_log.cpp index 3feb0c528..bc89576f0 100644 --- a/src/server/scripts/World/chat_log.cpp +++ b/src/server/scripts/World/chat_log.cpp @@ -20,6 +20,7 @@ #include "Guild.h" #include "Log.h" #include "PlayerScript.h" +#include "World.h" class ChatLogScript : public PlayerScript { @@ -38,6 +39,9 @@ public: bool OnPlayerCanUseChat(Player* player, uint32 type, uint32 lang, std::string& msg) override { + if (!sWorld->getBoolConfig(CONFIG_CHATLOG_ENABLED)) + return true; + std::string logType = ""; std::string chatType = ""; @@ -67,6 +71,9 @@ public: bool OnPlayerCanUseChat(Player* player, uint32 /*type*/, uint32 lang, std::string& msg, Player* receiver) override { + if (!sWorld->getBoolConfig(CONFIG_CHATLOG_ENABLED)) + return true; + //! NOTE: //! LANG_ADDON can only be sent by client in "PARTY", "RAID", "GUILD", "BATTLEGROUND", "WHISPER" std::string logType = (lang != LANG_ADDON) ? "chat." : "chat.addon."; @@ -80,6 +87,9 @@ public: bool OnPlayerCanUseChat(Player* player, uint32 type, uint32 lang, std::string& msg, Group* group) override { + if (!sWorld->getBoolConfig(CONFIG_CHATLOG_ENABLED)) + return true; + //! NOTE: //! LANG_ADDON can only be sent by client in "PARTY", "RAID", "GUILD", "BATTLEGROUND", "WHISPER" std::string logType = (lang != LANG_ADDON) ? "chat." : "chat.addon."; @@ -116,6 +126,9 @@ public: bool OnPlayerCanUseChat(Player* player, uint32 type, uint32 lang, std::string& msg, Guild* guild) override { + if (!sWorld->getBoolConfig(CONFIG_CHATLOG_ENABLED)) + return true; + //! NOTE: //! LANG_ADDON can only be sent by client in "PARTY", "RAID", "GUILD", "BATTLEGROUND", "WHISPER" std::string logType = (lang != LANG_ADDON) ? "chat." : "chat.addon."; @@ -141,6 +154,9 @@ public: bool OnPlayerCanUseChat(Player* player, uint32 /*type*/, uint32 /*lang*/, std::string& msg, Channel* channel) override { + if (!sWorld->getBoolConfig(CONFIG_CHATLOG_ENABLED)) + return true; + bool isSystem = channel && (channel->HasFlag(CHANNEL_FLAG_TRADE) || channel->HasFlag(CHANNEL_FLAG_GENERAL) ||