mirror of
https://github.com/TrinityCore/TrinityCore.git
synced 2026-01-15 23:20:36 +01:00
Core/PacketIO: Updated and enabled CMSG_SET_PARTY_ASSIGNMENT
This commit is contained in:
@@ -524,10 +524,8 @@ void WorldSession::HandleSetAssistantLeaderOpcode(WorldPackets::Party::SetAssist
|
||||
group->SetGroupMemberFlag(packet.Target, packet.Apply, MEMBER_FLAG_ASSISTANT);
|
||||
}
|
||||
|
||||
void WorldSession::HandlePartyAssignmentOpcode(WorldPacket& recvData)
|
||||
void WorldSession::HandleSetPartyAssignment(WorldPackets::Party::SetPartyAssignment& packet)
|
||||
{
|
||||
TC_LOG_DEBUG("network", "WORLD: Received MSG_PARTY_ASSIGNMENT");
|
||||
|
||||
Group* group = GetPlayer()->GetGroup();
|
||||
if (!group)
|
||||
return;
|
||||
@@ -536,21 +534,15 @@ void WorldSession::HandlePartyAssignmentOpcode(WorldPacket& recvData)
|
||||
if (!group->IsLeader(senderGuid) && !group->IsAssistant(senderGuid))
|
||||
return;
|
||||
|
||||
uint8 assignment;
|
||||
bool apply;
|
||||
ObjectGuid guid;
|
||||
recvData >> assignment >> apply;
|
||||
recvData >> guid;
|
||||
|
||||
switch (assignment)
|
||||
switch (packet.Assignment)
|
||||
{
|
||||
case GROUP_ASSIGN_MAINASSIST:
|
||||
group->RemoveUniqueGroupMemberFlag(MEMBER_FLAG_MAINASSIST);
|
||||
group->SetGroupMemberFlag(guid, apply, MEMBER_FLAG_MAINASSIST);
|
||||
group->SetGroupMemberFlag(packet.Target, packet.Set, MEMBER_FLAG_MAINASSIST);
|
||||
break;
|
||||
case GROUP_ASSIGN_MAINTANK:
|
||||
group->RemoveUniqueGroupMemberFlag(MEMBER_FLAG_MAINTANK); // Remove main assist flag from current if any.
|
||||
group->SetGroupMemberFlag(guid, apply, MEMBER_FLAG_MAINTANK);
|
||||
group->SetGroupMemberFlag(packet.Target, packet.Set, MEMBER_FLAG_MAINTANK);
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -163,6 +163,15 @@ void WorldPackets::Party::SetPartyLeader::Read()
|
||||
_worldPacket >> TargetGUID;
|
||||
}
|
||||
|
||||
void WorldPackets::Party::SetPartyAssignment::Read()
|
||||
{
|
||||
_worldPacket >> PartyIndex;
|
||||
_worldPacket >> Assignment;
|
||||
_worldPacket >> Target;
|
||||
Set = _worldPacket.ReadBit();
|
||||
}
|
||||
|
||||
|
||||
void WorldPackets::Party::SetRole::Read()
|
||||
{
|
||||
_worldPacket >> PartyIndex;
|
||||
|
||||
@@ -362,6 +362,18 @@ namespace WorldPackets
|
||||
bool Apply = false;
|
||||
};
|
||||
|
||||
class SetPartyAssignment final : public ClientPacket
|
||||
{
|
||||
public:
|
||||
SetPartyAssignment(WorldPacket&& packet) : ClientPacket(CMSG_SET_PARTY_ASSIGNMENT, std::move(packet)) { }
|
||||
|
||||
void Read() override;
|
||||
uint8 Assignment = 0;
|
||||
uint8 PartyIndex = 0;
|
||||
ObjectGuid Target;
|
||||
bool Set = false;
|
||||
};
|
||||
|
||||
class DoReadyCheck final : public ClientPacket
|
||||
{
|
||||
public:
|
||||
|
||||
@@ -691,7 +691,7 @@ void OpcodeTable::Initialize()
|
||||
DEFINE_HANDLER(CMSG_SET_LFG_BONUS_FACTION_ID, STATUS_UNHANDLED, PROCESS_INPLACE, WorldPackets::Null, &WorldSession::Handle_NULL);
|
||||
DEFINE_HANDLER(CMSG_SET_LOOT_METHOD, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, WorldPackets::Party::SetLootMethod, &WorldSession::HandleSetLootMethodOpcode);
|
||||
DEFINE_HANDLER(CMSG_SET_LOOT_SPECIALIZATION, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, WorldPackets::Loot::SetLootSpecialization, &WorldSession::HandleSetLootSpecialization);
|
||||
DEFINE_OPCODE_HANDLER_OLD(CMSG_SET_PARTY_ASSIGNMENT, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandlePartyAssignmentOpcode );
|
||||
DEFINE_HANDLER(CMSG_SET_PARTY_ASSIGNMENT, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, WorldPackets::Party::SetPartyAssignment, &WorldSession::HandleSetPartyAssignment);
|
||||
DEFINE_HANDLER(CMSG_SET_PARTY_LEADER, STATUS_LOGGEDIN, PROCESS_INPLACE, WorldPackets::Party::SetPartyLeader, &WorldSession::HandleSetPartyLeaderOpcode);
|
||||
DEFINE_HANDLER(CMSG_SET_PET_SLOT, STATUS_UNHANDLED, PROCESS_INPLACE, WorldPackets::Null, &WorldSession::Handle_NULL);
|
||||
DEFINE_OPCODE_HANDLER_OLD(CMSG_SET_PLAYER_DECLINED_NAMES, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleSetPlayerDeclinedNames );
|
||||
|
||||
@@ -450,6 +450,7 @@ namespace WorldPackets
|
||||
class RequestPartyMemberStats;
|
||||
class PartyMemberStats;
|
||||
class SetPartyLeader;
|
||||
class SetPartyAssignment;
|
||||
class SetRole;
|
||||
class RoleChangedInform;
|
||||
class SetLootMethod;
|
||||
@@ -1227,7 +1228,7 @@ class WorldSession
|
||||
void HandleChangeSubGroupOpcode(WorldPackets::Party::ChangeSubGroup& packet);
|
||||
void HandleSwapSubGroupsOpcode(WorldPackets::Party::SwapSubGroups& packet);
|
||||
void HandleSetAssistantLeaderOpcode(WorldPackets::Party::SetAssistantLeader& packet);
|
||||
void HandlePartyAssignmentOpcode(WorldPacket& recvData);
|
||||
void HandleSetPartyAssignment(WorldPackets::Party::SetPartyAssignment& packet);
|
||||
void HandleInitiateRolePoll(WorldPackets::Party::InitiateRolePoll& packet);
|
||||
void HandleSetEveryoneIsAssistant(WorldPackets::Party::SetEveryoneIsAssistant& packet);
|
||||
void HandleClearRaidMarker(WorldPackets::Party::ClearRaidMarker& packet);
|
||||
|
||||
Reference in New Issue
Block a user