diff options
author | CraftedRO <24683355+CraftedRO@users.noreply.github.com> | 2021-04-04 23:01:46 +0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-04-04 22:01:46 +0200 |
commit | db69b832b9d5da1f755824a36fed37b1b4e39dcd (patch) | |
tree | 128ca40b09a29da066312661e6558d25ee5c13bc /src | |
parent | 00da074109e713280264761eedfbf6e5dc7ef912 (diff) |
Group repair command attempt (#26304)
* Group repair command attempt
* Update cs_group.cpp
Diffstat (limited to 'src')
-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 94d090b12d7..f9b36afb67e 100644 --- a/src/server/scripts/Commands/cs_group.cpp +++ b/src/server/scripts/Commands/cs_group.cpp @@ -61,6 +61,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, "" } }; @@ -139,6 +140,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) { |