aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/server/scripts/Commands/cs_misc.cpp39
1 files changed, 39 insertions, 0 deletions
diff --git a/src/server/scripts/Commands/cs_misc.cpp b/src/server/scripts/Commands/cs_misc.cpp
index f8c3f43d144..6323e486044 100644
--- a/src/server/scripts/Commands/cs_misc.cpp
+++ b/src/server/scripts/Commands/cs_misc.cpp
@@ -96,6 +96,7 @@ public:
{ "unstuck", rbac::RBAC_PERM_COMMAND_UNSTUCK, true, &HandleUnstuckCommand, "", NULL },
{ "wchange", rbac::RBAC_PERM_COMMAND_WCHANGE, false, &HandleChangeWeather, "", NULL },
{ "mailbox", rbac::RBAC_PERM_COMMAND_MAILBOX, false, &HandleMailBoxCommand, "", NULL },
+ { "auras ", rbac::RBAC_PERM_COMMAND_LIST_AURAS, false, &HandleAurasCommand, "", NULL },
{ NULL, 0, false, NULL, "", NULL }
};
return commandTable;
@@ -2597,6 +2598,44 @@ public:
handler->GetSession()->SendShowMailBox(player->GetGUID());
return true;
}
+
+ static bool HandleAurasCommand(ChatHandler* handler, char const* args)
+ {
+ Unit* target = handler->GetSession()->GetPlayer()->GetSelectedUnit();
+
+ if (!target)
+ {
+ handler->SendSysMessage(LANG_SELECT_CHAR_OR_CREATURE);
+ handler->SetSentErrorMessage(true);
+ return false;
+ }
+
+ Unit::AuraApplicationMap const& uAuras = target->GetAppliedAuras();
+ handler->PSendSysMessage(LANG_COMMAND_TARGET_LISTAURAS, uAuras.size());
+ for (Unit::AuraApplicationMap::const_iterator itr = uAuras.begin(); itr != uAuras.end(); ++itr)
+ {
+ AuraApplication const* aurApp = itr->second;
+ Aura const* aura = aurApp->GetBase();
+ char const* name = aura->GetSpellInfo()->SpellName;
+
+ bool self = target->GetGUID() == aura->GetCasterGUID();
+ if (self)
+ handler->PSendSysMessage("%u: %s (self)", aura->GetId(), name);
+ else
+ {
+ if (Unit* u = aura->GetCaster())
+ {
+ if (u->GetTypeId() == TYPEID_PLAYER)
+ handler->PSendSysMessage("%u: %s (player: %s)", aura->GetId(), name, u->GetName().c_str());
+ else if (u->GetTypeId() == TYPEID_UNIT)
+ handler->PSendSysMessage("%u: %s (creature: %s)", aura->GetId(), name, u->GetName().c_str());
+ }
+ else
+ handler->PSendSysMessage("%u: %s)", aura->GetId(), name);
+ }
+ }
+ return true;
+ }
};
void AddSC_misc_commandscript()