diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/server/game/Entities/Player/Player.cpp | 7 | ||||
-rw-r--r-- | src/server/game/Handlers/NPCHandler.cpp | 7 | ||||
-rw-r--r-- | src/server/game/Server/Packets/CharacterPackets.cpp | 7 | ||||
-rw-r--r-- | src/server/game/Server/Packets/CharacterPackets.h | 10 | ||||
-rw-r--r-- | src/server/game/Server/Packets/MailPackets.cpp | 7 | ||||
-rw-r--r-- | src/server/game/Server/Packets/MailPackets.h | 9 | ||||
-rw-r--r-- | src/server/game/Server/Protocol/Opcodes.cpp | 6 |
7 files changed, 43 insertions, 10 deletions
diff --git a/src/server/game/Entities/Player/Player.cpp b/src/server/game/Entities/Player/Player.cpp index bc5979c744b..f433a1137cf 100644 --- a/src/server/game/Entities/Player/Player.cpp +++ b/src/server/game/Entities/Player/Player.cpp @@ -24319,10 +24319,9 @@ void Player::SetTitle(CharTitlesEntry const* title, bool lost) SetFlag(PLAYER__FIELD_KNOWN_TITLES + fieldIndexOffset, flag); } - WorldPacket data(SMSG_TITLE_EARNED, 4 + 4); - data << uint32(title->MaskID); - data << uint32(lost ? 0 : 1); // 1 - earned, 0 - lost - GetSession()->SendPacket(&data); + WorldPackets::Character::TitleEarned packet(lost ? SMSG_TITLE_LOST : SMSG_TITLE_EARNED); + packet.Index = title->MaskID; + GetSession()->SendPacket(packet.Write()); } bool Player::isTotalImmunity() diff --git a/src/server/game/Handlers/NPCHandler.cpp b/src/server/game/Handlers/NPCHandler.cpp index b150663121e..9ee942b7fb7 100644 --- a/src/server/game/Handlers/NPCHandler.cpp +++ b/src/server/game/Handlers/NPCHandler.cpp @@ -38,6 +38,7 @@ #include "CreatureAI.h" #include "SpellInfo.h" #include "NPCPackets.h" +#include "MailPackets.h" enum StableResultCode { @@ -75,9 +76,9 @@ void WorldSession::SendTabardVendorActivate(ObjectGuid guid) void WorldSession::SendShowMailBox(ObjectGuid guid) { - WorldPacket data(SMSG_SHOW_MAILBOX, 8); - data << guid; - SendPacket(&data); + WorldPackets::Mail::ShowMailbox packet; + packet.PostmasterGUID = guid; + SendPacket(packet.Write()); } void WorldSession::HandleTrainerListOpcode(WorldPackets::NPC::Hello& packet) diff --git a/src/server/game/Server/Packets/CharacterPackets.cpp b/src/server/game/Server/Packets/CharacterPackets.cpp index 257c8065fa2..4e0b58438ef 100644 --- a/src/server/game/Server/Packets/CharacterPackets.cpp +++ b/src/server/game/Server/Packets/CharacterPackets.cpp @@ -457,3 +457,10 @@ WorldPacket const* WorldPackets::Character::LogXPGain::Write() return &_worldPacket; } + +WorldPacket const* WorldPackets::Character::TitleEarned::Write() +{ + _worldPacket << uint32(Index); + + return &_worldPacket; +} diff --git a/src/server/game/Server/Packets/CharacterPackets.h b/src/server/game/Server/Packets/CharacterPackets.h index 8541f00a402..7d45eb64b19 100644 --- a/src/server/game/Server/Packets/CharacterPackets.h +++ b/src/server/game/Server/Packets/CharacterPackets.h @@ -625,6 +625,16 @@ namespace WorldPackets float GroupBonus = 0; bool ReferAFriend = false; }; + + class TitleEarned final : public ServerPacket + { + public: + TitleEarned(OpcodeServer opcode) : ServerPacket(opcode, 4) { } + + WorldPacket const* Write() override; + + uint32 Index = 0; + }; } } diff --git a/src/server/game/Server/Packets/MailPackets.cpp b/src/server/game/Server/Packets/MailPackets.cpp index b1de05aac25..a52ff0fc28b 100644 --- a/src/server/game/Server/Packets/MailPackets.cpp +++ b/src/server/game/Server/Packets/MailPackets.cpp @@ -273,3 +273,10 @@ WorldPacket const* WorldPackets::Mail::NotifyRecievedMail::Write() return &_worldPacket; } + +WorldPacket const* WorldPackets::Mail::ShowMailbox::Write() +{ + _worldPacket << PostmasterGUID; + + return &_worldPacket; +} diff --git a/src/server/game/Server/Packets/MailPackets.h b/src/server/game/Server/Packets/MailPackets.h index f1d82ebb397..2486d65fe5b 100644 --- a/src/server/game/Server/Packets/MailPackets.h +++ b/src/server/game/Server/Packets/MailPackets.h @@ -246,6 +246,15 @@ namespace WorldPackets float Delay = 0.0f; }; + class ShowMailbox final : public ServerPacket + { + public: + ShowMailbox() : ServerPacket(SMSG_SHOW_MAILBOX, 16) { } + + WorldPacket const* Write() override; + + ObjectGuid PostmasterGUID; + }; } } diff --git a/src/server/game/Server/Protocol/Opcodes.cpp b/src/server/game/Server/Protocol/Opcodes.cpp index 74a9e7bc76b..1fe1118fb82 100644 --- a/src/server/game/Server/Protocol/Opcodes.cpp +++ b/src/server/game/Server/Protocol/Opcodes.cpp @@ -1629,7 +1629,7 @@ void OpcodeTable::Initialize() DEFINE_SERVER_OPCODE_HANDLER(SMSG_SET_TIME_ZONE_INFORMATION, STATUS_NEVER, CONNECTION_TYPE_REALM); DEFINE_SERVER_OPCODE_HANDLER(SMSG_SET_VEHICLE_REC_ID, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); DEFINE_SERVER_OPCODE_HANDLER(SMSG_SHOW_BANK, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_SHOW_MAILBOX, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_SHOW_MAILBOX, STATUS_NEVER, CONNECTION_TYPE_REALM); DEFINE_SERVER_OPCODE_HANDLER(SMSG_SHOW_NEUTRAL_PLAYER_FACTION_SELECT_UI, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); DEFINE_SERVER_OPCODE_HANDLER(SMSG_SHOW_TAXI_NODES, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); DEFINE_SERVER_OPCODE_HANDLER(SMSG_SHOW_TRADE_SKILL_RESPONSE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); @@ -1683,8 +1683,8 @@ void OpcodeTable::Initialize() DEFINE_SERVER_OPCODE_HANDLER(SMSG_THREAT_UPDATE, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); DEFINE_SERVER_OPCODE_HANDLER(SMSG_TIME_ADJUSTMENT, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); DEFINE_SERVER_OPCODE_HANDLER(SMSG_TIME_SYNC_REQUEST, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_TITLE_EARNED, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_TITLE_LOST, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_TITLE_EARNED, STATUS_NEVER, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_TITLE_LOST, STATUS_NEVER, CONNECTION_TYPE_REALM); DEFINE_SERVER_OPCODE_HANDLER(SMSG_TOKEN_UNK1, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); DEFINE_SERVER_OPCODE_HANDLER(SMSG_TOTEM_CREATED, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); DEFINE_SERVER_OPCODE_HANDLER(SMSG_TOTEM_MOVED, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); |