diff options
Diffstat (limited to 'src/server/scripts/Commands')
-rw-r--r-- | src/server/scripts/Commands/cs_group.cpp | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/src/server/scripts/Commands/cs_group.cpp b/src/server/scripts/Commands/cs_group.cpp index 09ee1c5caca..d478ee4933f 100644 --- a/src/server/scripts/Commands/cs_group.cpp +++ b/src/server/scripts/Commands/cs_group.cpp @@ -63,6 +63,7 @@ public: { "list", rbac::RBAC_PERM_COMMAND_GROUP_LIST, false, &HandleGroupListCommand, "" }, { "summon", rbac::RBAC_PERM_COMMAND_GROUP_SUMMON, false, &HandleGroupSummonCommand, "" }, { "revive", rbac::RBAC_PERM_COMMAND_REVIVE, true, &HandleGroupReviveCommand, "" }, + { "repair", rbac::RBAC_PERM_COMMAND_REPAIRITEMS, true, &HandleGroupRepairCommand, "" }, { "level", rbac::RBAC_PERM_COMMAND_CHARACTER_LEVEL, true, &HandleGroupLevelCommand, "" } }; @@ -141,6 +142,30 @@ public: return true; } + // Repair group of players + static bool HandleGroupRepairCommand(ChatHandler* handler, char const* args) + { + Player* playerTarget; + ObjectGuid playerTargetGuid; + if (!handler->extractPlayerTarget((char*)args, &playerTarget, &playerTargetGuid)) + return false; + + Group* groupTarget = playerTarget->GetGroup(); + if (!groupTarget) + return false; + + for (GroupReference* it = groupTarget->GetFirstMember(); it != nullptr; it = it->next()) + { + Player* target = it->GetSource(); + if (target) + { + target->DurabilityRepairAll(false, 0, false); + } + } + + return true; + } + // Summon group of player static bool HandleGroupSummonCommand(ChatHandler* handler, char const* args) { |