diff options
| author | avarishd <46330494+avarishd@users.noreply.github.com> | 2024-07-27 02:00:37 +0300 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-07-26 20:00:37 -0300 |
| commit | 6e0853dd764aef5bcfabc12cdfcb62586b452e98 (patch) | |
| tree | 1f72fe05a572f7f0c1db9c795ebf932eeef78947 /src/server/scripts/Commands | |
| parent | dc3dfd3ab0108ce1682727f69a1b8c31d8e293bc (diff) | |
feat(Scripts/Commands): .aura stack - Modify aura stacks (#19462)
* feat(Scripts/Commands): .aurastack - Modify aura stacks
* aura stack
* remove aur check
* {}
Co-authored-by: Kitzunu <24550914+Kitzunu@users.noreply.github.com>
---------
Co-authored-by: Kitzunu <24550914+Kitzunu@users.noreply.github.com>
Diffstat (limited to 'src/server/scripts/Commands')
| -rw-r--r-- | src/server/scripts/Commands/cs_misc.cpp | 55 |
1 files changed, 53 insertions, 2 deletions
diff --git a/src/server/scripts/Commands/cs_misc.cpp b/src/server/scripts/Commands/cs_misc.cpp index 41e1168fac..572bc3376f 100644 --- a/src/server/scripts/Commands/cs_misc.cpp +++ b/src/server/scripts/Commands/cs_misc.cpp @@ -87,12 +87,18 @@ public: ChatCommandTable GetCommands() const override { + static ChatCommandTable auraCommandTable = + { + { "stack", HandleAuraStacksCommand, SEC_GAMEMASTER, Console::No }, + { "", HandleAuraCommand, SEC_GAMEMASTER, Console::No } + }; + static ChatCommandTable commandTable = { { "commentator", HandleCommentatorCommand, SEC_MODERATOR, Console::No }, { "dev", HandleDevCommand, SEC_ADMINISTRATOR, Console::No }, { "gps", HandleGPSCommand, SEC_MODERATOR, Console::No }, - { "aura", HandleAuraCommand, SEC_GAMEMASTER, Console::No }, + { "aura", auraCommandTable }, { "unaura", HandleUnAuraCommand, SEC_GAMEMASTER, Console::No }, { "appear", HandleAppearCommand, SEC_MODERATOR, Console::No }, { "summon", HandleSummonCommand, SEC_GAMEMASTER, Console::No }, @@ -129,7 +135,7 @@ public: { "cometome", HandleComeToMeCommand, SEC_ADMINISTRATOR, Console::No }, { "damage", HandleDamageCommand, SEC_GAMEMASTER, Console::No }, { "combatstop", HandleCombatStopCommand, SEC_GAMEMASTER, Console::Yes }, - { "flusharenapoints", HandleFlushArenaPointsCommand, SEC_ADMINISTRATOR, Console::Yes }, + { "flusharenapoints", HandleFlushArenaPointsCommand, SEC_ADMINISTRATOR, Console::Yes }, { "freeze", HandleFreezeCommand, SEC_GAMEMASTER, Console::No }, { "unfreeze", HandleUnFreezeCommand, SEC_GAMEMASTER, Console::No }, { "possess", HandlePossessCommand, SEC_GAMEMASTER, Console::No }, @@ -653,6 +659,51 @@ public: return true; } + static bool HandleAuraStacksCommand(ChatHandler* handler, SpellInfo const* spell, int16 stacks) + { + if (!spell) + { + handler->SendErrorMessage(LANG_COMMAND_NOSPELLFOUND); + return false; + } + + if (!SpellMgr::IsSpellValid(spell)) + { + handler->SendErrorMessage(LANG_COMMAND_SPELL_BROKEN, spell->Id); + return false; + } + + if (!stacks) + { + handler->SendErrorMessage(LANG_COMMAND_AURASTACK_NO_STACK); + return false; + } + + Unit* target = handler->getSelectedUnit(); + if (!target) + { + handler->SendErrorMessage(LANG_SELECT_CHAR_OR_CREATURE); + return false; + } + + Aura* aur = target->GetAura(spell->Id); + if (!aur) + { + handler->SendErrorMessage(LANG_COMMAND_AURASTACK_NO_AURA, spell->Id); + return false; + } + + if (!spell->StackAmount) + { + handler->SendErrorMessage(LANG_COMMAND_AURASTACK_CANT_STACK, spell->Id); + return false; + } + + aur->ModStackAmount(stacks); + + return true; + } + static bool HandleUnAuraCommand(ChatHandler* handler, Variant<SpellInfo const*, std::string_view> spells) { Unit* target = handler->getSelectedUnit(); |
