From 15def803019847350bf8c25fde1f22c82f18415f Mon Sep 17 00:00:00 2001 From: Tereneckla Date: Fri, 25 Jul 2025 17:52:48 +0200 Subject: [PATCH 1/4] Cache the config --- src/MyPlayer.cpp | 41 ++++++++++++++++++++++++++++++++++++++--- 1 file changed, 38 insertions(+), 3 deletions(-) diff --git a/src/MyPlayer.cpp b/src/MyPlayer.cpp index 6ced314..db06ef8 100644 --- a/src/MyPlayer.cpp +++ b/src/MyPlayer.cpp @@ -2,16 +2,37 @@ * Copyright (C) 2016+ AzerothCore , released under GNU AGPL v3 license: https://github.com/azerothcore/azerothcore-wotlk/blob/master/LICENSE-AGPL3 */ -#include "ScriptMgr.h" -#include "Player.h" -#include "Config.h" #include "Chat.h" +#include "Config.h" +#include "ConfigValueCache.h" +#include "Player.h" +#include "ScriptMgr.h" enum MyPlayerAcoreString { HELLO_WORLD = 35410 }; +enum class MyConfig +{ + ENABLED, + + NUM_CONFIGS, +}; + +class MyConfigData : public ConfigValueCache +{ +public: + MyConfigData() : ConfigValueCache(MyConfig::NUM_CONFIGS) { }; + + void BuildConfigCache() override + { + SetConfigValue(MyConfig::ENABLED, "MyModule.Enable", true); + } +}; + +static MyConfigData myConfigData; + // Add player scripts class MyPlayer : public PlayerScript { @@ -25,8 +46,22 @@ class MyPlayer : public PlayerScript } }; +class MyWorldScript : public WorldScript +{ +public: +MyWorldScript() : WorldScript("MyWorldScript", { + WORLDHOOK_ON_BEFORE_CONFIG_LOAD + }) { } + + void OnBeforeConfigLoad(bool reload) override + { + myConfigData.Initialize(reload); + } +}; + // Add all scripts in one void AddMyPlayerScripts() { new MyPlayer(); + new MyWorldScript(); } From 31b0e74c7f7c94b26332b409f9f27aaeab9fbeb5 Mon Sep 17 00:00:00 2001 From: Tereneckla Date: Fri, 25 Jul 2025 18:10:49 +0200 Subject: [PATCH 2/4] use cached config --- src/MyPlayer.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/MyPlayer.cpp b/src/MyPlayer.cpp index db06ef8..a7dfba3 100644 --- a/src/MyPlayer.cpp +++ b/src/MyPlayer.cpp @@ -41,7 +41,7 @@ class MyPlayer : public PlayerScript void OnPlayerLogin(Player* player) override { - if (sConfigMgr->GetOption("MyModule.Enable", false)) + if (myConfigData.GetConfigValue(MyConfig::ENABLED)) ChatHandler(player->GetSession()).PSendSysMessage(HELLO_WORLD); } }; From 9801b12ef565f5a2ae8db021316aa85df586e4b3 Mon Sep 17 00:00:00 2001 From: Tereneckla Date: Wed, 15 Oct 2025 12:27:06 +0200 Subject: [PATCH 3/4] more --- src/MyPlayer.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/MyPlayer.cpp b/src/MyPlayer.cpp index a7dfba3..7e67c7e 100644 --- a/src/MyPlayer.cpp +++ b/src/MyPlayer.cpp @@ -3,7 +3,6 @@ */ #include "Chat.h" -#include "Config.h" #include "ConfigValueCache.h" #include "Player.h" #include "ScriptMgr.h" @@ -37,7 +36,9 @@ static MyConfigData myConfigData; class MyPlayer : public PlayerScript { public: - MyPlayer() : PlayerScript("MyPlayer") { } + MyPlayer() : PlayerScript("MyPlayer", { + PLAYERHOOK_ON_LOGIN + }) { } void OnPlayerLogin(Player* player) override { From 7adf78461d886199731e9796e6c8ded30a3e1a08 Mon Sep 17 00:00:00 2001 From: Tereneckla Date: Wed, 15 Oct 2025 16:40:46 +0000 Subject: [PATCH 4/4] Update src/MyPlayer.cpp Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- src/MyPlayer.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/MyPlayer.cpp b/src/MyPlayer.cpp index 7e67c7e..842bc4f 100644 --- a/src/MyPlayer.cpp +++ b/src/MyPlayer.cpp @@ -50,7 +50,7 @@ class MyPlayer : public PlayerScript class MyWorldScript : public WorldScript { public: -MyWorldScript() : WorldScript("MyWorldScript", { + MyWorldScript() : WorldScript("MyWorldScript", { WORLDHOOK_ON_BEFORE_CONFIG_LOAD }) { }