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>
This commit is contained in:
avarishd
2024-07-27 02:00:37 +03:00
committed by GitHub
parent dc3dfd3ab0
commit 6e0853dd76
3 changed files with 68 additions and 3 deletions

View File

@@ -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();