aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Handlers/GroupHandler.cpp
diff options
context:
space:
mode:
authorShauren <shauren.trinity@gmail.com>2024-08-02 13:25:41 +0200
committerShauren <shauren.trinity@gmail.com>2024-08-02 13:25:41 +0200
commite59eef5432c7b70679d33f4911c88d0f7d75fd39 (patch)
treefe9bce9c82496589facec3719b3f2943d8295e76 /src/server/game/Handlers/GroupHandler.cpp
parent7fb9168d57f378075b0f6692ea7ad822c1d8e43d (diff)
Core/PacketIO: Updated to 11.0.0
Diffstat (limited to 'src/server/game/Handlers/GroupHandler.cpp')
-rw-r--r--src/server/game/Handlers/GroupHandler.cpp24
1 files changed, 21 insertions, 3 deletions
diff --git a/src/server/game/Handlers/GroupHandler.cpp b/src/server/game/Handlers/GroupHandler.cpp
index f9ad1daa6f1..a1cc44531c2 100644
--- a/src/server/game/Handlers/GroupHandler.cpp
+++ b/src/server/game/Handlers/GroupHandler.cpp
@@ -20,6 +20,7 @@
#include "DatabaseEnv.h"
#include "Group.h"
#include "GroupMgr.h"
+#include "LFG.h"
#include "Log.h"
#include "Loot.h"
#include "MiscPackets.h"
@@ -664,8 +665,24 @@ bool CanSendPing(Player const& player, PingSubjectType type, Group const*& group
if (!group)
return false;
- if (group->IsRestrictPingsToAssistants() && !group->IsLeader(player.GetGUID()) && !group->IsAssistant(player.GetGUID()))
- return false;
+ if (group->IsLeader(player.GetGUID()))
+ return true;
+
+ switch (group->GetRestrictPings())
+ {
+ case RestrictPingsTo::None:
+ return true;
+ case RestrictPingsTo::Lead:
+ return false;
+ case RestrictPingsTo::Assist:
+ if (!group->IsAssistant(player.GetGUID()))
+ return false;
+ break;
+ case RestrictPingsTo::TankHealer:
+ if (!(group->GetLfgRoles(player.GetGUID()) & (lfg::PLAYER_ROLE_TANK | lfg::PLAYER_ROLE_HEALER)))
+ return false;
+ break;
+ }
return true;
}
@@ -680,7 +697,7 @@ void WorldSession::HandleSetRestrictPingsToAssistants(WorldPackets::Party::SetRe
if (!group->IsLeader(GetPlayer()->GetGUID()))
return;
- group->SetRestrictPingsToAssistants(setRestrictPingsToAssistants.RestrictPingsToAssistants);
+ group->SetRestrictPingsTo(setRestrictPingsToAssistants.RestrictTo);
}
void WorldSession::HandleSendPingUnit(WorldPackets::Party::SendPingUnit const& pingUnit)
@@ -725,6 +742,7 @@ void WorldSession::HandleSendPingWorldPoint(WorldPackets::Party::SendPingWorldPo
broadcastPingWorldPoint.Point = pingWorldPoint.Point;
broadcastPingWorldPoint.Type = pingWorldPoint.Type;
broadcastPingWorldPoint.PinFrameID = pingWorldPoint.PinFrameID;
+ broadcastPingWorldPoint.Transport = pingWorldPoint.Transport;
broadcastPingWorldPoint.Write();
for (GroupReference const* itr = group->GetFirstMember(); itr != nullptr; itr = itr->next())