diff options
author | joschiwald <joschiwald.trinity@gmail.com> | 2015-01-02 02:20:40 +0100 |
---|---|---|
committer | joschiwald <joschiwald.trinity@gmail.com> | 2015-01-02 02:20:40 +0100 |
commit | a4afd80479a3cdb7938dd7dc091205118518b390 (patch) | |
tree | 89dacd948a12202513e4167a2a056c96e93ecbe7 /src | |
parent | ccc293931d00a192f9ff2a1302bd9cb51ad6778f (diff) |
Core/Packets: updated some channel moderation packets
- synch opcodes with wpp
Diffstat (limited to 'src')
22 files changed, 430 insertions, 537 deletions
diff --git a/src/server/game/Battlegrounds/BattlegroundMgr.cpp b/src/server/game/Battlegrounds/BattlegroundMgr.cpp index 23de59de0c4..9a6b1c3412e 100644 --- a/src/server/game/Battlegrounds/BattlegroundMgr.cpp +++ b/src/server/game/Battlegrounds/BattlegroundMgr.cpp @@ -162,7 +162,7 @@ void BattlegroundMgr::BuildBattlegroundStatusPacket(WorldPacket* data, Battlegro { case STATUS_NONE: { - data->Initialize(SMSG_BATTLEFIELD_STATUS); + data->Initialize(SMSG_BATTLEFIELD_STATUS_NONE); data->WriteBit(playerGuid[0]); data->WriteBit(playerGuid[4]); diff --git a/src/server/game/Chat/Channels/Channel.cpp b/src/server/game/Chat/Channels/Channel.cpp index ce5b8338b1f..04b6eb1b5b1 100644 --- a/src/server/game/Chat/Channels/Channel.cpp +++ b/src/server/game/Chat/Channels/Channel.cpp @@ -17,13 +17,14 @@ */ #include "Channel.h" +#include "AccountMgr.h" +#include "ChannelPackets.h" #include "Chat.h" +#include "DatabaseEnv.h" #include "ObjectMgr.h" +#include "Player.h" #include "SocialMgr.h" #include "World.h" -#include "DatabaseEnv.h" -#include "AccountMgr.h" -#include "Player.h" Channel::Channel(std::string const& name, uint32 channelId, uint32 team): _announce(true), @@ -726,6 +727,34 @@ void Channel::SetOwner(ObjectGuid const& guid, bool exclaim) } } +void Channel::SilenceAll(Player const* /*player*/, std::string const& /*name*/) +{ +} + +void Channel::SilenceVoice(Player const* /*player*/, std::string const& /*name*/) +{ +} + +void Channel::UnsilenceAll(Player const* /*player*/, std::string const& /*name*/) +{ +} + +void Channel::UnsilenceVoice(Player const* /*player*/, std::string const& /*name*/) +{ +} + +void Channel::DeclineInvite(Player const* /*player*/) +{ +} + +void Channel::Voice(Player const* /*player*/) +{ +} + +void Channel::DeVoice(Player const* /*player*/) +{ +} + void Channel::SendToAll(WorldPacket const* data, ObjectGuid const& guid) { for (PlayerContainer::value_type const& i : _playersStore) @@ -748,16 +777,6 @@ void Channel::SendToOne(WorldPacket const* data, ObjectGuid const& who) player->SendDirectMessage(data); } -void Channel::Voice(ObjectGuid const& /*guid1*/, ObjectGuid const& /*guid2*/) -{ - -} - -void Channel::DeVoice(ObjectGuid const& /*guid1*/, ObjectGuid const& /*guid2*/) -{ - -} - void Channel::MakeNotifyPacket(WorldPackets::Channel::ChannelNotify& data, uint8 notifyType) { data.Type = notifyType; @@ -998,3 +1017,29 @@ void Channel::LeaveNotify(Player const* player) else SendToAll(&data); } + +void Channel::SetModerator(ObjectGuid const& guid, bool set) +{ + if (_playersStore[guid].IsModerator() != set) + { + uint8 oldFlag = _playersStore[guid].GetFlags(); + _playersStore[guid].SetModerator(set); + + WorldPackets::Channel::ChannelNotify data; + MakeModeChange(data, guid, oldFlag, _playersStore[guid].GetFlags()); + SendToAll(data.Write()); + } +} + +void Channel::SetMute(ObjectGuid const& guid, bool set) +{ + if (_playersStore[guid].IsMuted() != set) + { + uint8 oldFlag = _playersStore[guid].GetFlags(); + _playersStore[guid].SetMuted(set); + + WorldPackets::Channel::ChannelNotify data; + MakeModeChange(data, guid, oldFlag, _playersStore[guid].GetFlags()); + SendToAll(data.Write()); + } +} diff --git a/src/server/game/Chat/Channels/Channel.h b/src/server/game/Chat/Channels/Channel.h index 9f5b9750699..c1b39b0938a 100644 --- a/src/server/game/Chat/Channels/Channel.h +++ b/src/server/game/Chat/Channels/Channel.h @@ -21,12 +21,16 @@ #include "Common.h" -#include "WorldSession.h" - -#include "Packets/ChannelPackets.h" - class Player; +namespace WorldPackets +{ + namespace Channel + { + class ChannelNotify; + } +} + enum ChatNotify { CHAT_JOINED_NOTICE = 0x00, //+ "%s joined channel."; @@ -187,12 +191,17 @@ class Channel void UnsetModerator(Player const* player, std::string const& newname) { SetMode(player, newname, true, false); } void SetMute(Player const* player, std::string const& newname) { SetMode(player, newname, false, true); } void UnsetMute(Player const* player, std::string const& newname) { SetMode(player, newname, false, false); } + void SilenceAll(Player const* player, std::string const& name); + void SilenceVoice(Player const* player, std::string const& name); + void UnsilenceAll(Player const* player, std::string const& name); + void UnsilenceVoice(Player const* player, std::string const& name); void List(Player const* player); void Announce(Player const* player); void Say(ObjectGuid const& guid, std::string const& what, uint32 lang); + void DeclineInvite(Player const* player); void Invite(Player const* player, std::string const& newp); - void Voice(ObjectGuid const& guid1, ObjectGuid const& guid2); - void DeVoice(ObjectGuid const& guid1, ObjectGuid const& guid2); + void Voice(Player const* player); + void DeVoice(Player const* player); void JoinNotify(Player const* player); void LeaveNotify(Player const* player); void SetOwnership(bool ownership) { _ownership = ownership; }; @@ -253,31 +262,8 @@ class Channel return itr != _playersStore.end() ? itr->second.GetFlags() : 0; } - void SetModerator(ObjectGuid const& guid, bool set) - { - if (_playersStore[guid].IsModerator() != set) - { - uint8 oldFlag = _playersStore[guid].GetFlags(); - _playersStore[guid].SetModerator(set); - - WorldPackets::Channel::ChannelNotify data; - MakeModeChange(data, guid, oldFlag, _playersStore[guid].GetFlags()); - SendToAll(data.Write()); - } - } - - void SetMute(ObjectGuid const& guid, bool set) - { - if (_playersStore[guid].IsMuted() != set) - { - uint8 oldFlag = _playersStore[guid].GetFlags(); - _playersStore[guid].SetMuted(set); - - WorldPackets::Channel::ChannelNotify data; - MakeModeChange(data, guid, oldFlag, _playersStore[guid].GetFlags()); - SendToAll(data.Write()); - } - } + void SetModerator(ObjectGuid const& guid, bool set); + void SetMute(ObjectGuid const& guid, bool set); typedef std::map<ObjectGuid, PlayerInfo> PlayerContainer; typedef GuidSet BannedContainer; diff --git a/src/server/game/Chat/Channels/ChannelMgr.cpp b/src/server/game/Chat/Channels/ChannelMgr.cpp index 2560fe6e807..fdf0285dee6 100644 --- a/src/server/game/Chat/Channels/ChannelMgr.cpp +++ b/src/server/game/Chat/Channels/ChannelMgr.cpp @@ -17,6 +17,7 @@ */ #include "ChannelMgr.h" +#include "ChannelPackets.h" #include "Player.h" #include "World.h" #include "WorldSession.h" diff --git a/src/server/game/Chat/Channels/ChannelMgr.h b/src/server/game/Chat/Channels/ChannelMgr.h index 0e1dea4a951..175e7082727 100644 --- a/src/server/game/Chat/Channels/ChannelMgr.h +++ b/src/server/game/Chat/Channels/ChannelMgr.h @@ -21,6 +21,7 @@ #include "Common.h" #include "Channel.h" +#define MAX_CHANNEL_NAME_STR 0x31 #define MAX_CHANNEL_PASS_STR 31 class ChannelMgr diff --git a/src/server/game/Entities/Unit/Unit.cpp b/src/server/game/Entities/Unit/Unit.cpp index db1ff2d5d6f..5fe98b3f31b 100644 --- a/src/server/game/Entities/Unit/Unit.cpp +++ b/src/server/game/Entities/Unit/Unit.cpp @@ -13334,7 +13334,7 @@ void Unit::Kill(Unit* victim, bool durabilityLoss) // call kill spell proc event (before real die and combat stop to triggering auras removed at death/combat stop) if (isRewardAllowed && player && player != victim) { - WorldPacket data(SMSG_PARTYKILLLOG, (8+8)); // send event PARTY_KILL + WorldPacket data(SMSG_PARTY_KILL_LOG, (8+8)); // send event PARTY_KILL data << player->GetGUID(); // player with killing blow data << victim->GetGUID(); // victim diff --git a/src/server/game/Groups/Group.cpp b/src/server/game/Groups/Group.cpp index caf9227b4d4..0bc69fc7183 100644 --- a/src/server/game/Groups/Group.cpp +++ b/src/server/game/Groups/Group.cpp @@ -1669,7 +1669,7 @@ void Group::OfflineReadyCheck() Player* player = ObjectAccessor::FindConnectedPlayer(citr->guid); if (!player || !player->GetSession()) { - WorldPacket data(MSG_RAID_READY_CHECK_CONFIRM, 9); + WorldPacket data(SMSG_RAID_READY_CHECK_CONFIRM, 9); data << citr->guid; data << uint8(0); BroadcastReadyCheck(&data); diff --git a/src/server/game/Handlers/ChannelHandler.cpp b/src/server/game/Handlers/ChannelHandler.cpp index 245665d8d3b..c5e1c3e7fad 100644 --- a/src/server/game/Handlers/ChannelHandler.cpp +++ b/src/server/game/Handlers/ChannelHandler.cpp @@ -70,270 +70,72 @@ void WorldSession::HandleLeaveChannel(WorldPackets::Channel::LeaveChannel& packe } } -void WorldSession::HandleChannelList(WorldPackets::Channel::ChannelListRequest& packet) +template<void(Channel::*CommandFunction)(Player const*)> +void WorldSession::HandleChannelCommand(WorldPackets::Channel::ChannelPlayerCommand& packet) { TC_LOG_DEBUG("chat.system", "%s %s ChannelName: %s", GetOpcodeNameForLogging(packet.GetOpcode()).c_str(), GetPlayerInfo().c_str(), packet.ChannelName.c_str()); if (ChannelMgr* cMgr = ChannelMgr::ForTeam(GetPlayer()->GetTeam())) if (Channel* channel = cMgr->GetChannel(packet.ChannelName, GetPlayer())) - channel->List(GetPlayer()); + (channel->*CommandFunction)(GetPlayer()); } -void WorldSession::HandleChannelPassword(WorldPacket& recvPacket) +template<void(Channel::*CommandFunction)(Player const*, std::string const&)> +void WorldSession::HandleChannelPlayerCommand(WorldPackets::Channel::ChannelPlayerCommand& packet) { - uint32 nameLength = recvPacket.ReadBits(8); - uint32 passLength = recvPacket.ReadBits(7); - - std::string channelName = recvPacket.ReadString(nameLength); - std::string password = recvPacket.ReadString(passLength); - - TC_LOG_DEBUG("chat.system", "CMSG_CHANNEL_PASSWORD %s Channel: %s, Password: %s", - GetPlayerInfo().c_str(), channelName.c_str(), password.c_str()); - - if (password.length() > MAX_CHANNEL_PASS_STR) - return; - - if (ChannelMgr* cMgr = ChannelMgr::ForTeam(GetPlayer()->GetTeam())) - if (Channel* channel = cMgr->GetChannel(channelName, GetPlayer())) - channel->Password(GetPlayer(), password); -} - -void WorldSession::HandleChannelSetOwner(WorldPacket& recvPacket) -{ - uint32 channelLength = recvPacket.ReadBits(8); - uint32 nameLength = recvPacket.ReadBits(7); - - std::string targetName = recvPacket.ReadString(nameLength); - std::string channelName = recvPacket.ReadString(channelLength); - - TC_LOG_DEBUG("chat.system", "CMSG_CHANNEL_SET_OWNER %s Channel: %s, Target: %s", - GetPlayerInfo().c_str(), channelName.c_str(), targetName.c_str()); - - if (!normalizePlayerName(targetName)) - return; - - if (ChannelMgr* cMgr = ChannelMgr::ForTeam(GetPlayer()->GetTeam())) - if (Channel* channel = cMgr->GetChannel(channelName, GetPlayer())) - channel->SetOwner(GetPlayer(), targetName); -} - -void WorldSession::HandleChannelOwner(WorldPacket& recvPacket) -{ - uint32 length = recvPacket.ReadBits(8); - std::string channelName = recvPacket.ReadString(length); - - TC_LOG_DEBUG("chat.system", "CMSG_CHANNEL_OWNER %s Channel: %s", - GetPlayerInfo().c_str(), channelName.c_str()); - - if (ChannelMgr* cMgr = ChannelMgr::ForTeam(GetPlayer()->GetTeam())) - if (Channel* channel = cMgr->GetChannel(channelName, GetPlayer())) - channel->SendWhoOwner(GetPlayer()); -} - -void WorldSession::HandleChannelModerator(WorldPacket& recvPacket) -{ - uint32 channelLength = recvPacket.ReadBits(8); - uint32 nameLength = recvPacket.ReadBits(7); - - std::string targetName = recvPacket.ReadString(nameLength); - std::string channelName = recvPacket.ReadString(channelLength); - - TC_LOG_DEBUG("chat.system", "CMSG_CHANNEL_MODERATOR %s Channel: %s, Target: %s", - GetPlayerInfo().c_str(), channelName.c_str(), targetName.c_str()); - - if (!normalizePlayerName(targetName)) - return; - - if (ChannelMgr* cMgr = ChannelMgr::ForTeam(GetPlayer()->GetTeam())) - if (Channel* channel = cMgr->GetChannel(channelName, GetPlayer())) - channel->SetModerator(GetPlayer(), targetName); -} - -void WorldSession::HandleChannelUnmoderator(WorldPacket& recvPacket) -{ - uint32 nameLength = recvPacket.ReadBits(7); - uint32 channelLength = recvPacket.ReadBits(8); - - std::string channelName = recvPacket.ReadString(channelLength); - std::string targetName = recvPacket.ReadString(nameLength); - - TC_LOG_DEBUG("chat.system", "CMSG_CHANNEL_UNMODERATOR %s Channel: %s, Target: %s", - GetPlayerInfo().c_str(), channelName.c_str(), targetName.c_str()); - - if (!normalizePlayerName(targetName)) - return; - - if (ChannelMgr* cMgr = ChannelMgr::ForTeam(GetPlayer()->GetTeam())) - if (Channel* channel = cMgr->GetChannel(channelName, GetPlayer())) - channel->UnsetModerator(GetPlayer(), targetName); -} - -void WorldSession::HandleChannelMute(WorldPacket& recvPacket) -{ - uint32 channelLength = recvPacket.ReadBits(8); - uint32 nameLength = recvPacket.ReadBits(7); - - std::string channelName = recvPacket.ReadString(channelLength); - std::string targetName = recvPacket.ReadString(nameLength); - - TC_LOG_DEBUG("chat.system", "CMSG_CHANNEL_MUTE %s Channel: %s, Target: %s", - GetPlayerInfo().c_str(), channelName.c_str(), targetName.c_str()); - - if (!normalizePlayerName(targetName)) - return; - - if (ChannelMgr* cMgr = ChannelMgr::ForTeam(GetPlayer()->GetTeam())) - if (Channel* channel = cMgr->GetChannel(channelName, GetPlayer())) - channel->SetMute(GetPlayer(), targetName); -} - -void WorldSession::HandleChannelUnmute(WorldPacket& recvPacket) -{ - uint32 nameLength = recvPacket.ReadBits(8); - uint32 channelLength = recvPacket.ReadBits(7); - - std::string targetName = recvPacket.ReadString(nameLength); - std::string channelName = recvPacket.ReadString(channelLength); - - TC_LOG_DEBUG("chat.system", "CMSG_CHANNEL_UNMUTE %s Channel: %s, Target: %s", - GetPlayerInfo().c_str(), channelName.c_str(), targetName.c_str()); - - if (!normalizePlayerName(targetName)) - return; - - if (ChannelMgr* cMgr = ChannelMgr::ForTeam(GetPlayer()->GetTeam())) - if (Channel* channel = cMgr->GetChannel(channelName, GetPlayer())) - channel->UnsetMute(GetPlayer(), targetName); -} - -void WorldSession::HandleChannelInvite(WorldPacket& recvPacket) -{ - uint32 nameLength = recvPacket.ReadBits(7); - uint32 channelLength = recvPacket.ReadBits(8); - - std::string targetName = recvPacket.ReadString(nameLength); - std::string channelName = recvPacket.ReadString(channelLength); - - TC_LOG_DEBUG("chat.system", "CMSG_CHANNEL_INVITE %s Channel: %s, Target: %s", - GetPlayerInfo().c_str(), channelName.c_str(), targetName.c_str()); - - if (!normalizePlayerName(targetName)) - return; - - if (ChannelMgr* cMgr = ChannelMgr::ForTeam(GetPlayer()->GetTeam())) - if (Channel* channel = cMgr->GetChannel(channelName, GetPlayer())) - channel->Invite(GetPlayer(), targetName); -} - -void WorldSession::HandleChannelKick(WorldPacket& recvPacket) -{ - uint32 channelLength = recvPacket.ReadBits(8); - uint32 nameLength = recvPacket.ReadBits(7); - - std::string channelName = recvPacket.ReadString(channelLength); - std::string targetName = recvPacket.ReadString(nameLength); - - TC_LOG_DEBUG("chat.system", "CMSG_CHANNEL_KICK %s Channel: %s, Target: %s", - GetPlayerInfo().c_str(), channelName.c_str(), targetName.c_str()); - - if (!normalizePlayerName(targetName)) - return; - - if (ChannelMgr* cMgr = ChannelMgr::ForTeam(GetPlayer()->GetTeam())) - if (Channel* channel = cMgr->GetChannel(channelName, GetPlayer())) - channel->Kick(GetPlayer(), targetName); -} - -void WorldSession::HandleChannelBan(WorldPacket& recvPacket) -{ - uint32 channelLength, nameLength; - std::string channelName, targetName; - - channelLength = recvPacket.ReadBits(8); - nameLength = recvPacket.ReadBits(7); - - targetName = recvPacket.ReadString(nameLength); - channelName = recvPacket.ReadString(channelLength); - - TC_LOG_DEBUG("chat.system", "CMSG_CHANNEL_BAN %s Channel: %s, Target: %s", - GetPlayerInfo().c_str(), channelName.c_str(), targetName.c_str()); - - if (!normalizePlayerName(targetName)) + if (packet.Name.length() >= MAX_CHANNEL_NAME_STR) + { + TC_LOG_DEBUG("chat.system", "%s %s ChannelName: %s, Name: %s, Name too long.", + GetOpcodeNameForLogging(packet.GetOpcode()).c_str(), GetPlayerInfo().c_str(), packet.ChannelName.c_str(), packet.Name.c_str()); return; + } - if (ChannelMgr* cMgr = ChannelMgr::ForTeam(GetPlayer()->GetTeam())) - if (Channel* channel = cMgr->GetChannel(channelName, GetPlayer())) - channel->Ban(GetPlayer(), targetName); -} - -void WorldSession::HandleChannelUnban(WorldPacket& recvPacket) -{ - uint32 channelLength = recvPacket.ReadBits(7); - uint32 nameLength = recvPacket.ReadBits(8); - - std::string targetName = recvPacket.ReadString(nameLength); - std::string channelName = recvPacket.ReadString(channelLength); - - TC_LOG_DEBUG("chat.system", "CMSG_CHANNEL_UNBAN %s Channel: %s, Target: %s", - GetPlayerInfo().c_str(), channelName.c_str(), targetName.c_str()); + TC_LOG_DEBUG("chat.system", "%s %s ChannelName: %s, Name: %s", + GetOpcodeNameForLogging(packet.GetOpcode()).c_str(), GetPlayerInfo().c_str(), packet.ChannelName.c_str(), packet.Name.c_str()); - if (!normalizePlayerName(targetName)) + if (!normalizePlayerName(packet.Name)) return; if (ChannelMgr* cMgr = ChannelMgr::ForTeam(GetPlayer()->GetTeam())) - if (Channel* channel = cMgr->GetChannel(channelName, GetPlayer())) - channel->UnBan(GetPlayer(), targetName); -} - -void WorldSession::HandleChannelAnnouncements(WorldPacket& recvPacket) -{ - uint32 length = recvPacket.ReadBits(8); - std::string channelName = recvPacket.ReadString(length); - - TC_LOG_DEBUG("chat.system", "CMSG_CHANNEL_ANNOUNCEMENTS %s Channel: %s", - GetPlayerInfo().c_str(), channelName.c_str()); - - if (ChannelMgr* cMgr = ChannelMgr::ForTeam(GetPlayer()->GetTeam())) - if (Channel* channel = cMgr->GetChannel(channelName, GetPlayer())) - channel->Announce(GetPlayer()); + if (Channel* channel = cMgr->GetChannel(packet.ChannelName, GetPlayer())) + (channel->*CommandFunction)(GetPlayer(), packet.Name); } -void WorldSession::HandleGetChannelMemberCount(WorldPacket &recvPacket) +template<> +void WorldSession::HandleChannelPlayerCommand<&Channel::Password>(WorldPackets::Channel::ChannelPlayerCommand& packet) { - std::string channelName; - recvPacket >> channelName; - - TC_LOG_DEBUG("chat.system", "CMSG_GET_CHANNEL_MEMBER_COUNT %s Channel: %s", - GetPlayerInfo().c_str(), channelName.c_str()); - - if (ChannelMgr* cMgr = ChannelMgr::ForTeam(GetPlayer()->GetTeam())) + if (packet.Name.length() > MAX_CHANNEL_PASS_STR) { - if (Channel* channel = cMgr->GetChannel(channelName, GetPlayer())) - { - TC_LOG_DEBUG("chat.system", "SMSG_CHANNEL_MEMBER_COUNT %s Channel: %s Count: %u", - GetPlayerInfo().c_str(), channelName.c_str(), channel->GetNumPlayers()); - - WorldPacket data(SMSG_CHANNEL_MEMBER_COUNT, channel->GetName().size() + 1 + 4); - data << channel->GetName(); - data << uint8(channel->GetFlags()); - data << uint32(channel->GetNumPlayers()); - SendPacket(&data); - } + TC_LOG_DEBUG("chat.system", "%s %s ChannelName: %s, Password: %s, Password too long.", + GetOpcodeNameForLogging(packet.GetOpcode()).c_str(), GetPlayerInfo().c_str(), packet.ChannelName.c_str(), packet.Name.c_str()); + return; } -} - -void WorldSession::HandleSetChannelWatch(WorldPacket& recvPacket) -{ - std::string channelName; - recvPacket >> channelName; - TC_LOG_DEBUG("chat.system", "CMSG_SET_CHANNEL_WATCH %s Channel: %s", - GetPlayerInfo().c_str(), channelName.c_str()); + TC_LOG_DEBUG("chat.system", "%s %s ChannelName: %s, Password: %s", + GetOpcodeNameForLogging(packet.GetOpcode()).c_str(), GetPlayerInfo().c_str(), packet.ChannelName.c_str(), packet.Name.c_str()); - /* - if (ChannelMgr* cMgr = channelMgr(GetPlayer()->GetTeam())) - if (Channel* channel = cMgr->GetChannel(channelName, GetPlayer())) - channel->JoinNotify(GetPlayer()); - */ -} + if (ChannelMgr* cMgr = ChannelMgr::ForTeam(GetPlayer()->GetTeam())) + if (Channel* channel = cMgr->GetChannel(packet.ChannelName, GetPlayer())) + channel->Password(GetPlayer(), packet.Name); +} + +template void WorldSession::HandleChannelCommand<&Channel::Announce>(WorldPackets::Channel::ChannelPlayerCommand&); +template void WorldSession::HandleChannelPlayerCommand<&Channel::Ban>(WorldPackets::Channel::ChannelPlayerCommand&); +template void WorldSession::HandleChannelCommand<&Channel::DeclineInvite>(WorldPackets::Channel::ChannelPlayerCommand&); +template void WorldSession::HandleChannelPlayerCommand<&Channel::Invite>(WorldPackets::Channel::ChannelPlayerCommand&); +template void WorldSession::HandleChannelPlayerCommand<&Channel::Kick>(WorldPackets::Channel::ChannelPlayerCommand&); +template void WorldSession::HandleChannelCommand<&Channel::List>(WorldPackets::Channel::ChannelPlayerCommand&); +template void WorldSession::HandleChannelPlayerCommand<&Channel::SetModerator>(WorldPackets::Channel::ChannelPlayerCommand&); +template void WorldSession::HandleChannelPlayerCommand<&Channel::SetMute>(WorldPackets::Channel::ChannelPlayerCommand&); +template void WorldSession::HandleChannelCommand<&Channel::SendWhoOwner>(WorldPackets::Channel::ChannelPlayerCommand&); +template void WorldSession::HandleChannelPlayerCommand<&Channel::SetOwner>(WorldPackets::Channel::ChannelPlayerCommand&); +template void WorldSession::HandleChannelPlayerCommand<&Channel::SilenceAll>(WorldPackets::Channel::ChannelPlayerCommand&); +template void WorldSession::HandleChannelPlayerCommand<&Channel::SilenceVoice>(WorldPackets::Channel::ChannelPlayerCommand&); +template void WorldSession::HandleChannelPlayerCommand<&Channel::UnBan>(WorldPackets::Channel::ChannelPlayerCommand&); +template void WorldSession::HandleChannelPlayerCommand<&Channel::UnsetModerator>(WorldPackets::Channel::ChannelPlayerCommand&); +template void WorldSession::HandleChannelPlayerCommand<&Channel::UnsetMute>(WorldPackets::Channel::ChannelPlayerCommand&); +template void WorldSession::HandleChannelPlayerCommand<&Channel::UnsilenceAll>(WorldPackets::Channel::ChannelPlayerCommand&); +template void WorldSession::HandleChannelPlayerCommand<&Channel::UnsilenceVoice>(WorldPackets::Channel::ChannelPlayerCommand&); +template void WorldSession::HandleChannelCommand<&Channel::DeVoice>(WorldPackets::Channel::ChannelPlayerCommand&); +template void WorldSession::HandleChannelCommand<&Channel::Voice>(WorldPackets::Channel::ChannelPlayerCommand&); diff --git a/src/server/game/Handlers/ChatHandler.cpp b/src/server/game/Handlers/ChatHandler.cpp index 9841e8e92a2..5489dce0761 100644 --- a/src/server/game/Handlers/ChatHandler.cpp +++ b/src/server/game/Handlers/ChatHandler.cpp @@ -626,11 +626,6 @@ void WorldSession::HandleChatIgnoredOpcode(WorldPacket& recvData) player->SendDirectMessage(packet.Write()); } -void WorldSession::HandleChannelDeclineInvite(WorldPacket &recvPacket) -{ - TC_LOG_DEBUG("network", "Opcode %u", recvPacket.GetOpcode()); -} - void WorldSession::SendPlayerNotFoundNotice(std::string const& name) { WorldPacket data(SMSG_CHAT_PLAYER_NOT_FOUND, name.size()+1); diff --git a/src/server/game/Handlers/GroupHandler.cpp b/src/server/game/Handlers/GroupHandler.cpp index a45dce87073..97b25d5fc1b 100644 --- a/src/server/game/Handlers/GroupHandler.cpp +++ b/src/server/game/Handlers/GroupHandler.cpp @@ -696,7 +696,7 @@ void WorldSession::HandleMinimapPingOpcode(WorldPacket& recvData) void WorldSession::HandleRandomRollOpcode(WorldPacket& recvData) { - TC_LOG_DEBUG("network", "WORLD: Received MSG_RANDOM_ROLL"); + TC_LOG_DEBUG("network", "WORLD: Received CMSG_RANDOM_ROLL"); uint32 minimum, maximum, roll; recvData >> minimum; @@ -712,7 +712,7 @@ void WorldSession::HandleRandomRollOpcode(WorldPacket& recvData) //TC_LOG_DEBUG("misc", "ROLL: MIN: %u, MAX: %u, ROLL: %u", minimum, maximum, roll); - WorldPacket data(MSG_RANDOM_ROLL, 4+4+4+8); + WorldPacket data(SMSG_RANDOM_ROLL, 4+4+4+8); data << uint32(minimum); data << uint32(maximum); data << uint32(roll); @@ -931,7 +931,7 @@ void WorldSession::HandleRaidReadyCheckOpcode(WorldPacket& recvData) recvData >> state; // everything's fine, do it - WorldPacket data(MSG_RAID_READY_CHECK_CONFIRM, 9); + WorldPacket data(SMSG_RAID_READY_CHECK_CONFIRM, 9); data << GetPlayer()->GetGUID(); data << uint8(state); group->BroadcastReadyCheck(&data); diff --git a/src/server/game/Handlers/TaxiHandler.cpp b/src/server/game/Handlers/TaxiHandler.cpp index d4c3b61d790..5c16de1ee4c 100644 --- a/src/server/game/Handlers/TaxiHandler.cpp +++ b/src/server/game/Handlers/TaxiHandler.cpp @@ -309,7 +309,7 @@ void WorldSession::HandleActivateTaxiOpcode(WorldPacket& recvData) void WorldSession::SendActivateTaxiReply(ActivateTaxiReply reply) { - WorldPacket data(SMSG_ACTIVATETAXIREPLY, 4); + WorldPacket data(SMSG_ACTIVATE_TAXI_REPLY, 4); data << uint32(reply); SendPacket(&data); diff --git a/src/server/game/Handlers/VoiceChatHandler.cpp b/src/server/game/Handlers/VoiceChatHandler.cpp index d9cd7226721..e20c79337fa 100644 --- a/src/server/game/Handlers/VoiceChatHandler.cpp +++ b/src/server/game/Handlers/VoiceChatHandler.cpp @@ -30,14 +30,6 @@ void WorldSession::HandleVoiceSessionEnableOpcode(WorldPacket& recvData) recvData.read_skip<uint8>(); } -void WorldSession::HandleChannelVoiceOnOpcode(WorldPacket& recvData) -{ - TC_LOG_DEBUG("network", "WORLD: CMSG_CHANNEL_VOICE_ON"); - // Enable Voice button in channel context menu - recvData.ReadString(recvData.ReadBits(8)); - //channel->EnableVoice(recvData.GetOpcode() == CMSG_CHANNEL_VOICE_ON); -} - void WorldSession::HandleSetActiveVoiceChannel(WorldPacket& recvData) { TC_LOG_DEBUG("network", "WORLD: CMSG_SET_ACTIVE_VOICE_CHANNEL"); diff --git a/src/server/game/Server/Packet.cpp b/src/server/game/Server/Packet.cpp index 3b38c36ba85..10e935e87c7 100644 --- a/src/server/game/Server/Packet.cpp +++ b/src/server/game/Server/Packet.cpp @@ -16,7 +16,3 @@ */ #include "Packet.h" - -WorldPackets::ServerPacket::ServerPacket(OpcodeServer opcode, size_t initialSize /*= 200*/) : Packet(WorldPacket(opcode, initialSize)) -{ -} diff --git a/src/server/game/Server/Packet.h b/src/server/game/Server/Packet.h index 6074ee26ad8..bf538803ad6 100644 --- a/src/server/game/Server/Packet.h +++ b/src/server/game/Server/Packet.h @@ -45,7 +45,7 @@ namespace WorldPackets class ServerPacket : public Packet { public: - ServerPacket(OpcodeServer opcode, size_t initialSize = 200); + ServerPacket(OpcodeServer opcode, size_t initialSize = 200) : Packet(WorldPacket(opcode, initialSize)) { } void Read() override final { ASSERT(!"Read not implemented for server packets."); } @@ -59,7 +59,7 @@ namespace WorldPackets { public: ClientPacket(WorldPacket&& packet) : Packet(std::move(packet)) { } - ClientPacket(OpcodeClient expectedOpcode, WorldPacket&& packet) : Packet(std::move(packet)) { ASSERT(packet.GetOpcode() == expectedOpcode); } + ClientPacket(OpcodeClient expectedOpcode, WorldPacket&& packet) : Packet(std::move(packet)) { ASSERT(GetOpcode() == expectedOpcode); } WorldPacket const* Write() override final { diff --git a/src/server/game/Server/Packets/ChannelPackets.cpp b/src/server/game/Server/Packets/ChannelPackets.cpp index 3e704580a1d..9bcb10948d5 100644 --- a/src/server/game/Server/Packets/ChannelPackets.cpp +++ b/src/server/game/Server/Packets/ChannelPackets.cpp @@ -16,12 +16,6 @@ */ #include "ChannelPackets.h" -#include "Channel.h" - -void WorldPackets::Channel::ChannelListRequest::Read() -{ - ChannelName = _worldPacket.ReadString(_worldPacket.ReadBits(7)); -} WorldPacket const* WorldPackets::Channel::ChannelListResponse::Write() { @@ -89,6 +83,53 @@ WorldPacket const* WorldPackets::Channel::ChannelNotifyLeft::Write() return &_worldPacket; } +void WorldPackets::Channel::ChannelPlayerCommand::Read() +{ + switch (GetOpcode()) + { + case CMSG_CHANNEL_BAN: + case CMSG_CHANNEL_INVITE: + case CMSG_CHANNEL_KICK: + case CMSG_CHANNEL_MODERATOR: + case CMSG_CHANNEL_MUTE: + case CMSG_CHANNEL_SET_OWNER: + case CMSG_CHANNEL_SILENCE_ALL: + case CMSG_CHANNEL_SILENCE_VOICE: + case CMSG_CHANNEL_UNBAN: + case CMSG_CHANNEL_UNMODERATOR: + case CMSG_CHANNEL_UNMUTE: + case CMSG_CHANNEL_UNSILENCE_ALL: + case CMSG_CHANNEL_UNSILENCE_VOICE: + { + uint32 channelNameLength = _worldPacket.ReadBits(7); + uint32 nameLength = _worldPacket.ReadBits(9); + ChannelName = _worldPacket.ReadString(channelNameLength); + Name = _worldPacket.ReadString(nameLength); + break; + } + case CMSG_CHANNEL_ANNOUNCEMENTS: + case CMSG_CHANNEL_DECLINE_INVITE: + case CMSG_CHANNEL_DISPLAY_LIST: + case CMSG_CHANNEL_LIST: + //case CMSG_CHANNEL_MODERATE: + case CMSG_CHANNEL_OWNER: + case CMSG_CHANNEL_VOICE_OFF: + case CMSG_CHANNEL_VOICE_ON: + { + ChannelName = _worldPacket.ReadString(_worldPacket.ReadBits(7)); + break; + } + case CMSG_CHANNEL_PASSWORD: + { + uint32 channelNameLength = _worldPacket.ReadBits(7); + uint32 nameLength = _worldPacket.ReadBits(7); + ChannelName = _worldPacket.ReadString(channelNameLength); + Name = _worldPacket.ReadString(nameLength); + break; + } + } +} + void WorldPackets::Channel::JoinChannel::Read() { _worldPacket >> ChatChannelId; diff --git a/src/server/game/Server/Packets/ChannelPackets.h b/src/server/game/Server/Packets/ChannelPackets.h index 4747fe444fe..14fbac84cf9 100644 --- a/src/server/game/Server/Packets/ChannelPackets.h +++ b/src/server/game/Server/Packets/ChannelPackets.h @@ -19,25 +19,13 @@ #define ChannelPackets_h__ #include "Packet.h" +#include "Channel.h" #include "ObjectGuid.h" namespace WorldPackets { namespace Channel { - class ChannelListRequest final : public ClientPacket - { - public: - ChannelListRequest(WorldPacket&& packet) : ClientPacket(std::move(packet)) - { - ASSERT(packet.GetOpcode() == CMSG_CHANNEL_LIST || packet.GetOpcode() == CMSG_CHANNEL_DISPLAY_LIST); - } - - void Read() override; - - std::string ChannelName; - }; - class ChannelListResponse final : public ServerPacket { public: @@ -48,7 +36,7 @@ namespace WorldPackets ObjectGuid Guid; ///< Player Guid uint32 VirtualRealmAddress; - uint8 Flags = 0; ///< @see enum ChannelMemberFlags + uint8 Flags; ///< @see enum ChannelMemberFlags }; ChannelListResponse() : ServerPacket(SMSG_CHANNEL_LIST) { } @@ -107,6 +95,47 @@ namespace WorldPackets bool Suspended = false; ///< User Leave - false, On Zone Change - true }; + class ChannelPlayerCommand final : public ClientPacket + { + public: + ChannelPlayerCommand(WorldPacket&& packet) : ClientPacket(std::move(packet)) + { + switch (GetOpcode()) + { + default: + ASSERT(false); + case CMSG_CHANNEL_ANNOUNCEMENTS: + case CMSG_CHANNEL_BAN: + case CMSG_CHANNEL_DECLINE_INVITE: + case CMSG_CHANNEL_DISPLAY_LIST: + case CMSG_CHANNEL_INVITE: + case CMSG_CHANNEL_KICK: + case CMSG_CHANNEL_LIST: + //case CMSG_CHANNEL_MODERATE: + case CMSG_CHANNEL_MODERATOR: + case CMSG_CHANNEL_MUTE: + case CMSG_CHANNEL_OWNER: + case CMSG_CHANNEL_PASSWORD: + case CMSG_CHANNEL_SET_OWNER: + case CMSG_CHANNEL_SILENCE_ALL: + case CMSG_CHANNEL_SILENCE_VOICE: + case CMSG_CHANNEL_UNBAN: + case CMSG_CHANNEL_UNMODERATOR: + case CMSG_CHANNEL_UNMUTE: + case CMSG_CHANNEL_UNSILENCE_ALL: + case CMSG_CHANNEL_UNSILENCE_VOICE: + case CMSG_CHANNEL_VOICE_OFF: + case CMSG_CHANNEL_VOICE_ON: + break; + } + } + + void Read() override; + + std::string ChannelName; + std::string Name; + }; + class JoinChannel final : public ClientPacket { public: diff --git a/src/server/game/Server/Packets/ItemPackets.cpp b/src/server/game/Server/Packets/ItemPackets.cpp index 1e34927e92c..4d3c6a552a8 100644 --- a/src/server/game/Server/Packets/ItemPackets.cpp +++ b/src/server/game/Server/Packets/ItemPackets.cpp @@ -58,6 +58,18 @@ ByteBuffer& operator<<(ByteBuffer& data, WorldPackets::Item::ItemInstance const& return data; } +ByteBuffer& WorldPackets::Item::operator>>(ByteBuffer& data, InvUpdate& invUpdate) +{ + invUpdate.Items.resize(data.ReadBits(2)); + for (size_t i = 0; i < invUpdate.Items.size(); ++i) + { + data >> invUpdate.Items[i].ContainerSlot; + data >> invUpdate.Items[i].Slot; + } + + return data; +} + WorldPacket const* WorldPackets::Item::InventoryChangeFailure::Write() { _worldPacket << int8(BagResult); @@ -81,14 +93,8 @@ WorldPacket const* WorldPackets::Item::InventoryChangeFailure::Write() void WorldPackets::Item::SplitItem::Read() { - Inv.Items.resize(_worldPacket.ReadBits(2)); - for (size_t i = 0; i < Inv.Items.size(); ++i) - { - _worldPacket >> Inv.Items[i].ContainerSlot; - _worldPacket >> Inv.Items[i].Slot; - } - - _worldPacket >> FromPackSlot + _worldPacket >> Inv + >> FromPackSlot >> FromSlot >> ToPackSlot >> ToSlot @@ -97,27 +103,15 @@ void WorldPackets::Item::SplitItem::Read() void WorldPackets::Item::SwapInvItem::Read() { - Inv.Items.resize(_worldPacket.ReadBits(2)); - for (size_t i = 0; i < Inv.Items.size(); ++i) - { - _worldPacket >> Inv.Items[i].ContainerSlot; - _worldPacket >> Inv.Items[i].Slot; - } - - _worldPacket >> Slot2 + _worldPacket >> Inv + >> Slot2 >> Slot1; } void WorldPackets::Item::SwapItem::Read() { - Inv.Items.resize(_worldPacket.ReadBits(2)); - for (size_t i = 0; i < Inv.Items.size(); ++i) - { - _worldPacket >> Inv.Items[i].ContainerSlot; - _worldPacket >> Inv.Items[i].Slot; - } - - _worldPacket >> ContainerSlotB + _worldPacket >> Inv + >> ContainerSlotB >> ContainerSlotA >> SlotB >> SlotA; @@ -125,14 +119,8 @@ void WorldPackets::Item::SwapItem::Read() void WorldPackets::Item::AutoEquipItem::Read() { - Inv.Items.resize(_worldPacket.ReadBits(2)); - for (size_t i = 0; i < Inv.Items.size(); ++i) - { - _worldPacket >> Inv.Items[i].ContainerSlot; - _worldPacket >> Inv.Items[i].Slot; - } - - _worldPacket >> PackSlot + _worldPacket >> Inv + >> PackSlot >> Slot; } diff --git a/src/server/game/Server/Packets/ItemPackets.h b/src/server/game/Server/Packets/ItemPackets.h index 57920958c3e..1510ecd70d4 100644 --- a/src/server/game/Server/Packets/ItemPackets.h +++ b/src/server/game/Server/Packets/ItemPackets.h @@ -143,6 +143,8 @@ namespace WorldPackets uint8 SlotNum = 0; uint8 ContainerId = 0; }; + + ByteBuffer& operator>>(ByteBuffer& data, InvUpdate& invUpdate); } } diff --git a/src/server/game/Server/Protocol/Opcodes.cpp b/src/server/game/Server/Protocol/Opcodes.cpp index 52dff83852d..228847ed62f 100644 --- a/src/server/game/Server/Protocol/Opcodes.cpp +++ b/src/server/game/Server/Protocol/Opcodes.cpp @@ -230,28 +230,28 @@ void OpcodeTable::Initialize() DEFINE_HANDLER(CMSG_CAST_SPELL, STATUS_LOGGEDIN, PROCESS_THREADSAFE, WorldPackets::Spells::SpellCastRequest, &WorldSession::HandleCastSpellOpcode); DEFINE_OPCODE_HANDLER_OLD(CMSG_CHANGEPLAYER_DIFFICULTY, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL ); DEFINE_OPCODE_HANDLER_OLD(CMSG_CHANGE_SEATS_ON_CONTROLLED_VEHICLE, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleChangeSeatsOnControlledVehicle); - DEFINE_OPCODE_HANDLER_OLD(CMSG_CHANNEL_ANNOUNCEMENTS, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleChannelAnnouncements ); - DEFINE_OPCODE_HANDLER_OLD(CMSG_CHANNEL_BAN, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleChannelBan ); - DEFINE_HANDLER(CMSG_CHANNEL_DISPLAY_LIST, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, WorldPackets::Channel::ChannelListRequest, &WorldSession::HandleChannelList); - DEFINE_OPCODE_HANDLER_OLD(CMSG_CHANNEL_INVITE, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleChannelInvite ); - DEFINE_OPCODE_HANDLER_OLD(CMSG_CHANNEL_KICK, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleChannelKick ); - DEFINE_HANDLER(CMSG_CHANNEL_LIST, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, WorldPackets::Channel::ChannelListRequest, &WorldSession::HandleChannelList); + DEFINE_HANDLER(CMSG_CHANNEL_ANNOUNCEMENTS, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, WorldPackets::Channel::ChannelPlayerCommand, &WorldSession::HandleChannelCommand<&Channel::Announce>); + DEFINE_HANDLER(CMSG_CHANNEL_BAN, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, WorldPackets::Channel::ChannelPlayerCommand, &WorldSession::HandleChannelPlayerCommand<&Channel::Ban>); + DEFINE_HANDLER(CMSG_CHANNEL_DECLINE_INVITE, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, WorldPackets::Channel::ChannelPlayerCommand, &WorldSession::HandleChannelCommand<&Channel::DeclineInvite>); + DEFINE_HANDLER(CMSG_CHANNEL_DISPLAY_LIST, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, WorldPackets::Channel::ChannelPlayerCommand, &WorldSession::HandleChannelCommand<&Channel::List>); + DEFINE_HANDLER(CMSG_CHANNEL_INVITE, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, WorldPackets::Channel::ChannelPlayerCommand, &WorldSession::HandleChannelPlayerCommand<&Channel::Invite>); + DEFINE_HANDLER(CMSG_CHANNEL_KICK, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, WorldPackets::Channel::ChannelPlayerCommand, &WorldSession::HandleChannelPlayerCommand<&Channel::Kick>); + DEFINE_HANDLER(CMSG_CHANNEL_LIST, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, WorldPackets::Channel::ChannelPlayerCommand, &WorldSession::HandleChannelCommand<&Channel::List>); DEFINE_OPCODE_HANDLER_OLD(CMSG_CHANNEL_MODERATE, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL ); - DEFINE_OPCODE_HANDLER_OLD(CMSG_CHANNEL_MODERATOR, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleChannelModerator ); - DEFINE_OPCODE_HANDLER_OLD(CMSG_CHANNEL_MUTE, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleChannelMute ); - DEFINE_OPCODE_HANDLER_OLD(CMSG_CHANNEL_OWNER, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleChannelOwner ); - DEFINE_OPCODE_HANDLER_OLD(CMSG_CHANNEL_PASSWORD, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleChannelPassword ); - DEFINE_OPCODE_HANDLER_OLD(CMSG_CHANNEL_ROSTER_INFO, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL ); - DEFINE_OPCODE_HANDLER_OLD(CMSG_CHANNEL_SET_OWNER, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleChannelSetOwner ); - DEFINE_OPCODE_HANDLER_OLD(CMSG_CHANNEL_SILENCE_ALL, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL ); - DEFINE_OPCODE_HANDLER_OLD(CMSG_CHANNEL_SILENCE_VOICE, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL ); - DEFINE_OPCODE_HANDLER_OLD(CMSG_CHANNEL_UNBAN, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleChannelUnban ); - DEFINE_OPCODE_HANDLER_OLD(CMSG_CHANNEL_UNMODERATOR, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleChannelUnmoderator ); - DEFINE_OPCODE_HANDLER_OLD(CMSG_CHANNEL_UNMUTE, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleChannelUnmute ); - DEFINE_OPCODE_HANDLER_OLD(CMSG_CHANNEL_UNSILENCE_ALL, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL ); - DEFINE_OPCODE_HANDLER_OLD(CMSG_CHANNEL_UNSILENCE_VOICE, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL ); - DEFINE_OPCODE_HANDLER_OLD(CMSG_CHANNEL_VOICE_OFF, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleChannelVoiceOnOpcode ); - DEFINE_OPCODE_HANDLER_OLD(CMSG_CHANNEL_VOICE_ON, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleChannelVoiceOnOpcode ); + DEFINE_HANDLER(CMSG_CHANNEL_MODERATOR, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, WorldPackets::Channel::ChannelPlayerCommand, &WorldSession::HandleChannelPlayerCommand<&Channel::SetModerator>); + DEFINE_HANDLER(CMSG_CHANNEL_MUTE, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, WorldPackets::Channel::ChannelPlayerCommand, &WorldSession::HandleChannelPlayerCommand<&Channel::SetMute>); + DEFINE_HANDLER(CMSG_CHANNEL_OWNER, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, WorldPackets::Channel::ChannelPlayerCommand, &WorldSession::HandleChannelCommand<&Channel::SendWhoOwner>); + DEFINE_HANDLER(CMSG_CHANNEL_PASSWORD, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, WorldPackets::Channel::ChannelPlayerCommand, &WorldSession::HandleChannelPlayerCommand<&Channel::Password>); + DEFINE_HANDLER(CMSG_CHANNEL_SET_OWNER, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, WorldPackets::Channel::ChannelPlayerCommand, &WorldSession::HandleChannelPlayerCommand<&Channel::SetOwner>); + DEFINE_HANDLER(CMSG_CHANNEL_SILENCE_ALL, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, WorldPackets::Channel::ChannelPlayerCommand, &WorldSession::HandleChannelPlayerCommand<&Channel::SilenceAll>); + DEFINE_HANDLER(CMSG_CHANNEL_SILENCE_VOICE, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, WorldPackets::Channel::ChannelPlayerCommand, &WorldSession::HandleChannelPlayerCommand<&Channel::SilenceVoice>); + DEFINE_HANDLER(CMSG_CHANNEL_UNBAN, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, WorldPackets::Channel::ChannelPlayerCommand, &WorldSession::HandleChannelPlayerCommand<&Channel::UnBan>); + DEFINE_HANDLER(CMSG_CHANNEL_UNMODERATOR, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, WorldPackets::Channel::ChannelPlayerCommand, &WorldSession::HandleChannelPlayerCommand<&Channel::UnsetModerator>); + DEFINE_HANDLER(CMSG_CHANNEL_UNMUTE, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, WorldPackets::Channel::ChannelPlayerCommand, &WorldSession::HandleChannelPlayerCommand<&Channel::UnsetMute>); + DEFINE_HANDLER(CMSG_CHANNEL_UNSILENCE_ALL, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, WorldPackets::Channel::ChannelPlayerCommand, &WorldSession::HandleChannelPlayerCommand<&Channel::UnsilenceAll>); + DEFINE_HANDLER(CMSG_CHANNEL_UNSILENCE_VOICE, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, WorldPackets::Channel::ChannelPlayerCommand, &WorldSession::HandleChannelPlayerCommand<&Channel::UnsilenceVoice>); + DEFINE_HANDLER(CMSG_CHANNEL_VOICE_OFF, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, WorldPackets::Channel::ChannelPlayerCommand, &WorldSession::HandleChannelCommand<&Channel::DeVoice>); + DEFINE_HANDLER(CMSG_CHANNEL_VOICE_ON, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, WorldPackets::Channel::ChannelPlayerCommand, &WorldSession::HandleChannelCommand<&Channel::Voice>); DEFINE_HANDLER(CMSG_CHAR_CREATE, STATUS_AUTHED, PROCESS_THREADUNSAFE, WorldPackets::Character::CreateChar, &WorldSession::HandleCharCreateOpcode); DEFINE_HANDLER(CMSG_CHAR_CUSTOMIZE, STATUS_AUTHED, PROCESS_THREADUNSAFE, WorldPackets::Character::CharCustomize, &WorldSession::HandleCharCustomizeOpcode); DEFINE_HANDLER(CMSG_CHAR_DELETE, STATUS_AUTHED, PROCESS_THREADUNSAFE, WorldPackets::Character::DeleteChar, &WorldSession::HandleCharDeleteOpcode); @@ -261,7 +261,6 @@ void OpcodeTable::Initialize() DEFINE_OPCODE_HANDLER_OLD(CMSG_CHAR_UNDELETE_ENUM, STATUS_AUTHED, PROCESS_THREADUNSAFE, &WorldSession::HandleCharUndeleteEnumOpcode ); DEFINE_OPCODE_HANDLER_OLD(CMSG_CHAT_FILTERED, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL ); DEFINE_OPCODE_HANDLER_OLD(CMSG_CHAT_IGNORED, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleChatIgnoredOpcode ); - DEFINE_OPCODE_HANDLER_OLD(CMSG_CLEAR_CHANNEL_WATCH, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL ); DEFINE_OPCODE_HANDLER_OLD(CMSG_CLEAR_RAID_MARKER, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL ); DEFINE_OPCODE_HANDLER_OLD(CMSG_CLEAR_TRADE_ITEM, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleClearTradeItemOpcode ); DEFINE_OPCODE_HANDLER_OLD(CMSG_COMMENTATOR_ENABLE, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL ); @@ -298,13 +297,15 @@ void OpcodeTable::Initialize() DEFINE_OPCODE_HANDLER_OLD(CMSG_EQUIPMENT_SET_DELETE, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleEquipmentSetDelete ); DEFINE_HANDLER(CMSG_EQUIPMENT_SET_SAVE, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, WorldPackets::EquipmentSet::SaveEquipmentSet, &WorldSession::HandleEquipmentSetSave); DEFINE_OPCODE_HANDLER_OLD(CMSG_EQUIPMENT_SET_USE, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleEquipmentSetUse ); - DEFINE_OPCODE_HANDLER_OLD(CMSG_FACTION_BONUS_INFO, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL ); DEFINE_OPCODE_HANDLER_OLD(CMSG_FAR_SIGHT, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleFarSightOpcode ); DEFINE_OPCODE_HANDLER_OLD(CMSG_FORCE_MOVE_ROOT_ACK, STATUS_UNHANDLED, PROCESS_THREADSAFE, &WorldSession::HandleMoveRootAck ); DEFINE_OPCODE_HANDLER_OLD(CMSG_FORCE_MOVE_UNROOT_ACK, STATUS_UNHANDLED, PROCESS_THREADSAFE, &WorldSession::HandleMoveUnRootAck ); DEFINE_HANDLER(CMSG_GAMEOBJECT_QUERY, STATUS_LOGGEDIN, PROCESS_INPLACE, WorldPackets::Query::QueryGameObject, &WorldSession::HandleGameObjectQueryOpcode); DEFINE_HANDLER(CMSG_GAMEOBJ_REPORT_USE, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, WorldPackets::GameObject::GameObjectReportUse, &WorldSession::HandleGameobjectReportUse); DEFINE_HANDLER(CMSG_GAMEOBJ_USE, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, WorldPackets::GameObject::GameObjectUse, &WorldSession::HandleGameObjectUseOpcode); + DEFINE_OPCODE_HANDLER_OLD(CMSG_GARRISON_COMPLETE_MISSION, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL ); + DEFINE_OPCODE_HANDLER_OLD(CMSG_GARRISON_MISSION_BONUS_ROLL, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL ); + DEFINE_OPCODE_HANDLER_OLD(CMSG_GARRISON_START_MISSION, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL ); DEFINE_OPCODE_HANDLER_OLD(CMSG_GET_MAIL_LIST, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleGetMailList); DEFINE_OPCODE_HANDLER_OLD(CMSG_GET_MIRRORIMAGE_DATA, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleMirrorImageDataRequest ); DEFINE_OPCODE_HANDLER_OLD(CMSG_GMRESPONSE_RESOLVE, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleGMResponseResolve ); @@ -334,6 +335,7 @@ void OpcodeTable::Initialize() DEFINE_OPCODE_HANDLER_OLD(CMSG_GUILD_ACHIEVEMENT_PROGRESS_QUERY, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleGuildAchievementProgressQuery); DEFINE_OPCODE_HANDLER_OLD(CMSG_GUILD_ADD_RANK, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleGuildAddRankOpcode ); DEFINE_OPCODE_HANDLER_OLD(CMSG_GUILD_ASSIGN_MEMBER_RANK, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleGuildAssignRankOpcode ); + DEFINE_OPCODE_HANDLER_OLD(CMSG_GUILD_AUTO_DECLINE_INVITATION, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL ); DEFINE_OPCODE_HANDLER_OLD(CMSG_GUILD_BANKER_ACTIVATE, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleGuildBankerActivate ); DEFINE_OPCODE_HANDLER_OLD(CMSG_GUILD_BANK_BUY_TAB, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleGuildBankBuyTab ); DEFINE_OPCODE_HANDLER_OLD(CMSG_GUILD_BANK_DEPOSIT_MONEY, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleGuildBankDepositMoney ); @@ -434,6 +436,7 @@ void OpcodeTable::Initialize() DEFINE_HANDLER(CMSG_MESSAGECHAT_DND, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, WorldPackets::Chat::ChatMessageDND, &WorldSession::HandleChatMessageDNDOpcode); DEFINE_HANDLER(CMSG_MESSAGECHAT_EMOTE, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, WorldPackets::Chat::ChatMessageEmote, &WorldSession::HandleChatMessageEmoteOpcode); DEFINE_HANDLER(CMSG_MESSAGECHAT_GUILD, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, WorldPackets::Chat::ChatMessage, &WorldSession::HandleChatMessageOpcode); + DEFINE_OPCODE_HANDLER_OLD(CMSG_MESSAGECHAT_INSTANCE, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL ); DEFINE_HANDLER(CMSG_MESSAGECHAT_OFFICER, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, WorldPackets::Chat::ChatMessage, &WorldSession::HandleChatMessageOpcode); DEFINE_HANDLER(CMSG_MESSAGECHAT_PARTY, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, WorldPackets::Chat::ChatMessage, &WorldSession::HandleChatMessageOpcode); DEFINE_HANDLER(CMSG_MESSAGECHAT_RAID, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, WorldPackets::Chat::ChatMessage, &WorldSession::HandleChatMessageOpcode); @@ -584,6 +587,7 @@ void OpcodeTable::Initialize() DEFINE_OPCODE_HANDLER_OLD(CMSG_RESURRECT_RESPONSE, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleResurrectResponseOpcode ); DEFINE_OPCODE_HANDLER_OLD(CMSG_RETURN_TO_GRAVEYARD, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleReturnToGraveyard ); DEFINE_OPCODE_HANDLER_OLD(CMSG_ROLE_POLL_BEGIN, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleRolePollBeginOpcode ); + DEFINE_OPCODE_HANDLER_OLD(CMSG_ROUTER_CLIENT_LOG_STREAMING_ERROR, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL ); DEFINE_OPCODE_HANDLER_OLD(CMSG_SAVE_CUF_PROFILES, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::HandleSaveCUFProfiles ); DEFINE_OPCODE_HANDLER_OLD(CMSG_SELF_RES, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleSelfResOpcode ); DEFINE_OPCODE_HANDLER_OLD(CMSG_SELL_ITEM, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleSellItemOpcode ); @@ -597,7 +601,6 @@ void OpcodeTable::Initialize() DEFINE_OPCODE_HANDLER_OLD(CMSG_SET_ACTIVE_VOICE_CHANNEL, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleSetActiveVoiceChannel ); // STATUS_AUTHED DEFINE_OPCODE_HANDLER_OLD(CMSG_SET_ALLOW_LOW_LEVEL_RAID1, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL ); DEFINE_OPCODE_HANDLER_OLD(CMSG_SET_ALLOW_LOW_LEVEL_RAID2, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL ); - DEFINE_OPCODE_HANDLER_OLD(CMSG_SET_CHANNEL_WATCH, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleSetChannelWatch ); DEFINE_OPCODE_HANDLER_OLD(CMSG_SET_CONTACT_NOTES, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleSetContactNotesOpcode ); DEFINE_OPCODE_HANDLER_OLD(CMSG_SET_CURRENCY_FLAGS, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL ); DEFINE_OPCODE_HANDLER_OLD(CMSG_SET_EVERYONE_IS_ASSISTANT, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL ); @@ -608,6 +611,8 @@ void OpcodeTable::Initialize() DEFINE_OPCODE_HANDLER_OLD(CMSG_SET_PET_SLOT, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL ); DEFINE_OPCODE_HANDLER_OLD(CMSG_SET_PLAYER_DECLINED_NAMES, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleSetPlayerDeclinedNames ); DEFINE_OPCODE_HANDLER_OLD(CMSG_SET_PREFERED_CEMETERY, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL ); + DEFINE_OPCODE_HANDLER_OLD(CMSG_SET_PVP, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL ); + DEFINE_OPCODE_HANDLER_OLD(CMSG_SET_RAID_DIFFICULTY, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL ); DEFINE_OPCODE_HANDLER_OLD(CMSG_SET_RELATIVE_POSITION, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL ); DEFINE_OPCODE_HANDLER_OLD(CMSG_SET_SAVED_INSTANCE_EXTEND, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleSetSavedInstanceExtend ); DEFINE_HANDLER(CMSG_SET_SELECTION, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, WorldPackets::Misc::SetSelection, &WorldSession::HandleSetSelectionOpcode); @@ -632,6 +637,7 @@ void OpcodeTable::Initialize() DEFINE_OPCODE_HANDLER_OLD(CMSG_SUBMIT_COMPLAIN, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL ); DEFINE_OPCODE_HANDLER_OLD(CMSG_SUGGESTION_SUBMIT, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL ); DEFINE_OPCODE_HANDLER_OLD(CMSG_SUMMON_RESPONSE, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleSummonResponseOpcode ); + DEFINE_OPCODE_HANDLER_OLD(CMSG_SUPPORT_TICKET_SUBMIT_COMPLAINT, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL ); DEFINE_OPCODE_HANDLER_OLD(CMSG_SUSPEND_COMMS_ACK, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL ); DEFINE_OPCODE_HANDLER_OLD(CMSG_SUSPEND_TOKEN_RESPONSE, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL ); DEFINE_HANDLER(CMSG_SWAP_INV_ITEM, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, WorldPackets::Item::SwapInvItem, &WorldSession::HandleSwapInvItemOpcode); @@ -682,7 +688,6 @@ void OpcodeTable::Initialize() DEFINE_OPCODE_HANDLER_OLD(MSG_LIST_STABLED_PETS, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleListStabledPetsOpcode ); DEFINE_OPCODE_HANDLER_OLD(MSG_MOVE_CHARM_TELEPORT_CHEAT, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL ); DEFINE_OPCODE_HANDLER_OLD(MSG_MOVE_TELEPORT_CHEAT, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL ); - DEFINE_OPCODE_HANDLER_OLD(MSG_MOVE_TIME_SKIPPED, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL ); DEFINE_OPCODE_HANDLER_OLD(MSG_MOVE_TOGGLE_COLLISION_CHEAT, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL ); DEFINE_OPCODE_HANDLER_OLD(MSG_NOTIFY_PARTY_SQUELCH, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL ); DEFINE_OPCODE_HANDLER_OLD(MSG_PARTY_ASSIGNMENT, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandlePartyAssignmentOpcode ); @@ -690,10 +695,8 @@ void OpcodeTable::Initialize() DEFINE_OPCODE_HANDLER_OLD(MSG_PETITION_RENAME, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandlePetitionRenameOpcode ); DEFINE_OPCODE_HANDLER_OLD(MSG_QUEST_PUSH_RESULT, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleQuestPushResult ); DEFINE_OPCODE_HANDLER_OLD(MSG_RAID_READY_CHECK, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleRaidReadyCheckOpcode ); - DEFINE_OPCODE_HANDLER_OLD(MSG_RAID_READY_CHECK_CONFIRM, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL ); DEFINE_OPCODE_HANDLER_OLD(MSG_RAID_READY_CHECK_FINISHED, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleRaidReadyCheckFinishedOpcode); DEFINE_OPCODE_HANDLER_OLD(MSG_RAID_TARGET_UPDATE, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleRaidTargetUpdateOpcode ); - DEFINE_OPCODE_HANDLER_OLD(MSG_RANDOM_ROLL, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleRandomRollOpcode ); DEFINE_OPCODE_HANDLER_OLD(MSG_SAVE_GUILD_EMBLEM, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleSaveGuildEmblemOpcode ); DEFINE_OPCODE_HANDLER_OLD(MSG_SET_DUNGEON_DIFFICULTY, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleSetDungeonDifficultyOpcode); DEFINE_OPCODE_HANDLER_OLD(MSG_SET_RAID_DIFFICULTY, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleSetRaidDifficultyOpcode ); @@ -714,10 +717,11 @@ void OpcodeTable::Initialize() DEFINE_SERVER_OPCODE_HANDLER(SMSG_ACHIEVEMENT_DELETED, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); DEFINE_SERVER_OPCODE_HANDLER(SMSG_ACHIEVEMENT_EARNED, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); DEFINE_SERVER_OPCODE_HANDLER(SMSG_ACTION_BUTTONS, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_ACTIVATETAXIREPLY, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_ACTIVATE_TAXI_REPLY, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); DEFINE_SERVER_OPCODE_HANDLER(SMSG_ADDON_INFO, STATUS_NEVER, CONNECTION_TYPE_REALM); DEFINE_SERVER_OPCODE_HANDLER(SMSG_ADD_RUNE_POWER, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); DEFINE_SERVER_OPCODE_HANDLER(SMSG_ADJUST_SPLINE_DURATION, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_AE_LOOT_TARGETS, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); DEFINE_SERVER_OPCODE_HANDLER(SMSG_AI_REACTION, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); DEFINE_SERVER_OPCODE_HANDLER(SMSG_ALL_ACHIEVEMENT_DATA, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); DEFINE_SERVER_OPCODE_HANDLER(SMSG_AREA_SPIRIT_HEALER_TIME, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); @@ -738,6 +742,7 @@ void OpcodeTable::Initialize() DEFINE_SERVER_OPCODE_HANDLER(SMSG_ATTACKSWING_BADFACING, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); DEFINE_SERVER_OPCODE_HANDLER(SMSG_ATTACKSWING_CANT_ATTACK, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); DEFINE_SERVER_OPCODE_HANDLER(SMSG_ATTACKSWING_DEADTARGET, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_ATTACKSWING_ERROR, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); DEFINE_SERVER_OPCODE_HANDLER(SMSG_ATTACKSWING_NOTINRANGE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); DEFINE_SERVER_OPCODE_HANDLER(SMSG_AUCTION_BIDDER_LIST_RESULT, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); DEFINE_SERVER_OPCODE_HANDLER(SMSG_AUCTION_BIDDER_NOTIFICATION, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); @@ -767,7 +772,7 @@ void OpcodeTable::Initialize() DEFINE_SERVER_OPCODE_HANDLER(SMSG_BATTLEFIELD_PLAYER_POSITIONS, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); DEFINE_SERVER_OPCODE_HANDLER(SMSG_BATTLEFIELD_PORT_DENIED, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); DEFINE_SERVER_OPCODE_HANDLER(SMSG_BATTLEFIELD_RATED_INFO, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_BATTLEFIELD_STATUS, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_BATTLEFIELD_STATUS_NONE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); DEFINE_SERVER_OPCODE_HANDLER(SMSG_BATTLEFIELD_STATUS_QUEUED, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); DEFINE_SERVER_OPCODE_HANDLER(SMSG_BATTLEFIELD_STATUS_ACTIVE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); DEFINE_SERVER_OPCODE_HANDLER(SMSG_BATTLEFIELD_STATUS_NEEDCONFIRMATION, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); @@ -816,7 +821,6 @@ void OpcodeTable::Initialize() DEFINE_SERVER_OPCODE_HANDLER(SMSG_CANCEL_COMBAT, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); DEFINE_SERVER_OPCODE_HANDLER(SMSG_CAST_FAILED, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); DEFINE_SERVER_OPCODE_HANDLER(SMSG_CHANNEL_LIST, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_CHANNEL_MEMBER_COUNT, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); DEFINE_SERVER_OPCODE_HANDLER(SMSG_CHANNEL_NOTIFY, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); DEFINE_SERVER_OPCODE_HANDLER(SMSG_CHANNEL_NOTIFY_JOINED, STATUS_NEVER, CONNECTION_TYPE_REALM); DEFINE_SERVER_OPCODE_HANDLER(SMSG_CHANNEL_NOTIFY_LEFT, STATUS_NEVER, CONNECTION_TYPE_REALM); @@ -860,6 +864,7 @@ void OpcodeTable::Initialize() DEFINE_SERVER_OPCODE_HANDLER(SMSG_COMSAT_CONNECT_FAIL, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); DEFINE_SERVER_OPCODE_HANDLER(SMSG_COMSAT_DISCONNECT, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); DEFINE_SERVER_OPCODE_HANDLER(SMSG_COMSAT_RECONNECT_TRY, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_CONQUEST_FORMULA_CONSTANTS, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); DEFINE_SERVER_OPCODE_HANDLER(SMSG_CONTACT_LIST, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); DEFINE_SERVER_OPCODE_HANDLER(SMSG_CONTACT_STATUS, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); DEFINE_SERVER_OPCODE_HANDLER(SMSG_CONVERT_RUNE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); @@ -910,6 +915,7 @@ void OpcodeTable::Initialize() DEFINE_SERVER_OPCODE_HANDLER(SMSG_EQUIPMENT_SET_USE_RESULT, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); DEFINE_SERVER_OPCODE_HANDLER(SMSG_EXPECTED_SPAM_RECORDS, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); DEFINE_SERVER_OPCODE_HANDLER(SMSG_EXPLORATION_EXPERIENCE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_FACTION_BONUS_INFO, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); DEFINE_SERVER_OPCODE_HANDLER(SMSG_FAILED_PLAYER_CONDITION, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); DEFINE_SERVER_OPCODE_HANDLER(SMSG_FEATURE_SYSTEM_STATUS, STATUS_NEVER, CONNECTION_TYPE_REALM); DEFINE_SERVER_OPCODE_HANDLER(SMSG_FEATURE_SYSTEM_STATUS_GLUE_SCREEN, STATUS_NEVER, CONNECTION_TYPE_REALM); @@ -985,6 +991,7 @@ void OpcodeTable::Initialize() DEFINE_SERVER_OPCODE_HANDLER(SMSG_GUILD_EVENT_BANK_MONEY_CHANGED, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); DEFINE_SERVER_OPCODE_HANDLER(SMSG_GUILD_EVENT_LOG_QUERY_RESULT, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); DEFINE_SERVER_OPCODE_HANDLER(SMSG_GUILD_EVENT_PRESENCE_CHANGE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_GUILD_EVENT_RANK_CHANGED, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); DEFINE_SERVER_OPCODE_HANDLER(SMSG_GUILD_FLAGGED_FOR_RENAME, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); DEFINE_SERVER_OPCODE_HANDLER(SMSG_GUILD_INVITE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); DEFINE_SERVER_OPCODE_HANDLER(SMSG_GUILD_INVITE_CANCEL, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); @@ -1170,8 +1177,8 @@ void OpcodeTable::Initialize() DEFINE_SERVER_OPCODE_HANDLER(SMSG_OPEN_LFG_DUNGEON_FINDER, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); DEFINE_SERVER_OPCODE_HANDLER(SMSG_OVERRIDE_LIGHT, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); DEFINE_SERVER_OPCODE_HANDLER(SMSG_PAGE_TEXT_QUERY_RESPONSE, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_PARTYKILLLOG, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); DEFINE_SERVER_OPCODE_HANDLER(SMSG_PARTY_COMMAND_RESULT, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_PARTY_KILL_LOG, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); DEFINE_SERVER_OPCODE_HANDLER(SMSG_PARTY_MEMBER_STATS, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); DEFINE_SERVER_OPCODE_HANDLER(SMSG_PARTY_MEMBER_STATS_FULL, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); DEFINE_SERVER_OPCODE_HANDLER(SMSG_PAUSE_MIRROR_TIMER, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); @@ -1249,8 +1256,12 @@ void OpcodeTable::Initialize() DEFINE_SERVER_OPCODE_HANDLER(SMSG_RAID_INSTANCE_INFO, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); DEFINE_SERVER_OPCODE_HANDLER(SMSG_RAID_INSTANCE_MESSAGE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); DEFINE_SERVER_OPCODE_HANDLER(SMSG_RAID_MARKERS_CHANGED, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_RAID_READY_CHECK, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_RAID_READY_CHECK_COMPLETED, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_RAID_READY_CHECK_CONFIRM, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); DEFINE_SERVER_OPCODE_HANDLER(SMSG_RAID_READY_CHECK_THROTTLED_ERROR, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); DEFINE_SERVER_OPCODE_HANDLER(SMSG_RAID_SUMMON_FAILED, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_RANDOM_ROLL, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); DEFINE_SERVER_OPCODE_HANDLER(SMSG_RANDOMIZE_CHAR_NAME, STATUS_NEVER, CONNECTION_TYPE_REALM); DEFINE_SERVER_OPCODE_HANDLER(SMSG_RATED_BG_RATING, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); DEFINE_SERVER_OPCODE_HANDLER(SMSG_RATED_BG_STATS, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); @@ -1273,6 +1284,7 @@ void OpcodeTable::Initialize() DEFINE_SERVER_OPCODE_HANDLER(SMSG_RESET_COMPRESSION_CONTEXT, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); DEFINE_SERVER_OPCODE_HANDLER(SMSG_RESET_FAILED_NOTIFY, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); DEFINE_SERVER_OPCODE_HANDLER(SMSG_RESPOND_INSPECT_ACHIEVEMENTS, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_RESUME_CAST_BAR, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); DEFINE_SERVER_OPCODE_HANDLER(SMSG_RESUME_COMMS, STATUS_NEVER, CONNECTION_TYPE_REALM); DEFINE_SERVER_OPCODE_HANDLER(SMSG_RESUME_TOKEN, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); DEFINE_SERVER_OPCODE_HANDLER(SMSG_RESURRECT_FAILED, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); @@ -1281,6 +1293,7 @@ void OpcodeTable::Initialize() DEFINE_SERVER_OPCODE_HANDLER(SMSG_ROLE_POLL_BEGIN, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); DEFINE_SERVER_OPCODE_HANDLER(SMSG_RWHOIS, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); DEFINE_SERVER_OPCODE_HANDLER(SMSG_SELL_ITEM, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_SELL_RESPONSE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); DEFINE_SERVER_OPCODE_HANDLER(SMSG_SEND_MAIL_RESULT, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); DEFINE_SERVER_OPCODE_HANDLER(SMSG_SEND_SPELL_CHARGES, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); DEFINE_SERVER_OPCODE_HANDLER(SMSG_SEND_SPELL_HISTORY, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); @@ -1450,6 +1463,7 @@ void OpcodeTable::Initialize() DEFINE_SERVER_OPCODE_HANDLER(SMSG_WORLD_SERVER_INFO, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); DEFINE_SERVER_OPCODE_HANDLER(SMSG_WORLD_STATE_UI_TIMER_UPDATE, STATUS_NEVER, CONNECTION_TYPE_REALM); DEFINE_SERVER_OPCODE_HANDLER(SMSG_XP_GAIN_ABORTED, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_XP_GAIN_ENABLED, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); DEFINE_SERVER_OPCODE_HANDLER(SMSG_ZONE_UNDER_ATTACK, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); #undef DEFINE_SERVER_OPCODE_HANDLER diff --git a/src/server/game/Server/Protocol/Opcodes.h b/src/server/game/Server/Protocol/Opcodes.h index 55980ca98eb..1c250f54291 100644 --- a/src/server/game/Server/Protocol/Opcodes.h +++ b/src/server/game/Server/Protocol/Opcodes.h @@ -43,10 +43,10 @@ enum OpcodeMisc : uint32 NULL_OPCODE = 0xBADD }; -// CMSGs 6.0.3.19116 +// CMSGs 6.0.3.19342 enum OpcodeClient : uint32 { - CMSG_ACCEPT_LEVEL_GRANT = 0xBADD, + CMSG_ACCEPT_LEVEL_GRANT = 0x1921, CMSG_ACCEPT_TRADE = 0xBADD, CMSG_ACTIVATETAXI = 0x0311, CMSG_ACTIVATETAXIEXPRESS = 0x1B52, @@ -55,7 +55,7 @@ enum OpcodeClient : uint32 CMSG_ADD_IGNORE = 0x1321, CMSG_ADD_MUTE = 0x098A, CMSG_ADD_VOICE_IGNORE = 0xBADD, - CMSG_ALTER_APPEARANCE = 0xBADD, + CMSG_ALTER_APPEARANCE = 0x13E9, CMSG_AREATRIGGER = 0x01B4, CMSG_AREA_SPIRIT_HEALER_QUERY = 0xBADD, CMSG_AREA_SPIRIT_HEALER_QUEUE = 0xBADD, @@ -89,11 +89,10 @@ enum OpcodeClient : uint32 CMSG_AUTOSTORE_BANK_ITEM = 0x0732, CMSG_AUTOSTORE_GROUND_ITEM = 0xBADD, CMSG_AUTOSTORE_LOOT_ITEM = 0x0609, - CMSG_AUTO_DECLINE_GUILD_INVITE = 0xBADD, CMSG_AUTO_DECLINE_GUILD_INVITES = 0xBADD, CMSG_BANKER_ACTIVATE = 0x1B24, CMSG_BATTLEFIELD_JOIN = 0xBADD, - CMSG_BATTLEFIELD_LEAVE = 0xBADD, + CMSG_BATTLEFIELD_LEAVE = 0x06F1, CMSG_BATTLEFIELD_LIST = 0x03B1, CMSG_BATTLEFIELD_MGR_ENTRY_INVITE_RESPONSE = 0x059A, CMSG_BATTLEFIELD_MGR_EXIT_REQUEST = 0x1381, @@ -140,38 +139,38 @@ enum OpcodeClient : uint32 CMSG_CALENDAR_UPDATE_EVENT = 0xBADD, CMSG_CANCEL_AURA = 0x08AE, CMSG_CANCEL_AUTO_REPEAT_SPELL = 0xBADD, - CMSG_CANCEL_CAST = 0xBADD, - CMSG_CANCEL_CHANNELLING = 0xBADD, + CMSG_CANCEL_CAST = 0x0071, + CMSG_CANCEL_CHANNELLING = 0x0BE6, CMSG_CANCEL_GROWTH_AURA = 0xBADD, - CMSG_CANCEL_MOUNT_AURA = 0xBADD, + CMSG_CANCEL_MOUNT_AURA = 0x03E6, CMSG_CANCEL_QUEUED_SPELL = 0xBADD, CMSG_CANCEL_TEMP_ENCHANTMENT = 0xBADD, CMSG_CANCEL_TRADE = 0x1159, CMSG_CAST_SPELL = 0x08FE, CMSG_CHANGEPLAYER_DIFFICULTY = 0xBADD, CMSG_CHANGE_SEATS_ON_CONTROLLED_VEHICLE = 0xBADD, - CMSG_CHANNEL_ANNOUNCEMENTS = 0xBADD, - CMSG_CHANNEL_BAN = 0xBADD, + CMSG_CHANNEL_ANNOUNCEMENTS = 0x1313, + CMSG_CHANNEL_BAN = 0x1A82, + CMSG_CHANNEL_DECLINE_INVITE = 0x19DB, CMSG_CHANNEL_DISPLAY_LIST = 0x093B, - CMSG_CHANNEL_INVITE = 0xBADD, - CMSG_CHANNEL_KICK = 0xBADD, - CMSG_CHANNEL_LIST = 0x093B, + CMSG_CHANNEL_INVITE = 0x1933, + CMSG_CHANNEL_KICK = 0x0A2A, + CMSG_CHANNEL_LIST = 0x091C, CMSG_CHANNEL_MODERATE = 0xBADD, - CMSG_CHANNEL_MODERATOR = 0xBADD, - CMSG_CHANNEL_MUTE = 0xBADD, - CMSG_CHANNEL_OWNER = 0xBADD, - CMSG_CHANNEL_PASSWORD = 0xBADD, - CMSG_CHANNEL_ROSTER_INFO = 0xBADD, - CMSG_CHANNEL_SET_OWNER = 0xBADD, - CMSG_CHANNEL_SILENCE_ALL = 0xBADD, - CMSG_CHANNEL_SILENCE_VOICE = 0xBADD, - CMSG_CHANNEL_UNBAN = 0xBADD, - CMSG_CHANNEL_UNMODERATOR = 0xBADD, - CMSG_CHANNEL_UNMUTE = 0xBADD, - CMSG_CHANNEL_UNSILENCE_ALL = 0xBADD, - CMSG_CHANNEL_UNSILENCE_VOICE = 0xBADD, - CMSG_CHANNEL_VOICE_OFF = 0xBADD, - CMSG_CHANNEL_VOICE_ON = 0xBADD, + CMSG_CHANNEL_MODERATOR = 0x088B, + CMSG_CHANNEL_MUTE = 0x18AB, + CMSG_CHANNEL_OWNER = 0x0BFA, + CMSG_CHANNEL_PASSWORD = 0x1113, + CMSG_CHANNEL_SET_OWNER = 0x0174, + CMSG_CHANNEL_SILENCE_ALL = 0x11FB, + CMSG_CHANNEL_SILENCE_VOICE = 0x0AA3, + CMSG_CHANNEL_UNBAN = 0x0BCB, + CMSG_CHANNEL_UNMODERATOR = 0x1AA1, + CMSG_CHANNEL_UNMUTE = 0x0A81, + CMSG_CHANNEL_UNSILENCE_ALL = 0x1164, + CMSG_CHANNEL_UNSILENCE_VOICE = 0x0B4C, + CMSG_CHANNEL_VOICE_OFF = 0x016C, + CMSG_CHANNEL_VOICE_ON = 0x0374, CMSG_CHAR_CREATE = 0x070D, CMSG_CHAR_CUSTOMIZE = 0x072A, CMSG_CHAR_DELETE = 0x030E, @@ -181,7 +180,6 @@ enum OpcodeClient : uint32 CMSG_CHAR_UNDELETE_ENUM = 0x0F2D, CMSG_CHAT_FILTERED = 0xBADD, CMSG_CHAT_IGNORED = 0xBADD, - CMSG_CLEAR_CHANNEL_WATCH = 0xBADD, CMSG_CLEAR_RAID_MARKER = 0xBADD, CMSG_CLEAR_TRADE_ITEM = 0xBADD, CMSG_COMMENTATOR_ENABLE = 0xBADD, @@ -193,7 +191,7 @@ enum OpcodeClient : uint32 CMSG_COMMENTATOR_INSTANCE_COMMAND = 0xBADD, CMSG_COMMENTATOR_SKIRMISH_QUEUE_COMMAND = 0xBADD, CMSG_COMMENTATOR_START_WARGAME = 0xBADD, - CMSG_COMPLAIN = 0xBADD, + CMSG_COMPLAIN = 0x0917, CMSG_COMPLETE_CINEMATIC = 0xBADD, CMSG_COMPLETE_MOVIE = 0xBADD, CMSG_CONNECT_TO_FAILED = 0x0135, @@ -202,7 +200,6 @@ enum OpcodeClient : uint32 CMSG_CREATURE_QUERY = 0x0505, CMSG_DANCE_QUERY = 0xBADD, CMSG_DB_QUERY_BULK = 0x138B, - CMSG_DECLINE_CHANNEL_INVITE = 0xBADD, CMSG_DEL_FRIEND = 0x0F2A, CMSG_DEL_IGNORE = 0x033D, CMSG_DEL_MUTE = 0x0128, @@ -219,7 +216,6 @@ enum OpcodeClient : uint32 CMSG_EQUIPMENT_SET_DELETE = 0xBADD, CMSG_EQUIPMENT_SET_SAVE = 0x1B54, CMSG_EQUIPMENT_SET_USE = 0xBADD, - CMSG_FACTION_BONUS_INFO = 0x0928, CMSG_FAR_SIGHT = 0xBADD, CMSG_FORCE_MOVE_ROOT_ACK = 0x0B73, CMSG_FORCE_MOVE_UNROOT_ACK = 0xBADD, @@ -228,6 +224,9 @@ enum OpcodeClient : uint32 CMSG_GAMEOBJ_USE = 0x082E, CMSG_GAMESPEED_SET = 0xBADD, CMSG_GAMETIME_SET = 0xBADD, + CMSG_GARRISON_COMPLETE_MISSION = 0x102C, + CMSG_GARRISON_MISSION_BONUS_ROLL = 0x02C2, + CMSG_GARRISON_START_MISSION = 0x1624, CMSG_GETDEATHBINDZONE = 0xBADD, CMSG_GET_MAIL_LIST = 0x0BD3, CMSG_GET_MIRRORIMAGE_DATA = 0xBADD, @@ -245,7 +244,7 @@ enum OpcodeClient : uint32 CMSG_GM_SET_SECURITY_GROUP = 0xBADD, CMSG_GOSSIP_HELLO = 0x00F3, CMSG_GOSSIP_SELECT_OPTION = 0x0332, - CMSG_GRANT_LEVEL = 0xBADD, + CMSG_GRANT_LEVEL = 0x0BE3, CMSG_GROUP_ASSISTANT_LEADER = 0xBADD, CMSG_GROUP_CANCEL = 0xBADD, CMSG_GROUP_CHANGE_SUB_GROUP = 0xBADD, @@ -262,52 +261,53 @@ enum OpcodeClient : uint32 CMSG_GUILD_ACCEPT = 0xBADD, CMSG_GUILD_ACHIEVEMENT_MEMBERS = 0xBADD, CMSG_GUILD_ACHIEVEMENT_PROGRESS_QUERY = 0xBADD, - CMSG_GUILD_ADD_RANK = 0xBADD, - CMSG_GUILD_ASSIGN_MEMBER_RANK = 0xBADD, + CMSG_GUILD_ADD_RANK = 0x0C2F, + CMSG_GUILD_ASSIGN_MEMBER_RANK = 0x0436, + CMSG_GUILD_AUTO_DECLINE_INVITATION = 0x062F, CMSG_GUILD_BANKER_ACTIVATE = 0xBADD, - CMSG_GUILD_BANK_BUY_TAB = 0xBADD, - CMSG_GUILD_BANK_DEPOSIT_MONEY = 0xBADD, - CMSG_GUILD_BANK_LOG_QUERY = 0xBADD, + CMSG_GUILD_BANK_BUY_TAB = 0x1BC3, + CMSG_GUILD_BANK_DEPOSIT_MONEY = 0x1B11, + CMSG_GUILD_BANK_LOG_QUERY = 0x0428, CMSG_GUILD_BANK_MONEY_WITHDRAWN_QUERY = 0x063D, CMSG_GUILD_BANK_NOTE = 0xBADD, - CMSG_GUILD_BANK_QUERY_TAB = 0xBADD, + CMSG_GUILD_BANK_QUERY_TAB = 0x13C1, CMSG_GUILD_BANK_QUERY_TEXT = 0xBADD, CMSG_GUILD_BANK_SWAP_ITEMS = 0xBADD, CMSG_GUILD_BANK_UPDATE_TAB = 0xBADD, CMSG_GUILD_BANK_WITHDRAW_MONEY = 0xBADD, CMSG_GUILD_CHANGE_NAME_REQUEST = 0xBADD, - CMSG_GUILD_DECLINE = 0xBADD, - CMSG_GUILD_DEL_RANK = 0xBADD, - CMSG_GUILD_DEMOTE = 0xBADD, - CMSG_GUILD_DISBAND = 0xBADD, - CMSG_GUILD_EVENT_LOG_QUERY = 0xBADD, + CMSG_GUILD_DECLINE = 0x0667, + CMSG_GUILD_DEL_RANK = 0x0C28, + CMSG_GUILD_DEMOTE = 0x142F, + CMSG_GUILD_DISBAND = 0x0E68, + CMSG_GUILD_EVENT_LOG_QUERY = 0x0E37, CMSG_GUILD_INFO = 0xBADD, - CMSG_GUILD_INFO_TEXT = 0xBADD, + CMSG_GUILD_INFO_TEXT = 0x0C75, CMSG_GUILD_INVITE = 0x19A4, - CMSG_GUILD_LEAVE = 0xBADD, + CMSG_GUILD_LEAVE = 0x0476, CMSG_GUILD_MEMBER_SEND_SOR_REQUEST = 0xBADD, CMSG_GUILD_MOTD = 0xBADD, CMSG_GUILD_NEWS_UPDATE_STICKY = 0xBADD, CMSG_GUILD_PERMISSIONS = 0x1436, CMSG_GUILD_PROMOTE = 0xBADD, CMSG_GUILD_QUERY = 0x0930, - CMSG_GUILD_QUERY_NEWS = 0xBADD, + CMSG_GUILD_QUERY_NEWS = 0x0676, CMSG_GUILD_QUERY_RANKS = 0x0C37, - CMSG_GUILD_REMOVE = 0xBADD, + CMSG_GUILD_REMOVE = 0x042F, CMSG_GUILD_REPLACE_GUILD_MASTER = 0xBADD, CMSG_GUILD_REQUEST_CHALLENGE_UPDATE = 0xBADD, CMSG_GUILD_REQUEST_MAX_DAILY_XP = 0xBADD, CMSG_GUILD_REQUEST_PARTY_STATE = 0x0A8E, CMSG_GUILD_ROSTER = 0x0638, CMSG_GUILD_SET_ACHIEVEMENT_TRACKING = 0xBADD, - CMSG_GUILD_SET_GUILD_MASTER = 0xBADD, + CMSG_GUILD_SET_GUILD_MASTER = 0x1184, CMSG_GUILD_SET_NOTE = 0xBADD, - CMSG_GUILD_SET_RANK_PERMISSIONS = 0xBADD, + CMSG_GUILD_SET_RANK_PERMISSIONS = 0x0E38, CMSG_GUILD_SWITCH_RANK = 0xBADD, CMSG_HEARTH_AND_RESURRECT = 0xBADD, CMSG_IGNORE_TRADE = 0xBADD, CMSG_INITIATE_TRADE = 0xBADD, - CMSG_INSPECT = 0xBADD, + CMSG_INSPECT = 0x01EC, CMSG_INSPECT_HONOR_STATS = 0xBADD, CMSG_INSTANCE_LOCK_WARNING_RESPONSE = 0xBADD, CMSG_ITEM_REFUND = 0xBADD, @@ -348,7 +348,7 @@ enum OpcodeClient : uint32 CMSG_LOOT_MASTER_GIVE = 0xBADD, CMSG_LOOT_METHOD = 0x0729, CMSG_LOOT_MONEY = 0xBADD, - CMSG_LOOT_RELEASE = 0xBADD, + CMSG_LOOT_RELEASE = 0x1199, CMSG_LOOT_ROLL = 0xBADD, CMSG_MAIL_CREATE_TEXT_ITEM = 0x13D1, CMSG_MAIL_DELETE = 0x068C, @@ -367,8 +367,9 @@ enum OpcodeClient : uint32 CMSG_MESSAGECHAT_DND = 0x0AAB, CMSG_MESSAGECHAT_EMOTE = 0x113C, CMSG_MESSAGECHAT_GUILD = 0x0B1B, + CMSG_MESSAGECHAT_INSTANCE = 0x0134, CMSG_MESSAGECHAT_OFFICER = 0x0114, - CMSG_MESSAGECHAT_PARTY = 0x0134, + CMSG_MESSAGECHAT_PARTY = 0x0803, CMSG_MESSAGECHAT_RAID = 0x0B33, CMSG_MESSAGECHAT_RAID_WARNING = 0x0313, CMSG_MESSAGECHAT_SAY = 0x1884, @@ -380,7 +381,7 @@ enum OpcodeClient : uint32 CMSG_MOVE_CHARM_TELEPORT_CHEAT = 0xBADD, CMSG_MOVE_CHNG_TRANSPORT = 0xBADD, CMSG_MOVE_ENABLE_SWIM_TO_FLY_TRANS_ACK = 0xBADD, - CMSG_MOVE_FALL_RESET = 0xBADD, + CMSG_MOVE_FALL_RESET = 0x0522, CMSG_MOVE_FEATHER_FALL_ACK = 0xBADD, CMSG_MOVE_FORCE_FLIGHT_BACK_SPEED_CHANGE_ACK = 0xBADD, CMSG_MOVE_FORCE_FLIGHT_SPEED_CHANGE_ACK = 0xBADD, @@ -394,7 +395,7 @@ enum OpcodeClient : uint32 CMSG_MOVE_GRAVITY_DISABLE_ACK = 0x0553, CMSG_MOVE_GRAVITY_ENABLE_ACK = 0xBADD, CMSG_MOVE_HEARTBEAT = 0x19C1, - CMSG_MOVE_HOVER_ACK = 0xBADD, + CMSG_MOVE_HOVER_ACK = 0x0543, CMSG_MOVE_JUMP = 0x0282, CMSG_MOVE_KNOCK_BACK_ACK = 0xBADD, CMSG_MOVE_FALL_LAND = 0x0D54, @@ -409,7 +410,7 @@ enum OpcodeClient : uint32 CMSG_MOVE_SET_RUN_MODE = 0x0D51, CMSG_MOVE_SET_VEHICLE_REC_ID_ACK = 0xBADD, CMSG_MOVE_SET_WALK_MODE = 0x0544, - CMSG_MOVE_SPLINE_DONE = 0xBADD, + CMSG_MOVE_SPLINE_DONE = 0x0B63, CMSG_MOVE_START_ASCEND = 0x0D41, CMSG_MOVE_START_BACKWARD = 0x0583, CMSG_MOVE_START_DESCEND = 0x0B79, @@ -430,7 +431,7 @@ enum OpcodeClient : uint32 CMSG_MOVE_TELEPORT_ACK = 0x0D01, CMSG_MOVE_TIME_SKIPPED = 0x19C2, CMSG_MOVE_TOGGLE_COLLISION_ACK = 0xBADD, - CMSG_MOVE_WATER_WALK_ACK = 0xBADD, + CMSG_MOVE_WATER_WALK_ACK = 0x0B6C, CMSG_MOVE_WORLDPORT_ACK = 0x0938, CMSG_NAME_QUERY = 0x0B15, CMSG_NEW_SPELL_SLOT = 0xBADD, @@ -480,7 +481,7 @@ enum OpcodeClient : uint32 CMSG_QUERY_NEXT_MAIL_TIME = 0x0B31, CMSG_QUERY_QUESTS_COMPLETED = 0xBADD, CMSG_QUERY_TIME = 0xBADD, - CMSG_QUESTGIVER_ACCEPT_QUEST = 0xBADD, + CMSG_QUESTGIVER_ACCEPT_QUEST = 0x13D3, CMSG_QUESTGIVER_CANCEL = 0xBADD, CMSG_QUESTGIVER_CHOOSE_REWARD = 0x0DAD, CMSG_QUESTGIVER_COMPLETE_QUEST = 0x1E8A, @@ -530,6 +531,7 @@ enum OpcodeClient : uint32 CMSG_RESURRECT_RESPONSE = 0xBADD, CMSG_RETURN_TO_GRAVEYARD = 0x12EA, CMSG_ROLE_POLL_BEGIN = 0xBADD, + CMSG_ROUTER_CLIENT_LOG_STREAMING_ERROR = 0x0C10, CMSG_SAVE_CUF_PROFILES = 0x0053, CMSG_SAVE_PLAYER = 0xBADD, CMSG_SEARCH_LFG_JOIN = 0xBADD, @@ -542,13 +544,12 @@ enum OpcodeClient : uint32 CMSG_SERVERTIME = 0xBADD, CMSG_SETDEATHBINDPOINT = 0xBADD, CMSG_SETSHEATHED = 0x1B43, - CMSG_SET_ACTIONBAR_TOGGLES = 0xBADD, + CMSG_SET_ACTIONBAR_TOGGLES = 0x0BD2, CMSG_SET_ACTION_BUTTON = 0x0599, - CMSG_SET_ACTIVE_MOVER = 0xBADD, + CMSG_SET_ACTIVE_MOVER = 0x0971, CMSG_SET_ACTIVE_VOICE_CHANNEL = 0x031E, CMSG_SET_ALLOW_LOW_LEVEL_RAID1 = 0xBADD, CMSG_SET_ALLOW_LOW_LEVEL_RAID2 = 0xBADD, - CMSG_SET_CHANNEL_WATCH = 0xBADD, CMSG_SET_CONTACT_NOTES = 0xBADD, CMSG_SET_CURRENCY_FLAGS = 0xBADD, CMSG_SET_EVERYONE_IS_ASSISTANT = 0xBADD, @@ -561,6 +562,7 @@ enum OpcodeClient : uint32 CMSG_SET_PET_SLOT = 0xBADD, CMSG_SET_PLAYER_DECLINED_NAMES = 0xBADD, CMSG_SET_PREFERED_CEMETERY = 0xBADD, + CMSG_SET_PVP = 0x19B9, CMSG_SET_RAID_DIFFICULTY = 0xBADD, CMSG_SET_RELATIVE_POSITION = 0xBADD, CMSG_SET_SAVED_INSTANCE_EXTEND = 0xBADD, @@ -568,7 +570,7 @@ enum OpcodeClient : uint32 CMSG_SET_SKILL_CHEAT = 0xBADD, CMSG_SET_SPECIALIZATION = 0x0AC5, CMSG_SET_TAXI_BENCHMARK_MODE = 0xBADD, - CMSG_SET_TITLE = 0xBADD, + CMSG_SET_TITLE = 0x0BC6, CMSG_SET_TRADE_CURRENCY = 0xBADD, CMSG_SET_TRADE_GOLD = 0xBADD, CMSG_SET_TRADE_ITEM = 0xBADD, @@ -576,11 +578,11 @@ enum OpcodeClient : uint32 CMSG_SET_WATCHED_FACTION = 0xBADD, CMSG_SHOWING_CLOAK = 0x0132, CMSG_SHOWING_HELM = 0x11E1, - CMSG_SOCKET_GEMS = 0xBADD, + CMSG_SOCKET_GEMS = 0x1BE1, CMSG_SPELLCLICK = 0x0BC2, CMSG_SPIRIT_HEALER_ACTIVATE = 0xBADD, CMSG_SPLIT_ITEM = 0x0795, - CMSG_STANDSTATECHANGE = 0xBADD, + CMSG_STANDSTATECHANGE = 0x0ABD, CMSG_START_QUEST = 0xBADD, CMSG_STOP_DANCE = 0xBADD, CMSG_STORE_LOOT_IN_SLOT = 0xBADD, @@ -588,6 +590,7 @@ enum OpcodeClient : uint32 CMSG_SUBMIT_COMPLAIN = 0xBADD, CMSG_SUGGESTION_SUBMIT = 0xBADD, CMSG_SUMMON_RESPONSE = 0xBADD, + CMSG_SUPPORT_TICKET_SUBMIT_COMPLAINT = 0x0B37, CMSG_SUSPEND_COMMS_ACK = 0x0C56, CMSG_SUSPEND_TOKEN_RESPONSE = 0x041E, CMSG_SWAP_INV_ITEM = 0x0F17, @@ -595,7 +598,7 @@ enum OpcodeClient : uint32 CMSG_SYNC_DANCE = 0xBADD, CMSG_TAXICLEARALLNODES = 0xBADD, CMSG_TAXIENABLEALLNODES = 0xBADD, - CMSG_TAXINODE_STATUS_QUERY = 0xBADD, + CMSG_TAXINODE_STATUS_QUERY = 0x1BC1, CMSG_TAXIQUERYAVAILABLENODES = 0xBADD, CMSG_TAXISHOWNODES = 0xBADD, CMSG_TELEPORT_TO_UNIT = 0xBADD, @@ -654,7 +657,6 @@ enum OpcodeClient : uint32 MSG_MOVE_SET_TURN_RATE_CHEAT = 0xBADD, MSG_MOVE_SET_WALK_SPEED_CHEAT = 0xBADD, MSG_MOVE_TELEPORT_CHEAT = 0xBADD, - MSG_MOVE_TIME_SKIPPED = 0xBADD, MSG_MOVE_TOGGLE_COLLISION_CHEAT = 0xBADD, MSG_MOVE_TOGGLE_FALL_LOGGING = 0xBADD, MSG_MOVE_TOGGLE_LOGGING = 0xBADD, @@ -666,10 +668,8 @@ enum OpcodeClient : uint32 MSG_QUERY_NEXT_MAIL_TIME = 0xBADD, MSG_QUEST_PUSH_RESULT = 0xBADD, MSG_RAID_READY_CHECK = 0xBADD, - MSG_RAID_READY_CHECK_CONFIRM = 0xBADD, MSG_RAID_READY_CHECK_FINISHED = 0xBADD, MSG_RAID_TARGET_UPDATE = 0xBADD, - MSG_RANDOM_ROLL = 0xBADD, MSG_SAVE_GUILD_EMBLEM = 0xBADD, MSG_SET_DUNGEON_DIFFICULTY = 0xBADD, MSG_SET_RAID_DIFFICULTY = 0xBADD, @@ -677,7 +677,7 @@ enum OpcodeClient : uint32 MSG_TALENT_WIPE_CONFIRM = 0xBADD }; -// SMSGs 6.0.3.19116 +// SMSGs 6.0.3.19342 enum OpcodeServer : uint32 { SMSG_ACCOUNT_DATA_TIMES = 0x0120, @@ -688,10 +688,11 @@ enum OpcodeServer : uint32 SMSG_ACHIEVEMENT_DELETED = 0xBADD, SMSG_ACHIEVEMENT_EARNED = 0x010E, SMSG_ACTION_BUTTONS = 0x1D1F, - SMSG_ACTIVATETAXIREPLY = 0xBADD, + SMSG_ACTIVATE_TAXI_REPLY = 0x1321, SMSG_ADDON_INFO = 0x1D9F, SMSG_ADD_RUNE_POWER = 0xBADD, SMSG_ADJUST_SPLINE_DURATION = 0x0104, + SMSG_AE_LOOT_TARGETS = 0x15AF, SMSG_AI_REACTION = 0x0BA1, SMSG_ACCOUNT_CRITERIA_UPDATE = 0x0912, SMSG_ALL_ACCOUNT_CRITERIA = 0x0123, @@ -700,7 +701,7 @@ enum OpcodeServer : uint32 SMSG_AREA_TRIGGER_MESSAGE = 0xBADD, SMSG_AREA_TRIGGER_MOVEMENT_UPDATE = 0xBADD, SMSG_ARENA_ERROR = 0xBADD, - SMSG_ARENA_UNIT_DESTROYED = 0xBADD, + SMSG_ARENA_UNIT_DESTROYED = 0x19E1, SMSG_ARENA_TEAM_CHANGE_FAILED_QUEUED = 0xBADD, SMSG_ARENA_TEAM_COMMAND_RESULT = 0xBADD, SMSG_ARENA_TEAM_EVENT = 0xBADD, @@ -714,6 +715,7 @@ enum OpcodeServer : uint32 SMSG_ATTACKSWING_BADFACING = 0xBADD, SMSG_ATTACKSWING_CANT_ATTACK = 0xBADD, SMSG_ATTACKSWING_DEADTARGET = 0xBADD, + SMSG_ATTACKSWING_ERROR = 0x0509, SMSG_ATTACKSWING_NOTINRANGE = 0xBADD, SMSG_AUCTION_BIDDER_LIST_RESULT = 0xBADD, SMSG_AUCTION_BIDDER_NOTIFICATION = 0xBADD, @@ -731,11 +733,11 @@ enum OpcodeServer : uint32 SMSG_AUTH_RESPONSE = 0x0DA9, SMSG_AVAILABLE_VOICE_CHANNEL = 0x04D4, SMSG_AVERAGE_ITEM_LEVEL_INFORM = 0xBADD, - SMSG_BARBER_SHOP_RESULT = 0xBADD, - SMSG_BATTLEFIELD_LIST = 0xBADD, - SMSG_BATTLEFIELD_MGR_EJECTED = 0xBADD, + SMSG_BARBER_SHOP_RESULT = 0x150D, + SMSG_BATTLEFIELD_LIST = 0x11A1, + SMSG_BATTLEFIELD_MGR_EJECTED = 0x0DAF, SMSG_BATTLEFIELD_MGR_EJECT_PENDING = 0xBADD, - SMSG_BATTLEFIELD_MGR_ENTERED = 0xBADD, + SMSG_BATTLEFIELD_MGR_ENTERED = 0x11A3, SMSG_BATTLEFIELD_MGR_ENTRY_INVITE = 0xBADD, SMSG_BATTLEFIELD_MGR_EXIT_REQUEST = 0xBADD, SMSG_BATTLEFIELD_MGR_QUEUE_INVITE = 0xBADD, @@ -744,15 +746,15 @@ enum OpcodeServer : uint32 SMSG_BATTLEFIELD_PLAYER_POSITIONS = 0xBADD, SMSG_BATTLEFIELD_PORT_DENIED = 0xBADD, SMSG_BATTLEFIELD_RATED_INFO = 0x1F0A, - SMSG_BATTLEFIELD_STATUS = 0xBADD, - SMSG_BATTLEFIELD_STATUS_QUEUED = 0xBADD, - SMSG_BATTLEFIELD_STATUS_ACTIVE = 0xBADD, - SMSG_BATTLEFIELD_STATUS_NEEDCONFIRMATION = 0xBADD, - SMSG_BATTLEFIELD_STATUS_WAITFORGROUPS = 0xBADD, - SMSG_BATTLEFIELD_STATUS_FAILED = 0xBADD, + SMSG_BATTLEFIELD_STATUS_NONE = 0x1E89, + SMSG_BATTLEFIELD_STATUS_QUEUED = 0x002D, + SMSG_BATTLEFIELD_STATUS_ACTIVE = 0x1284, + SMSG_BATTLEFIELD_STATUS_NEEDCONFIRMATION = 0x1719, + SMSG_BATTLEFIELD_STATUS_WAITFORGROUPS = 0x082D, + SMSG_BATTLEFIELD_STATUS_FAILED = 0x0308, SMSG_BATTLEGROUND_INFO_THROTTLED = 0xBADD, - SMSG_BATTLEGROUND_PLAYER_JOINED = 0xBADD, - SMSG_BATTLEGROUND_PLAYER_LEFT = 0xBADD, + SMSG_BATTLEGROUND_PLAYER_JOINED = 0x13EA, + SMSG_BATTLEGROUND_PLAYER_LEFT = 0x1BD1, SMSG_BATTLE_PAY_DISTRIBUTION_UPDATE = 0x0BE3, SMSG_BATTLE_PAY_GET_DISTRIBUTION_LIST_RESPONSE = 0x0F2A, SMSG_BATTLE_PAY_GET_PRODUCT_LIST_RESPONSE = 0x12A4, @@ -792,10 +794,9 @@ enum OpcodeServer : uint32 SMSG_CALENDAR_UPDATE_INVITE_LIST = 0xBADD, SMSG_CAMERA_SHAKE = 0xBADD, SMSG_CANCEL_AUTO_REPEAT = 0x0B18, - SMSG_CANCEL_COMBAT = 0xBADD, + SMSG_CANCEL_COMBAT = 0x05AD, SMSG_CAST_FAILED = 0x1A89, SMSG_CHANNEL_LIST = 0x1411, - SMSG_CHANNEL_MEMBER_COUNT = 0xBADD, SMSG_CHANNEL_NOTIFY = 0x0643, SMSG_CHANNEL_NOTIFY_JOINED = 0x1602, SMSG_CHANNEL_NOTIFY_LEFT = 0x1452, @@ -812,7 +813,7 @@ enum OpcodeServer : uint32 SMSG_CHAT_IGNORED_ACCOUNT_MUTED = 0xBADD, SMSG_CHAT_NOT_IN_PARTY = 0xBADD, SMSG_CHAT_PLAYER_AMBIGUOUS = 0xBADD, - SMSG_CHAT_PLAYER_NOT_FOUND = 0xBADD, + SMSG_CHAT_PLAYER_NOT_FOUND = 0x0614, SMSG_CHAT_RESTRICTED = 0xBADD, SMSG_CHAT_SERVER_DISCONNECTED = 0xBADD, SMSG_CHAT_SERVER_DISCONNECTED_2 = 0xBADD, @@ -826,9 +827,9 @@ enum OpcodeServer : uint32 SMSG_CLEAR_QUEST_COMPLETED_BITS = 0x1D47, SMSG_CLEAR_TARGET = 0xBADD, SMSG_CLIENTCACHE_VERSION = 0x080D, - SMSG_CLIENT_CONTROL_UPDATE = 0xBADD, + SMSG_CLIENT_CONTROL_UPDATE = 0x080E, SMSG_COIN_REMOVED = 0x0D30, - SMSG_COMBAT_EVENT_FAILED = 0xBADD, + SMSG_COMBAT_EVENT_FAILED = 0x1DAF, SMSG_COMBAT_LOG_MULTIPLE = 0xBADD, SMSG_COMMENTATOR_MAP_INFO = 0xBADD, SMSG_COMMENTATOR_PARTY_INFO = 0xBADD, @@ -842,9 +843,10 @@ enum OpcodeServer : uint32 SMSG_COMSAT_CONNECT_FAIL = 0xBADD, SMSG_COMSAT_DISCONNECT = 0xBADD, SMSG_COMSAT_RECONNECT_TRY = 0xBADD, + SMSG_CONQUEST_FORMULA_CONSTANTS = 0x1342, SMSG_CONTACT_LIST = 0x0210, SMSG_CONTACT_STATUS = 0x1BEA, - SMSG_CONVERT_RUNE = 0xBADD, + SMSG_CONVERT_RUNE = 0x1C89, SMSG_COOLDOWN_CHEAT = 0xBADD, SMSG_COOLDOWN_EVENT = 0xBADD, SMSG_CORPSE_MAP_POSITION_QUERY_RESPONSE = 0xBADD, @@ -865,7 +867,7 @@ enum OpcodeServer : uint32 SMSG_DEATH_RELEASE_LOC = 0xBADD, SMSG_DEBUG_RUNE_REGEN = 0xBADD, SMSG_DEBUG_SERVER_GEO = 0xBADD, - SMSG_DEFENSE_MESSAGE = 0xBADD, + SMSG_DEFENSE_MESSAGE = 0x1442, SMSG_DESTRUCTIBLE_BUILDING_DAMAGE = 0xBADD, SMSG_DIFFERENT_INSTANCE_FROM_PARTY = 0xBADD, SMSG_DISENCHANT_CREDIT = 0xBADD, @@ -877,23 +879,24 @@ enum OpcodeServer : uint32 SMSG_DONT_AUTO_PUSH_SPELLS_TO_ACTION_BAR = 0xBADD, SMSG_DROP_NEW_CONNECTION = 0xBADD, SMSG_DUEL_COMPLETE = 0xBADD, - SMSG_DUEL_COUNTDOWN = 0xBADD, + SMSG_DUEL_COUNTDOWN = 0x020E, SMSG_DUEL_INBOUNDS = 0xBADD, SMSG_DUEL_OUTOFBOUNDS = 0xBADD, SMSG_DUEL_REQUESTED = 0xBADD, - SMSG_DUEL_WINNER = 0xBADD, + SMSG_DUEL_WINNER = 0x0935, SMSG_DUMP_RIDE_TICKETS_RESPONSE = 0xBADD, SMSG_DURABILITY_DAMAGE_DEATH = 0xBADD, SMSG_ECHO_PARTY_SQUELCH = 0xBADD, SMSG_EMOTE = 0x071D, SMSG_ENABLE_BARBER_SHOP = 0xBADD, SMSG_ENCHANTMENTLOG = 0xBADD, - SMSG_ENVIRONMENTALDAMAGELOG = 0xBADD, + SMSG_ENVIRONMENTALDAMAGELOG = 0x0AAB, SMSG_EQUIPMENT_SET_LIST = 0x0F1E, SMSG_EQUIPMENT_SET_SAVED = 0x0027, SMSG_EQUIPMENT_SET_USE_RESULT = 0xBADD, SMSG_EXPECTED_SPAM_RECORDS = 0xBADD, SMSG_EXPLORATION_EXPERIENCE = 0xBADD, + SMSG_FACTION_BONUS_INFO = 0x0928, SMSG_FAILED_PLAYER_CONDITION = 0xBADD, SMSG_FEATURE_SYSTEM_STATUS = 0x0B1E, SMSG_FEATURE_SYSTEM_STATUS_GLUE_SCREEN = 0x1540, @@ -971,6 +974,7 @@ enum OpcodeServer : uint32 SMSG_GUILD_EVENT_BANK_MONEY_CHANGED = 0x1077, SMSG_GUILD_EVENT_LOG_QUERY_RESULT = 0xBADD, SMSG_GUILD_EVENT_PRESENCE_CHANGE = 0x1228, + SMSG_GUILD_EVENT_RANK_CHANGED = 0x1276, SMSG_GUILD_FLAGGED_FOR_RENAME = 0xBADD, SMSG_GUILD_INVITE = 0x1025, SMSG_GUILD_INVITE_CANCEL = 0xBADD, @@ -1021,7 +1025,7 @@ enum OpcodeServer : uint32 SMSG_INSPECT_TALENT = 0xBADD, SMSG_INSTANCE_INFO = 0x0DA0, SMSG_INSTANCE_LOCK_WARNING_QUERY = 0xBADD, - SMSG_INSTANCE_RESET = 0xBADD, + SMSG_INSTANCE_RESET = 0x0B16, SMSG_INSTANCE_RESET_FAILED = 0xBADD, SMSG_INSTANCE_SAVE_CREATED = 0xBADD, SMSG_INVALIDATE_DANCE = 0xBADD, @@ -1032,18 +1036,18 @@ enum OpcodeServer : uint32 SMSG_ITEM_COOLDOWN = 0xBADD, SMSG_ITEM_ENCHANT_TIME_UPDATE = 0x010D, SMSG_ITEM_EXPIRE_PURCHASE_REFUND = 0xBADD, - SMSG_ITEM_PUSH_RESULT = 0xBADD, + SMSG_ITEM_PUSH_RESULT = 0x0183, SMSG_ITEM_REFUND_INFO_RESPONSE = 0xBADD, SMSG_ITEM_REFUND_RESULT = 0xBADD, SMSG_ITEM_REMOVE_PASSIVE = 0xBADD, SMSG_ITEM_SEND_PASSIVE = 0xBADD, SMSG_ITEM_TEXT_QUERY_RESPONSE = 0xBADD, - SMSG_ITEM_TIME_UPDATE = 0xBADD, + SMSG_ITEM_TIME_UPDATE = 0x0F3E, SMSG_JOINED_BATTLEGROUND_QUEUE = 0xBADD, SMSG_KICK_REASON = 0xBADD, SMSG_LEARNED_DANCE_MOVES = 0xBADD, SMSG_LEARNED_SPELLS = 0x08AB, - SMSG_LEVELUP_INFO = 0xBADD, + SMSG_LEVELUP_INFO = 0x1BE4, SMSG_LFG_BOOT_PROPOSAL_UPDATE = 0xBADD, SMSG_LFG_DISABLED = 0xBADD, SMSG_LFG_JOIN_RESULT = 0x0F72, @@ -1053,7 +1057,7 @@ enum OpcodeServer : uint32 SMSG_LFG_PLAYER_INFO = 0x0F36, SMSG_LFG_PLAYER_REWARD = 0xBADD, SMSG_LFG_PROPOSAL_UPDATE = 0xBADD, - SMSG_LFG_QUEUE_STATUS = 0xBADD, + SMSG_LFG_QUEUE_STATUS = 0x07F1, SMSG_LFG_ROLE_CHECK_UPDATE = 0xBADD, SMSG_LFG_ROLE_CHOSEN = 0xBADD, SMSG_LFG_SLOT_INVALID = 0xBADD, @@ -1084,8 +1088,8 @@ enum OpcodeServer : uint32 SMSG_LOOT_MASTER_LIST = 0xBADD, SMSG_LOOT_MONEY_NOTIFY = 0x12A9, SMSG_LOOT_RELEASE_RESPONSE = 0xBADD, - SMSG_LOOT_REMOVED = 0xBADD, - SMSG_LOOT_RESPONSE = 0xBADD, + SMSG_LOOT_REMOVED = 0x0906, + SMSG_LOOT_RESPONSE = 0x0F8A, SMSG_LOOT_ROLL = 0xBADD, SMSG_LOOT_ROLL_WON = 0xBADD, SMSG_LOOT_SLOT_CHANGED = 0xBADD, @@ -1162,8 +1166,7 @@ enum OpcodeServer : uint32 SMSG_NEW_TAXI_PATH = 0xBADD, SMSG_NEW_WORLD = 0x0206, SMSG_NEW_WORLD_ABORT = 0xBADD, - SMSG_NOTIFICATION = 0xBADD, - SMSG_NOTIFICATION_2 = 0xBADD, + SMSG_NOTIFICATION = 0x0B22, SMSG_NOTIFY_DANCE = 0xBADD, SMSG_NOTIFY_DEST_LOC_SPELL_CAST = 0xBADD, SMSG_NPC_TEXT_UPDATE = 0x1122, @@ -1174,8 +1177,8 @@ enum OpcodeServer : uint32 SMSG_OPEN_LFG_DUNGEON_FINDER = 0xBADD, SMSG_OVERRIDE_LIGHT = 0xBADD, SMSG_PAGE_TEXT_QUERY_RESPONSE = 0x05A0, - SMSG_PARTYKILLLOG = 0xBADD, SMSG_PARTY_COMMAND_RESULT = 0xBADD, + SMSG_PARTY_KILL_LOG = 0x1312, SMSG_PARTY_MEMBER_STATS = 0x1729, SMSG_PARTY_MEMBER_STATS_FULL = 0xBADD, SMSG_PAUSE_MIRROR_TIMER = 0xBADD, @@ -1213,7 +1216,7 @@ enum OpcodeServer : uint32 SMSG_PLAY_DANCE = 0xBADD, SMSG_PLAY_MUSIC = 0xBADD, SMSG_PLAY_OBJECT_SOUND = 0xBADD, - SMSG_PLAY_ONE_SHOT_ANIM_KIT = 0xBADD, + SMSG_PLAY_ONE_SHOT_ANIM_KIT = 0x078D, SMSG_PLAY_SOUND = 0x02D2, SMSG_PLAY_SPELL_VISUAL = 0x1A84, SMSG_PLAY_SPELL_VISUAL_KIT = 0x0171, @@ -1235,7 +1238,7 @@ enum OpcodeServer : uint32 SMSG_QUESTGIVER_QUEST_DETAILS = 0x15B3, SMSG_QUESTGIVER_QUEST_FAILED = 0xBADD, SMSG_QUESTGIVER_QUEST_INVALID = 0xBADD, - SMSG_QUESTGIVER_QUEST_LIST = 0xBADD, + SMSG_QUESTGIVER_QUEST_LIST = 0x17A5, SMSG_QUESTGIVER_REQUEST_ITEMS = 0x17B8, SMSG_QUESTGIVER_STATUS = 0x1567, SMSG_QUESTGIVER_STATUS_MULTIPLE = 0x17C6, @@ -1243,7 +1246,7 @@ enum OpcodeServer : uint32 SMSG_QUESTUPDATE_ADD_ITEM = 0xBADD, SMSG_QUESTUPDATE_ADD_KILL = 0x1515, SMSG_QUESTUPDATE_ADD_PVP_KILL = 0xBADD, - SMSG_QUESTUPDATE_COMPLETE = 0xBADD, + SMSG_QUESTUPDATE_COMPLETE = 0x1787, SMSG_QUESTUPDATE_FAILED = 0xBADD, SMSG_QUESTUPDATE_FAILEDTIMER = 0xBADD, SMSG_QUEST_NPC_QUERY_RESPONSE = 0x1591, @@ -1255,8 +1258,12 @@ enum OpcodeServer : uint32 SMSG_RAID_INSTANCE_INFO = 0xBADD, SMSG_RAID_INSTANCE_MESSAGE = 0xBADD, SMSG_RAID_MARKERS_CHANGED = 0xBADD, + SMSG_RAID_READY_CHECK = 0x17A9, + SMSG_RAID_READY_CHECK_COMPLETED = 0x0BC3, + SMSG_RAID_READY_CHECK_CONFIRM = 0x0A10, SMSG_RAID_READY_CHECK_THROTTLED_ERROR = 0xBADD, SMSG_RAID_SUMMON_FAILED = 0xBADD, + SMSG_RANDOM_ROLL = 0x1B04, SMSG_RANDOMIZE_CHAR_NAME = 0x0D8F, SMSG_RATED_BG_RATING = 0xBADD, SMSG_RATED_BG_STATS = 0xBADD, @@ -1280,6 +1287,7 @@ enum OpcodeServer : uint32 SMSG_RESET_FAILED_NOTIFY = 0xBADD, SMSG_RESISTLOG = 0xBADD, SMSG_RESPOND_INSPECT_ACHIEVEMENTS = 0xBADD, + SMSG_RESUME_CAST_BAR = 0x082C, SMSG_RESUME_COMMS = 0x07C9, SMSG_RESUME_TOKEN = 0x0326, SMSG_RESURRECT_FAILED = 0xBADD, @@ -1288,6 +1296,7 @@ enum OpcodeServer : uint32 SMSG_ROLE_POLL_BEGIN = 0xBADD, SMSG_RWHOIS = 0xBADD, SMSG_SELL_ITEM = 0xBADD, + SMSG_SELL_RESPONSE = 0x1352, SMSG_SEND_MAIL_RESULT = 0x0302, SMSG_SEND_SPELL_CHARGES = 0x1A82, SMSG_SEND_SPELL_HISTORY = 0x1933, @@ -1325,8 +1334,8 @@ enum OpcodeServer : uint32 SMSG_SOCKET_GEMS_RESULT = 0xBADD, SMSG_SOR_START_EXPERIENCE_INCOMPLETE = 0xBADD, SMSG_SPELLBREAKLOG = 0xBADD, - SMSG_SPELLDAMAGESHIELD = 0x188A, - SMSG_SPELLDISPELLOG = 0xBADD, + SMSG_SPELLDAMAGESHIELD = 0x0B4C, + SMSG_SPELLDISPELLOG = 0x18A2, SMSG_SPELLENERGIZELOG = 0x137C, SMSG_SPELLHEALLOG = 0x0114, SMSG_SPELLINSTAKILLLOG = 0xBADD, @@ -1378,7 +1387,7 @@ enum OpcodeServer : uint32 SMSG_STABLE_RESULT = 0xBADD, SMSG_STANDSTATE_UPDATE = 0x1311, SMSG_START_ELAPSED_TIMERS = 0x093F, - SMSG_START_MIRROR_TIMER = 0xBADD, + SMSG_START_MIRROR_TIMER = 0x051E, SMSG_START_TIMER = 0xBADD, SMSG_STOP_DANCE = 0xBADD, SMSG_STOP_MIRROR_TIMER = 0xBADD, @@ -1395,7 +1404,7 @@ enum OpcodeServer : uint32 SMSG_TAXINODE_STATUS = 0x0338, SMSG_TEST_DROP_RATE_RESULT = 0xBADD, SMSG_TEXT_EMOTE = 0x0383, - SMSG_THREAT_CLEAR = 0xBADD, + SMSG_THREAT_CLEAR = 0x030F, SMSG_THREAT_REMOVE = 0x0F3D, SMSG_THREAT_UPDATE = 0x03A9, SMSG_TIME_ADJUSTMENT = 0xBADD, @@ -1410,8 +1419,8 @@ enum OpcodeServer : uint32 SMSG_TRAINER_LIST = 0x0BA9, SMSG_TRANSFER_ABORTED = 0x03C2, SMSG_TRANSFER_PENDING = 0x172A, - SMSG_TRIGGER_CINEMATIC = 0xBADD, - SMSG_TRIGGER_MOVIE = 0xBADD, + SMSG_TRIGGER_CINEMATIC = 0x032F, + SMSG_TRIGGER_MOVIE = 0x151F, SMSG_TURN_IN_PETITION_RESULTS = 0xBADD, SMSG_TUTORIAL_FLAGS = 0x020F, SMSG_UNDELETE_CHARACTER_RESPONSE = 0x0344, @@ -1430,9 +1439,9 @@ enum OpcodeServer : uint32 SMSG_UPDATE_SERVER_PLAYER_POSITION = 0xBADD, SMSG_UPDATE_TASK_PROGRESS = 0x1209, SMSG_UPDATE_WORLD_STATE = 0x03EC, - SMSG_USERLIST_ADD = 0xBADD, - SMSG_USERLIST_REMOVE = 0xBADD, - SMSG_USERLIST_UPDATE = 0xBADD, + SMSG_USERLIST_ADD = 0x0441, + SMSG_USERLIST_REMOVE = 0x0641, + SMSG_USERLIST_UPDATE = 0x04C4, SMSG_VOICESESSION_FULL = 0xBADD, SMSG_VOICE_CHAT_STATUS = 0xBADD, SMSG_VOICE_PARENTAL_CONTROLS = 0xBADD, @@ -1453,12 +1462,13 @@ enum OpcodeServer : uint32 SMSG_WEEKLY_LAST_RESET = 0xBADD, SMSG_WEEKLY_RESET_CURRENCY = 0xBADD, SMSG_WEEKLY_SPELL_USAGE = 0x13DC, - SMSG_WEEKLY_SPELL_USAGE_UPDATE = 0xBADD, + SMSG_WEEKLY_SPELL_USAGE_UPDATE = 0x1829, SMSG_WHO = 0x0601, SMSG_WHOIS = 0xBADD, SMSG_WORLD_SERVER_INFO = 0x11AC, SMSG_WORLD_STATE_UI_TIMER_UPDATE = 0x0B83, SMSG_XP_GAIN_ABORTED = 0xBADD, + SMSG_XP_GAIN_ENABLED = 0x0FAA, SMSG_ZONE_UNDER_ATTACK = 0x1401 }; @@ -1636,7 +1646,6 @@ enum PacketProcessing PROCESS_THREADSAFE //packet is thread-safe - process it in Map::Update() }; -class WorldSession; class WorldPacket; class WorldSession; diff --git a/src/server/game/Server/WorldSession.h b/src/server/game/Server/WorldSession.h index c26a9b50c57..beed0547b5f 100644 --- a/src/server/game/Server/WorldSession.h +++ b/src/server/game/Server/WorldSession.h @@ -35,6 +35,7 @@ #include "AccountMgr.h" #include <unordered_set> +class Channel; class Creature; class GameObject; class InstanceSave; @@ -47,6 +48,7 @@ class SpellCastTargets; class Unit; class Warden; class WorldPacket; +class WorldSession; class WorldSocket; struct AreaTableEntry; struct AuctionEntry; @@ -104,7 +106,7 @@ namespace WorldPackets namespace Channel { - class ChannelListRequest; + class ChannelPlayerCommand; class JoinChannel; class LeaveChannel; } @@ -956,23 +958,15 @@ class WorldSession void HandleJoinChannel(WorldPackets::Channel::JoinChannel& packet); void HandleLeaveChannel(WorldPackets::Channel::LeaveChannel& packet); - void HandleChannelList(WorldPackets::Channel::ChannelListRequest& packet); - void HandleChannelPassword(WorldPacket& recvPacket); - void HandleChannelSetOwner(WorldPacket& recvPacket); - void HandleChannelOwner(WorldPacket& recvPacket); - void HandleChannelModerator(WorldPacket& recvPacket); - void HandleChannelUnmoderator(WorldPacket& recvPacket); - void HandleChannelMute(WorldPacket& recvPacket); - void HandleChannelUnmute(WorldPacket& recvPacket); - void HandleChannelInvite(WorldPacket& recvPacket); - void HandleChannelKick(WorldPacket& recvPacket); - void HandleChannelBan(WorldPacket& recvPacket); - void HandleChannelUnban(WorldPacket& recvPacket); - void HandleChannelAnnouncements(WorldPacket& recvPacket); - void HandleChannelModerate(WorldPacket& recvPacket); - void HandleChannelDeclineInvite(WorldPacket& recvPacket); - void HandleGetChannelMemberCount(WorldPacket& recvPacket); - void HandleSetChannelWatch(WorldPacket& recvPacket); + + template<void(Channel::*CommandFunction)(Player const*)> + void HandleChannelCommand(WorldPackets::Channel::ChannelPlayerCommand& packet); + + template<void(Channel::*CommandFunction)(Player const*, std::string const&)> + void HandleChannelPlayerCommand(WorldPackets::Channel::ChannelPlayerCommand& packet); + + void HandleVoiceSessionEnableOpcode(WorldPacket& recvData); + void HandleSetActiveVoiceChannel(WorldPacket& recvData); void HandleCompleteCinematic(WorldPacket& recvPacket); void HandleNextCinematicCamera(WorldPacket& recvPacket); @@ -1097,9 +1091,6 @@ class WorldSession void HandleItemRefundInfoRequest(WorldPacket& recvData); void HandleItemRefund(WorldPacket& recvData); - void HandleChannelVoiceOnOpcode(WorldPacket& recvData); - void HandleVoiceSessionEnableOpcode(WorldPacket& recvData); - void HandleSetActiveVoiceChannel(WorldPacket& recvData); void HandleSetTaxiBenchmarkOpcode(WorldPacket& recvData); // Guild Bank @@ -1295,5 +1286,6 @@ class WorldSession WorldSession(WorldSession const& right) = delete; WorldSession& operator=(WorldSession const& right) = delete; }; + #endif /// @} diff --git a/src/server/game/Server/WorldSocketMgr.cpp b/src/server/game/Server/WorldSocketMgr.cpp index d1739c27525..11d77b082e8 100644 --- a/src/server/game/Server/WorldSocketMgr.cpp +++ b/src/server/game/Server/WorldSocketMgr.cpp @@ -42,7 +42,7 @@ public: } }; -WorldSocketMgr::WorldSocketMgr() : BaseSocketMgr(), _socketSendBufferSize(-1), m_SockOutUBuff(65536), _tcpNoDelay(true) +WorldSocketMgr::WorldSocketMgr() : BaseSocketMgr(), _instanceAcceptor(nullptr), _socketSendBufferSize(-1), m_SockOutUBuff(65536), _tcpNoDelay(true) { } |