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,
|
LANG_COMMAND_RESET_ITEMS_ALL_BAGS = 372,
|
||||||
// [END] reset items command strings
|
// [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
|
// level 3 chat
|
||||||
LANG_SCRIPTS_RELOADED = 400,
|
LANG_SCRIPTS_RELOADED = 400,
|
||||||
|
|||||||
@@ -87,12 +87,18 @@ public:
|
|||||||
|
|
||||||
ChatCommandTable GetCommands() const override
|
ChatCommandTable GetCommands() const override
|
||||||
{
|
{
|
||||||
|
static ChatCommandTable auraCommandTable =
|
||||||
|
{
|
||||||
|
{ "stack", HandleAuraStacksCommand, SEC_GAMEMASTER, Console::No },
|
||||||
|
{ "", HandleAuraCommand, SEC_GAMEMASTER, Console::No }
|
||||||
|
};
|
||||||
|
|
||||||
static ChatCommandTable commandTable =
|
static ChatCommandTable commandTable =
|
||||||
{
|
{
|
||||||
{ "commentator", HandleCommentatorCommand, SEC_MODERATOR, Console::No },
|
{ "commentator", HandleCommentatorCommand, SEC_MODERATOR, Console::No },
|
||||||
{ "dev", HandleDevCommand, SEC_ADMINISTRATOR, Console::No },
|
{ "dev", HandleDevCommand, SEC_ADMINISTRATOR, Console::No },
|
||||||
{ "gps", HandleGPSCommand, SEC_MODERATOR, Console::No },
|
{ "gps", HandleGPSCommand, SEC_MODERATOR, Console::No },
|
||||||
{ "aura", HandleAuraCommand, SEC_GAMEMASTER, Console::No },
|
{ "aura", auraCommandTable },
|
||||||
{ "unaura", HandleUnAuraCommand, SEC_GAMEMASTER, Console::No },
|
{ "unaura", HandleUnAuraCommand, SEC_GAMEMASTER, Console::No },
|
||||||
{ "appear", HandleAppearCommand, SEC_MODERATOR, Console::No },
|
{ "appear", HandleAppearCommand, SEC_MODERATOR, Console::No },
|
||||||
{ "summon", HandleSummonCommand, SEC_GAMEMASTER, Console::No },
|
{ "summon", HandleSummonCommand, SEC_GAMEMASTER, Console::No },
|
||||||
@@ -653,6 +659,51 @@ public:
|
|||||||
return true;
|
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)
|
static bool HandleUnAuraCommand(ChatHandler* handler, Variant<SpellInfo const*, std::string_view> spells)
|
||||||
{
|
{
|
||||||
Unit* target = handler->getSelectedUnit();
|
Unit* target = handler->getSelectedUnit();
|
||||||
|
|||||||
Reference in New Issue
Block a user