diff options
Diffstat (limited to 'src/server/game/Server')
| -rw-r--r-- | src/server/game/Server/Packets/BattlegroundPackets.cpp | 111 | ||||
| -rw-r--r-- | src/server/game/Server/Packets/BattlegroundPackets.h | 170 | ||||
| -rw-r--r-- | src/server/game/Server/Packets/LFGPackets.cpp | 10 | ||||
| -rw-r--r-- | src/server/game/Server/Packets/LFGPackets.h | 1 | ||||
| -rw-r--r-- | src/server/game/Server/Packets/NPCPackets.h | 1 | ||||
| -rw-r--r-- | src/server/game/Server/Protocol/Opcodes.cpp | 28 | ||||
| -rw-r--r-- | src/server/game/Server/WorldSession.h | 24 |
7 files changed, 320 insertions, 25 deletions
diff --git a/src/server/game/Server/Packets/BattlegroundPackets.cpp b/src/server/game/Server/Packets/BattlegroundPackets.cpp index e11fd9c1ac8..a6aeb370ebe 100644 --- a/src/server/game/Server/Packets/BattlegroundPackets.cpp +++ b/src/server/game/Server/Packets/BattlegroundPackets.cpp @@ -110,3 +110,114 @@ WorldPacket const* WorldPackets::Battleground::PVPLogData::Write() return &_worldPacket; } + +void WorldPackets::Battleground::BattlemasterJoin::Read() +{ + _worldPacket >> QueueID; + _worldPacket >> Roles; + _worldPacket >> BlacklistMap[0] >> BlacklistMap[1]; + JoinAsGroup = _worldPacket.ReadBit(); +} + +ByteBuffer& operator<<(ByteBuffer& data, WorldPackets::Battleground::BattlefieldStatusHeader const& header) +{ + data << header.Ticket; + data << uint64(header.QueueID); + data << uint8(header.RangeMin); + data << uint8(header.RangeMax); + data << uint8(header.TeamSize); + data << uint32(header.InstanceID); + data.WriteBit(header.RegisteredMatch); + data.WriteBit(header.TournamentRules); + data.FlushBits(); + return data; +} + +WorldPacket const* WorldPackets::Battleground::BattlefieldStatusNone::Write() +{ + _worldPacket << Ticket; + return &_worldPacket; +} + +WorldPacket const* WorldPackets::Battleground::BattlefieldStatusNeedConfirmation::Write() +{ + _worldPacket << Hdr; + _worldPacket << uint32(Mapid); + _worldPacket << uint32(Timeout); + _worldPacket << uint8(Role); + return &_worldPacket; +} + +WorldPacket const* WorldPackets::Battleground::BattlefieldStatusActive::Write() +{ + _worldPacket << Hdr; + _worldPacket << uint32(Mapid); + _worldPacket << uint32(ShutdownTimer); + _worldPacket << uint32(StartTimer); + _worldPacket.WriteBit(ArenaFaction); + _worldPacket.WriteBit(LeftEarly); + _worldPacket.FlushBits(); + return &_worldPacket; +} + +WorldPacket const* WorldPackets::Battleground::BattlefieldStatusQueued::Write() +{ + _worldPacket << Hdr; + _worldPacket << uint32(AverageWaitTime); + _worldPacket << uint32(WaitTime); + _worldPacket.WriteBit(AsGroup); + _worldPacket.WriteBit(EligibleForMatchmaking); + _worldPacket.WriteBit(SuspendedQueue); + _worldPacket.FlushBits(); + return &_worldPacket; +} + +WorldPacket const* WorldPackets::Battleground::BattlefieldStatusFailed::Write() +{ + _worldPacket << Ticket; + _worldPacket << uint64(QueueID); + _worldPacket << uint32(Reason); + _worldPacket << ClientID; + return &_worldPacket; +} + +void WorldPackets::Battleground::BattlefieldPort::Read() +{ + _worldPacket >> Ticket; + AcceptedInvite = _worldPacket.ReadBit(); +} + +void WorldPackets::Battleground::BattlefieldListRequest::Read() +{ + _worldPacket >> ListID; +} + +WorldPacket const* WorldPackets::Battleground::BattlefieldList::Write() +{ + _worldPacket << BattlemasterGuid; + _worldPacket << int32(BattlemasterListID); + _worldPacket << uint8(MinLevel); + _worldPacket << uint8(MaxLevel); + _worldPacket << uint32(Battlefields.size()); + if (!Battlefields.empty()) + _worldPacket.append(Battlefields.data(), Battlefields.size()); + + _worldPacket.WriteBit(PvpAnywhere); + _worldPacket.WriteBit(HasHolidayWinToday); + _worldPacket.WriteBit(HasRandomWinToday); + _worldPacket.WriteBit(IsRandomBG); + _worldPacket.FlushBits(); + return &_worldPacket; +} + +WorldPacket const* WorldPackets::Battleground::PVPOptionsEnabled::Write() +{ + _worldPacket.WriteBit(RatedBattlegrounds); + _worldPacket.WriteBit(PugBattlegrounds); + _worldPacket.WriteBit(WargameBattlegrounds); + _worldPacket.WriteBit(WargameArenas); + _worldPacket.WriteBit(RatedArenas); + _worldPacket.WriteBit(ArenaSkirmish); + _worldPacket.FlushBits(); + return &_worldPacket; +} diff --git a/src/server/game/Server/Packets/BattlegroundPackets.h b/src/server/game/Server/Packets/BattlegroundPackets.h index 8620112f548..efecef094ce 100644 --- a/src/server/game/Server/Packets/BattlegroundPackets.h +++ b/src/server/game/Server/Packets/BattlegroundPackets.h @@ -20,6 +20,7 @@ #include "ObjectGuid.h" #include "Packet.h" +#include "LFGPackets.h" namespace WorldPackets { @@ -116,6 +117,175 @@ namespace WorldPackets Optional<RatingData> Ratings; int8 PlayerCount[2] = { }; }; + + struct BattlefieldStatusHeader + { + WorldPackets::LFG::RideTicket Ticket; + uint64 QueueID = 0; + uint8 RangeMin = 0; + uint8 RangeMax = 0; + uint8 TeamSize = 0; + uint32 InstanceID = 0; + bool RegisteredMatch = false; + bool TournamentRules = false; + }; + + class BattlefieldStatusNone final : public ServerPacket + { + public: + BattlefieldStatusNone() : ServerPacket(SMSG_BATTLEFIELD_STATUS_NONE, 16 + 4 + 4 + 4) { } + + WorldPacket const* Write() override; + + WorldPackets::LFG::RideTicket Ticket; + }; + + class BattlefieldStatusNeedConfirmation final : public ServerPacket + { + public: + BattlefieldStatusNeedConfirmation() : ServerPacket(SMSG_BATTLEFIELD_STATUS_NEED_CONFIRMATION, 4 + 4 + sizeof(BattlefieldStatusHeader) + 1) { } + + WorldPacket const* Write() override; + + uint32 Timeout = 0; + uint32 Mapid = 0; + BattlefieldStatusHeader Hdr; + uint8 Role = 0; + }; + + class BattlefieldStatusActive final : public ServerPacket + { + public: + BattlefieldStatusActive() : ServerPacket(SMSG_BATTLEFIELD_STATUS_ACTIVE, sizeof(BattlefieldStatusHeader) + 4 + 1 + 1 + 4 + 4) { } + + WorldPacket const* Write() override; + + BattlefieldStatusHeader Hdr; + uint32 ShutdownTimer = 0; + uint8 ArenaFaction = 0; + bool LeftEarly = false; + uint32 StartTimer = 0; + uint32 Mapid = 0; + }; + + class BattlefieldStatusQueued final : public ServerPacket + { + public: + BattlefieldStatusQueued() : ServerPacket(SMSG_BATTLEFIELD_STATUS_QUEUED, 4 + sizeof(BattlefieldStatusHeader) + 1 + 1 + 1 + 4) { } + + WorldPacket const* Write() override; + + uint32 AverageWaitTime = 0; + BattlefieldStatusHeader Hdr; + bool AsGroup = false; + bool SuspendedQueue = false; + bool EligibleForMatchmaking = false; + uint32 WaitTime = 0; + }; + + class BattlefieldStatusFailed final : public ServerPacket + { + public: + BattlefieldStatusFailed() : ServerPacket(SMSG_BATTLEFIELD_STATUS_FAILED, 8 + 16 + 4 + 16 + 4 + 4 + 4) { } + + WorldPacket const* Write() override; + + uint64 QueueID = 0; + ObjectGuid ClientID; + int32 Reason = 0; + WorldPackets::LFG::RideTicket Ticket; + }; + + class BattlemasterJoin final : public ClientPacket + { + public: + BattlemasterJoin(WorldPacket&& packet) : ClientPacket(CMSG_BATTLEMASTER_JOIN, std::move(packet)) { } + + void Read() override; + + bool JoinAsGroup = false; + uint8 Roles = 0; + uint64 QueueID = 0; + int32 BlacklistMap[2] = { }; + }; + + class BattlefieldLeave final : public ClientPacket + { + public: + BattlefieldLeave(WorldPacket&& packet) : ClientPacket(CMSG_BATTLEFIELD_LEAVE, std::move(packet)) { } + + void Read() override { } + }; + + class BattlefieldPort final : public ClientPacket + { + public: + BattlefieldPort(WorldPacket&& packet) : ClientPacket(CMSG_BATTLEFIELD_PORT, std::move(packet)) { } + + void Read() override; + + WorldPackets::LFG::RideTicket Ticket; + bool AcceptedInvite = false; + }; + + class BattlefieldListRequest final : public ClientPacket + { + public: + BattlefieldListRequest(WorldPacket&& packet) : ClientPacket(CMSG_BATTLEFIELD_LIST, std::move(packet)) { } + + void Read() override; + + int32 ListID = 0; + }; + + class BattlefieldList final : public ServerPacket + { + public: + BattlefieldList() : ServerPacket(SMSG_BATTLEFIELD_LIST, 1 + 1 + 16 + 1 + 1 + 1 + 4 + 1 + 4) { } + + WorldPacket const* Write() override; + + uint8 MaxLevel = 0; + bool PvpAnywhere = false; + ObjectGuid BattlemasterGuid; + bool IsRandomBG = false; + uint8 MinLevel = 0; + bool HasHolidayWinToday = false; + int32 BattlemasterListID = 0; + bool HasRandomWinToday = false; + std::vector<int32> Battlefields; // Players cannot join a specific battleground instance anymore - this is always empty + }; + + class GetPVPOptionsEnabled final : public ClientPacket + { + public: + GetPVPOptionsEnabled(WorldPacket&& packet) : ClientPacket(CMSG_GET_PVP_OPTIONS_ENABLED, std::move(packet)) { } + + void Read() override { } + }; + + class PVPOptionsEnabled final : public ServerPacket + { + public: + PVPOptionsEnabled() : ServerPacket(SMSG_PVP_OPTIONS_ENABLED, 1) { } + + WorldPacket const* Write() override; + + bool WargameArenas = false; + bool RatedArenas = false; + bool WargameBattlegrounds = false; + bool ArenaSkirmish = false; + bool PugBattlegrounds = false; + bool RatedBattlegrounds = false; + }; + + class RequestBattlefieldStatus final : public ClientPacket + { + public: + RequestBattlefieldStatus(WorldPacket&& packet) : ClientPacket(CMSG_REQUEST_BATTLEFIELD_STATUS, std::move(packet)) { } + + void Read() override { } + }; } } diff --git a/src/server/game/Server/Packets/LFGPackets.cpp b/src/server/game/Server/Packets/LFGPackets.cpp index 4e7bc35b55a..05c714fab9f 100644 --- a/src/server/game/Server/Packets/LFGPackets.cpp +++ b/src/server/game/Server/Packets/LFGPackets.cpp @@ -26,3 +26,13 @@ ByteBuffer& operator>>(ByteBuffer& data, WorldPackets::LFG::RideTicket& ticket) return data; } + +ByteBuffer& operator<<(ByteBuffer& data, WorldPackets::LFG::RideTicket const& ticket) +{ + data << ticket.RequesterGuid; + data << int32(ticket.Id); + data << int32(ticket.Type); + data << uint32(ticket.Time); + + return data; +} diff --git a/src/server/game/Server/Packets/LFGPackets.h b/src/server/game/Server/Packets/LFGPackets.h index 8c92e671b4b..723ddfd1d84 100644 --- a/src/server/game/Server/Packets/LFGPackets.h +++ b/src/server/game/Server/Packets/LFGPackets.h @@ -35,5 +35,6 @@ namespace WorldPackets } ByteBuffer& operator>>(ByteBuffer& data, WorldPackets::LFG::RideTicket& ticket); +ByteBuffer& operator<<(ByteBuffer& data, WorldPackets::LFG::RideTicket const& ticket); #endif // LFGPackets_h__ diff --git a/src/server/game/Server/Packets/NPCPackets.h b/src/server/game/Server/Packets/NPCPackets.h index bb38327c463..a6e265b5d9f 100644 --- a/src/server/game/Server/Packets/NPCPackets.h +++ b/src/server/game/Server/Packets/NPCPackets.h @@ -34,6 +34,7 @@ namespace WorldPackets // CMSG_GOSSIP_HELLO // CMSG_LIST_INVENTORY // CMSG_TRAINER_LIST + // CMSG_BATTLEMASTER_HELLO class Hello final : public ClientPacket { public: diff --git a/src/server/game/Server/Protocol/Opcodes.cpp b/src/server/game/Server/Protocol/Opcodes.cpp index dc255d3ac1c..4bd42c94472 100644 --- a/src/server/game/Server/Protocol/Opcodes.cpp +++ b/src/server/game/Server/Protocol/Opcodes.cpp @@ -184,11 +184,11 @@ void OpcodeTable::Initialize() DEFINE_HANDLER(CMSG_AUTO_EQUIP_ITEM_SLOT, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, WorldPackets::Item::AutoEquipItemSlot, &WorldSession::HandleAutoEquipItemSlotOpcode); DEFINE_HANDLER(CMSG_AUTO_STORE_BAG_ITEM, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, WorldPackets::Item::AutoStoreBagItem, &WorldSession::HandleAutoStoreBagItemOpcode); DEFINE_HANDLER(CMSG_BANKER_ACTIVATE, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, WorldPackets::NPC::Hello, &WorldSession::HandleBankerActivateOpcode); - DEFINE_OPCODE_HANDLER_OLD(CMSG_BATTLEFIELD_LEAVE, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::HandleBattlefieldLeaveOpcode ); - DEFINE_OPCODE_HANDLER_OLD(CMSG_BATTLEFIELD_LIST, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleBattlefieldListOpcode ); - DEFINE_OPCODE_HANDLER_OLD(CMSG_BATTLEFIELD_PORT, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleBattleFieldPortOpcode ); - DEFINE_OPCODE_HANDLER_OLD(CMSG_BATTLEMASTER_HELLO, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleBattlemasterHelloOpcode ); - DEFINE_OPCODE_HANDLER_OLD(CMSG_BATTLEMASTER_JOIN, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleBattlemasterJoinOpcode ); + DEFINE_HANDLER(CMSG_BATTLEFIELD_LEAVE, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, WorldPackets::Battleground::BattlefieldLeave, &WorldSession::HandleBattlefieldLeaveOpcode); + DEFINE_HANDLER(CMSG_BATTLEFIELD_LIST, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, WorldPackets::Battleground::BattlefieldListRequest, &WorldSession::HandleBattlefieldListOpcode); + DEFINE_HANDLER(CMSG_BATTLEFIELD_PORT, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, WorldPackets::Battleground::BattlefieldPort, &WorldSession::HandleBattleFieldPortOpcode); + DEFINE_HANDLER(CMSG_BATTLEMASTER_HELLO, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, WorldPackets::NPC::Hello, &WorldSession::HandleBattlemasterHelloOpcode); + DEFINE_HANDLER(CMSG_BATTLEMASTER_JOIN, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, WorldPackets::Battleground::BattlemasterJoin, &WorldSession::HandleBattlemasterJoinOpcode); DEFINE_OPCODE_HANDLER_OLD(CMSG_BATTLEMASTER_JOIN_ARENA, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleBattlemasterJoinArena ); DEFINE_OPCODE_HANDLER_OLD(CMSG_BATTLEMASTER_JOIN_SKIRMISH, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL ); DEFINE_OPCODE_HANDLER_OLD(CMSG_BATTLENET_CHALLENGE_RESPONSE, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL ); @@ -392,7 +392,7 @@ void OpcodeTable::Initialize() DEFINE_OPCODE_HANDLER_OLD(CMSG_GET_GARRISON_INFO, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL ); DEFINE_HANDLER(CMSG_GET_ITEM_PURCHASE_DATA, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, WorldPackets::Item::GetItemPurchaseData, &WorldSession::HandleGetItemPurchaseData); DEFINE_OPCODE_HANDLER_OLD(CMSG_GET_MIRROR_IMAGE_DATA, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleMirrorImageDataRequest ); - DEFINE_OPCODE_HANDLER_OLD(CMSG_GET_PVP_OPTIONS_ENABLED, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::HandleGetPVPOptionsEnabled ); + DEFINE_HANDLER(CMSG_GET_PVP_OPTIONS_ENABLED, STATUS_LOGGEDIN, PROCESS_INPLACE, WorldPackets::Battleground::GetPVPOptionsEnabled, &WorldSession::HandleGetPVPOptionsEnabled); DEFINE_OPCODE_HANDLER_OLD(CMSG_GET_REMAINING_GAME_TIME, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL ); DEFINE_OPCODE_HANDLER_OLD(CMSG_GET_TROPHY_LIST, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL ); DEFINE_HANDLER(CMSG_GET_UNDELETE_CHARACTER_COOLDOWN_STATUS, STATUS_AUTHED, PROCESS_THREADUNSAFE, WorldPackets::Character::GetUndeleteCharacterCooldownStatus, &WorldSession::HandleGetUndeleteCooldownStatus); @@ -665,7 +665,7 @@ void OpcodeTable::Initialize() DEFINE_HANDLER(CMSG_REPOP_REQUEST, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, WorldPackets::Misc::RepopRequest, &WorldSession::HandleRepopRequest); DEFINE_OPCODE_HANDLER_OLD(CMSG_REPORT_PVP_PLAYER_AFK, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleReportPvPAFK ); DEFINE_HANDLER(CMSG_REQUEST_ACCOUNT_DATA, STATUS_AUTHED, PROCESS_THREADUNSAFE, WorldPackets::ClientConfig::RequestAccountData, &WorldSession::HandleRequestAccountData); - DEFINE_OPCODE_HANDLER_OLD(CMSG_REQUEST_BATTLEFIELD_STATUS, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleRequestBattlefieldStatusOpcode); + DEFINE_HANDLER(CMSG_REQUEST_BATTLEFIELD_STATUS, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, WorldPackets::Battleground::RequestBattlefieldStatus, &WorldSession::HandleRequestBattlefieldStatusOpcode); DEFINE_HANDLER(CMSG_REQUEST_CATEGORY_COOLDOWNS, STATUS_LOGGEDIN, PROCESS_INPLACE, WorldPackets::Spells::RequestCategoryCooldowns, &WorldSession::HandleRequestCategoryCooldowns); DEFINE_HANDLER(CMSG_REQUEST_CEMETERY_LIST, STATUS_LOGGEDIN, PROCESS_INPLACE, WorldPackets::Misc::RequestCemeteryList, &WorldSession::HandleRequestCemeteryList); DEFINE_OPCODE_HANDLER_OLD(CMSG_REQUEST_CONQUEST_FORMULA_CONSTANTS, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL ); @@ -886,13 +886,13 @@ void OpcodeTable::Initialize() DEFINE_SERVER_OPCODE_HANDLER(SMSG_AUTH_RESPONSE, STATUS_NEVER, CONNECTION_TYPE_REALM); DEFINE_SERVER_OPCODE_HANDLER(SMSG_AVAILABLE_VOICE_CHANNEL, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); DEFINE_SERVER_OPCODE_HANDLER(SMSG_BARBER_SHOP_RESULT, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_BATTLEFIELD_LIST, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_BATTLEFIELD_LIST, STATUS_NEVER, CONNECTION_TYPE_REALM); DEFINE_SERVER_OPCODE_HANDLER(SMSG_BATTLEFIELD_PORT_DENIED, 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_FAILED, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_BATTLEFIELD_STATUS_NEED_CONFIRMATION, 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_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_BATTLEFIELD_STATUS_FAILED, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_BATTLEFIELD_STATUS_NEED_CONFIRMATION, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_BATTLEFIELD_STATUS_NONE, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_BATTLEFIELD_STATUS_QUEUED, STATUS_NEVER, CONNECTION_TYPE_REALM); DEFINE_SERVER_OPCODE_HANDLER(SMSG_BATTLEFIELD_STATUS_WAIT_FOR_GROUPS, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); DEFINE_SERVER_OPCODE_HANDLER(SMSG_BATTLEGROUND_INFO_THROTTLED, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); DEFINE_SERVER_OPCODE_HANDLER(SMSG_BATTLEGROUND_INIT, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); @@ -1497,7 +1497,7 @@ void OpcodeTable::Initialize() DEFINE_SERVER_OPCODE_HANDLER(SMSG_PROPOSE_LEVEL_GRANT, STATUS_NEVER, CONNECTION_TYPE_REALM); DEFINE_SERVER_OPCODE_HANDLER(SMSG_PVP_CREDIT, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); DEFINE_SERVER_OPCODE_HANDLER(SMSG_PVP_LOG_DATA, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_PVP_OPTIONS_ENABLED, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_PVP_OPTIONS_ENABLED, STATUS_NEVER, CONNECTION_TYPE_REALM); DEFINE_SERVER_OPCODE_HANDLER(SMSG_PVP_SEASON, STATUS_NEVER, CONNECTION_TYPE_REALM); DEFINE_SERVER_OPCODE_HANDLER(SMSG_QUERY_BATTLE_PET_NAME_RESPONSE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); DEFINE_SERVER_OPCODE_HANDLER(SMSG_QUERY_CREATURE_RESPONSE, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); diff --git a/src/server/game/Server/WorldSession.h b/src/server/game/Server/WorldSession.h index e3c893c6d64..c2c2126c6fc 100644 --- a/src/server/game/Server/WorldSession.h +++ b/src/server/game/Server/WorldSession.h @@ -110,6 +110,12 @@ namespace WorldPackets class AreaSpiritHealerQueue; class HearthAndResurrect; class PVPLogDataRequest; + class BattlemasterJoin; + class BattlefieldLeave; + class BattlefieldPort; + class BattlefieldListRequest; + class GetPVPOptionsEnabled; + class RequestBattlefieldStatus; } namespace BlackMarket @@ -740,8 +746,6 @@ class WorldSession void SendAttackStop(Unit const* enemy); - void SendBattleGroundList(ObjectGuid guid, BattlegroundTypeId bgTypeId = BATTLEGROUND_RB); - void SendTradeStatus(WorldPackets::Trade::TradeStatus& status); void SendUpdateTrade(bool trader_data = true); void SendCancelTrade(); @@ -1013,9 +1017,6 @@ class WorldSession void HandleRequestRaidInfoOpcode(WorldPacket& recvData); - void HandleRequestBattlefieldStatusOpcode(WorldPacket& recvData); - void HandleBattleMasterHelloOpcode(WorldPacket& recvData); - void HandleGroupInviteOpcode(WorldPacket& recvPacket); //void HandleGroupCancelOpcode(WorldPacket& recvPacket); void HandleGroupInviteResponseOpcode(WorldPacket& recvPacket); @@ -1273,21 +1274,22 @@ class WorldSession void HandleDismissCritter(WorldPacket& recvData); //Battleground - void HandleBattlemasterHelloOpcode(WorldPacket& recvData); - void HandleBattlemasterJoinOpcode(WorldPacket& recvData); + void HandleBattlemasterHelloOpcode(WorldPackets::NPC::Hello& hello); + void HandleBattlemasterJoinOpcode(WorldPackets::Battleground::BattlemasterJoin& battlemasterJoin); void HandleBattlegroundPlayerPositionsOpcode(WorldPacket& recvData); void HandlePVPLogDataOpcode(WorldPackets::Battleground::PVPLogDataRequest& pvpLogDataRequest); - void HandleBattleFieldPortOpcode(WorldPacket& recvData); - void HandleBattlefieldListOpcode(WorldPacket& recvData); - void HandleBattlefieldLeaveOpcode(WorldPacket& recvData); + void HandleBattleFieldPortOpcode(WorldPackets::Battleground::BattlefieldPort& battlefieldPort); + void HandleBattlefieldListOpcode(WorldPackets::Battleground::BattlefieldListRequest& battlefieldList); + void HandleBattlefieldLeaveOpcode(WorldPackets::Battleground::BattlefieldLeave& battlefieldLeave); void HandleBattlemasterJoinArena(WorldPacket& recvData); void HandleReportPvPAFK(WorldPacket& recvData); void HandleRequestRatedBattlefieldInfo(WorldPacket& recvData); - void HandleGetPVPOptionsEnabled(WorldPacket& recvData); + void HandleGetPVPOptionsEnabled(WorldPackets::Battleground::GetPVPOptionsEnabled& getPvPOptionsEnabled); void HandleRequestPvpReward(WorldPacket& recvData); void HandleAreaSpiritHealerQueryOpcode(WorldPackets::Battleground::AreaSpiritHealerQuery& areaSpiritHealerQuery); void HandleAreaSpiritHealerQueueOpcode(WorldPackets::Battleground::AreaSpiritHealerQueue& areaSpiritHealerQueue); void HandleHearthAndResurrect(WorldPackets::Battleground::HearthAndResurrect& hearthAndResurrect); + void HandleRequestBattlefieldStatusOpcode(WorldPackets::Battleground::RequestBattlefieldStatus& requestBattlefieldStatus); // Battlefield void SendBfInvitePlayerToWar(ObjectGuid guid, uint32 zoneId, uint32 time); |
