mirror of
https://github.com/mod-playerbots/azerothcore-wotlk.git
synced 2026-01-13 09:17:18 +00:00
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:
@@ -0,0 +1,9 @@
|
||||
--
|
||||
DELETE FROM `command` WHERE `name`='aura stack';
|
||||
INSERT INTO `command` VALUES ('aura stack', 2, 'Syntax: .aurastack #spellid #stacks\r\n\r\nModify #stacks of an already applied #spellid to the selected Unit.');
|
||||
|
||||
DELETE FROM `acore_string` WHERE `entry` IN (373,374,375);
|
||||
INSERT INTO `acore_string` (`entry`, `content_default`) VALUES
|
||||
(373, 'Target unit does not have aura {}!'),
|
||||
(374, 'No stack amount specified!'),
|
||||
(375, 'Spell {} cannot have stacks!');
|
||||
@@ -415,7 +415,12 @@ enum AcoreStrings
|
||||
LANG_COMMAND_RESET_ITEMS_ALL_BAGS = 372,
|
||||
// [END] reset items command strings
|
||||
|
||||
// Room for more level 2 373-399 not used
|
||||
// .aura stack
|
||||
LANG_COMMAND_AURASTACK_NO_AURA = 373,
|
||||
LANG_COMMAND_AURASTACK_NO_STACK = 374,
|
||||
LANG_COMMAND_AURASTACK_CANT_STACK = 375,
|
||||
|
||||
// Room for more level 2 376-399 not used
|
||||
|
||||
// level 3 chat
|
||||
LANG_SCRIPTS_RELOADED = 400,
|
||||
|
||||
@@ -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();
|
||||
|
||||
Reference in New Issue
Block a user