From 36f8497aec6b0fc1768e8d552ea3b534784c1588 Mon Sep 17 00:00:00 2001 From: Shauren Date: Tue, 10 Mar 2026 14:07:31 +0100 Subject: [PATCH] Scripts/Commands: Add .debug modifiertree command --- .../world/master/2026_03_10_00_world.sql | 5 ++++ src/server/scripts/Commands/cs_debug.cpp | 24 +++++++++++++++++-- 2 files changed, 27 insertions(+), 2 deletions(-) create mode 100644 sql/updates/world/master/2026_03_10_00_world.sql diff --git a/sql/updates/world/master/2026_03_10_00_world.sql b/sql/updates/world/master/2026_03_10_00_world.sql new file mode 100644 index 0000000000..c464d7ddf1 --- /dev/null +++ b/sql/updates/world/master/2026_03_10_00_world.sql @@ -0,0 +1,5 @@ +DELETE FROM `command` WHERE `name` IN ('debug modifiertree','debug playercondition','debug wsexpression'); +INSERT INTO `command` (`name`, `help`) VALUES +('debug modifiertree', 'Syntax: .debug modifiertree #modifierTreeId\r\n\r\nChecks if ModifierTree #modifierTreeId conditions are met for targeted player.'), +('debug playercondition', 'Syntax: .debug playercondition #playerConditionId\r\n\r\nChecks if PlayerCondition #playerConditionId condition is met for targeted player.'), +('debug wsexpression', 'Syntax: .debug wsexpression #worldStateExpressionId\r\n\r\nChecks if WorldStateExpression #worldStateExpressionId condition is met on current map.'); diff --git a/src/server/scripts/Commands/cs_debug.cpp b/src/server/scripts/Commands/cs_debug.cpp index fd9e47cc52..c46687262e 100644 --- a/src/server/scripts/Commands/cs_debug.cpp +++ b/src/server/scripts/Commands/cs_debug.cpp @@ -120,6 +120,7 @@ public: { "neargraveyard", HandleDebugNearGraveyard, rbac::RBAC_PERM_COMMAND_DEBUG, Console::No }, { "instancespawn", HandleDebugInstanceSpawns, rbac::RBAC_PERM_COMMAND_DEBUG, Console::No }, { "conversation", HandleDebugConversationCommand, rbac::RBAC_PERM_COMMAND_DEBUG, Console::No }, + { "modifiertree", HandleDebugModifierTreeCommand, rbac::RBAC_PERM_COMMAND_DEBUG, Console::No }, { "wsexpression", HandleDebugWSExpressionCommand, rbac::RBAC_PERM_COMMAND_DEBUG, Console::No }, { "playercondition", HandleDebugPlayerConditionCommand, rbac::RBAC_PERM_COMMAND_DEBUG, Console::No }, { "pvp warmode", HandleDebugWarModeBalanceCommand, rbac::RBAC_PERM_COMMAND_DEBUG, Console::Yes }, @@ -1589,6 +1590,25 @@ public: return Conversation::CreateConversation(conversationEntry, target, *target, target->GetGUID()) != nullptr; } + static bool HandleDebugModifierTreeCommand(ChatHandler* handler, uint32 modifierTreeId) + { + Player* target = handler->getSelectedPlayerOrSelf(); + + if (!target) + { + handler->SendSysMessage(LANG_PLAYER_NOT_FOUND); + handler->SetSentErrorMessage(true); + return false; + } + + if (target->ModifierTreeSatisfied(modifierTreeId)) + handler->PSendSysMessage("ModifierTree %u met", modifierTreeId); + else + handler->PSendSysMessage("ModifierTree %u not met", modifierTreeId); + + return true; + } + static bool HandleDebugWSExpressionCommand(ChatHandler* handler, uint32 expressionId) { Player* target = handler->getSelectedPlayerOrSelf(); @@ -1605,9 +1625,9 @@ public: return false; if (ConditionMgr::IsMeetingWorldStateExpression(target->GetMap(), wsExpressionEntry)) - handler->PSendSysMessage("Expression %u meet", expressionId); + handler->PSendSysMessage("WorldStateExpression %u met", expressionId); else - handler->PSendSysMessage("Expression %u not meet", expressionId); + handler->PSendSysMessage("WorldStateExpression %u not met", expressionId); return true; }