diff options
-rw-r--r-- | src/server/game/Chat/Channels/Channel.cpp | 40 | ||||
-rw-r--r-- | src/server/game/Server/Packets/ChannelPackets.h | 10 | ||||
-rw-r--r-- | src/server/game/Server/WorldSession.h | 3 |
3 files changed, 30 insertions, 23 deletions
diff --git a/src/server/game/Chat/Channels/Channel.cpp b/src/server/game/Chat/Channels/Channel.cpp index 04b6eb1b5b1..2ac84063664 100644 --- a/src/server/game/Chat/Channels/Channel.cpp +++ b/src/server/game/Chat/Channels/Channel.cpp @@ -990,32 +990,42 @@ void Channel::MakeVoiceOff(WorldPackets::Channel::ChannelNotify& data, ObjectGui void Channel::JoinNotify(Player const* player) { ObjectGuid const& guid = player->GetGUID(); - WorldPacket data(IsConstant() ? SMSG_USERLIST_ADD : SMSG_USERLIST_UPDATE, 8 + 1 + 1 + 4 + GetName().size()); - data << guid; - data << uint8(GetPlayerFlags(guid)); - data << uint8(GetFlags()); - data << uint32(GetNumPlayers()); - data << GetName(); if (IsConstant()) - SendToAllButOne(&data, guid); + { + WorldPackets::Channel::UserlistAdd userlistAdd; + userlistAdd.AddedUserGUID = guid; + userlistAdd.ChannelFlags = GetFlags(); + userlistAdd.UserFlags = GetPlayerFlags(guid); + userlistAdd.ChannelID = GetChannelId(); + userlistAdd.ChannelName = GetName(); + SendToAllButOne(userlistAdd.Write(), guid); + } else - SendToAll(&data); + { + WorldPackets::Channel::UserlistUpdate userlistUpdate; + userlistUpdate.UpdatedUserGUID = guid; + userlistUpdate.ChannelFlags = GetFlags(); + userlistUpdate.UserFlags = GetPlayerFlags(guid); + userlistUpdate.ChannelID = GetChannelId(); + userlistUpdate.ChannelName = GetName(); + SendToAll(userlistUpdate.Write()); + } } void Channel::LeaveNotify(Player const* player) { ObjectGuid const& guid = player->GetGUID(); - WorldPacket data(SMSG_USERLIST_REMOVE, 8 + 1 + 4 + GetName().size()); - data << guid; - data << uint8(GetFlags()); - data << uint32(GetNumPlayers()); - data << GetName(); + WorldPackets::Channel::UserlistRemove userlistRemove; + userlistRemove.RemovedUserGUID = guid; + userlistRemove.ChannelFlags = GetFlags(); + userlistRemove.ChannelID = GetChannelId(); + userlistRemove.ChannelName = GetName(); if (IsConstant()) - SendToAllButOne(&data, guid); + SendToAllButOne(userlistRemove.Write(), guid); else - SendToAll(&data); + SendToAll(userlistRemove.Write()); } void Channel::SetModerator(ObjectGuid const& guid, bool set) diff --git a/src/server/game/Server/Packets/ChannelPackets.h b/src/server/game/Server/Packets/ChannelPackets.h index 6c43588e86a..8dba1e84677 100644 --- a/src/server/game/Server/Packets/ChannelPackets.h +++ b/src/server/game/Server/Packets/ChannelPackets.h @@ -104,8 +104,8 @@ namespace WorldPackets ObjectGuid AddedUserGUID; - ChannelFlags ChannelFlags = CHANNEL_FLAG_NONE; - ChannelMemberFlags UserFlags = MEMBER_FLAG_NONE; + uint8 ChannelFlags = CHANNEL_FLAG_NONE; + uint8 UserFlags = MEMBER_FLAG_NONE; int32 ChannelID = 0; @@ -121,7 +121,7 @@ namespace WorldPackets ObjectGuid RemovedUserGUID; - ChannelFlags ChannelFlags = CHANNEL_FLAG_NONE; + uint8 ChannelFlags = CHANNEL_FLAG_NONE; uint32 ChannelID = 0; @@ -137,8 +137,8 @@ namespace WorldPackets ObjectGuid UpdatedUserGUID; - ChannelFlags ChannelFlags = CHANNEL_FLAG_NONE; - ChannelMemberFlags UserFlags = MEMBER_FLAG_NONE; + uint8 ChannelFlags = CHANNEL_FLAG_NONE; + uint8 UserFlags = MEMBER_FLAG_NONE; int32 ChannelID = 0; diff --git a/src/server/game/Server/WorldSession.h b/src/server/game/Server/WorldSession.h index 6cfa8202af4..bd4fefdd665 100644 --- a/src/server/game/Server/WorldSession.h +++ b/src/server/game/Server/WorldSession.h @@ -171,9 +171,6 @@ namespace WorldPackets class ChannelPlayerCommand; class JoinChannel; class LeaveChannel; - class UserlistAdd; - class UserlistRemove; - class UserlistUpdate; } namespace Chat |