diff options
author | Jakub Cieplinski <cieplinski.jakubsp@gmail.com> | 2021-02-27 14:04:07 +0100 |
---|---|---|
committer | Shauren <shauren.trinity@gmail.com> | 2022-03-06 23:25:54 +0100 |
commit | 95ccf9fc15a937c36b2e614f9993e74ecab3e97c (patch) | |
tree | 05c6a0dc6369ee4c76fa1e18229227046dee2f89 | |
parent | 3084b08694e26ae178e1885e4da51403c2a93222 (diff) |
Revive all command (#26127)
* First version of command handler
* Done HandleReviveAllCommand
* Moved command to group subcommonads
* removed empty row
* nullptr check for player target
(cherry picked from commit 97e41645d3dac259b53f2c82ed9eca3d71b1d7ee)
-rw-r--r-- | src/server/scripts/Commands/cs_group.cpp | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/src/server/scripts/Commands/cs_group.cpp b/src/server/scripts/Commands/cs_group.cpp index c5d1c6a8f09..5f704e3b87b 100644 --- a/src/server/scripts/Commands/cs_group.cpp +++ b/src/server/scripts/Commands/cs_group.cpp @@ -59,6 +59,7 @@ public: { "join", rbac::RBAC_PERM_COMMAND_GROUP_JOIN, false, &HandleGroupJoinCommand, "" }, { "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, "" } }; static std::vector<ChatCommand> commandTable = @@ -68,6 +69,31 @@ public: return commandTable; } + static bool HandleGroupReviveCommand(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->ResurrectPlayer(target->GetSession()->HasPermission(rbac::RBAC_PERM_RESURRECT_WITH_FULL_HPS) ? 1.0f : 0.5f); + target->SpawnCorpseBones(); + target->SaveToDB(); + } + } + + return true; + } + // Summon group of player static bool HandleGroupSummonCommand(ChatHandler* handler, char const* args) { |