summaryrefslogtreecommitdiff
path: root/src/server/scripts/Commands
diff options
context:
space:
mode:
authoravarishd <46330494+avarishd@users.noreply.github.com>2024-07-27 02:00:37 +0300
committerGitHub <noreply@github.com>2024-07-26 20:00:37 -0300
commit6e0853dd764aef5bcfabc12cdfcb62586b452e98 (patch)
tree1f72fe05a572f7f0c1db9c795ebf932eeef78947 /src/server/scripts/Commands
parentdc3dfd3ab0108ce1682727f69a1b8c31d8e293bc (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.cpp55
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();