aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/server/scripts/Commands/cs_group.cpp25
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)
{