aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJakub Cieplinski <cieplinski.jakubsp@gmail.com>2021-02-27 14:04:07 +0100
committerShauren <shauren.trinity@gmail.com>2022-03-06 23:25:54 +0100
commit95ccf9fc15a937c36b2e614f9993e74ecab3e97c (patch)
tree05c6a0dc6369ee4c76fa1e18229227046dee2f89
parent3084b08694e26ae178e1885e4da51403c2a93222 (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.cpp26
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)
{