#include "mod_eternal_bond.h" #include "Chat.h" #include "Config.h" #include "Log.h" #include "ScriptMgr.h" using namespace Acore::ChatCommands; // v0: hello-world stub. Proves the module loads, its config flag is readable, and a command // registers and responds -- no proposal/ceremony gameplay yet. See PLAN.md for the actual // roadmap (consent handshake, quest chain, officiant ceremony, spouse recall). class EternalBondCommandScript : public CommandScript { public: EternalBondCommandScript() : CommandScript("EternalBondCommandScript") { } ChatCommandTable GetCommands() const override { static ChatCommandTable commandTable = { { "eternalbond", HandleEternalBondCommand, SEC_PLAYER, Console::No }, }; return commandTable; } static bool HandleEternalBondCommand(ChatHandler* handler) { if (!sConfigMgr->GetOption("EternalBond.Enable", true)) { handler->PSendSysMessage("The Eternal Bond module is currently disabled."); return true; } handler->PSendSysMessage("A matchmaker smiles knowingly: 'The rings aren't ready yet, but soon (TM).'"); return true; } }; class EternalBond_World : public WorldScript { public: EternalBond_World() : WorldScript("EternalBond_World") { } void OnStartup() override { LOG_INFO("server.loading", "mod-eternal-bond: loaded (v0 hello-world stub, enabled={}).", sConfigMgr->GetOption("EternalBond.Enable", true)); } }; void AddSC_mod_eternal_bond() { new EternalBondCommandScript(); new EternalBond_World(); }