aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/server/game/Entities/Player/Player.cpp7
-rw-r--r--src/server/game/Handlers/NPCHandler.cpp7
-rw-r--r--src/server/game/Server/Packets/CharacterPackets.cpp7
-rw-r--r--src/server/game/Server/Packets/CharacterPackets.h10
-rw-r--r--src/server/game/Server/Packets/MailPackets.cpp7
-rw-r--r--src/server/game/Server/Packets/MailPackets.h9
-rw-r--r--src/server/game/Server/Protocol/Opcodes.cpp6
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);