aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/server/game/Battlegrounds/ArenaScore.cpp2
-rw-r--r--src/server/game/Battlegrounds/ArenaScore.h2
-rw-r--r--src/server/game/Battlegrounds/Battleground.cpp9
-rw-r--r--src/server/game/Battlegrounds/BattlegroundScore.cpp2
-rw-r--r--src/server/game/Battlegrounds/BattlegroundScore.h2
-rw-r--r--src/server/game/Battlegrounds/Zones/BattlegroundAB.h2
-rw-r--r--src/server/game/Battlegrounds/Zones/BattlegroundAV.h2
-rw-r--r--src/server/game/Battlegrounds/Zones/BattlegroundBFG.h2
-rw-r--r--src/server/game/Battlegrounds/Zones/BattlegroundEY.h2
-rw-r--r--src/server/game/Battlegrounds/Zones/BattlegroundIC.h2
-rw-r--r--src/server/game/Battlegrounds/Zones/BattlegroundSA.h2
-rw-r--r--src/server/game/Battlegrounds/Zones/BattlegroundTP.h2
-rw-r--r--src/server/game/Battlegrounds/Zones/BattlegroundWS.h2
-rw-r--r--src/server/game/Entities/Object/Updates/UpdateFields.cpp213
-rw-r--r--src/server/game/Entities/Object/Updates/UpdateFields.h79
-rw-r--r--src/server/game/Entities/Player/Player.h2
-rw-r--r--src/server/game/Handlers/InspectHandler.cpp16
-rw-r--r--src/server/game/Handlers/ItemHandler.cpp62
-rw-r--r--src/server/game/Server/Packets/AuthenticationPackets.cpp115
-rw-r--r--src/server/game/Server/Packets/AuthenticationPackets.h38
-rw-r--r--src/server/game/Server/Packets/BattlegroundPackets.cpp30
-rw-r--r--src/server/game/Server/Packets/BattlegroundPackets.h16
-rw-r--r--src/server/game/Server/Packets/BattlenetPackets.cpp1
-rw-r--r--src/server/game/Server/Packets/BattlenetPackets.h1
-rw-r--r--src/server/game/Server/Packets/ChannelPackets.cpp2
-rw-r--r--src/server/game/Server/Packets/GarrisonPackets.h4
-rw-r--r--src/server/game/Server/Packets/GuildPackets.cpp6
-rw-r--r--src/server/game/Server/Packets/InspectPackets.cpp53
-rw-r--r--src/server/game/Server/Packets/InspectPackets.h27
-rw-r--r--src/server/game/Server/Packets/ItemPackets.cpp17
-rw-r--r--src/server/game/Server/Packets/ItemPackets.h24
-rw-r--r--src/server/game/Server/Packets/SocialPackets.cpp2
-rw-r--r--src/server/game/Server/Packets/SocialPackets.h2
-rw-r--r--src/server/game/Server/Protocol/Opcodes.cpp36
-rw-r--r--src/server/game/Server/Protocol/Opcodes.h1046
-rw-r--r--src/server/game/Server/WorldSession.h2
36 files changed, 964 insertions, 863 deletions
diff --git a/src/server/game/Battlegrounds/ArenaScore.cpp b/src/server/game/Battlegrounds/ArenaScore.cpp
index 84419bafa6b..2ae9f5c6aba 100644
--- a/src/server/game/Battlegrounds/ArenaScore.cpp
+++ b/src/server/game/Battlegrounds/ArenaScore.cpp
@@ -22,7 +22,7 @@ ArenaScore::ArenaScore(ObjectGuid playerGuid, uint32 team) : BattlegroundScore(p
{
}
-void ArenaScore::BuildPvPLogPlayerDataPacket(WorldPackets::Battleground::PVPLogData::PlayerData& playerData) const
+void ArenaScore::BuildPvPLogPlayerDataPacket(WorldPackets::Battleground::PVPLogData::PVPMatchPlayerStatistics& playerData) const
{
BattlegroundScore::BuildPvPLogPlayerDataPacket(playerData);
diff --git a/src/server/game/Battlegrounds/ArenaScore.h b/src/server/game/Battlegrounds/ArenaScore.h
index 1a17973e3f5..f0f17953779 100644
--- a/src/server/game/Battlegrounds/ArenaScore.h
+++ b/src/server/game/Battlegrounds/ArenaScore.h
@@ -27,7 +27,7 @@ struct TC_GAME_API ArenaScore : public BattlegroundScore
protected:
ArenaScore(ObjectGuid playerGuid, uint32 team);
- void BuildPvPLogPlayerDataPacket(WorldPackets::Battleground::PVPLogData::PlayerData& playerData) const override;
+ void BuildPvPLogPlayerDataPacket(WorldPackets::Battleground::PVPLogData::PVPMatchPlayerStatistics& playerData) const override;
// For Logging purpose
std::string ToString() const override;
diff --git a/src/server/game/Battlegrounds/Battleground.cpp b/src/server/game/Battlegrounds/Battleground.cpp
index 20613f3f840..ee1cf3349c7 100644
--- a/src/server/game/Battlegrounds/Battleground.cpp
+++ b/src/server/game/Battlegrounds/Battleground.cpp
@@ -1276,13 +1276,10 @@ bool Battleground::HasFreeSlots() const
void Battleground::BuildPvPLogDataPacket(WorldPackets::Battleground::PVPLogData& pvpLogData) const
{
- if (GetStatus() == STATUS_WAIT_LEAVE)
- pvpLogData.Winner = GetWinner();
-
- pvpLogData.Players.reserve(GetPlayerScoresSize());
+ pvpLogData.Statistics.reserve(GetPlayerScoresSize());
for (auto const& score : PlayerScores)
{
- WorldPackets::Battleground::PVPLogData::PlayerData playerData;
+ WorldPackets::Battleground::PVPLogData::PVPMatchPlayerStatistics playerData;
score.second->BuildPvPLogPlayerDataPacket(playerData);
if (Player* player = ObjectAccessor::GetPlayer(GetBgMap(), playerData.PlayerGUID))
@@ -1295,7 +1292,7 @@ void Battleground::BuildPvPLogDataPacket(WorldPackets::Battleground::PVPLogData&
playerData.HonorLevel = player->GetHonorLevel();
}
- pvpLogData.Players.push_back(playerData);
+ pvpLogData.Statistics.push_back(playerData);
}
pvpLogData.PlayerCount[BG_TEAM_HORDE] = int8(GetPlayersCountByTeam(HORDE));
diff --git a/src/server/game/Battlegrounds/BattlegroundScore.cpp b/src/server/game/Battlegrounds/BattlegroundScore.cpp
index 6ec15fd011d..2e47232a104 100644
--- a/src/server/game/Battlegrounds/BattlegroundScore.cpp
+++ b/src/server/game/Battlegrounds/BattlegroundScore.cpp
@@ -56,7 +56,7 @@ void BattlegroundScore::UpdateScore(uint32 type, uint32 value)
}
}
-void BattlegroundScore::BuildPvPLogPlayerDataPacket(WorldPackets::Battleground::PVPLogData::PlayerData& playerData) const
+void BattlegroundScore::BuildPvPLogPlayerDataPacket(WorldPackets::Battleground::PVPLogData::PVPMatchPlayerStatistics& playerData) const
{
playerData.PlayerGUID = PlayerGuid;
playerData.Kills = KillingBlows;
diff --git a/src/server/game/Battlegrounds/BattlegroundScore.h b/src/server/game/Battlegrounds/BattlegroundScore.h
index a873051953f..11efeea94a4 100644
--- a/src/server/game/Battlegrounds/BattlegroundScore.h
+++ b/src/server/game/Battlegrounds/BattlegroundScore.h
@@ -63,7 +63,7 @@ struct BattlegroundScore
virtual void UpdateScore(uint32 type, uint32 value);
- virtual void BuildPvPLogPlayerDataPacket(WorldPackets::Battleground::PVPLogData::PlayerData& playerData) const;
+ virtual void BuildPvPLogPlayerDataPacket(WorldPackets::Battleground::PVPLogData::PVPMatchPlayerStatistics& playerData) const;
// For Logging purpose
virtual std::string ToString() const { return ""; }
diff --git a/src/server/game/Battlegrounds/Zones/BattlegroundAB.h b/src/server/game/Battlegrounds/Zones/BattlegroundAB.h
index eb6c3a4c83e..0d02b1672db 100644
--- a/src/server/game/Battlegrounds/Zones/BattlegroundAB.h
+++ b/src/server/game/Battlegrounds/Zones/BattlegroundAB.h
@@ -294,7 +294,7 @@ struct BattlegroundABScore final : public BattlegroundScore
}
}
- void BuildPvPLogPlayerDataPacket(WorldPackets::Battleground::PVPLogData::PlayerData& playerData) const override
+ void BuildPvPLogPlayerDataPacket(WorldPackets::Battleground::PVPLogData::PVPMatchPlayerStatistics& playerData) const override
{
BattlegroundScore::BuildPvPLogPlayerDataPacket(playerData);
diff --git a/src/server/game/Battlegrounds/Zones/BattlegroundAV.h b/src/server/game/Battlegrounds/Zones/BattlegroundAV.h
index 3791751506b..0a81545b3b4 100644
--- a/src/server/game/Battlegrounds/Zones/BattlegroundAV.h
+++ b/src/server/game/Battlegrounds/Zones/BattlegroundAV.h
@@ -1597,7 +1597,7 @@ struct BattlegroundAVScore final : public BattlegroundScore
}
}
- void BuildPvPLogPlayerDataPacket(WorldPackets::Battleground::PVPLogData::PlayerData& playerData) const override
+ void BuildPvPLogPlayerDataPacket(WorldPackets::Battleground::PVPLogData::PVPMatchPlayerStatistics& playerData) const override
{
BattlegroundScore::BuildPvPLogPlayerDataPacket(playerData);
diff --git a/src/server/game/Battlegrounds/Zones/BattlegroundBFG.h b/src/server/game/Battlegrounds/Zones/BattlegroundBFG.h
index 940c65e418e..fd99cb55d82 100644
--- a/src/server/game/Battlegrounds/Zones/BattlegroundBFG.h
+++ b/src/server/game/Battlegrounds/Zones/BattlegroundBFG.h
@@ -42,7 +42,7 @@ class BattlegroundBFGScore final : public BattlegroundScore
}
}
- void BuildPvPLogPlayerDataPacket(WorldPackets::Battleground::PVPLogData::PlayerData& playerData) const override
+ void BuildPvPLogPlayerDataPacket(WorldPackets::Battleground::PVPLogData::PVPMatchPlayerStatistics& playerData) const override
{
BattlegroundScore::BuildPvPLogPlayerDataPacket(playerData);
diff --git a/src/server/game/Battlegrounds/Zones/BattlegroundEY.h b/src/server/game/Battlegrounds/Zones/BattlegroundEY.h
index 509f6129c22..e1a046be401 100644
--- a/src/server/game/Battlegrounds/Zones/BattlegroundEY.h
+++ b/src/server/game/Battlegrounds/Zones/BattlegroundEY.h
@@ -377,7 +377,7 @@ struct BattlegroundEYScore final : public BattlegroundScore
}
}
- void BuildPvPLogPlayerDataPacket(WorldPackets::Battleground::PVPLogData::PlayerData& playerData) const override
+ void BuildPvPLogPlayerDataPacket(WorldPackets::Battleground::PVPLogData::PVPMatchPlayerStatistics& playerData) const override
{
BattlegroundScore::BuildPvPLogPlayerDataPacket(playerData);
diff --git a/src/server/game/Battlegrounds/Zones/BattlegroundIC.h b/src/server/game/Battlegrounds/Zones/BattlegroundIC.h
index 8a4b2953f4b..7622f22d67b 100644
--- a/src/server/game/Battlegrounds/Zones/BattlegroundIC.h
+++ b/src/server/game/Battlegrounds/Zones/BattlegroundIC.h
@@ -937,7 +937,7 @@ struct BattlegroundICScore final : public BattlegroundScore
}
}
- void BuildPvPLogPlayerDataPacket(WorldPackets::Battleground::PVPLogData::PlayerData& playerData) const override
+ void BuildPvPLogPlayerDataPacket(WorldPackets::Battleground::PVPLogData::PVPMatchPlayerStatistics& playerData) const override
{
BattlegroundScore::BuildPvPLogPlayerDataPacket(playerData);
diff --git a/src/server/game/Battlegrounds/Zones/BattlegroundSA.h b/src/server/game/Battlegrounds/Zones/BattlegroundSA.h
index 21bbca88329..f5578d57028 100644
--- a/src/server/game/Battlegrounds/Zones/BattlegroundSA.h
+++ b/src/server/game/Battlegrounds/Zones/BattlegroundSA.h
@@ -540,7 +540,7 @@ struct BattlegroundSAScore final : public BattlegroundScore
}
}
- void BuildPvPLogPlayerDataPacket(WorldPackets::Battleground::PVPLogData::PlayerData& playerData) const override
+ void BuildPvPLogPlayerDataPacket(WorldPackets::Battleground::PVPLogData::PVPMatchPlayerStatistics& playerData) const override
{
BattlegroundScore::BuildPvPLogPlayerDataPacket(playerData);
diff --git a/src/server/game/Battlegrounds/Zones/BattlegroundTP.h b/src/server/game/Battlegrounds/Zones/BattlegroundTP.h
index 2f6ac05443c..33fc27d3647 100644
--- a/src/server/game/Battlegrounds/Zones/BattlegroundTP.h
+++ b/src/server/game/Battlegrounds/Zones/BattlegroundTP.h
@@ -42,7 +42,7 @@ class BattlegroundTPScore final : public BattlegroundScore
}
}
- void BuildPvPLogPlayerDataPacket(WorldPackets::Battleground::PVPLogData::PlayerData& playerData) const override
+ void BuildPvPLogPlayerDataPacket(WorldPackets::Battleground::PVPLogData::PVPMatchPlayerStatistics& playerData) const override
{
BattlegroundScore::BuildPvPLogPlayerDataPacket(playerData);
diff --git a/src/server/game/Battlegrounds/Zones/BattlegroundWS.h b/src/server/game/Battlegrounds/Zones/BattlegroundWS.h
index 18e0d5e8050..4e8bcf47833 100644
--- a/src/server/game/Battlegrounds/Zones/BattlegroundWS.h
+++ b/src/server/game/Battlegrounds/Zones/BattlegroundWS.h
@@ -193,7 +193,7 @@ struct BattlegroundWGScore final : public BattlegroundScore
}
}
- void BuildPvPLogPlayerDataPacket(WorldPackets::Battleground::PVPLogData::PlayerData& playerData) const override
+ void BuildPvPLogPlayerDataPacket(WorldPackets::Battleground::PVPLogData::PVPMatchPlayerStatistics& playerData) const override
{
BattlegroundScore::BuildPvPLogPlayerDataPacket(playerData);
diff --git a/src/server/game/Entities/Object/Updates/UpdateFields.cpp b/src/server/game/Entities/Object/Updates/UpdateFields.cpp
index 010ef856bd7..6419627bc27 100644
--- a/src/server/game/Entities/Object/Updates/UpdateFields.cpp
+++ b/src/server/game/Entities/Object/Updates/UpdateFields.cpp
@@ -505,56 +505,152 @@ void AzeriteEmpoweredItemData::ClearChangesMask()
_changesMask.ResetAll();
}
+void UnlockedAzeriteEssence::WriteCreate(ByteBuffer& data, EnumClassFlag<UpdateFieldFlag> fieldVisibilityFlags, Item const* owner, Player const* receiver) const
+{
+ data << uint32(AzeriteEssenceID);
+ data << uint32(Rank);
+}
+
+void UnlockedAzeriteEssence::WriteUpdate(ByteBuffer& data, EnumClassFlag<UpdateFieldFlag> fieldVisibilityFlags, Item const* owner, Player const* receiver) const
+{
+ data.FlushBits();
+ data << uint32(AzeriteEssenceID);
+ data << uint32(Rank);
+}
+
+void SelectedAzeriteEssences::WriteCreate(ByteBuffer& data, EnumClassFlag<UpdateFieldFlag> fieldVisibilityFlags, Item const* owner, Player const* receiver) const
+{
+ for (std::size_t i = 0; i < 3; ++i)
+ {
+ data << uint32(AzeriteEssenceID[i]);
+ }
+ data << uint32(Field_0);
+ data.WriteBits(Enabled, 1);
+ data.FlushBits();
+}
+
+void SelectedAzeriteEssences::WriteUpdate(ByteBuffer& data, EnumClassFlag<UpdateFieldFlag> fieldVisibilityFlags, Item const* owner, Player const* receiver) const
+{
+ data.FlushBits();
+ data << uint32(Field_0);
+ data.WriteBits(Enabled, 1);
+ for (std::size_t i = 0; i < 3; ++i)
+ {
+ data << uint32(AzeriteEssenceID[i]);
+ }
+ data.FlushBits();
+}
+
void AzeriteItemData::WriteCreate(ByteBuffer& data, EnumClassFlag<UpdateFieldFlag> fieldVisibilityFlags, Item const* owner, Player const* receiver) const
{
- data << uint64(Xp);
- data << uint32(Level);
- data << uint32(AuraLevel);
if (fieldVisibilityFlags.HasFlag(UpdateFieldFlag::Owner))
{
+ data << uint64(Xp);
+ data << uint32(Level);
+ data << uint32(AuraLevel);
data << uint32(KnowledgeLevel);
data << uint32(DEBUGknowledgeWeek);
}
+ data << uint32(UnlockedEssences.size());
+ data << uint32(SelectedEssences.size());
+ data << uint32(UnlockedEssenceMilestones.size());
+ for (std::size_t i = 0; i < UnlockedEssences.size(); ++i)
+ {
+ UnlockedEssences[i].WriteCreate(data, fieldVisibilityFlags, owner, receiver);
+ }
+ for (std::size_t i = 0; i < UnlockedEssenceMilestones.size(); ++i)
+ {
+ data << uint32(UnlockedEssenceMilestones[i]);
+ }
+ for (std::size_t i = 0; i < SelectedEssences.size(); ++i)
+ {
+ SelectedEssences[i].WriteCreate(data, fieldVisibilityFlags, owner, receiver);
+ }
}
void AzeriteItemData::WriteUpdate(ByteBuffer& data, EnumClassFlag<UpdateFieldFlag> fieldVisibilityFlags, Item const* owner, Player const* receiver) const
{
- UpdateMask<6> allowedMaskForTarget({ 0x0000000Fu });
+ UpdateMask<9> allowedMaskForTarget({ 0x0000000Fu });
AppendAllowedFieldsMaskForFlag(allowedMaskForTarget, fieldVisibilityFlags);
WriteUpdate(data, _changesMask & allowedMaskForTarget, fieldVisibilityFlags, owner, receiver);
}
-void AzeriteItemData::AppendAllowedFieldsMaskForFlag(UpdateMask<6>& allowedMaskForTarget, EnumClassFlag<UpdateFieldFlag> fieldVisibilityFlags) const
+void AzeriteItemData::AppendAllowedFieldsMaskForFlag(UpdateMask<9>& allowedMaskForTarget, EnumClassFlag<UpdateFieldFlag> fieldVisibilityFlags) const
{
if (fieldVisibilityFlags.HasFlag(UpdateFieldFlag::Owner))
- allowedMaskForTarget |= { 0x00000030u };
+ allowedMaskForTarget |= { 0x000001F0u };
}
-void AzeriteItemData::WriteUpdate(ByteBuffer& data, UpdateMask<6> const& changesMask, EnumClassFlag<UpdateFieldFlag> fieldVisibilityFlags, Item const* owner, Player const* receiver) const
+void AzeriteItemData::WriteUpdate(ByteBuffer& data, UpdateMask<9> const& changesMask, EnumClassFlag<UpdateFieldFlag> fieldVisibilityFlags, Item const* owner, Player const* receiver) const
{
- data.WriteBits(changesMask.GetBlock(0), 6);
+ data.WriteBits(changesMask.GetBlock(0), 9);
+ if (changesMask[0])
+ {
+ if (changesMask[1])
+ {
+ UnlockedEssences.WriteUpdateMask(data);
+ }
+ if (changesMask[2])
+ {
+ UnlockedEssenceMilestones.WriteUpdateMask(data);
+ }
+ if (changesMask[3])
+ {
+ SelectedEssences.WriteUpdateMask(data);
+ }
+ }
data.FlushBits();
if (changesMask[0])
{
if (changesMask[1])
{
- data << uint64(Xp);
+ for (std::size_t i = 0; i < UnlockedEssences.size(); ++i)
+ {
+ if (UnlockedEssences.HasChanged(i))
+ {
+ UnlockedEssences[i].WriteUpdate(data, fieldVisibilityFlags, owner, receiver);
+ }
+ }
}
if (changesMask[2])
{
- data << uint32(Level);
+ for (std::size_t i = 0; i < UnlockedEssenceMilestones.size(); ++i)
+ {
+ if (UnlockedEssenceMilestones.HasChanged(i))
+ {
+ data << uint32(UnlockedEssenceMilestones[i]);
+ }
+ }
}
if (changesMask[3])
{
- data << uint32(AuraLevel);
+ for (std::size_t i = 0; i < SelectedEssences.size(); ++i)
+ {
+ if (SelectedEssences.HasChanged(i))
+ {
+ SelectedEssences[i].WriteUpdate(data, fieldVisibilityFlags, owner, receiver);
+ }
+ }
}
if (changesMask[4])
{
- data << uint32(KnowledgeLevel);
+ data << uint64(Xp);
}
if (changesMask[5])
{
+ data << uint32(Level);
+ }
+ if (changesMask[6])
+ {
+ data << uint32(AuraLevel);
+ }
+ if (changesMask[7])
+ {
+ data << uint32(KnowledgeLevel);
+ }
+ if (changesMask[8])
+ {
data << uint32(DEBUGknowledgeWeek);
}
}
@@ -562,6 +658,9 @@ void AzeriteItemData::WriteUpdate(ByteBuffer& data, UpdateMask<6> const& changes
void AzeriteItemData::ClearChangesMask()
{
+ Base::ClearChangesMask(UnlockedEssences);
+ Base::ClearChangesMask(UnlockedEssenceMilestones);
+ Base::ClearChangesMask(SelectedEssences);
Base::ClearChangesMask(Xp);
Base::ClearChangesMask(Level);
Base::ClearChangesMask(AuraLevel);
@@ -2273,7 +2372,7 @@ void ActivePlayerData::WriteCreate(ByteBuffer& data, EnumClassFlag<UpdateFieldFl
data << float(VersatilityBonus);
data << float(PvpPowerDamage);
data << float(PvpPowerHealing);
- for (std::size_t i = 0; i < 160; ++i)
+ for (std::size_t i = 0; i < 192; ++i)
{
data << uint64(ExploredZones[i]);
}
@@ -2442,6 +2541,10 @@ void ActivePlayerData::WriteCreate(ByteBuffer& data, EnumClassFlag<UpdateFieldFl
{
SpellFlatModByLabel[i].WriteCreate(data, fieldVisibilityFlags, owner, receiver);
}
+ for (std::size_t i = 0; i < 6; ++i)
+ {
+ PvpInfo[i].WriteCreate(data, fieldVisibilityFlags, owner, receiver);
+ }
data.WriteBit(BackpackAutoSortDisabled);
data.WriteBit(BankAutoSortDisabled);
data.WriteBit(SortBagsRightToLeft);
@@ -2450,20 +2553,16 @@ void ActivePlayerData::WriteCreate(ByteBuffer& data, EnumClassFlag<UpdateFieldFl
{
CharacterRestrictions[i].WriteCreate(data, fieldVisibilityFlags, owner, receiver);
}
- for (std::size_t i = 0; i < 6; ++i)
- {
- PvpInfo[i].WriteCreate(data, fieldVisibilityFlags, owner, receiver);
- }
data.FlushBits();
}
void ActivePlayerData::WriteUpdate(ByteBuffer& data, EnumClassFlag<UpdateFieldFlag> fieldVisibilityFlags, Player const* owner, Player const* receiver) const
{
- UpdateMask<1455> const& changesMask = _changesMask;
+ UpdateMask<1487> const& changesMask = _changesMask;
for (std::size_t i = 0; i < 1; ++i)
data << uint32(changesMask.GetBlocksMask(i));
- data.WriteBits(changesMask.GetBlocksMask(1), 14);
- for (std::size_t i = 0; i < 46; ++i)
+ data.WriteBits(changesMask.GetBlocksMask(1), 15);
+ for (std::size_t i = 0; i < 47; ++i)
if (changesMask.GetBlock(i))
data.WriteBits(changesMask.GetBlock(i), 32);
@@ -3061,7 +3160,7 @@ void ActivePlayerData::WriteUpdate(ByteBuffer& data, EnumClassFlag<UpdateFieldFl
}
if (changesMask[300])
{
- for (std::size_t i = 0; i < 160; ++i)
+ for (std::size_t i = 0; i < 192; ++i)
{
if (changesMask[301 + i])
{
@@ -3069,127 +3168,127 @@ void ActivePlayerData::WriteUpdate(ByteBuffer& data, EnumClassFlag<UpdateFieldFl
}
}
}
- if (changesMask[461])
+ if (changesMask[493])
{
for (std::size_t i = 0; i < 2; ++i)
{
- if (changesMask[462 + i])
+ if (changesMask[494 + i])
{
RestInfo[i].WriteUpdate(data, fieldVisibilityFlags, owner, receiver);
}
}
}
- if (changesMask[464])
+ if (changesMask[496])
{
for (std::size_t i = 0; i < 7; ++i)
{
- if (changesMask[465 + i])
+ if (changesMask[497 + i])
{
data << int32(ModDamageDonePos[i]);
}
- if (changesMask[472 + i])
+ if (changesMask[504 + i])
{
data << int32(ModDamageDoneNeg[i]);
}
- if (changesMask[479 + i])
+ if (changesMask[511 + i])
{
data << float(ModDamageDonePercent[i]);
}
}
}
- if (changesMask[486])
+ if (changesMask[518])
{
for (std::size_t i = 0; i < 3; ++i)
{
- if (changesMask[487 + i])
+ if (changesMask[519 + i])
{
data << float(WeaponDmgMultipliers[i]);
}
- if (changesMask[490 + i])
+ if (changesMask[522 + i])
{
data << float(WeaponAtkSpeedMultipliers[i]);
}
}
}
- if (changesMask[493])
+ if (changesMask[525])
{
for (std::size_t i = 0; i < 12; ++i)
{
- if (changesMask[494 + i])
+ if (changesMask[526 + i])
{
data << uint32(BuybackPrice[i]);
}
- if (changesMask[506 + i])
+ if (changesMask[538 + i])
{
data << uint32(BuybackTimestamp[i]);
}
}
}
- if (changesMask[518])
+ if (changesMask[550])
{
for (std::size_t i = 0; i < 32; ++i)
{
- if (changesMask[519 + i])
+ if (changesMask[551 + i])
{
data << int32(CombatRatings[i]);
}
}
}
- if (changesMask[558])
+ if (changesMask[590])
{
for (std::size_t i = 0; i < 4; ++i)
{
- if (changesMask[559 + i])
+ if (changesMask[591 + i])
{
data << uint32(NoReagentCostMask[i]);
}
}
}
- if (changesMask[563])
+ if (changesMask[595])
{
for (std::size_t i = 0; i < 2; ++i)
{
- if (changesMask[564 + i])
+ if (changesMask[596 + i])
{
data << int32(ProfessionSkillLine[i]);
}
}
}
- if (changesMask[566])
+ if (changesMask[598])
{
for (std::size_t i = 0; i < 4; ++i)
{
- if (changesMask[567 + i])
+ if (changesMask[599 + i])
{
data << uint32(BagSlotFlags[i]);
}
}
}
- if (changesMask[571])
+ if (changesMask[603])
{
for (std::size_t i = 0; i < 7; ++i)
{
- if (changesMask[572 + i])
+ if (changesMask[604 + i])
{
data << uint32(BankBagSlotFlags[i]);
}
}
}
- if (changesMask[579])
+ if (changesMask[611])
{
for (std::size_t i = 0; i < 875; ++i)
{
- if (changesMask[580 + i])
+ if (changesMask[612 + i])
{
data << uint64(QuestCompleted[i]);
}
}
}
- if (changesMask[551])
+ if (changesMask[583])
{
for (std::size_t i = 0; i < 6; ++i)
{
- if (changesMask[552 + i])
+ if (changesMask[584 + i])
{
PvpInfo[i].WriteUpdate(data, fieldVisibilityFlags, owner, receiver);
}
@@ -3341,8 +3440,8 @@ void GameObjectData::WriteCreate(ByteBuffer& data, EnumClassFlag<UpdateFieldFlag
data << int32(ViewerDependentValue<LevelTag>::GetValue(Level, owner, receiver));
data << int8(ViewerDependentValue<StateTag>::GetValue(State, owner, receiver));
data << int8(TypeID);
- data << uint8(ArtKit);
data << uint8(PercentHealth);
+ data << uint32(ArtKit);
data << uint32(EnableDoodadSets.size());
data << uint32(CustomParam);
for (std::size_t i = 0; i < EnableDoodadSets.size(); ++i)
@@ -3449,11 +3548,11 @@ void GameObjectData::WriteUpdate(ByteBuffer& data, EnumClassFlag<UpdateFieldFlag
}
if (changesMask[17])
{
- data << uint8(ArtKit);
+ data << uint8(PercentHealth);
}
if (changesMask[18])
{
- data << uint8(PercentHealth);
+ data << uint32(ArtKit);
}
if (changesMask[19])
{
@@ -3480,8 +3579,8 @@ void GameObjectData::ClearChangesMask()
Base::ClearChangesMask(Level);
Base::ClearChangesMask(State);
Base::ClearChangesMask(TypeID);
- Base::ClearChangesMask(ArtKit);
Base::ClearChangesMask(PercentHealth);
+ Base::ClearChangesMask(ArtKit);
Base::ClearChangesMask(CustomParam);
_changesMask.ResetAll();
}
@@ -3895,11 +3994,12 @@ void ConversationActor::WriteUpdate(ByteBuffer& data, EnumClassFlag<UpdateFieldF
void ConversationData::WriteCreate(ByteBuffer& data, EnumClassFlag<UpdateFieldFlag> fieldVisibilityFlags, Conversation const* owner, Player const* receiver) const
{
data << uint32(Lines->size());
+ data << int32(LastLineEndTime);
+ data << uint32(Field_1C);
for (std::size_t i = 0; i < Lines->size(); ++i)
{
(*Lines)[i].WriteCreate(data, fieldVisibilityFlags, owner, receiver);
}
- data << int32(LastLineEndTime);
data << uint32(Actors.size());
for (std::size_t i = 0; i < Actors.size(); ++i)
{
@@ -3909,8 +4009,8 @@ void ConversationData::WriteCreate(ByteBuffer& data, EnumClassFlag<UpdateFieldFl
void ConversationData::WriteUpdate(ByteBuffer& data, EnumClassFlag<UpdateFieldFlag> fieldVisibilityFlags, Conversation const* owner, Player const* receiver) const
{
- UpdateMask<4> const& changesMask = _changesMask;
- data.WriteBits(changesMask.GetBlock(0), 4);
+ UpdateMask<5> const& changesMask = _changesMask;
+ data.WriteBits(changesMask.GetBlock(0), 5);
if (changesMask[0])
{
@@ -3948,6 +4048,10 @@ void ConversationData::WriteUpdate(ByteBuffer& data, EnumClassFlag<UpdateFieldFl
{
data << int32(LastLineEndTime);
}
+ if (changesMask[4])
+ {
+ data << uint32(Field_1C);
+ }
}
}
@@ -3956,6 +4060,7 @@ void ConversationData::ClearChangesMask()
Base::ClearChangesMask(Lines);
Base::ClearChangesMask(Actors);
Base::ClearChangesMask(LastLineEndTime);
+ Base::ClearChangesMask(Field_1C);
_changesMask.ResetAll();
}
diff --git a/src/server/game/Entities/Object/Updates/UpdateFields.h b/src/server/game/Entities/Object/Updates/UpdateFields.h
index 2a120d0a729..bb658b36356 100644
--- a/src/server/game/Entities/Object/Updates/UpdateFields.h
+++ b/src/server/game/Entities/Object/Updates/UpdateFields.h
@@ -134,18 +134,40 @@ struct AzeriteEmpoweredItemData : public IsUpdateFieldStructureTag, public HasCh
void ClearChangesMask();
};
-struct AzeriteItemData : public IsUpdateFieldStructureTag, public HasChangesMask<6>
+struct UnlockedAzeriteEssence : public IsUpdateFieldStructureTag
{
- UpdateField<uint64, 0, 1> Xp;
- UpdateField<uint32, 0, 2> Level;
- UpdateField<uint32, 0, 3> AuraLevel;
- UpdateField<uint32, 0, 4> KnowledgeLevel;
- UpdateField<uint32, 0, 5> DEBUGknowledgeWeek;
+ uint32 AzeriteEssenceID;
+ uint32 Rank;
void WriteCreate(ByteBuffer& data, EnumClassFlag<UpdateFieldFlag> fieldVisibilityFlags, Item const* owner, Player const* receiver) const;
void WriteUpdate(ByteBuffer& data, EnumClassFlag<UpdateFieldFlag> fieldVisibilityFlags, Item const* owner, Player const* receiver) const;
- void AppendAllowedFieldsMaskForFlag(UpdateMask<6>& allowedMaskForTarget, EnumClassFlag<UpdateFieldFlag> fieldVisibilityFlags) const;
- void WriteUpdate(ByteBuffer& data, UpdateMask<6> const& changesMask, EnumClassFlag<UpdateFieldFlag> fieldVisibilityFlags, Item const* owner, Player const* receiver) const;
+};
+
+struct SelectedAzeriteEssences : public IsUpdateFieldStructureTag
+{
+ uint32 Field_0;
+ uint32 Enabled;
+ uint32 AzeriteEssenceID[3];
+
+ void WriteCreate(ByteBuffer& data, EnumClassFlag<UpdateFieldFlag> fieldVisibilityFlags, Item const* owner, Player const* receiver) const;
+ void WriteUpdate(ByteBuffer& data, EnumClassFlag<UpdateFieldFlag> fieldVisibilityFlags, Item const* owner, Player const* receiver) const;
+};
+
+struct AzeriteItemData : public IsUpdateFieldStructureTag, public HasChangesMask<9>
+{
+ DynamicUpdateField<UnlockedAzeriteEssence, 0, 1> UnlockedEssences;
+ DynamicUpdateField<uint32, 0, 2> UnlockedEssenceMilestones;
+ DynamicUpdateField<SelectedAzeriteEssences, 0, 3> SelectedEssences;
+ UpdateField<uint64, 0, 4> Xp;
+ UpdateField<uint32, 0, 5> Level;
+ UpdateField<uint32, 0, 6> AuraLevel;
+ UpdateField<uint32, 0, 7> KnowledgeLevel;
+ UpdateField<uint32, 0, 8> DEBUGknowledgeWeek;
+
+ void WriteCreate(ByteBuffer& data, EnumClassFlag<UpdateFieldFlag> fieldVisibilityFlags, Item const* owner, Player const* receiver) const;
+ void WriteUpdate(ByteBuffer& data, EnumClassFlag<UpdateFieldFlag> fieldVisibilityFlags, Item const* owner, Player const* receiver) const;
+ void AppendAllowedFieldsMaskForFlag(UpdateMask<9>& allowedMaskForTarget, EnumClassFlag<UpdateFieldFlag> fieldVisibilityFlags) const;
+ void WriteUpdate(ByteBuffer& data, UpdateMask<9> const& changesMask, EnumClassFlag<UpdateFieldFlag> fieldVisibilityFlags, Item const* owner, Player const* receiver) const;
void ClearChangesMask();
};
@@ -471,7 +493,7 @@ struct Research : public IsUpdateFieldStructureTag
void WriteUpdate(ByteBuffer& data, EnumClassFlag<UpdateFieldFlag> fieldVisibilityFlags, Player const* owner, Player const* receiver) const;
};
-struct ActivePlayerData : public IsUpdateFieldStructureTag, public HasChangesMask<1455>
+struct ActivePlayerData : public IsUpdateFieldStructureTag, public HasChangesMask<1487>
{
UpdateField<bool, 0, 1> BackpackAutoSortDisabled;
UpdateField<bool, 0, 2> BankAutoSortDisabled;
@@ -571,22 +593,22 @@ struct ActivePlayerData : public IsUpdateFieldStructureTag, public HasChangesMas
UpdateField<uint8, 98, 100> NumBankSlots;
UpdateFieldArray<ObjectGuid, 195, 101, 102> InvSlots;
UpdateFieldArray<uint32, 2, 297, 298> TrackResourceMask;
- UpdateFieldArray<uint64, 160, 300, 301> ExploredZones;
- UpdateFieldArray<RestInfo, 2, 461, 462> RestInfo;
- UpdateFieldArray<int32, 7, 464, 465> ModDamageDonePos;
- UpdateFieldArray<int32, 7, 464, 472> ModDamageDoneNeg;
- UpdateFieldArray<float, 7, 464, 479> ModDamageDonePercent;
- UpdateFieldArray<float, 3, 486, 487> WeaponDmgMultipliers;
- UpdateFieldArray<float, 3, 486, 490> WeaponAtkSpeedMultipliers;
- UpdateFieldArray<uint32, 12, 493, 494> BuybackPrice;
- UpdateFieldArray<uint32, 12, 493, 506> BuybackTimestamp;
- UpdateFieldArray<int32, 32, 518, 519> CombatRatings;
- UpdateFieldArray<PVPInfo, 6, 551, 552> PvpInfo;
- UpdateFieldArray<uint32, 4, 558, 559> NoReagentCostMask;
- UpdateFieldArray<int32, 2, 563, 564> ProfessionSkillLine;
- UpdateFieldArray<uint32, 4, 566, 567> BagSlotFlags;
- UpdateFieldArray<uint32, 7, 571, 572> BankBagSlotFlags;
- UpdateFieldArray<uint64, 875, 579, 580> QuestCompleted;
+ UpdateFieldArray<uint64, 192, 300, 301> ExploredZones;
+ UpdateFieldArray<RestInfo, 2, 493, 494> RestInfo;
+ UpdateFieldArray<int32, 7, 496, 497> ModDamageDonePos;
+ UpdateFieldArray<int32, 7, 496, 504> ModDamageDoneNeg;
+ UpdateFieldArray<float, 7, 496, 511> ModDamageDonePercent;
+ UpdateFieldArray<float, 3, 518, 519> WeaponDmgMultipliers;
+ UpdateFieldArray<float, 3, 518, 522> WeaponAtkSpeedMultipliers;
+ UpdateFieldArray<uint32, 12, 525, 526> BuybackPrice;
+ UpdateFieldArray<uint32, 12, 525, 538> BuybackTimestamp;
+ UpdateFieldArray<int32, 32, 550, 551> CombatRatings;
+ UpdateFieldArray<PVPInfo, 6, 583, 584> PvpInfo;
+ UpdateFieldArray<uint32, 4, 590, 591> NoReagentCostMask;
+ UpdateFieldArray<int32, 2, 595, 596> ProfessionSkillLine;
+ UpdateFieldArray<uint32, 4, 598, 599> BagSlotFlags;
+ UpdateFieldArray<uint32, 7, 603, 604> BankBagSlotFlags;
+ UpdateFieldArray<uint64, 875, 611, 612> QuestCompleted;
void WriteCreate(ByteBuffer& data, EnumClassFlag<UpdateFieldFlag> fieldVisibilityFlags, Player const* owner, Player const* receiver) const;
void WriteUpdate(ByteBuffer& data, EnumClassFlag<UpdateFieldFlag> fieldVisibilityFlags, Player const* owner, Player const* receiver) const;
@@ -614,8 +636,8 @@ struct GameObjectData : public IsUpdateFieldStructureTag, public HasChangesMask<
UpdateField<int8, 0, 15> State;
struct StateTag : ViewerDependentValueTag<int8> {};
UpdateField<int8, 0, 16> TypeID;
- UpdateField<uint8, 0, 17> ArtKit;
- UpdateField<uint8, 0, 18> PercentHealth;
+ UpdateField<uint8, 0, 17> PercentHealth;
+ UpdateField<uint32, 0, 18> ArtKit;
UpdateField<uint32, 0, 19> CustomParam;
void WriteCreate(ByteBuffer& data, EnumClassFlag<UpdateFieldFlag> fieldVisibilityFlags, GameObject const* owner, Player const* receiver) const;
@@ -730,11 +752,12 @@ struct ConversationActor : public IsUpdateFieldStructureTag
void WriteUpdate(ByteBuffer& data, EnumClassFlag<UpdateFieldFlag> fieldVisibilityFlags, Conversation const* owner, Player const* receiver) const;
};
-struct ConversationData : public IsUpdateFieldStructureTag, public HasChangesMask<4>
+struct ConversationData : public IsUpdateFieldStructureTag, public HasChangesMask<5>
{
UpdateField<std::vector<ConversationLine>, 0, 1> Lines;
DynamicUpdateField<ConversationActor, 0, 2> Actors;
UpdateField<int32, 0, 3> LastLineEndTime;
+ UpdateField<uint32, 0, 4> Field_1C;
void WriteCreate(ByteBuffer& data, EnumClassFlag<UpdateFieldFlag> fieldVisibilityFlags, Conversation const* owner, Player const* receiver) const;
void WriteUpdate(ByteBuffer& data, EnumClassFlag<UpdateFieldFlag> fieldVisibilityFlags, Conversation const* owner, Player const* receiver) const;
diff --git a/src/server/game/Entities/Player/Player.h b/src/server/game/Entities/Player/Player.h
index 3cb5512d493..b23ed7f7fae 100644
--- a/src/server/game/Entities/Player/Player.h
+++ b/src/server/game/Entities/Player/Player.h
@@ -122,7 +122,7 @@ enum SkillFieldOffset : uint16
SKILL_PERM_BONUS_OFFSET = SKILL_TEMP_BONUS_OFFSET + CalculateSkillFieldArraySize<uint16>()
};
-#define PLAYER_EXPLORED_ZONES_SIZE 160
+#define PLAYER_EXPLORED_ZONES_SIZE 192
// Note: SPELLMOD_* values is aura types in fact
enum SpellModType : uint8
diff --git a/src/server/game/Handlers/InspectHandler.cpp b/src/server/game/Handlers/InspectHandler.cpp
index 99eef1b6e49..0db71b633e8 100644
--- a/src/server/game/Handlers/InspectHandler.cpp
+++ b/src/server/game/Handlers/InspectHandler.cpp
@@ -43,25 +43,14 @@ void WorldSession::HandleInspectOpcode(WorldPackets::Inspect::Inspect& inspect)
return;
WorldPackets::Inspect::InspectResult inspectResult;
- inspectResult.InspecteeGUID = inspect.Target;
-
- for (uint8 i = 0; i < EQUIPMENT_SLOT_END; ++i)
- {
- if (Item* item = player->GetItemByPos(INVENTORY_SLOT_BAG_0, i))
- inspectResult.Items.emplace_back(item, i);
- }
-
- inspectResult.ClassID = player->getClass();
- inspectResult.GenderID = player->m_playerData->NativeSex;
+ inspectResult.DisplayInfo.Initialize(player);
if (GetPlayer()->CanBeGameMaster() || sWorld->getIntConfig(CONFIG_TALENTS_INSPECTING) + (GetPlayer()->GetTeamId() == player->GetTeamId()) > 1)
{
PlayerTalentMap const* talents = player->GetTalentMap(player->GetActiveTalentGroup());
for (PlayerTalentMap::value_type const& v : *talents)
- {
if (v.second != PLAYERSPELL_REMOVED)
inspectResult.Talents.push_back(v.first);
- }
PlayerPvpTalentMap const& pvpTalents = player->GetPvpTalentMap(player->GetActiveTalentGroup());
for (std::size_t i = 0; i < pvpTalents.size(); ++i)
@@ -76,8 +65,7 @@ void WorldSession::HandleInspectOpcode(WorldPackets::Inspect::Inspect& inspect)
inspectResult.GuildData->AchievementPoints = guild->GetAchievementMgr().GetAchievementPoints();
}
- inspectResult.InspecteeGUID = inspect.Target;
- inspectResult.SpecializationID = player->GetPrimarySpecialization();
+ inspectResult.ItemLevel = int32(player->GetAverageItemLevel());
inspectResult.LifetimeMaxRank = player->m_activePlayerData->LifetimeMaxRank;
inspectResult.TodayHK = player->m_activePlayerData->TodayHonorableKills;
inspectResult.YesterdayHK = player->m_activePlayerData->YesterdayHonorableKills;
diff --git a/src/server/game/Handlers/ItemHandler.cpp b/src/server/game/Handlers/ItemHandler.cpp
index 5eed12a2172..e6a4f35e040 100644
--- a/src/server/game/Handlers/ItemHandler.cpp
+++ b/src/server/game/Handlers/ItemHandler.cpp
@@ -1207,68 +1207,6 @@ void WorldSession::HandleUseCritterItem(WorldPackets::Item::UseCritterItem& useC
_player->DestroyItem(item->GetBagSlot(), item->GetSlot(), true);
}
-void WorldSession::HandleUpgradeItem(WorldPackets::Item::UpgradeItem& upgradeItem)
-{
- WorldPackets::Item::ItemUpgradeResult itemUpgradeResult;
- if (!_player->GetNPCIfCanInteractWith(upgradeItem.ItemMaster, UNIT_NPC_FLAG_NONE, UNIT_NPC_FLAG_2_ITEM_UPGRADE_MASTER))
- {
- TC_LOG_DEBUG("network", "WORLD: HandleUpgradeItems - %s not found or player can't interact with it.", upgradeItem.ItemMaster.ToString().c_str());
- itemUpgradeResult.Success = false;
- SendPacket(itemUpgradeResult.Write());
- return;
- }
-
- Item* item = _player->GetItemByGuid(upgradeItem.ItemGUID);
- if (!item)
- {
- TC_LOG_DEBUG("network", "WORLD: HandleUpgradeItems: Item %s not found!", upgradeItem.ItemGUID.ToString().c_str());
- itemUpgradeResult.Success = false;
- SendPacket(itemUpgradeResult.Write());
- return;
- }
-
- ItemUpgradeEntry const* itemUpgradeEntry = sItemUpgradeStore.LookupEntry(upgradeItem.UpgradeID);
- if (!itemUpgradeEntry)
- {
- TC_LOG_DEBUG("network", "WORLD: HandleUpgradeItems - ItemUpgradeEntry (%u) not found.", upgradeItem.UpgradeID);
- itemUpgradeResult.Success = false;
- SendPacket(itemUpgradeResult.Write());
- return;
- }
-
- // Check if player has enough currency
- if (!_player->HasCurrency(itemUpgradeEntry->CurrencyType, itemUpgradeEntry->CurrencyAmount))
- {
- TC_LOG_DEBUG("network", "WORLD: HandleUpgradeItems - Player has not enougth currency (ID: %u, Cost: %u) not found.", itemUpgradeEntry->CurrencyType, itemUpgradeEntry->CurrencyAmount);
- itemUpgradeResult.Success = false;
- SendPacket(itemUpgradeResult.Write());
- return;
- }
-
- uint32 currentUpgradeId = item->GetModifier(ITEM_MODIFIER_UPGRADE_ID);
- if (currentUpgradeId != itemUpgradeEntry->PrerequisiteID)
- {
- TC_LOG_DEBUG("network", "WORLD: HandleUpgradeItems - ItemUpgradeEntry (%u) is not related to this ItemUpgradePath (%u).", itemUpgradeEntry->ID, currentUpgradeId);
- itemUpgradeResult.Success = false;
- SendPacket(itemUpgradeResult.Write());
- return;
- }
-
- itemUpgradeResult.Success = true;
- SendPacket(itemUpgradeResult.Write());
-
- if (item->IsEquipped())
- _player->_ApplyItemBonuses(item, item->GetSlot(), false);
-
- item->SetModifier(ITEM_MODIFIER_UPGRADE_ID, itemUpgradeEntry->ID);
-
- if (item->IsEquipped())
- _player->_ApplyItemBonuses(item, item->GetSlot(), true);
-
- item->SetState(ITEM_CHANGED, _player);
- _player->ModifyCurrency(itemUpgradeEntry->CurrencyType, -int32(itemUpgradeEntry->CurrencyAmount));
-}
-
void WorldSession::HandleSortBags(WorldPackets::Item::SortBags& /*sortBags*/)
{
// TODO: Implement sorting
diff --git a/src/server/game/Server/Packets/AuthenticationPackets.cpp b/src/server/game/Server/Packets/AuthenticationPackets.cpp
index 88edeed4698..76cafe75ee2 100644
--- a/src/server/game/Server/Packets/AuthenticationPackets.cpp
+++ b/src/server/game/Server/Packets/AuthenticationPackets.cpp
@@ -21,6 +21,7 @@
#include "HmacHash.h"
#include "ObjectMgr.h"
#include "RSA.h"
+#include "SHA256.h"
#include "Util.h"
ByteBuffer& operator<<(ByteBuffer& data, WorldPackets::Auth::VirtualRealmNameInfo const& virtualRealmInfo)
@@ -73,7 +74,7 @@ const WorldPacket* WorldPackets::Auth::Pong::Write()
WorldPacket const* WorldPackets::Auth::AuthChallenge::Write()
{
- _worldPacket.append(DosChallenge, 8);
+ _worldPacket.append(DosChallenge.data(), DosChallenge.size());
_worldPacket.append(Challenge.data(), Challenge.size());
_worldPacket << uint8(DosZeroBits);
return &_worldPacket;
@@ -201,25 +202,6 @@ WorldPacket const* WorldPackets::Auth::WaitQueueUpdate::Write()
return &_worldPacket;
}
-std::string const WorldPackets::Auth::ConnectTo::Haiku("An island of peace\nCorruption is brought ashore\nPandarens will rise\n\0\0", 71);
-
-uint8 const WorldPackets::Auth::ConnectTo::PiDigits[130] =
-{
- 0x31, 0x41, 0x59, 0x26, 0x53, 0x58, 0x97, 0x93, 0x23, 0x84,
- 0x62, 0x64, 0x33, 0x83, 0x27, 0x95, 0x02, 0x88, 0x41, 0x97,
- 0x16, 0x93, 0x99, 0x37, 0x51, 0x05, 0x82, 0x09, 0x74, 0x94,
- 0x45, 0x92, 0x30, 0x78, 0x16, 0x40, 0x62, 0x86, 0x20, 0x89,
- 0x98, 0x62, 0x80, 0x34, 0x82, 0x53, 0x42, 0x11, 0x70, 0x67,
- 0x98, 0x21, 0x48, 0x08, 0x65, 0x13, 0x28, 0x23, 0x06, 0x64,
- 0x70, 0x93, 0x84, 0x46, 0x09, 0x55, 0x05, 0x82, 0x23, 0x17,
- 0x25, 0x35, 0x94, 0x08, 0x12, 0x84, 0x81, 0x11, 0x74, 0x50,
- 0x28, 0x41, 0x02, 0x70, 0x19, 0x38, 0x52, 0x11, 0x05, 0x55,
- 0x96, 0x44, 0x62, 0x29, 0x48, 0x95, 0x49, 0x30, 0x38, 0x19,
- 0x64, 0x42, 0x88, 0x10, 0x97, 0x56, 0x65, 0x93, 0x34, 0x46,
- 0x12, 0x84, 0x75, 0x64, 0x82, 0x33, 0x78, 0x67, 0x83, 0x16,
- 0x52, 0x71, 0x20, 0x19, 0x09, 0x14, 0x56, 0x48, 0x56, 0x69,
-};
-
namespace
{
std::string RSAPrivateKey = R"(-----BEGIN RSA PRIVATE KEY-----
@@ -252,14 +234,6 @@ OHYtKG3GK3GEcFDwZU2LPHq21EroUAdtRfbrJ4KW2yc8igtXKxTBYw==
)";
std::unique_ptr<Trinity::Crypto::RSA> ConnectToRSA;
-
-uint8 const WherePacketHmac[] =
-{
- 0x2C, 0x1F, 0x1D, 0x80, 0xC3, 0x8C, 0x23, 0x64, 0xDA, 0x90, 0xCA, 0x8E, 0x2C, 0xFC, 0x0C, 0xCE,
- 0x09, 0xD3, 0x62, 0xF9, 0xF3, 0x8B, 0xBE, 0x9F, 0x19, 0xEF, 0x58, 0xA1, 0x1C, 0x34, 0x14, 0x41,
- 0x3F, 0x23, 0xFD, 0xD3, 0xE8, 0x14, 0xEC, 0x2A, 0xFD, 0x4F, 0x95, 0xBA, 0x30, 0x7E, 0x56, 0x5D,
- 0x83, 0x95, 0x81, 0x69, 0xB0, 0x5A, 0xB4, 0x9D, 0xA8, 0x55, 0xFF, 0xFC, 0xEE, 0x58, 0x0A, 0x2F
-};
}
bool WorldPackets::Auth::ConnectTo::InitializeEncryption()
@@ -272,50 +246,44 @@ bool WorldPackets::Auth::ConnectTo::InitializeEncryption()
return true;
}
-WorldPackets::Auth::ConnectTo::ConnectTo() : ServerPacket(SMSG_CONNECT_TO, 8 + 4 + 256 + 1)
+WorldPackets::Auth::ConnectTo::ConnectTo() : ServerPacket(SMSG_CONNECT_TO, 256 + 1 + 16 + 2 + 4 + 1 + 8)
{
- Payload.Where.fill(0);
- HexStrToByteArray("F41DCB2D728CF3337A4FF338FA89DB01BBBE9C3B65E9DA96268687353E48B94C", Payload.PanamaKey);
- Payload.Adler32 = 0xA0A66C10;
}
WorldPacket const* WorldPackets::Auth::ConnectTo::Write()
{
- HmacSha1 hmacHash(64, WherePacketHmac);
- hmacHash.UpdateData(Payload.Where.data(), 16);
- hmacHash.UpdateData((uint8* const)&Payload.Type, 1);
- hmacHash.UpdateData((uint8* const)&Payload.Port, 2);
- hmacHash.UpdateData((uint8* const)Haiku.c_str(), 71);
- hmacHash.UpdateData(Payload.PanamaKey, 32);
- hmacHash.UpdateData(PiDigits, 108);
- hmacHash.UpdateData(&Payload.XorMagic, 1);
- hmacHash.Finalize();
-
- ByteBuffer payload;
- payload << uint32(Payload.Adler32);
- payload << uint8(Payload.Type);
- payload.append(Payload.Where.data(), 16);
- payload << uint16(Payload.Port);
- payload.append(Haiku.data(), 71);
- payload.append(Payload.PanamaKey, 32);
- payload.append(PiDigits, 108);
- payload << uint8(Payload.XorMagic);
- payload.append(hmacHash.GetDigest(), hmacHash.GetLength());
-
- uint32 rsaSize = ConnectToRSA->GetOutputSize();
- if (payload.size() < rsaSize)
- payload.resize(rsaSize);
+ ByteBuffer whereBuffer;
+ whereBuffer << uint8(Payload.Where.Type);
+ switch (Payload.Where.Type)
+ {
+ case IPv4:
+ whereBuffer.append(Payload.Where.Address.V4.data(), Payload.Where.Address.V4.size());
+ break;
+ case IPv6:
+ whereBuffer.append(Payload.Where.Address.V6.data(), Payload.Where.Address.V6.size());
+ break;
+ case NamedSocket:
+ whereBuffer << Payload.Where.Address.Name.data();
+ break;
+ default:
+ break;
+ }
- _worldPacket << uint64(Key);
+ uint32 type = Payload.Where.Type;
+ SHA256Hash hash;
+ hash.UpdateData(whereBuffer.contents(), whereBuffer.size());
+ hash.UpdateData(reinterpret_cast<uint8 const*>(&type), 4);
+ hash.UpdateData(reinterpret_cast<uint8 const*>(&Payload.Port), 2);
+ hash.Finalize();
+
+ ConnectToRSA->Sign(hash.GetDigest(), hash.GetLength(), Payload.Signature.data(), Trinity::Crypto::RSA::SHA256{});
+
+ _worldPacket.append(Payload.Signature.data(), Payload.Signature.size());
+ _worldPacket.append(whereBuffer);
+ _worldPacket << uint16(Payload.Port);
_worldPacket << uint32(Serial);
- size_t encryptedPayloadPos = _worldPacket.wpos();
- _worldPacket.resize(_worldPacket.size() + rsaSize);
_worldPacket << uint8(Con);
-
- ConnectToRSA->Encrypt(payload.contents(), payload.size(),
- _worldPacket.contents() + encryptedPayloadPos,
- Trinity::Crypto::RSA::PrivateKey{},
- Trinity::Crypto::RSA::NoPadding{});
+ _worldPacket << uint64(Key);
return &_worldPacket;
}
@@ -333,3 +301,22 @@ void WorldPackets::Auth::ConnectToFailed::Read()
Serial = _worldPacket.read<ConnectToSerial>();
_worldPacket >> Con;
}
+
+uint8 constexpr EnableEncryptionSeed[16] = { 0x90, 0x9C, 0xD0, 0x50, 0x5A, 0x2C, 0x14, 0xDD, 0x5C, 0x2C, 0xC0, 0x64, 0x14, 0xF3, 0xFE, 0xC9 };
+
+WorldPacket const* WorldPackets::Auth::EnableEncryption::Write()
+{
+ HmacSha256 hash(16, EncryptionKey);
+ hash.UpdateData(reinterpret_cast<uint8 const*>(&Enabled), 1);
+ hash.UpdateData(EnableEncryptionSeed, 16);
+ hash.Finalize();
+
+ _worldPacket.resize(_worldPacket.size() + ConnectToRSA->GetOutputSize());
+
+ ConnectToRSA->Sign(hash.GetDigest(), hash.GetLength(), _worldPacket.contents(), Trinity::Crypto::RSA::SHA256{});
+
+ _worldPacket.WriteBit(Enabled);
+ _worldPacket.FlushBits();
+
+ return &_worldPacket;
+}
diff --git a/src/server/game/Server/Packets/AuthenticationPackets.h b/src/server/game/Server/Packets/AuthenticationPackets.h
index 556a4db0594..661676ed6af 100644
--- a/src/server/game/Server/Packets/AuthenticationPackets.h
+++ b/src/server/game/Server/Packets/AuthenticationPackets.h
@@ -63,12 +63,12 @@ namespace WorldPackets
class AuthChallenge final : public ServerPacket
{
public:
- AuthChallenge() : ServerPacket(SMSG_AUTH_CHALLENGE, 4 + 32 + 1) { }
+ AuthChallenge() : ServerPacket(SMSG_AUTH_CHALLENGE, 16 + 4 * 8 + 1) { }
WorldPacket const* Write() override;
std::array<uint8, 16> Challenge = { };
- uint32 DosChallenge[8] = { }; ///< Encryption seeds
+ std::array<uint32, 8> DosChallenge = { };
uint8 DosZeroBits = 0;
};
@@ -200,26 +200,32 @@ namespace WorldPackets
class ConnectTo final : public ServerPacket
{
- static std::string const Haiku;
- static uint8 const PiDigits[130];
-
public:
static bool InitializeEncryption();
enum AddressType : uint8
{
IPv4 = 1,
- IPv6 = 2
+ IPv6 = 2,
+ NamedSocket = 3 // not supported by windows client
+ };
+
+ struct SocketAddress
+ {
+ AddressType Type;
+ union
+ {
+ std::array<uint8, 4> V4;
+ std::array<uint8, 16> V6;
+ std::array<char, 128> Name;
+ } Address;
};
struct ConnectPayload
{
- std::array<uint8, 16> Where;
+ SocketAddress Where;
uint16 Port;
- AddressType Type;
- uint32 Adler32 = 0;
- uint8 XorMagic = 0x2A;
- uint8 PanamaKey[32];
+ std::array<uint8, 256> Signature;
};
ConnectTo();
@@ -275,9 +281,15 @@ namespace WorldPackets
class EnableEncryption final : public ServerPacket
{
public:
- EnableEncryption() : ServerPacket(SMSG_ENABLE_ENCRYPTION, 0) { }
+ EnableEncryption(uint8 const* encryptionKey, bool enabled) : ServerPacket(SMSG_ENABLE_ENCRYPTION, 256 + 1),
+ EncryptionKey(encryptionKey), Enabled(enabled)
+ {
+ }
- WorldPacket const* Write() override { return &_worldPacket; }
+ WorldPacket const* Write() override;
+
+ uint8 const* EncryptionKey;
+ bool Enabled = false;
};
}
}
diff --git a/src/server/game/Server/Packets/BattlegroundPackets.cpp b/src/server/game/Server/Packets/BattlegroundPackets.cpp
index f4cd72123db..3c66cbc4853 100644
--- a/src/server/game/Server/Packets/BattlegroundPackets.cpp
+++ b/src/server/game/Server/Packets/BattlegroundPackets.cpp
@@ -19,9 +19,10 @@
WorldPacket const* WorldPackets::Battleground::PVPSeason::Write()
{
- _worldPacket << uint32(CurrentSeason);
- _worldPacket << uint32(PreviousSeason);
- _worldPacket << uint32(PvpSeasonID);
+ _worldPacket << int32(MythicPlusSeasonID);
+ _worldPacket << int32(CurrentSeason);
+ _worldPacket << int32(PreviousSeason);
+ _worldPacket << int32(PvpSeasonID);
return &_worldPacket;
}
@@ -46,9 +47,12 @@ WorldPacket const* WorldPackets::Battleground::AreaSpiritHealerTime::Write()
ByteBuffer& operator<<(ByteBuffer& data, WorldPackets::Battleground::PVPLogData::RatingData const& ratingData)
{
- data.append(ratingData.Prematch, 2);
- data.append(ratingData.Postmatch, 2);
- data.append(ratingData.PrematchMMR, 2);
+ for (std::size_t i = 0; i < 2; ++i)
+ {
+ data << int32(ratingData.Prematch[i]);
+ data << int32(ratingData.Postmatch[i]);
+ data << int32(ratingData.PrematchMMR[i]);
+ }
return data;
}
@@ -60,7 +64,7 @@ ByteBuffer& operator<<(ByteBuffer& data, WorldPackets::Battleground::PVPLogData:
return data;
}
-ByteBuffer& operator<<(ByteBuffer& data, WorldPackets::Battleground::PVPLogData::PlayerData const& playerData)
+ByteBuffer& operator<<(ByteBuffer& data, WorldPackets::Battleground::PVPLogData::PVPMatchPlayerStatistics const& playerData)
{
data << playerData.PlayerGUID;
data << uint32(playerData.Kills);
@@ -105,20 +109,16 @@ ByteBuffer& operator<<(ByteBuffer& data, WorldPackets::Battleground::PVPLogData:
WorldPacket const* WorldPackets::Battleground::PVPLogData::Write()
{
- _worldPacket.reserve(Players.size() * sizeof(PlayerData) + sizeof(PVPLogData));
+ _worldPacket.reserve(Statistics.size() * sizeof(PVPMatchPlayerStatistics) + sizeof(PVPLogData));
_worldPacket.WriteBit(Ratings.is_initialized());
- _worldPacket.WriteBit(Winner.is_initialized());
- _worldPacket << uint32(Players.size());
- _worldPacket.append(PlayerCount, 2);
+ _worldPacket << uint32(Statistics.size());
+ _worldPacket.append(PlayerCount.data(), PlayerCount.size());
if (Ratings.is_initialized())
_worldPacket << *Ratings;
- if (Winner)
- _worldPacket << uint8(*Winner);
-
- for (PlayerData const& player : Players)
+ for (PVPMatchPlayerStatistics const& player : Statistics)
_worldPacket << player;
return &_worldPacket;
diff --git a/src/server/game/Server/Packets/BattlegroundPackets.h b/src/server/game/Server/Packets/BattlegroundPackets.h
index c470ad7bbf6..d7084704b41 100644
--- a/src/server/game/Server/Packets/BattlegroundPackets.h
+++ b/src/server/game/Server/Packets/BattlegroundPackets.h
@@ -32,13 +32,14 @@ namespace WorldPackets
class PVPSeason final : public ServerPacket
{
public:
- PVPSeason() : ServerPacket(SMSG_PVP_SEASON, 8) { }
+ PVPSeason() : ServerPacket(SMSG_PVP_SEASON, 4 + 4 + 4 + 4) { }
WorldPacket const* Write() override;
- uint32 PreviousSeason = 0;
- uint32 CurrentSeason = 0;
- uint32 PvpSeasonID = 0;
+ int32 MythicPlusSeasonID = 0;
+ int32 PreviousSeason = 0;
+ int32 CurrentSeason = 0;
+ int32 PvpSeasonID = 0;
};
class AreaSpiritHealerQuery final : public ClientPacket
@@ -109,7 +110,7 @@ namespace WorldPackets
uint32 ContributionPoints = 0;
};
- struct PlayerData
+ struct PVPMatchPlayerStatistics
{
ObjectGuid PlayerGUID;
uint32 Kills = 0;
@@ -131,10 +132,9 @@ namespace WorldPackets
int32 HonorLevel = 0;
};
- Optional<uint8> Winner;
- std::vector<PlayerData> Players;
+ std::vector<PVPMatchPlayerStatistics> Statistics;
Optional<RatingData> Ratings;
- int8 PlayerCount[2] = { };
+ std::array<int8, 2> PlayerCount = { };
};
struct BattlefieldStatusHeader
diff --git a/src/server/game/Server/Packets/BattlenetPackets.cpp b/src/server/game/Server/Packets/BattlenetPackets.cpp
index ea0ba7f9052..5fc6b6d3767 100644
--- a/src/server/game/Server/Packets/BattlenetPackets.cpp
+++ b/src/server/game/Server/Packets/BattlenetPackets.cpp
@@ -55,6 +55,7 @@ WorldPacket const* WorldPackets::Battlenet::Response::Write()
WorldPacket const* WorldPackets::Battlenet::SetSessionState::Write()
{
_worldPacket.WriteBits(State, 2);
+ _worldPacket.WriteBit(SuppressNotification);
_worldPacket.FlushBits();
return &_worldPacket;
diff --git a/src/server/game/Server/Packets/BattlenetPackets.h b/src/server/game/Server/Packets/BattlenetPackets.h
index 797c53ee6df..d10646e23d2 100644
--- a/src/server/game/Server/Packets/BattlenetPackets.h
+++ b/src/server/game/Server/Packets/BattlenetPackets.h
@@ -68,6 +68,7 @@ namespace WorldPackets
WorldPacket const* Write() override;
uint8 State = 0;
+ bool SuppressNotification = true;
};
class RealmListTicket final : public ServerPacket
diff --git a/src/server/game/Server/Packets/ChannelPackets.cpp b/src/server/game/Server/Packets/ChannelPackets.cpp
index 4ad4331f5d5..e9ce0b17b4a 100644
--- a/src/server/game/Server/Packets/ChannelPackets.cpp
+++ b/src/server/game/Server/Packets/ChannelPackets.cpp
@@ -65,7 +65,7 @@ WorldPacket const* WorldPackets::Channel::ChannelNotify::Write()
WorldPacket const* WorldPackets::Channel::ChannelNotifyJoined::Write()
{
_worldPacket.WriteBits(_Channel.length(), 7);
- _worldPacket.WriteBits(ChannelWelcomeMsg.length(), 10);
+ _worldPacket.WriteBits(ChannelWelcomeMsg.length(), 11);
_worldPacket << uint32(_ChannelFlags);
_worldPacket << int32(ChatChannelID);
_worldPacket << uint64(InstanceID);
diff --git a/src/server/game/Server/Packets/GarrisonPackets.h b/src/server/game/Server/Packets/GarrisonPackets.h
index 7eddbb46cf9..444f022d3ae 100644
--- a/src/server/game/Server/Packets/GarrisonPackets.h
+++ b/src/server/game/Server/Packets/GarrisonPackets.h
@@ -236,7 +236,7 @@ namespace WorldPackets
class GarrisonBuildingRemoved final : public ServerPacket
{
public:
- GarrisonBuildingRemoved() : ServerPacket(SMSG_GARRISON_BUILDING_REMOVED, 4 + 4 + 4) { }
+ GarrisonBuildingRemoved() : ServerPacket(SMSG_GARRISON_BUILDING_REMOVED, 4 + 4 + 4 + 4) { }
WorldPacket const* Write() override;
@@ -353,7 +353,7 @@ namespace WorldPackets
class GarrisonRemoveFollowerResult final : public ServerPacket
{
public:
- GarrisonRemoveFollowerResult() : ServerPacket(SMSG_GARRISON_REMOVE_FOLLOWER_RESULT, 8 + 4 + 4) { }
+ GarrisonRemoveFollowerResult() : ServerPacket(SMSG_GARRISON_REMOVE_FOLLOWER_RESULT, 8 + 4 + 4 + 4) { }
WorldPacket const* Write() override;
diff --git a/src/server/game/Server/Packets/GuildPackets.cpp b/src/server/game/Server/Packets/GuildPackets.cpp
index 56768fafe8f..1e074cb3025 100644
--- a/src/server/game/Server/Packets/GuildPackets.cpp
+++ b/src/server/game/Server/Packets/GuildPackets.cpp
@@ -68,7 +68,7 @@ WorldPacket const* WorldPackets::Guild::GuildRoster::Write()
_worldPacket.AppendPackedTime(CreateDate);
_worldPacket << int32(GuildFlags);
_worldPacket << uint32(MemberData.size());
- _worldPacket.WriteBits(WelcomeText.length(), 10);
+ _worldPacket.WriteBits(WelcomeText.length(), 11);
_worldPacket.WriteBits(InfoText.length(), 11);
_worldPacket.FlushBits();
@@ -93,7 +93,7 @@ WorldPacket const* WorldPackets::Guild::GuildRosterUpdate::Write()
void WorldPackets::Guild::GuildUpdateMotdText::Read()
{
- uint32 textLen = _worldPacket.ReadBits(10);
+ uint32 textLen = _worldPacket.ReadBits(11);
MotdText = _worldPacket.ReadString(textLen);
}
@@ -205,7 +205,7 @@ WorldPacket const* WorldPackets::Guild::GuildEventPresenceChange::Write()
WorldPacket const* WorldPackets::Guild::GuildEventMotd::Write()
{
- _worldPacket.WriteBits(MotdText.length(), 10);
+ _worldPacket.WriteBits(MotdText.length(), 11);
_worldPacket.FlushBits();
_worldPacket.WriteString(MotdText);
diff --git a/src/server/game/Server/Packets/InspectPackets.cpp b/src/server/game/Server/Packets/InspectPackets.cpp
index b4be28ae025..e65279b1d4a 100644
--- a/src/server/game/Server/Packets/InspectPackets.cpp
+++ b/src/server/game/Server/Packets/InspectPackets.cpp
@@ -54,6 +54,49 @@ ByteBuffer& operator<<(ByteBuffer& data, WorldPackets::Inspect::InspectItemData
return data;
}
+void WorldPackets::Inspect::PlayerModelDisplayInfo::Initialize(Player const* player)
+{
+ GUID = player->GetGUID();
+ SpecializationID = player->GetPrimarySpecialization();
+ Name = player->GetName();
+ GenderID = player->m_playerData->NativeSex;
+ Skin = player->m_playerData->SkinID;
+ HairColor = player->m_playerData->HairColorID;
+ HairStyle = player->m_playerData->HairStyleID;
+ FacialHairStyle = player->m_playerData->FacialHairStyleID;
+ Face = player->m_playerData->FaceID;
+ Race = player->getRace();
+ ClassID = player->getClass();
+ std::copy(player->m_playerData->CustomDisplayOption.begin(), player->m_playerData->CustomDisplayOption.end(), CustomDisplay.begin());
+
+ for (uint8 i = 0; i < EQUIPMENT_SLOT_END; ++i)
+ if (::Item* item = player->GetItemByPos(INVENTORY_SLOT_BAG_0, i))
+ Items.emplace_back(item, i);
+}
+
+ByteBuffer& operator<<(ByteBuffer& data, WorldPackets::Inspect::PlayerModelDisplayInfo const& displayInfo)
+{
+ data << displayInfo.GUID;
+ data << int32(displayInfo.SpecializationID);
+ data << uint32(displayInfo.Items.size());
+ data.WriteBits(displayInfo.Name.length(), 6);
+ data << uint8(displayInfo.GenderID);
+ data << uint8(displayInfo.Skin);
+ data << uint8(displayInfo.HairColor);
+ data << uint8(displayInfo.HairStyle);
+ data << uint8(displayInfo.FacialHairStyle);
+ data << uint8(displayInfo.Face);
+ data << uint8(displayInfo.Race);
+ data << uint8(displayInfo.ClassID);
+ data.append(displayInfo.CustomDisplay.data(), displayInfo.CustomDisplay.size());
+ data.WriteString(displayInfo.Name);
+
+ for (WorldPackets::Inspect::InspectItemData const& item : displayInfo.Items)
+ data << item;
+
+ return data;
+}
+
ByteBuffer& operator<<(ByteBuffer& data, WorldPackets::Inspect::InspectGuildData const& guildData)
{
data << guildData.GuildGUID;
@@ -110,14 +153,11 @@ WorldPackets::Inspect::InspectItemData::InspectItemData(::Item const* item, uint
WorldPacket const* WorldPackets::Inspect::InspectResult::Write()
{
- _worldPacket << InspecteeGUID;
- _worldPacket << uint32(Items.size());
+ _worldPacket << DisplayInfo;
_worldPacket << uint32(Glyphs.size());
_worldPacket << uint32(Talents.size());
_worldPacket << uint32(PvpTalents.size());
- _worldPacket << int32(ClassID);
- _worldPacket << int32(SpecializationID);
- _worldPacket << int32(GenderID);
+ _worldPacket << int32(ItemLevel);
_worldPacket << uint8(LifetimeMaxRank);
_worldPacket << uint16(TodayHK);
_worldPacket << uint16(YesterdayHK);
@@ -143,9 +183,6 @@ WorldPacket const* WorldPackets::Inspect::InspectResult::Write()
if (AzeriteLevel)
_worldPacket << int32(*AzeriteLevel);
- for (InspectItemData const& item : Items)
- _worldPacket << item;
-
return &_worldPacket;
}
diff --git a/src/server/game/Server/Packets/InspectPackets.h b/src/server/game/Server/Packets/InspectPackets.h
index 51b1248e286..86ac8f286c4 100644
--- a/src/server/game/Server/Packets/InspectPackets.h
+++ b/src/server/game/Server/Packets/InspectPackets.h
@@ -24,6 +24,7 @@
#include "SharedDefines.h"
class Item;
+class Player;
namespace WorldPackets
{
@@ -60,6 +61,25 @@ namespace WorldPackets
std::vector<int32> AzeritePowers;
};
+ struct PlayerModelDisplayInfo
+ {
+ ObjectGuid GUID;
+ std::vector<InspectItemData> Items;
+ std::string Name;
+ int32 SpecializationID = 0;
+ uint8 GenderID = GENDER_NONE;
+ uint8 Skin = 0;
+ uint8 HairColor = 0;
+ uint8 HairStyle = 0;
+ uint8 FacialHairStyle = 0;
+ uint8 Face = 0;
+ uint8 Race = RACE_NONE;
+ uint8 ClassID = CLASS_NONE;
+ std::array<uint8, PLAYER_CUSTOM_DISPLAY_SIZE> CustomDisplay;
+
+ void Initialize(Player const* player);
+ };
+
struct InspectGuildData
{
ObjectGuid GuildGUID;
@@ -92,17 +112,14 @@ namespace WorldPackets
WorldPacket const* Write() override;
- ObjectGuid InspecteeGUID;
- std::vector<InspectItemData> Items;
+ PlayerModelDisplayInfo DisplayInfo;
std::vector<uint16> Glyphs;
std::vector<uint16> Talents;
std::array<uint16, MAX_PVP_TALENT_SLOTS> PvpTalents;
- int32 ClassID = CLASS_NONE;
- int32 GenderID = GENDER_NONE;
Optional<InspectGuildData> GuildData;
std::array<PVPBracketData, 6> Bracket;
- int32 SpecializationID = 0;
Optional<int32> AzeriteLevel;
+ int32 ItemLevel = 0;
uint32 LifetimeHK = 0;
uint32 HonorLevel = 0;
uint16 TodayHK = 0;
diff --git a/src/server/game/Server/Packets/ItemPackets.cpp b/src/server/game/Server/Packets/ItemPackets.cpp
index 653a49ea748..b45dcb290c1 100644
--- a/src/server/game/Server/Packets/ItemPackets.cpp
+++ b/src/server/game/Server/Packets/ItemPackets.cpp
@@ -328,15 +328,6 @@ void WorldPackets::Item::UseCritterItem::Read()
_worldPacket >> ItemGuid;
}
-void WorldPackets::Item::UpgradeItem::Read()
-{
- _worldPacket >> ItemMaster;
- _worldPacket >> ItemGUID;
- _worldPacket >> UpgradeID;
- _worldPacket >> ContainerSlot;
- _worldPacket >> Slot;
-}
-
void WorldPackets::Item::SocketGems::Read()
{
_worldPacket >> ItemGuid;
@@ -351,14 +342,6 @@ WorldPacket const* WorldPackets::Item::SocketGemsResult::Write()
return &_worldPacket;
}
-WorldPacket const* WorldPackets::Item::ItemUpgradeResult::Write()
-{
- _worldPacket.WriteBit(Success);
- _worldPacket.FlushBits();
-
- return &_worldPacket;
-}
-
void WorldPackets::Item::RemoveNewItem::Read()
{
_worldPacket >> ItemGuid;
diff --git a/src/server/game/Server/Packets/ItemPackets.h b/src/server/game/Server/Packets/ItemPackets.h
index 695f589612f..105fbfeae44 100644
--- a/src/server/game/Server/Packets/ItemPackets.h
+++ b/src/server/game/Server/Packets/ItemPackets.h
@@ -447,30 +447,6 @@ namespace WorldPackets
ObjectGuid ItemGuid;
};
- class UpgradeItem final : public ClientPacket
- {
- public:
- UpgradeItem(WorldPacket&& packet) : ClientPacket(CMSG_UPGRADE_ITEM, std::move(packet)) { }
-
- void Read() override;
-
- ObjectGuid ItemMaster;
- ObjectGuid ItemGUID;
- int32 ContainerSlot = 0;
- int32 UpgradeID = 0;
- int32 Slot = 0;
- };
-
- class ItemUpgradeResult final : public ServerPacket
- {
- public:
- ItemUpgradeResult() : ServerPacket(SMSG_ITEM_UPGRADE_RESULT, 1) { }
-
- WorldPacket const* Write() override;
-
- bool Success = false;
- };
-
class SocketGems final : public ClientPacket
{
public:
diff --git a/src/server/game/Server/Packets/SocialPackets.cpp b/src/server/game/Server/Packets/SocialPackets.cpp
index ba0bcff90bb..0854f33fc5e 100644
--- a/src/server/game/Server/Packets/SocialPackets.cpp
+++ b/src/server/game/Server/Packets/SocialPackets.cpp
@@ -51,6 +51,7 @@ ByteBuffer& operator<<(ByteBuffer& data, WorldPackets::Social::ContactInfo const
data << uint32(contact.Level);
data << uint32(contact.ClassID);
data.WriteBits(contact.Notes.length(), 10);
+ data.WriteBit(contact.Mobile);
data.FlushBits();
data.WriteString(contact.Notes);
@@ -93,6 +94,7 @@ WorldPacket const* WorldPackets::Social::FriendStatus::Write()
_worldPacket << uint32(Level);
_worldPacket << uint32(ClassID);
_worldPacket.WriteBits(Notes.length(), 10);
+ _worldPacket.WriteBit(Mobile);
_worldPacket.FlushBits();
_worldPacket.WriteString(Notes);
diff --git a/src/server/game/Server/Packets/SocialPackets.h b/src/server/game/Server/Packets/SocialPackets.h
index 2d870b29de1..70cb6101465 100644
--- a/src/server/game/Server/Packets/SocialPackets.h
+++ b/src/server/game/Server/Packets/SocialPackets.h
@@ -53,6 +53,7 @@ namespace WorldPackets
uint32 AreaID = 0;
uint32 Level = 0;
uint32 ClassID = CLASS_NONE;
+ bool Mobile = false;
};
class ContactList final : public ServerPacket
@@ -84,6 +85,7 @@ namespace WorldPackets
uint32 Level = 0;
uint32 AreaID = 0;
uint8 FriendResult = 0; ///< @see enum FriendsResult
+ bool Mobile = false;
};
struct QualifiedGUID
diff --git a/src/server/game/Server/Protocol/Opcodes.cpp b/src/server/game/Server/Protocol/Opcodes.cpp
index 6287fc3c67a..d5b2be6428b 100644
--- a/src/server/game/Server/Protocol/Opcodes.cpp
+++ b/src/server/game/Server/Protocol/Opcodes.cpp
@@ -185,6 +185,8 @@ void OpcodeTable::Initialize()
DEFINE_HANDLER(CMSG_AUTO_STORE_BAG_ITEM, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleAutoStoreBagItemOpcode);
DEFINE_HANDLER(CMSG_AZERITE_EMPOWERED_ITEM_SELECT_POWER, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL);
DEFINE_HANDLER(CMSG_AZERITE_EMPOWERED_ITEM_VIEWED, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL);
+ DEFINE_HANDLER(CMSG_AZERITE_ESSENCE_ACTIVATE_ESSENCE, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL);
+ DEFINE_HANDLER(CMSG_AZERITE_ESSENCE_UNLOCK_MILESTONE, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL);
DEFINE_HANDLER(CMSG_BANKER_ACTIVATE, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleBankerActivateOpcode);
DEFINE_HANDLER(CMSG_BATTLEFIELD_LEAVE, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleBattlefieldLeaveOpcode);
DEFINE_HANDLER(CMSG_BATTLEFIELD_LIST, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleBattlefieldListOpcode);
@@ -326,6 +328,14 @@ void OpcodeTable::Initialize()
DEFINE_HANDLER(CMSG_CLIENT_PORT_GRAVEYARD, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandlePortGraveyard);
DEFINE_HANDLER(CMSG_CLOSE_INTERACTION, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleCloseInteraction);
DEFINE_HANDLER(CMSG_CLOSE_QUEST_CHOICE, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL);
+ DEFINE_HANDLER(CMSG_CLUB_FINDER_APPLICATION_RESPONSE, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL);
+ DEFINE_HANDLER(CMSG_CLUB_FINDER_GET_APPLICANTS_LIST, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL);
+ DEFINE_HANDLER(CMSG_CLUB_FINDER_POST, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL);
+ DEFINE_HANDLER(CMSG_CLUB_FINDER_REQUEST_CLUBS_DATA, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL);
+ DEFINE_HANDLER(CMSG_CLUB_FINDER_REQUEST_CLUBS_LIST, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL);
+ DEFINE_HANDLER(CMSG_CLUB_FINDER_REQUEST_MEMBERSHIP_TO_CLUB, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL);
+ DEFINE_HANDLER(CMSG_CLUB_FINDER_REQUEST_PENDING_CLUBS_LIST, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL);
+ DEFINE_HANDLER(CMSG_CLUB_FINDER_RESPOND_TO_APPLICANT, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL);
DEFINE_HANDLER(CMSG_CLUB_INVITE, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL);
DEFINE_HANDLER(CMSG_COLLECTION_ITEM_SET_FAVORITE, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleCollectionItemSetFavorite);
DEFINE_HANDLER(CMSG_COMMENTATOR_ENABLE, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL);
@@ -344,7 +354,6 @@ void OpcodeTable::Initialize()
DEFINE_HANDLER(CMSG_CONTRIBUTION_CONTRIBUTE, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL);
DEFINE_HANDLER(CMSG_CONTRIBUTION_GET_STATE, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL);
DEFINE_HANDLER(CMSG_CONVERSATION_LINE_STARTED, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL);
- DEFINE_HANDLER(CMSG_CONVERT_CONSUMPTION_TIME, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL);
DEFINE_HANDLER(CMSG_CONVERT_RAID, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleConvertRaidOpcode);
DEFINE_HANDLER(CMSG_CREATE_CHARACTER, STATUS_AUTHED, PROCESS_THREADUNSAFE, &WorldSession::HandleCharCreateOpcode);
DEFINE_HANDLER(CMSG_CREATE_SHIPMENT, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL);
@@ -549,7 +558,6 @@ void OpcodeTable::Initialize()
DEFINE_HANDLER(CMSG_MOVE_FORCE_ROOT_ACK, STATUS_LOGGEDIN, PROCESS_THREADSAFE, &WorldSession::HandleMovementAckMessage);
DEFINE_HANDLER(CMSG_MOVE_FORCE_RUN_BACK_SPEED_CHANGE_ACK, STATUS_LOGGEDIN, PROCESS_THREADSAFE, &WorldSession::HandleForceSpeedChangeAck);
DEFINE_HANDLER(CMSG_MOVE_FORCE_RUN_SPEED_CHANGE_ACK, STATUS_LOGGEDIN, PROCESS_THREADSAFE, &WorldSession::HandleForceSpeedChangeAck);
- DEFINE_HANDLER(CMSG_MOVE_FORCE_SET_MOD_MOVEMENT_FORCE_MAGNITUDE_ACK, STATUS_UNHANDLED, PROCESS_THREADSAFE, &WorldSession::Handle_NULL);
DEFINE_HANDLER(CMSG_MOVE_FORCE_SWIM_BACK_SPEED_CHANGE_ACK, STATUS_LOGGEDIN, PROCESS_THREADSAFE, &WorldSession::HandleForceSpeedChangeAck);
DEFINE_HANDLER(CMSG_MOVE_FORCE_SWIM_SPEED_CHANGE_ACK, STATUS_LOGGEDIN, PROCESS_THREADSAFE, &WorldSession::HandleForceSpeedChangeAck);
DEFINE_HANDLER(CMSG_MOVE_FORCE_TURN_RATE_CHANGE_ACK, STATUS_LOGGEDIN, PROCESS_THREADSAFE, &WorldSession::HandleForceSpeedChangeAck);
@@ -570,6 +578,7 @@ void OpcodeTable::Initialize()
DEFINE_HANDLER(CMSG_MOVE_SET_FACING, STATUS_LOGGEDIN, PROCESS_THREADSAFE, &WorldSession::HandleMovementOpcodes);
DEFINE_HANDLER(CMSG_MOVE_SET_FLY, STATUS_LOGGEDIN, PROCESS_THREADSAFE, &WorldSession::HandleMovementOpcodes);
DEFINE_HANDLER(CMSG_MOVE_SET_IGNORE_MOVEMENT_FORCES_ACK, STATUS_LOGGEDIN, PROCESS_THREADSAFE, &WorldSession::HandleMovementAckMessage);
+ DEFINE_HANDLER(CMSG_MOVE_SET_MOD_MOVEMENT_FORCE_MAGNITUDE_ACK, STATUS_UNHANDLED, PROCESS_THREADSAFE, &WorldSession::Handle_NULL);
DEFINE_HANDLER(CMSG_MOVE_SET_PITCH, STATUS_LOGGEDIN, PROCESS_THREADSAFE, &WorldSession::HandleMovementOpcodes);
DEFINE_HANDLER(CMSG_MOVE_SET_RUN_MODE, STATUS_LOGGEDIN, PROCESS_THREADSAFE, &WorldSession::HandleMovementOpcodes);
DEFINE_HANDLER(CMSG_MOVE_SET_VEHICLE_REC_ID_ACK, STATUS_LOGGEDIN, PROCESS_THREADSAFE, &WorldSession::HandleMoveSetVehicleRecAck);
@@ -635,7 +644,6 @@ void OpcodeTable::Initialize()
DEFINE_HANDLER(CMSG_PET_STOP_ATTACK, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandlePetStopAttack);
DEFINE_HANDLER(CMSG_PING, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_EarlyProccess);
DEFINE_HANDLER(CMSG_PLAYER_LOGIN, STATUS_AUTHED, PROCESS_THREADUNSAFE, &WorldSession::HandlePlayerLoginOpcode);
- DEFINE_HANDLER(CMSG_PROTOCOL_MISMATCH, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL);
DEFINE_HANDLER(CMSG_PUSH_QUEST_TO_PARTY, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandlePushQuestToParty);
DEFINE_HANDLER(CMSG_PVP_LOG_DATA, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandlePVPLogDataOpcode);
DEFINE_HANDLER(CMSG_QUERY_BATTLE_PET_NAME, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL);
@@ -704,7 +712,6 @@ void OpcodeTable::Initialize()
DEFINE_HANDLER(CMSG_REQUEST_CHALLENGE_MODE_AFFIXES, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL);
DEFINE_HANDLER(CMSG_REQUEST_CHARACTER_GUILD_FOLLOW_INFO, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL);
DEFINE_HANDLER(CMSG_REQUEST_CONQUEST_FORMULA_CONSTANTS, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL);
- DEFINE_HANDLER(CMSG_REQUEST_CONSUMPTION_CONVERSION_INFO, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL);
DEFINE_HANDLER(CMSG_REQUEST_CROWD_CONTROL_SPELL, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL);
DEFINE_HANDLER(CMSG_REQUEST_FORCED_REACTIONS, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleRequestForcedReactionsOpcode);
DEFINE_HANDLER(CMSG_REQUEST_GUILD_PARTY_STATE, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleGuildRequestPartyState);
@@ -853,7 +860,6 @@ void OpcodeTable::Initialize()
DEFINE_HANDLER(CMSG_UPDATE_WOW_TOKEN_AUCTIONABLE_LIST, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleUpdateListedAuctionableTokens);
DEFINE_HANDLER(CMSG_UPDATE_WOW_TOKEN_COUNT, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL);
DEFINE_HANDLER(CMSG_UPGRADE_GARRISON, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL);
- DEFINE_HANDLER(CMSG_UPGRADE_ITEM, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleUpgradeItem);
DEFINE_HANDLER(CMSG_USED_FOLLOW, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL);
DEFINE_HANDLER(CMSG_USE_CRITTER_ITEM, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleUseCritterItem);
DEFINE_HANDLER(CMSG_USE_EQUIPMENT_SET, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleUseEquipmentSet);
@@ -936,6 +942,9 @@ void OpcodeTable::Initialize()
DEFINE_SERVER_OPCODE_HANDLER(SMSG_AVAILABLE_HOTFIXES, STATUS_NEVER, CONNECTION_TYPE_REALM);
DEFINE_SERVER_OPCODE_HANDLER(SMSG_AZERITE_EMPOWERED_ITEM_EQUIPPED_STATUS_CHANGED, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
DEFINE_SERVER_OPCODE_HANDLER(SMSG_AZERITE_EMPOWERED_ITEM_RESPEC_OPEN, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
+ DEFINE_SERVER_OPCODE_HANDLER(SMSG_AZERITE_ESSENCE_FORGE_CLOSE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
+ DEFINE_SERVER_OPCODE_HANDLER(SMSG_AZERITE_ESSENCE_FORGE_OPENED, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
+ DEFINE_SERVER_OPCODE_HANDLER(SMSG_AZERITE_ESSENCE_SELECTION_RESULT, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
DEFINE_SERVER_OPCODE_HANDLER(SMSG_AZERITE_XP_GAIN, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
DEFINE_SERVER_OPCODE_HANDLER(SMSG_BAN_REASON, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
DEFINE_SERVER_OPCODE_HANDLER(SMSG_BARBER_SHOP_RESULT, STATUS_NEVER, CONNECTION_TYPE_REALM);
@@ -962,6 +971,7 @@ void OpcodeTable::Initialize()
DEFINE_SERVER_OPCODE_HANDLER(SMSG_BATTLENET_UPDATE_SESSION_KEY, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
DEFINE_SERVER_OPCODE_HANDLER(SMSG_BATTLE_PAY_ACK_FAILED, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
DEFINE_SERVER_OPCODE_HANDLER(SMSG_BATTLE_PAY_BATTLE_PET_DELIVERED, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
+ DEFINE_SERVER_OPCODE_HANDLER(SMSG_BATTLE_PAY_BUNDLE_PRICE_UPDATE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
DEFINE_SERVER_OPCODE_HANDLER(SMSG_BATTLE_PAY_CONFIRM_PURCHASE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
DEFINE_SERVER_OPCODE_HANDLER(SMSG_BATTLE_PAY_DELIVERY_ENDED, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
DEFINE_SERVER_OPCODE_HANDLER(SMSG_BATTLE_PAY_DELIVERY_STARTED, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
@@ -1100,6 +1110,11 @@ void OpcodeTable::Initialize()
DEFINE_SERVER_OPCODE_HANDLER(SMSG_CLEAR_LOSS_OF_CONTROL, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
DEFINE_SERVER_OPCODE_HANDLER(SMSG_CLEAR_SPELL_CHARGES, STATUS_NEVER, CONNECTION_TYPE_INSTANCE);
DEFINE_SERVER_OPCODE_HANDLER(SMSG_CLEAR_TARGET, STATUS_NEVER, CONNECTION_TYPE_REALM);
+ DEFINE_SERVER_OPCODE_HANDLER(SMSG_CLUB_FINDER_APPLICANTS_LIST, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
+ DEFINE_SERVER_OPCODE_HANDLER(SMSG_CLUB_FINDER_APPLICATIONS, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
+ DEFINE_SERVER_OPCODE_HANDLER(SMSG_CLUB_FINDER_APPLICATIONS_CHANGED, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
+ DEFINE_SERVER_OPCODE_HANDLER(SMSG_CLUB_FINDER_CLUBS_DATA, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
+ DEFINE_SERVER_OPCODE_HANDLER(SMSG_CLUB_FINDER_CLUBS_LIST, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
DEFINE_SERVER_OPCODE_HANDLER(SMSG_COIN_REMOVED, STATUS_NEVER, CONNECTION_TYPE_REALM);
DEFINE_SERVER_OPCODE_HANDLER(SMSG_COMBAT_EVENT_FAILED, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
DEFINE_SERVER_OPCODE_HANDLER(SMSG_COMMENTATOR_MAP_INFO, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
@@ -1154,7 +1169,7 @@ void OpcodeTable::Initialize()
DEFINE_SERVER_OPCODE_HANDLER(SMSG_DURABILITY_DAMAGE_DEATH, STATUS_NEVER, CONNECTION_TYPE_REALM);
DEFINE_SERVER_OPCODE_HANDLER(SMSG_EMOTE, STATUS_NEVER, CONNECTION_TYPE_INSTANCE);
DEFINE_SERVER_OPCODE_HANDLER(SMSG_ENABLE_BARBER_SHOP, STATUS_NEVER, CONNECTION_TYPE_REALM);
- DEFINE_SERVER_OPCODE_HANDLER(SMSG_ENABLE_ENCRYPTION, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
+ DEFINE_SERVER_OPCODE_HANDLER(SMSG_ENABLE_ENCRYPTION, STATUS_NEVER, CONNECTION_TYPE_REALM);
DEFINE_SERVER_OPCODE_HANDLER(SMSG_ENCHANTMENT_LOG, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
DEFINE_SERVER_OPCODE_HANDLER(SMSG_ENCOUNTER_END, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
DEFINE_SERVER_OPCODE_HANDLER(SMSG_ENCOUNTER_START, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
@@ -1267,6 +1282,7 @@ void OpcodeTable::Initialize()
DEFINE_SERVER_OPCODE_HANDLER(SMSG_GUILD_COMMAND_RESULT, STATUS_NEVER, CONNECTION_TYPE_REALM);
DEFINE_SERVER_OPCODE_HANDLER(SMSG_GUILD_CRITERIA_DELETED, STATUS_NEVER, CONNECTION_TYPE_REALM);
DEFINE_SERVER_OPCODE_HANDLER(SMSG_GUILD_CRITERIA_UPDATE, STATUS_NEVER, CONNECTION_TYPE_REALM);
+ DEFINE_SERVER_OPCODE_HANDLER(SMSG_GUILD_EVENT_AWAY_CHANGE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
DEFINE_SERVER_OPCODE_HANDLER(SMSG_GUILD_EVENT_BANK_CONTENTS_CHANGED, STATUS_NEVER, CONNECTION_TYPE_REALM);
DEFINE_SERVER_OPCODE_HANDLER(SMSG_GUILD_EVENT_BANK_MONEY_CHANGED, STATUS_NEVER, CONNECTION_TYPE_REALM);
DEFINE_SERVER_OPCODE_HANDLER(SMSG_GUILD_EVENT_DISBANDED, STATUS_NEVER, CONNECTION_TYPE_REALM);
@@ -1348,7 +1364,6 @@ void OpcodeTable::Initialize()
DEFINE_SERVER_OPCODE_HANDLER(SMSG_ITEM_PURCHASE_REFUND_RESULT, STATUS_NEVER, CONNECTION_TYPE_INSTANCE);
DEFINE_SERVER_OPCODE_HANDLER(SMSG_ITEM_PUSH_RESULT, STATUS_NEVER, CONNECTION_TYPE_REALM);
DEFINE_SERVER_OPCODE_HANDLER(SMSG_ITEM_TIME_UPDATE, STATUS_NEVER, CONNECTION_TYPE_REALM);
- DEFINE_SERVER_OPCODE_HANDLER(SMSG_ITEM_UPGRADE_RESULT, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
DEFINE_SERVER_OPCODE_HANDLER(SMSG_KICK_REASON, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
DEFINE_SERVER_OPCODE_HANDLER(SMSG_LEARNED_SPELLS, STATUS_NEVER, CONNECTION_TYPE_INSTANCE);
DEFINE_SERVER_OPCODE_HANDLER(SMSG_LEARN_PVP_TALENTS_FAILED, STATUS_NEVER, CONNECTION_TYPE_REALM);
@@ -1427,6 +1442,7 @@ void OpcodeTable::Initialize()
DEFINE_SERVER_OPCODE_HANDLER(SMSG_MODIFY_COOLDOWN_RECOVERY_SPEED, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE);
DEFINE_SERVER_OPCODE_HANDLER(SMSG_MODIFY_PARTY_RANGE, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE);
DEFINE_SERVER_OPCODE_HANDLER(SMSG_MOTD, STATUS_NEVER, CONNECTION_TYPE_REALM);
+ DEFINE_SERVER_OPCODE_HANDLER(SMSG_MOUNT_EQUIPMENT_APPLY_RESULT, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE);
DEFINE_SERVER_OPCODE_HANDLER(SMSG_MOUNT_RESULT, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE);
DEFINE_SERVER_OPCODE_HANDLER(SMSG_MOVE_APPLY_MOVEMENT_FORCE, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE);
DEFINE_SERVER_OPCODE_HANDLER(SMSG_MOVE_DISABLE_COLLISION, STATUS_NEVER, CONNECTION_TYPE_INSTANCE);
@@ -1451,7 +1467,7 @@ void OpcodeTable::Initialize()
DEFINE_SERVER_OPCODE_HANDLER(SMSG_MOVE_SET_HOVERING, STATUS_NEVER, CONNECTION_TYPE_INSTANCE);
DEFINE_SERVER_OPCODE_HANDLER(SMSG_MOVE_SET_IGNORE_MOVEMENT_FORCES, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE);
DEFINE_SERVER_OPCODE_HANDLER(SMSG_MOVE_SET_LAND_WALK, STATUS_NEVER, CONNECTION_TYPE_INSTANCE);
- DEFINE_SERVER_OPCODE_HANDLER(SMSG_MOVE_SET_MOVEMENT_FORCE_SPEED, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE);
+ DEFINE_SERVER_OPCODE_HANDLER(SMSG_MOVE_SET_MOD_MOVEMENT_FORCE_MAGNITUDE, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE);
DEFINE_SERVER_OPCODE_HANDLER(SMSG_MOVE_SET_NORMAL_FALL, STATUS_NEVER, CONNECTION_TYPE_INSTANCE);
DEFINE_SERVER_OPCODE_HANDLER(SMSG_MOVE_SET_PITCH_RATE, STATUS_NEVER, CONNECTION_TYPE_INSTANCE);
DEFINE_SERVER_OPCODE_HANDLER(SMSG_MOVE_SET_RUN_BACK_SPEED, STATUS_NEVER, CONNECTION_TYPE_INSTANCE);
@@ -1502,7 +1518,7 @@ void OpcodeTable::Initialize()
DEFINE_SERVER_OPCODE_HANDLER(SMSG_MOVE_UPDATE_FLIGHT_BACK_SPEED, STATUS_NEVER, CONNECTION_TYPE_INSTANCE);
DEFINE_SERVER_OPCODE_HANDLER(SMSG_MOVE_UPDATE_FLIGHT_SPEED, STATUS_NEVER, CONNECTION_TYPE_INSTANCE);
DEFINE_SERVER_OPCODE_HANDLER(SMSG_MOVE_UPDATE_KNOCK_BACK, STATUS_NEVER, CONNECTION_TYPE_INSTANCE);
- DEFINE_SERVER_OPCODE_HANDLER(SMSG_MOVE_UPDATE_MOVEMENT_FORCE_SPEED, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE);
+ DEFINE_SERVER_OPCODE_HANDLER(SMSG_MOVE_UPDATE_MOD_MOVEMENT_FORCE_MAGNITUDE,STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE);
DEFINE_SERVER_OPCODE_HANDLER(SMSG_MOVE_UPDATE_PITCH_RATE, STATUS_NEVER, CONNECTION_TYPE_INSTANCE);
DEFINE_SERVER_OPCODE_HANDLER(SMSG_MOVE_UPDATE_REMOVE_MOVEMENT_FORCE, STATUS_NEVER, CONNECTION_TYPE_INSTANCE);
DEFINE_SERVER_OPCODE_HANDLER(SMSG_MOVE_UPDATE_RUN_BACK_SPEED, STATUS_NEVER, CONNECTION_TYPE_INSTANCE);
@@ -1600,6 +1616,7 @@ void OpcodeTable::Initialize()
DEFINE_SERVER_OPCODE_HANDLER(SMSG_PUSH_SPELL_TO_ACTION_BAR, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
DEFINE_SERVER_OPCODE_HANDLER(SMSG_PVP_CREDIT, STATUS_NEVER, CONNECTION_TYPE_REALM);
DEFINE_SERVER_OPCODE_HANDLER(SMSG_PVP_LOG_DATA, STATUS_NEVER, CONNECTION_TYPE_INSTANCE);
+ DEFINE_SERVER_OPCODE_HANDLER(SMSG_PVP_MATCH_START, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE);
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);
@@ -1802,6 +1819,7 @@ void OpcodeTable::Initialize()
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_TOTEM_CREATED, STATUS_NEVER, CONNECTION_TYPE_REALM);
+ DEFINE_SERVER_OPCODE_HANDLER(SMSG_TOTEM_DURATION_CHANGED, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
DEFINE_SERVER_OPCODE_HANDLER(SMSG_TOTEM_MOVED, STATUS_NEVER, CONNECTION_TYPE_REALM);
DEFINE_SERVER_OPCODE_HANDLER(SMSG_TRADE_STATUS, STATUS_NEVER, CONNECTION_TYPE_INSTANCE);
DEFINE_SERVER_OPCODE_HANDLER(SMSG_TRADE_UPDATED, STATUS_NEVER, CONNECTION_TYPE_INSTANCE);
diff --git a/src/server/game/Server/Protocol/Opcodes.h b/src/server/game/Server/Protocol/Opcodes.h
index 5effe3ccd36..4b6015d4934 100644
--- a/src/server/game/Server/Protocol/Opcodes.h
+++ b/src/server/game/Server/Protocol/Opcodes.h
@@ -54,19 +54,19 @@ enum OpcodeClient : uint16
CMSG_ADD_BATTLENET_FRIEND = 0x365C,
CMSG_ADD_FRIEND = 0x36D5,
CMSG_ADD_IGNORE = 0x36D9,
- CMSG_ADD_TOY = 0x3297,
- CMSG_ADVENTURE_JOURNAL_OPEN_QUEST = 0x3201,
- CMSG_ADVENTURE_JOURNAL_START_QUEST = 0x333E,
- CMSG_ADVENTURE_MAP_POI_QUERY = 0x3245,
+ CMSG_ADD_TOY = 0x329A,
+ CMSG_ADVENTURE_JOURNAL_OPEN_QUEST = 0x3204,
+ CMSG_ADVENTURE_JOURNAL_START_QUEST = 0x3341,
+ CMSG_ADVENTURE_MAP_POI_QUERY = 0x3248,
CMSG_ALTER_APPEARANCE = 0x34F6,
CMSG_AREA_SPIRIT_HEALER_QUERY = 0x34B0,
CMSG_AREA_SPIRIT_HEALER_QUEUE = 0x34B1,
- CMSG_AREA_TRIGGER = 0x31D5,
- CMSG_ARTIFACT_ADD_POWER = 0x31A8,
- CMSG_ARTIFACT_SET_APPEARANCE = 0x31AA,
- CMSG_ASSIGN_EQUIPMENT_SET_SPEC = 0x3209,
- CMSG_ATTACK_STOP = 0x3254,
- CMSG_ATTACK_SWING = 0x3253,
+ CMSG_AREA_TRIGGER = 0x31D8,
+ CMSG_ARTIFACT_ADD_POWER = 0x31A9,
+ CMSG_ARTIFACT_SET_APPEARANCE = 0x31AB,
+ CMSG_ASSIGN_EQUIPMENT_SET_SPEC = 0x320C,
+ CMSG_ATTACK_STOP = 0x3257,
+ CMSG_ATTACK_SWING = 0x3256,
CMSG_AUCTION_HELLO_REQUEST = 0x34CB,
CMSG_AUCTION_LIST_BIDDER_ITEMS = 0x34D1,
CMSG_AUCTION_LIST_ITEMS = 0x34CE,
@@ -85,13 +85,15 @@ enum OpcodeClient : uint16
CMSG_AUTO_EQUIP_ITEM = 0x399A,
CMSG_AUTO_EQUIP_ITEM_SLOT = 0x399F,
CMSG_AUTO_STORE_BAG_ITEM = 0x399B,
- CMSG_AZERITE_EMPOWERED_ITEM_SELECT_POWER = 0x335C,
- CMSG_AZERITE_EMPOWERED_ITEM_VIEWED = 0x3348,
+ CMSG_AZERITE_EMPOWERED_ITEM_SELECT_POWER = 0x335F,
+ CMSG_AZERITE_EMPOWERED_ITEM_VIEWED = 0x334B,
+ CMSG_AZERITE_ESSENCE_ACTIVATE_ESSENCE = 0x3361,
+ CMSG_AZERITE_ESSENCE_UNLOCK_MILESTONE = 0x3360,
CMSG_BANKER_ACTIVATE = 0x34B3,
- CMSG_BATTLEFIELD_LEAVE = 0x3172,
- CMSG_BATTLEFIELD_LIST = 0x317D,
+ CMSG_BATTLEFIELD_LEAVE = 0x3173,
+ CMSG_BATTLEFIELD_LIST = 0x317E,
CMSG_BATTLEFIELD_PORT = 0x3527,
- CMSG_BATTLEMASTER_HELLO = 0x32AF,
+ CMSG_BATTLEMASTER_HELLO = 0x32B2,
CMSG_BATTLEMASTER_JOIN = 0x3522,
CMSG_BATTLEMASTER_JOIN_ARENA = 0x3523,
CMSG_BATTLEMASTER_JOIN_BRAWL = 0x3525,
@@ -100,21 +102,21 @@ enum OpcodeClient : uint16
CMSG_BATTLENET_REQUEST = 0x36FC,
CMSG_BATTLENET_REQUEST_REALM_LIST_TICKET = 0x3700,
CMSG_BATTLE_PAY_ACK_FAILED_RESPONSE = 0x36D0,
- CMSG_BATTLE_PAY_CANCEL_OPEN_CHECKOUT = 0x371B,
+ CMSG_BATTLE_PAY_CANCEL_OPEN_CHECKOUT = 0x3719,
CMSG_BATTLE_PAY_CONFIRM_PURCHASE_RESPONSE = 0x36CF,
CMSG_BATTLE_PAY_DISTRIBUTION_ASSIGN_TO_TARGET = 0x36C6,
CMSG_BATTLE_PAY_GET_PRODUCT_LIST = 0x36BE,
CMSG_BATTLE_PAY_GET_PURCHASE_LIST = 0x36BF,
- CMSG_BATTLE_PAY_OPEN_CHECKOUT = 0x3714,
+ CMSG_BATTLE_PAY_OPEN_CHECKOUT = 0x3712,
CMSG_BATTLE_PAY_QUERY_CLASS_TRIAL_BOOST_RESULT = 0x36C9,
CMSG_BATTLE_PAY_REQUEST_CHARACTER_BOOST_UNREVOKE = 0x36C7,
- CMSG_BATTLE_PAY_REQUEST_CURRENT_VAS_TRANSFER_QUEUES = 0x3711,
- CMSG_BATTLE_PAY_REQUEST_PRICE_INFO = 0x3710,
- CMSG_BATTLE_PAY_REQUEST_VAS_CHARACTER_QUEUE_TIME = 0x3712,
+ CMSG_BATTLE_PAY_REQUEST_CURRENT_VAS_TRANSFER_QUEUES = 0x370F,
+ CMSG_BATTLE_PAY_REQUEST_PRICE_INFO = 0x370E,
+ CMSG_BATTLE_PAY_REQUEST_VAS_CHARACTER_QUEUE_TIME = 0x3710,
CMSG_BATTLE_PAY_START_PURCHASE = 0x36F8,
CMSG_BATTLE_PAY_START_VAS_PURCHASE = 0x36F9,
CMSG_BATTLE_PAY_TRIAL_BOOST_CHARACTER = 0x36C8,
- CMSG_BATTLE_PAY_VALIDATE_BNET_VAS_TRANSFER = 0x3713,
+ CMSG_BATTLE_PAY_VALIDATE_BNET_VAS_TRANSFER = 0x3711,
CMSG_BATTLE_PAY_VAS_PURCHASE_COMPLETE = 0x36F7,
CMSG_BATTLE_PET_CLEAR_FANFARE = 0x312C,
CMSG_BATTLE_PET_DELETE_PET = 0x3625,
@@ -125,14 +127,14 @@ enum OpcodeClient : uint16
CMSG_BATTLE_PET_SET_BATTLE_SLOT = 0x362D,
CMSG_BATTLE_PET_SET_FLAGS = 0x3631,
CMSG_BATTLE_PET_SUMMON = 0x3629,
- CMSG_BATTLE_PET_UPDATE_DISPLAY_NOTIFY = 0x31DF,
- CMSG_BATTLE_PET_UPDATE_NOTIFY = 0x31DE,
+ CMSG_BATTLE_PET_UPDATE_DISPLAY_NOTIFY = 0x31E2,
+ CMSG_BATTLE_PET_UPDATE_NOTIFY = 0x31E1,
CMSG_BEGIN_TRADE = 0x3157,
CMSG_BINDER_ACTIVATE = 0x34B2,
CMSG_BLACK_MARKET_BID_ON_ITEM = 0x352F,
CMSG_BLACK_MARKET_OPEN = 0x352D,
CMSG_BLACK_MARKET_REQUEST_ITEMS = 0x352E,
- CMSG_BONUS_ROLL = 0x335D,
+ CMSG_BONUS_ROLL = 0x3362,
CMSG_BUG_REPORT = 0x3688,
CMSG_BUSY_TRADE = 0x3158,
CMSG_BUY_BACK_ITEM = 0x34A4,
@@ -141,7 +143,7 @@ enum OpcodeClient : uint16
CMSG_BUY_REAGENT_BANK = 0x34B5,
CMSG_BUY_WOW_TOKEN_CONFIRM = 0x36F1,
CMSG_BUY_WOW_TOKEN_START = 0x36F0,
- CMSG_CAGE_BATTLE_PET = 0x31F0,
+ CMSG_CAGE_BATTLE_PET = 0x31F3,
CMSG_CALENDAR_ADD_EVENT = 0x367F,
CMSG_CALENDAR_COMMUNITY_FILTER = 0x3673,
CMSG_CALENDAR_COMPLAIN = 0x367B,
@@ -157,25 +159,25 @@ enum OpcodeClient : uint16
CMSG_CALENDAR_REMOVE_EVENT = 0x3679,
CMSG_CALENDAR_REMOVE_INVITE = 0x3675,
CMSG_CALENDAR_UPDATE_EVENT = 0x3680,
- CMSG_CANCEL_AURA = 0x31AC,
+ CMSG_CANCEL_AURA = 0x31AD,
CMSG_CANCEL_AUTO_REPEAT_SPELL = 0x34E8,
- CMSG_CANCEL_CAST = 0x329D,
- CMSG_CANCEL_CHANNELLING = 0x3269,
- CMSG_CANCEL_GROWTH_AURA = 0x326E,
- CMSG_CANCEL_MASTER_LOOT_ROLL = 0x3211,
- CMSG_CANCEL_MOD_SPEED_NO_CONTROL_AURAS = 0x31AB,
- CMSG_CANCEL_MOUNT_AURA = 0x327F,
- CMSG_CANCEL_QUEUED_SPELL = 0x317E,
+ CMSG_CANCEL_CAST = 0x32A0,
+ CMSG_CANCEL_CHANNELLING = 0x326C,
+ CMSG_CANCEL_GROWTH_AURA = 0x3271,
+ CMSG_CANCEL_MASTER_LOOT_ROLL = 0x3214,
+ CMSG_CANCEL_MOD_SPEED_NO_CONTROL_AURAS = 0x31AC,
+ CMSG_CANCEL_MOUNT_AURA = 0x3282,
+ CMSG_CANCEL_QUEUED_SPELL = 0x317F,
CMSG_CANCEL_TEMP_ENCHANTMENT = 0x34F3,
CMSG_CANCEL_TRADE = 0x315C,
CMSG_CAN_DUEL = 0x3664,
- CMSG_CAN_REDEEM_WOW_TOKEN_FOR_BALANCE = 0x370F,
- CMSG_CAST_SPELL = 0x329A,
+ CMSG_CAN_REDEEM_WOW_TOKEN_FOR_BALANCE = 0x370D,
+ CMSG_CAST_SPELL = 0x329D,
CMSG_CHALLENGE_MODE_REQUEST_LEADERS = 0x3090,
CMSG_CHALLENGE_MODE_REQUEST_MAP_STATS = 0x308F,
- CMSG_CHANGE_BAG_SLOT_FLAG = 0x3320,
- CMSG_CHANGE_BANK_BAG_SLOT_FLAG = 0x3321,
- CMSG_CHANGE_MONUMENT_APPEARANCE = 0x3302,
+ CMSG_CHANGE_BAG_SLOT_FLAG = 0x3323,
+ CMSG_CHANGE_BANK_BAG_SLOT_FLAG = 0x3324,
+ CMSG_CHANGE_MONUMENT_APPEARANCE = 0x3305,
CMSG_CHANGE_SUB_GROUP = 0x364E,
CMSG_CHARACTER_RENAME_REQUEST = 0x36C4,
CMSG_CHAR_CUSTOMIZE = 0x3693,
@@ -219,12 +221,20 @@ enum OpcodeClient : uint16
CMSG_CHAT_UNREGISTER_ALL_ADDON_PREFIXES = 0x37CE,
CMSG_CHECK_RAF_EMAIL_ENABLED = 0x36D1,
CMSG_CHECK_WOW_TOKEN_VETERAN_ELIGIBILITY = 0x36EF,
- CMSG_CHOICE_RESPONSE = 0x329F,
- CMSG_CLEAR_RAID_MARKER = 0x31A4,
+ CMSG_CHOICE_RESPONSE = 0x32A2,
+ CMSG_CLEAR_RAID_MARKER = 0x31A5,
CMSG_CLEAR_TRADE_ITEM = 0x315E,
CMSG_CLIENT_PORT_GRAVEYARD = 0x3529,
CMSG_CLOSE_INTERACTION = 0x3493,
- CMSG_CLOSE_QUEST_CHOICE = 0x32A0,
+ CMSG_CLOSE_QUEST_CHOICE = 0x32A3,
+ CMSG_CLUB_FINDER_APPLICATION_RESPONSE = 0x3723,
+ CMSG_CLUB_FINDER_GET_APPLICANTS_LIST = 0x3721,
+ CMSG_CLUB_FINDER_POST = 0x371E,
+ CMSG_CLUB_FINDER_REQUEST_CLUBS_DATA = 0x3727,
+ CMSG_CLUB_FINDER_REQUEST_CLUBS_LIST = 0x371F,
+ CMSG_CLUB_FINDER_REQUEST_MEMBERSHIP_TO_CLUB = 0x3720,
+ CMSG_CLUB_FINDER_REQUEST_PENDING_CLUBS_LIST = 0x3726,
+ CMSG_CLUB_FINDER_RESPOND_TO_APPLICANT = 0x3722,
CMSG_CLUB_INVITE = 0x36FF,
CMSG_COLLECTION_ITEM_SET_FAVORITE = 0x3634,
CMSG_COMMENTATOR_ENABLE = 0x35F1,
@@ -237,24 +247,23 @@ enum OpcodeClient : uint16
CMSG_COMPLAINT = 0x366E,
CMSG_COMPLETE_CINEMATIC = 0x3547,
CMSG_COMPLETE_MOVIE = 0x34DE,
- CMSG_CONFIRM_ARTIFACT_RESPEC = 0x31A9,
- CMSG_CONFIRM_RESPEC_WIPE = 0x320B,
+ CMSG_CONFIRM_ARTIFACT_RESPEC = 0x31AA,
+ CMSG_CONFIRM_RESPEC_WIPE = 0x320E,
CMSG_CONNECT_TO_FAILED = 0x35D4,
CMSG_CONTRIBUTION_CONTRIBUTE = 0x3557,
CMSG_CONTRIBUTION_GET_STATE = 0x3558,
CMSG_CONVERSATION_LINE_STARTED = 0x3548,
- CMSG_CONVERT_CONSUMPTION_TIME = 0x3702,
CMSG_CONVERT_RAID = 0x3650,
CMSG_CREATE_CHARACTER = 0x3645,
- CMSG_CREATE_SHIPMENT = 0x32EE,
+ CMSG_CREATE_SHIPMENT = 0x32F1,
CMSG_DB_QUERY_BULK = 0x35E5,
CMSG_DECLINE_GUILD_INVITES = 0x3520,
CMSG_DECLINE_PETITION = 0x3536,
CMSG_DELETE_EQUIPMENT_SET = 0x350D,
CMSG_DEL_FRIEND = 0x36D6,
CMSG_DEL_IGNORE = 0x36DA,
- CMSG_DEPOSIT_REAGENT_BANK = 0x3329,
- CMSG_DESTROY_ITEM = 0x3291,
+ CMSG_DEPOSIT_REAGENT_BANK = 0x332C,
+ CMSG_DESTROY_ITEM = 0x3294,
CMSG_DF_BOOT_PLAYER_VOTE = 0x3616,
CMSG_DF_GET_JOIN_STATUS = 0x3614,
CMSG_DF_GET_SYSTEM_INFO = 0x3613,
@@ -266,10 +275,10 @@ enum OpcodeClient : uint16
CMSG_DF_TELEPORT = 0x3617,
CMSG_DISCARDED_TIME_SYNC_ACKS = 0x3A3C,
CMSG_DISMISS_CRITTER = 0x34FC,
- CMSG_DO_MASTER_LOOT_ROLL = 0x3210,
+ CMSG_DO_MASTER_LOOT_ROLL = 0x3213,
CMSG_DO_READY_CHECK = 0x3635,
CMSG_DUEL_RESPONSE = 0x34E3,
- CMSG_EJECT_PASSENGER = 0x323A,
+ CMSG_EJECT_PASSENGER = 0x323D,
CMSG_EMOTE = 0x3543,
CMSG_ENABLE_ENCRYPTION_ACK = 0x3767,
CMSG_ENABLE_NAGLE = 0x376B,
@@ -278,43 +287,43 @@ enum OpcodeClient : uint16
CMSG_ENUM_CHARACTERS = 0x35E9,
CMSG_ENUM_CHARACTERS_DELETED_BY_CLIENT = 0x36E3,
CMSG_FAR_SIGHT = 0x34E9,
- CMSG_GAME_EVENT_DEBUG_DISABLE = 0x31B0,
- CMSG_GAME_EVENT_DEBUG_ENABLE = 0x31AF,
+ CMSG_GAME_EVENT_DEBUG_DISABLE = 0x31B1,
+ CMSG_GAME_EVENT_DEBUG_ENABLE = 0x31B0,
CMSG_GAME_OBJ_REPORT_USE = 0x34F0,
CMSG_GAME_OBJ_USE = 0x34EF,
- CMSG_GARRISON_ASSIGN_FOLLOWER_TO_BUILDING = 0x32D9,
- CMSG_GARRISON_CANCEL_CONSTRUCTION = 0x32CA,
- CMSG_GARRISON_CHECK_UPGRADEABLE = 0x331C,
- CMSG_GARRISON_COMPLETE_MISSION = 0x330F,
- CMSG_GARRISON_GENERATE_RECRUITS = 0x32DC,
- CMSG_GARRISON_GET_BUILDING_LANDMARKS = 0x32EA,
- CMSG_GARRISON_GET_MISSION_REWARD = 0x3342,
- CMSG_GARRISON_MISSION_BONUS_ROLL = 0x3311,
- CMSG_GARRISON_PURCHASE_BUILDING = 0x32C6,
- CMSG_GARRISON_RECRUIT_FOLLOWER = 0x32DE,
- CMSG_GARRISON_REMOVE_FOLLOWER = 0x3306,
- CMSG_GARRISON_REMOVE_FOLLOWER_FROM_BUILDING = 0x32DA,
- CMSG_GARRISON_RENAME_FOLLOWER = 0x32DB,
- CMSG_GARRISON_REQUEST_BLUEPRINT_AND_SPECIALIZATION_DATA = 0x32C5,
- CMSG_GARRISON_REQUEST_CLASS_SPEC_CATEGORY_INFO = 0x32E3,
- CMSG_GARRISON_REQUEST_LANDING_PAGE_SHIPMENT_INFO = 0x32ED,
- CMSG_GARRISON_REQUEST_SHIPMENT_INFO = 0x32EC,
- CMSG_GARRISON_RESEARCH_TALENT = 0x32DF,
- CMSG_GARRISON_SET_BUILDING_ACTIVE = 0x32C7,
- CMSG_GARRISON_SET_FOLLOWER_FAVORITE = 0x32D7,
- CMSG_GARRISON_SET_FOLLOWER_INACTIVE = 0x32D3,
- CMSG_GARRISON_SET_RECRUITMENT_PREFERENCES = 0x32DD,
- CMSG_GARRISON_START_MISSION = 0x330E,
- CMSG_GARRISON_SWAP_BUILDINGS = 0x32CB,
+ CMSG_GARRISON_ASSIGN_FOLLOWER_TO_BUILDING = 0x32DC,
+ CMSG_GARRISON_CANCEL_CONSTRUCTION = 0x32CD,
+ CMSG_GARRISON_CHECK_UPGRADEABLE = 0x331F,
+ CMSG_GARRISON_COMPLETE_MISSION = 0x3312,
+ CMSG_GARRISON_GENERATE_RECRUITS = 0x32DF,
+ CMSG_GARRISON_GET_BUILDING_LANDMARKS = 0x32ED,
+ CMSG_GARRISON_GET_MISSION_REWARD = 0x3345,
+ CMSG_GARRISON_MISSION_BONUS_ROLL = 0x3314,
+ CMSG_GARRISON_PURCHASE_BUILDING = 0x32C9,
+ CMSG_GARRISON_RECRUIT_FOLLOWER = 0x32E1,
+ CMSG_GARRISON_REMOVE_FOLLOWER = 0x3309,
+ CMSG_GARRISON_REMOVE_FOLLOWER_FROM_BUILDING = 0x32DD,
+ CMSG_GARRISON_RENAME_FOLLOWER = 0x32DE,
+ CMSG_GARRISON_REQUEST_BLUEPRINT_AND_SPECIALIZATION_DATA = 0x32C8,
+ CMSG_GARRISON_REQUEST_CLASS_SPEC_CATEGORY_INFO = 0x32E6,
+ CMSG_GARRISON_REQUEST_LANDING_PAGE_SHIPMENT_INFO = 0x32F0,
+ CMSG_GARRISON_REQUEST_SHIPMENT_INFO = 0x32EF,
+ CMSG_GARRISON_RESEARCH_TALENT = 0x32E2,
+ CMSG_GARRISON_SET_BUILDING_ACTIVE = 0x32CA,
+ CMSG_GARRISON_SET_FOLLOWER_FAVORITE = 0x32DA,
+ CMSG_GARRISON_SET_FOLLOWER_INACTIVE = 0x32D6,
+ CMSG_GARRISON_SET_RECRUITMENT_PREFERENCES = 0x32E0,
+ CMSG_GARRISON_START_MISSION = 0x3311,
+ CMSG_GARRISON_SWAP_BUILDINGS = 0x32CE,
CMSG_GENERATE_RANDOM_CHARACTER_NAME = 0x35E8,
CMSG_GET_ACCOUNT_CHARACTER_LIST = 0x36BA,
CMSG_GET_CHALLENGE_MODE_REWARDS = 0x3685,
- CMSG_GET_GARRISON_INFO = 0x32C0,
+ CMSG_GET_GARRISON_INFO = 0x32C3,
CMSG_GET_ITEM_PURCHASE_DATA = 0x3531,
- CMSG_GET_MIRROR_IMAGE_DATA = 0x3295,
+ CMSG_GET_MIRROR_IMAGE_DATA = 0x3298,
CMSG_GET_PVP_OPTIONS_ENABLED = 0x35EF,
CMSG_GET_REMAINING_GAME_TIME = 0x36F2,
- CMSG_GET_TROPHY_LIST = 0x32FF,
+ CMSG_GET_TROPHY_LIST = 0x3302,
CMSG_GET_UNDELETE_CHARACTER_COOLDOWN_STATUS = 0x36E5,
CMSG_GM_TICKET_ACKNOWLEDGE_SURVEY = 0x3697,
CMSG_GM_TICKET_GET_CASE_STATUS = 0x3696,
@@ -372,27 +381,27 @@ enum OpcodeClient : uint16
CMSG_INITIATE_TRADE = 0x3156,
CMSG_INSPECT = 0x352B,
CMSG_INSTANCE_LOCK_RESPONSE = 0x350E,
- CMSG_ISLAND_QUEUE = 0x3388,
+ CMSG_ISLAND_QUEUE = 0x338E,
CMSG_ITEM_PURCHASE_REFUND = 0x3532,
- CMSG_ITEM_TEXT_QUERY = 0x331D,
- CMSG_JOIN_PET_BATTLE_QUEUE = 0x31DC,
- CMSG_JOIN_RATED_BATTLEGROUND = 0x3177,
+ CMSG_ITEM_TEXT_QUERY = 0x3320,
+ CMSG_JOIN_PET_BATTLE_QUEUE = 0x31DF,
+ CMSG_JOIN_RATED_BATTLEGROUND = 0x3178,
CMSG_KEEP_ALIVE = 0x3681,
- CMSG_KEYBOUND_OVERRIDE = 0x3222,
+ CMSG_KEYBOUND_OVERRIDE = 0x3225,
CMSG_LEARN_PVP_TALENTS = 0x3556,
CMSG_LEARN_TALENTS = 0x3554,
CMSG_LEAVE_GROUP = 0x364B,
- CMSG_LEAVE_PET_BATTLE_QUEUE = 0x31DD,
+ CMSG_LEAVE_PET_BATTLE_QUEUE = 0x31E0,
CMSG_LFG_LIST_APPLY_TO_GROUP = 0x360D,
CMSG_LFG_LIST_CANCEL_APPLICATION = 0x360E,
CMSG_LFG_LIST_DECLINE_APPLICANT = 0x360F,
CMSG_LFG_LIST_GET_STATUS = 0x360B,
CMSG_LFG_LIST_INVITE_APPLICANT = 0x3610,
CMSG_LFG_LIST_INVITE_RESPONSE = 0x3611,
- CMSG_LFG_LIST_JOIN = 0x335A,
+ CMSG_LFG_LIST_JOIN = 0x335D,
CMSG_LFG_LIST_LEAVE = 0x360A,
CMSG_LFG_LIST_SEARCH = 0x360C,
- CMSG_LFG_LIST_UPDATE_REQUEST = 0x335B,
+ CMSG_LFG_LIST_UPDATE_REQUEST = 0x335E,
CMSG_LF_GUILD_ADD_RECRUIT = 0x361C,
CMSG_LF_GUILD_BROWSE = 0x361E,
CMSG_LF_GUILD_DECLINE_RECRUIT = 0x3079,
@@ -406,33 +415,33 @@ enum OpcodeClient : uint16
CMSG_LIVE_REGION_CHARACTER_COPY = 0x36BC,
CMSG_LIVE_REGION_GET_ACCOUNT_CHARACTER_LIST = 0x36BB,
CMSG_LOADING_SCREEN_NOTIFY = 0x35F9,
- CMSG_LOAD_SELECTED_TROPHY = 0x3300,
+ CMSG_LOAD_SELECTED_TROPHY = 0x3303,
CMSG_LOGOUT_CANCEL = 0x34D9,
CMSG_LOGOUT_INSTANT = 0x34DA,
CMSG_LOGOUT_REQUEST = 0x34D7,
CMSG_LOG_DISCONNECT = 0x3769,
CMSG_LOG_STREAMING_ERROR = 0x376D,
- CMSG_LOOT_ITEM = 0x320E,
- CMSG_LOOT_MONEY = 0x320D,
- CMSG_LOOT_RELEASE = 0x3212,
- CMSG_LOOT_ROLL = 0x3213,
- CMSG_LOOT_UNIT = 0x320C,
+ CMSG_LOOT_ITEM = 0x3211,
+ CMSG_LOOT_MONEY = 0x3210,
+ CMSG_LOOT_RELEASE = 0x3215,
+ CMSG_LOOT_ROLL = 0x3216,
+ CMSG_LOOT_UNIT = 0x320F,
CMSG_LOW_LEVEL_RAID1 = 0x36A4,
CMSG_LOW_LEVEL_RAID2 = 0x3515,
CMSG_MAIL_CREATE_TEXT_ITEM = 0x353D,
- CMSG_MAIL_DELETE = 0x3224,
+ CMSG_MAIL_DELETE = 0x3227,
CMSG_MAIL_GET_LIST = 0x3538,
CMSG_MAIL_MARK_AS_READ = 0x353C,
CMSG_MAIL_RETURN_TO_SENDER = 0x3657,
CMSG_MAIL_TAKE_ITEM = 0x353A,
CMSG_MAIL_TAKE_MONEY = 0x3539,
- CMSG_MAKE_CONTITIONAL_APPEARANCE_PERMANENT = 0x3227,
- CMSG_MASTER_LOOT_ITEM = 0x320F,
+ CMSG_MAKE_CONTITIONAL_APPEARANCE_PERMANENT = 0x322A,
+ CMSG_MASTER_LOOT_ITEM = 0x3212,
CMSG_MINIMAP_PING = 0x364D,
- CMSG_MISSILE_TRAJECTORY_COLLISION = 0x3189,
+ CMSG_MISSILE_TRAJECTORY_COLLISION = 0x318A,
CMSG_MOUNT_CLEAR_FANFARE = 0x312D,
CMSG_MOUNT_SET_FAVORITE = 0x3633,
- CMSG_MOUNT_SPECIAL_ANIM = 0x3280,
+ CMSG_MOUNT_SPECIAL_ANIM = 0x3283,
CMSG_MOVE_APPLY_MOVEMENT_FORCE_ACK = 0x3A12,
CMSG_MOVE_CHANGE_TRANSPORT = 0x3A2C,
CMSG_MOVE_CHANGE_VEHICLE_SEATS = 0x3A31,
@@ -449,7 +458,6 @@ enum OpcodeClient : uint16
CMSG_MOVE_FORCE_ROOT_ACK = 0x3A0B,
CMSG_MOVE_FORCE_RUN_BACK_SPEED_CHANGE_ACK = 0x3A09,
CMSG_MOVE_FORCE_RUN_SPEED_CHANGE_ACK = 0x3A08,
- CMSG_MOVE_FORCE_SET_MOD_MOVEMENT_FORCE_MAGNITUDE_ACK = 0x3A3D,
CMSG_MOVE_FORCE_SWIM_BACK_SPEED_CHANGE_ACK = 0x3A1F,
CMSG_MOVE_FORCE_SWIM_SPEED_CHANGE_ACK = 0x3A0A,
CMSG_MOVE_FORCE_TURN_RATE_CHANGE_ACK = 0x3A20,
@@ -470,6 +478,7 @@ enum OpcodeClient : uint16
CMSG_MOVE_SET_FACING = 0x3A06,
CMSG_MOVE_SET_FLY = 0x3A25,
CMSG_MOVE_SET_IGNORE_MOVEMENT_FORCES_ACK = 0x3A23,
+ CMSG_MOVE_SET_MOD_MOVEMENT_FORCE_MAGNITUDE_ACK = 0x3A3D,
CMSG_MOVE_SET_PITCH = 0x3A07,
CMSG_MOVE_SET_RUN_MODE = 0x39F2,
CMSG_MOVE_SET_VEHICLE_REC_ID_ACK = 0x3A11,
@@ -497,16 +506,16 @@ enum OpcodeClient : uint16
CMSG_MOVE_TOGGLE_COLLISION_CHEAT = 0x3A05,
CMSG_MOVE_UPDATE_FALL_SPEED = 0x3A17,
CMSG_MOVE_WATER_WALK_ACK = 0x3A1A,
- CMSG_NEUTRAL_PLAYER_SELECT_FACTION = 0x31D2,
+ CMSG_NEUTRAL_PLAYER_SELECT_FACTION = 0x31D5,
CMSG_NEXT_CINEMATIC_CAMERA = 0x3546,
- CMSG_OBJECT_UPDATE_FAILED = 0x317F,
- CMSG_OBJECT_UPDATE_RESCUED = 0x3180,
+ CMSG_OBJECT_UPDATE_FAILED = 0x3180,
+ CMSG_OBJECT_UPDATE_RESCUED = 0x3181,
CMSG_OFFER_PETITION = 0x36B3,
CMSG_OPENING_CINEMATIC = 0x3545,
- CMSG_OPEN_ITEM = 0x331E,
- CMSG_OPEN_MISSION_NPC = 0x32E5,
- CMSG_OPEN_SHIPMENT_NPC = 0x32EB,
- CMSG_OPEN_TRADESKILL_NPC = 0x32F6,
+ CMSG_OPEN_ITEM = 0x3321,
+ CMSG_OPEN_MISSION_NPC = 0x32E8,
+ CMSG_OPEN_SHIPMENT_NPC = 0x32EE,
+ CMSG_OPEN_TRADESKILL_NPC = 0x32F9,
CMSG_OPT_OUT_OF_LOOT = 0x34F7,
CMSG_PARTY_INVITE = 0x3603,
CMSG_PARTY_INVITE_RESPONSE = 0x3604,
@@ -517,50 +526,49 @@ enum OpcodeClient : uint16
CMSG_PETITION_SHOW_SIGNATURES = 0x34CA,
CMSG_PET_ABANDON = 0x348D,
CMSG_PET_ACTION = 0x348B,
- CMSG_PET_BATTLE_FINAL_NOTIFY = 0x31E1,
+ CMSG_PET_BATTLE_FINAL_NOTIFY = 0x31E4,
CMSG_PET_BATTLE_INPUT = 0x3642,
- CMSG_PET_BATTLE_QUEUE_PROPOSE_MATCH_RESULT = 0x3223,
- CMSG_PET_BATTLE_QUIT_NOTIFY = 0x31E0,
+ CMSG_PET_BATTLE_QUEUE_PROPOSE_MATCH_RESULT = 0x3226,
+ CMSG_PET_BATTLE_QUIT_NOTIFY = 0x31E3,
CMSG_PET_BATTLE_REPLACE_FRONT_PET = 0x3643,
- CMSG_PET_BATTLE_REQUEST_PVP = 0x31DA,
- CMSG_PET_BATTLE_REQUEST_UPDATE = 0x31DB,
- CMSG_PET_BATTLE_REQUEST_WILD = 0x31D8,
- CMSG_PET_BATTLE_SCRIPT_ERROR_NOTIFY = 0x31E2,
- CMSG_PET_BATTLE_WILD_LOCATION_FAIL = 0x31D9,
+ CMSG_PET_BATTLE_REQUEST_PVP = 0x31DD,
+ CMSG_PET_BATTLE_REQUEST_UPDATE = 0x31DE,
+ CMSG_PET_BATTLE_REQUEST_WILD = 0x31DB,
+ CMSG_PET_BATTLE_SCRIPT_ERROR_NOTIFY = 0x31E5,
+ CMSG_PET_BATTLE_WILD_LOCATION_FAIL = 0x31DC,
CMSG_PET_CANCEL_AURA = 0x348E,
- CMSG_PET_CAST_SPELL = 0x3299,
+ CMSG_PET_CAST_SPELL = 0x329C,
CMSG_PET_RENAME = 0x3687,
CMSG_PET_SET_ACTION = 0x348A,
CMSG_PET_SPELL_AUTOCAST = 0x348F,
CMSG_PET_STOP_ATTACK = 0x348C,
CMSG_PING = 0x3768,
CMSG_PLAYER_LOGIN = 0x35EB,
- CMSG_PROTOCOL_MISMATCH = 0x376E,
CMSG_PUSH_QUEST_TO_PARTY = 0x349F,
- CMSG_PVP_LOG_DATA = 0x317A,
- CMSG_QUERY_BATTLE_PET_NAME = 0x3275,
+ CMSG_PVP_LOG_DATA = 0x317B,
+ CMSG_QUERY_BATTLE_PET_NAME = 0x3278,
CMSG_QUERY_COMMUNITY_NAME = 0x368E,
CMSG_QUERY_CORPSE_LOCATION_FROM_CLIENT = 0x3662,
CMSG_QUERY_CORPSE_TRANSPORT = 0x3663,
- CMSG_QUERY_COUNTDOWN_TIMER = 0x31A7,
- CMSG_QUERY_CREATURE = 0x326F,
- CMSG_QUERY_GAME_OBJECT = 0x3270,
- CMSG_QUERY_GARRISON_CREATURE_NAME = 0x3276,
+ CMSG_QUERY_COUNTDOWN_TIMER = 0x31A8,
+ CMSG_QUERY_CREATURE = 0x3272,
+ CMSG_QUERY_GAME_OBJECT = 0x3273,
+ CMSG_QUERY_GARRISON_CREATURE_NAME = 0x3279,
CMSG_QUERY_GUILD_INFO = 0x3691,
CMSG_QUERY_INSPECT_ACHIEVEMENTS = 0x3503,
CMSG_QUERY_NEXT_MAIL_TIME = 0x353B,
- CMSG_QUERY_NPC_TEXT = 0x3271,
- CMSG_QUERY_PAGE_TEXT = 0x3273,
- CMSG_QUERY_PETITION = 0x3277,
- CMSG_QUERY_PET_NAME = 0x3274,
+ CMSG_QUERY_NPC_TEXT = 0x3274,
+ CMSG_QUERY_PAGE_TEXT = 0x3276,
+ CMSG_QUERY_PETITION = 0x327A,
+ CMSG_QUERY_PET_NAME = 0x3277,
CMSG_QUERY_PLAYER_NAME = 0x368D,
- CMSG_QUERY_QUEST_COMPLETION_NPCS = 0x3174,
- CMSG_QUERY_QUEST_INFO = 0x3272,
+ CMSG_QUERY_QUEST_COMPLETION_NPCS = 0x3175,
+ CMSG_QUERY_QUEST_INFO = 0x3275,
CMSG_QUERY_REALM_NAME = 0x3690,
CMSG_QUERY_SCENARIO_POI = 0x3658,
CMSG_QUERY_TIME = 0x34D6,
- CMSG_QUERY_TREASURE_PICKER = 0x3344,
- CMSG_QUERY_VOID_STORAGE = 0x31A0,
+ CMSG_QUERY_TREASURE_PICKER = 0x3347,
+ CMSG_QUERY_VOID_STORAGE = 0x31A1,
CMSG_QUEST_CONFIRM_ACCEPT = 0x349E,
CMSG_QUEST_GIVER_ACCEPT_QUEST = 0x3498,
CMSG_QUEST_GIVER_CHOOSE_REWARD = 0x349A,
@@ -574,72 +582,71 @@ enum OpcodeClient : uint16
CMSG_QUEST_POI_QUERY = 0x36B4,
CMSG_QUEST_PUSH_RESULT = 0x34A0,
CMSG_QUEUED_MESSAGES_END = 0x376C,
- CMSG_QUICK_JOIN_AUTO_ACCEPT_REQUESTS = 0x370E,
- CMSG_QUICK_JOIN_REQUEST_INVITE = 0x370D,
- CMSG_QUICK_JOIN_RESPOND_TO_INVITE = 0x370C,
- CMSG_QUICK_JOIN_SIGNAL_TOAST_DISPLAYED = 0x370B,
+ CMSG_QUICK_JOIN_AUTO_ACCEPT_REQUESTS = 0x370C,
+ CMSG_QUICK_JOIN_REQUEST_INVITE = 0x370B,
+ CMSG_QUICK_JOIN_RESPOND_TO_INVITE = 0x370A,
+ CMSG_QUICK_JOIN_SIGNAL_TOAST_DISPLAYED = 0x3709,
CMSG_RAID_OR_BATTLEGROUND_ENGINE_SURVEY = 0x36EA,
CMSG_RANDOM_ROLL = 0x3656,
CMSG_READY_CHECK_RESPONSE = 0x3636,
- CMSG_READ_ITEM = 0x331F,
+ CMSG_READ_ITEM = 0x3322,
CMSG_RECLAIM_CORPSE = 0x34DC,
CMSG_RECRUIT_A_FRIEND = 0x36D2,
CMSG_REDEEM_WOW_TOKEN_CONFIRM = 0x36F4,
CMSG_REDEEM_WOW_TOKEN_START = 0x36F3,
- CMSG_REMOVE_NEW_ITEM = 0x3347,
+ CMSG_REMOVE_NEW_ITEM = 0x334A,
CMSG_REORDER_CHARACTERS = 0x35EA,
CMSG_REPAIR_ITEM = 0x34ED,
- CMSG_REPLACE_TROPHY = 0x3301,
+ CMSG_REPLACE_TROPHY = 0x3304,
CMSG_REPOP_REQUEST = 0x3528,
- CMSG_REPORT_CLIENT_VARIABLES = 0x3708,
- CMSG_REPORT_ENABLED_ADDONS = 0x3707,
- CMSG_REPORT_KEYBINDING_EXECUTION_COUNTS = 0x3709,
+ CMSG_REPORT_CLIENT_VARIABLES = 0x3706,
+ CMSG_REPORT_ENABLED_ADDONS = 0x3705,
+ CMSG_REPORT_KEYBINDING_EXECUTION_COUNTS = 0x3707,
CMSG_REPORT_PVP_PLAYER_AFK = 0x34F5,
- CMSG_REPORT_SERVER_LAG = 0x338D,
+ CMSG_REPORT_SERVER_LAG = 0x3394,
CMSG_REQUEST_ACCOUNT_DATA = 0x369A,
- CMSG_REQUEST_AREA_POI_UPDATE = 0x3346,
+ CMSG_REQUEST_AREA_POI_UPDATE = 0x3349,
CMSG_REQUEST_BATTLEFIELD_STATUS = 0x35DD,
- CMSG_REQUEST_CATEGORY_COOLDOWNS = 0x317C,
- CMSG_REQUEST_CEMETERY_LIST = 0x3175,
- CMSG_REQUEST_CHALLENGE_MODE_AFFIXES = 0x3205,
+ CMSG_REQUEST_CATEGORY_COOLDOWNS = 0x317D,
+ CMSG_REQUEST_CEMETERY_LIST = 0x3176,
+ CMSG_REQUEST_CHALLENGE_MODE_AFFIXES = 0x3208,
CMSG_REQUEST_CHARACTER_GUILD_FOLLOW_INFO = 0x3692,
- CMSG_REQUEST_CONQUEST_FORMULA_CONSTANTS = 0x32B2,
- CMSG_REQUEST_CONSUMPTION_CONVERSION_INFO = 0x3701,
+ CMSG_REQUEST_CONQUEST_FORMULA_CONSTANTS = 0x32B5,
CMSG_REQUEST_CROWD_CONTROL_SPELL = 0x352C,
- CMSG_REQUEST_FORCED_REACTIONS = 0x3207,
- CMSG_REQUEST_GUILD_PARTY_STATE = 0x31A6,
- CMSG_REQUEST_GUILD_REWARDS_LIST = 0x31A5,
- CMSG_REQUEST_LFG_LIST_BLACKLIST = 0x32A2,
+ CMSG_REQUEST_FORCED_REACTIONS = 0x320A,
+ CMSG_REQUEST_GUILD_PARTY_STATE = 0x31A7,
+ CMSG_REQUEST_GUILD_REWARDS_LIST = 0x31A6,
+ CMSG_REQUEST_LFG_LIST_BLACKLIST = 0x32A5,
CMSG_REQUEST_PARTY_JOIN_UPDATES = 0x35F8,
CMSG_REQUEST_PARTY_MEMBER_STATS = 0x3655,
CMSG_REQUEST_PET_INFO = 0x3490,
- CMSG_REQUEST_PLAYED_TIME = 0x327A,
- CMSG_REQUEST_PVP_BRAWL_INFO = 0x3194,
- CMSG_REQUEST_PVP_REWARDS = 0x3193,
- CMSG_REQUEST_QUEST_LINES_FOR_MAP = 0x3389,
+ CMSG_REQUEST_PLAYED_TIME = 0x327D,
+ CMSG_REQUEST_PVP_BRAWL_INFO = 0x3195,
+ CMSG_REQUEST_PVP_REWARDS = 0x3194,
+ CMSG_REQUEST_QUEST_LINES_FOR_MAP = 0x338F,
CMSG_REQUEST_RAID_INFO = 0x36CD,
CMSG_REQUEST_RATED_BATTLEFIELD_INFO = 0x35E4,
CMSG_REQUEST_REALM_GUILD_MASTER_INFO = 0x309B,
CMSG_REQUEST_RESEARCH_HISTORY = 0x3167,
CMSG_REQUEST_STABLED_PETS = 0x3491,
- CMSG_REQUEST_VEHICLE_EXIT = 0x3235,
- CMSG_REQUEST_VEHICLE_NEXT_SEAT = 0x3237,
- CMSG_REQUEST_VEHICLE_PREV_SEAT = 0x3236,
- CMSG_REQUEST_VEHICLE_SWITCH_SEAT = 0x3238,
- CMSG_REQUEST_WORLD_QUEST_UPDATE = 0x3345,
+ CMSG_REQUEST_VEHICLE_EXIT = 0x3238,
+ CMSG_REQUEST_VEHICLE_NEXT_SEAT = 0x323A,
+ CMSG_REQUEST_VEHICLE_PREV_SEAT = 0x3239,
+ CMSG_REQUEST_VEHICLE_SWITCH_SEAT = 0x323B,
+ CMSG_REQUEST_WORLD_QUEST_UPDATE = 0x3348,
CMSG_REQUEST_WOW_TOKEN_MARKET_PRICE = 0x36EC,
- CMSG_RESET_CHALLENGE_MODE = 0x3203,
- CMSG_RESET_CHALLENGE_MODE_CHEAT = 0x3204,
+ CMSG_RESET_CHALLENGE_MODE = 0x3206,
+ CMSG_RESET_CHALLENGE_MODE_CHEAT = 0x3207,
CMSG_RESET_INSTANCES = 0x366A,
CMSG_RESURRECT_RESPONSE = 0x3686,
- CMSG_REVERT_MONUMENT_APPEARANCE = 0x3303,
- CMSG_RIDE_VEHICLE_INTERACT = 0x3239,
- CMSG_SAVE_CUF_PROFILES = 0x318A,
+ CMSG_REVERT_MONUMENT_APPEARANCE = 0x3306,
+ CMSG_RIDE_VEHICLE_INTERACT = 0x323C,
+ CMSG_SAVE_CUF_PROFILES = 0x318B,
CMSG_SAVE_EQUIPMENT_SET = 0x350C,
- CMSG_SAVE_GUILD_EMBLEM = 0x32A6,
- CMSG_SCENE_PLAYBACK_CANCELED = 0x321F,
- CMSG_SCENE_PLAYBACK_COMPLETE = 0x321E,
- CMSG_SCENE_TRIGGER_EVENT = 0x3220,
+ CMSG_SAVE_GUILD_EMBLEM = 0x32A9,
+ CMSG_SCENE_PLAYBACK_CANCELED = 0x3222,
+ CMSG_SCENE_PLAYBACK_COMPLETE = 0x3221,
+ CMSG_SCENE_TRIGGER_EVENT = 0x3223,
CMSG_SELF_RES = 0x3533,
CMSG_SELL_ITEM = 0x34A2,
CMSG_SELL_WOW_TOKEN_CONFIRM = 0x36EE,
@@ -648,58 +655,58 @@ enum OpcodeClient : uint16
CMSG_SEND_MAIL = 0x35FB,
CMSG_SEND_SOR_REQUEST_VIA_ADDRESS = 0x3621,
CMSG_SEND_TEXT_EMOTE = 0x3488,
- CMSG_SET_ACHIEVEMENTS_HIDDEN = 0x3225,
+ CMSG_SET_ACHIEVEMENTS_HIDDEN = 0x3228,
CMSG_SET_ACTION_BAR_TOGGLES = 0x3534,
CMSG_SET_ACTION_BUTTON = 0x3637,
CMSG_SET_ACTIVE_MOVER = 0x3A37,
- CMSG_SET_ADVANCED_COMBAT_LOGGING = 0x32B3,
+ CMSG_SET_ADVANCED_COMBAT_LOGGING = 0x32B6,
CMSG_SET_ASSISTANT_LEADER = 0x3651,
- CMSG_SET_BACKPACK_AUTOSORT_DISABLED = 0x3322,
- CMSG_SET_BANK_AUTOSORT_DISABLED = 0x3323,
+ CMSG_SET_BACKPACK_AUTOSORT_DISABLED = 0x3325,
+ CMSG_SET_BANK_AUTOSORT_DISABLED = 0x3326,
CMSG_SET_CONTACT_NOTES = 0x36D7,
CMSG_SET_CURRENCY_FLAGS = 0x3169,
- CMSG_SET_DIFFICULTY_ID = 0x3221,
+ CMSG_SET_DIFFICULTY_ID = 0x3224,
CMSG_SET_DUNGEON_DIFFICULTY = 0x3684,
CMSG_SET_EVERYONE_IS_ASSISTANT = 0x3618,
CMSG_SET_FACTION_AT_WAR = 0x34DF,
CMSG_SET_FACTION_INACTIVE = 0x34E1,
CMSG_SET_FACTION_NOT_AT_WAR = 0x34E0,
- CMSG_SET_GAME_EVENT_DEBUG_VIEW_STATE = 0x31B8,
- CMSG_SET_INSERT_ITEMS_LEFT_TO_RIGHT = 0x3325,
- CMSG_SET_LFG_BONUS_FACTION_ID = 0x32A1,
+ CMSG_SET_GAME_EVENT_DEBUG_VIEW_STATE = 0x31B9,
+ CMSG_SET_INSERT_ITEMS_LEFT_TO_RIGHT = 0x3328,
+ CMSG_SET_LFG_BONUS_FACTION_ID = 0x32A4,
CMSG_SET_LOOT_METHOD = 0x364A,
CMSG_SET_LOOT_SPECIALIZATION = 0x3541,
CMSG_SET_PARTY_ASSIGNMENT = 0x3653,
CMSG_SET_PARTY_LEADER = 0x364C,
CMSG_SET_PET_SLOT = 0x3168,
CMSG_SET_PLAYER_DECLINED_NAMES = 0x368C,
- CMSG_SET_PREFERRED_CEMETERY = 0x3176,
- CMSG_SET_PVP = 0x32AA,
+ CMSG_SET_PREFERRED_CEMETERY = 0x3177,
+ CMSG_SET_PVP = 0x32AD,
CMSG_SET_RAID_DIFFICULTY = 0x36E1,
CMSG_SET_ROLE = 0x35D9,
CMSG_SET_SAVED_INSTANCE_EXTEND = 0x368A,
CMSG_SET_SELECTION = 0x352A,
CMSG_SET_SHEATHED = 0x3489,
- CMSG_SET_SORT_BAGS_RIGHT_TO_LEFT = 0x3324,
+ CMSG_SET_SORT_BAGS_RIGHT_TO_LEFT = 0x3327,
CMSG_SET_TAXI_BENCHMARK_MODE = 0x34F4,
- CMSG_SET_TITLE = 0x327E,
+ CMSG_SET_TITLE = 0x3281,
CMSG_SET_TRADE_CURRENCY = 0x3160,
CMSG_SET_TRADE_GOLD = 0x315F,
CMSG_SET_TRADE_ITEM = 0x315D,
- CMSG_SET_USING_PARTY_GARRISON = 0x32E7,
- CMSG_SET_WAR_MODE = 0x32AB,
+ CMSG_SET_USING_PARTY_GARRISON = 0x32EA,
+ CMSG_SET_WAR_MODE = 0x32AE,
CMSG_SET_WATCHED_FACTION = 0x34E2,
CMSG_SHOW_TRADE_SKILL = 0x36C5,
CMSG_SIGN_PETITION = 0x3535,
CMSG_SILENCE_PARTY_TALKER = 0x3654,
CMSG_SOCKET_GEMS = 0x34EC,
- CMSG_SORT_BAGS = 0x3326,
- CMSG_SORT_BANK_BAGS = 0x3327,
- CMSG_SORT_REAGENT_BANK_BAGS = 0x3328,
+ CMSG_SORT_BAGS = 0x3329,
+ CMSG_SORT_BANK_BAGS = 0x332A,
+ CMSG_SORT_REAGENT_BANK_BAGS = 0x332B,
CMSG_SPELL_CLICK = 0x3495,
CMSG_SPIRIT_HEALER_ACTIVATE = 0x34AF,
CMSG_SPLIT_ITEM = 0x399E,
- CMSG_STAND_STATE_CHANGE = 0x3188,
+ CMSG_STAND_STATE_CHANGE = 0x3189,
CMSG_START_CHALLENGE_MODE = 0x354C,
CMSG_START_SPECTATOR_WAR_GAME = 0x35E0,
CMSG_START_WAR_GAME = 0x35DF,
@@ -707,14 +714,14 @@ enum OpcodeClient : uint16
CMSG_SUPPORT_TICKET_SUBMIT_BUG = 0x3647,
CMSG_SUPPORT_TICKET_SUBMIT_COMPLAINT = 0x3646,
CMSG_SUPPORT_TICKET_SUBMIT_SUGGESTION = 0x3648,
- CMSG_SURRENDER_ARENA = 0x3173,
+ CMSG_SURRENDER_ARENA = 0x3174,
CMSG_SUSPEND_COMMS_ACK = 0x3764,
CMSG_SUSPEND_TOKEN_RESPONSE = 0x376A,
CMSG_SWAP_INV_ITEM = 0x399D,
CMSG_SWAP_ITEM = 0x399C,
CMSG_SWAP_SUB_GROUPS = 0x364F,
- CMSG_SWAP_VOID_ITEM = 0x31A2,
- CMSG_TABARD_VENDOR_ACTIVATE = 0x32A7,
+ CMSG_SWAP_VOID_ITEM = 0x31A3,
+ CMSG_TABARD_VENDOR_ACTIVATE = 0x32AA,
CMSG_TALK_TO_GOSSIP = 0x3492,
CMSG_TAXI_NODE_STATUS_QUERY = 0x34A8,
CMSG_TAXI_QUERY_AVAILABLE_NODES = 0x34AA,
@@ -724,45 +731,44 @@ enum OpcodeClient : uint16
CMSG_TIME_SYNC_RESPONSE_DROPPED = 0x3A3A,
CMSG_TIME_SYNC_RESPONSE_FAILED = 0x3A39,
CMSG_TOGGLE_DIFFICULTY = 0x3659,
- CMSG_TOGGLE_PVP = 0x32A9,
+ CMSG_TOGGLE_PVP = 0x32AC,
CMSG_TOTEM_DESTROYED = 0x34FB,
CMSG_TOY_CLEAR_FANFARE = 0x312E,
- CMSG_TRADE_SKILL_SET_FAVORITE = 0x3343,
+ CMSG_TRADE_SKILL_SET_FAVORITE = 0x3346,
CMSG_TRAINER_BUY_SPELL = 0x34AE,
CMSG_TRAINER_LIST = 0x34AD,
- CMSG_TRANSMOGRIFY_ITEMS = 0x3195,
+ CMSG_TRANSMOGRIFY_ITEMS = 0x3196,
CMSG_TURN_IN_PETITION = 0x3537,
CMSG_TUTORIAL = 0x36E2,
CMSG_TWITTER_CHECK_STATUS = 0x312A,
CMSG_TWITTER_CONNECT = 0x3127,
CMSG_TWITTER_DISCONNECT = 0x312B,
- CMSG_TWITTER_POST = 0x332A,
+ CMSG_TWITTER_POST = 0x332D,
CMSG_UI_TIME_REQUEST = 0x369F,
CMSG_UNACCEPT_TRADE = 0x315B,
CMSG_UNDELETE_CHARACTER = 0x36E4,
CMSG_UNLEARN_SKILL = 0x34E6,
- CMSG_UNLEARN_SPECIALIZATION = 0x31A3,
- CMSG_UNLOCK_VOID_STORAGE = 0x319F,
+ CMSG_UNLEARN_SPECIALIZATION = 0x31A4,
+ CMSG_UNLOCK_VOID_STORAGE = 0x31A0,
CMSG_UPDATE_ACCOUNT_DATA = 0x369B,
- CMSG_UPDATE_AREA_TRIGGER_VISUAL = 0x329C,
+ CMSG_UPDATE_AREA_TRIGGER_VISUAL = 0x329F,
CMSG_UPDATE_CLIENT_SETTINGS = 0x3666,
CMSG_UPDATE_MISSILE_TRAJECTORY = 0x3A3E,
CMSG_UPDATE_RAID_TARGET = 0x3652,
- CMSG_UPDATE_SPELL_VISUAL = 0x329B,
+ CMSG_UPDATE_SPELL_VISUAL = 0x329E,
CMSG_UPDATE_VAS_PURCHASE_STATES = 0x36FA,
CMSG_UPDATE_WOW_TOKEN_AUCTIONABLE_LIST = 0x36F5,
CMSG_UPDATE_WOW_TOKEN_COUNT = 0x36EB,
- CMSG_UPGRADE_GARRISON = 0x32BB,
- CMSG_UPGRADE_ITEM = 0x3226,
- CMSG_USED_FOLLOW = 0x3185,
- CMSG_USE_CRITTER_ITEM = 0x323F,
+ CMSG_UPGRADE_GARRISON = 0x32BE,
+ CMSG_USED_FOLLOW = 0x3186,
+ CMSG_USE_CRITTER_ITEM = 0x3242,
CMSG_USE_EQUIPMENT_SET = 0x3995,
- CMSG_USE_ITEM = 0x3296,
- CMSG_USE_TOY = 0x3298,
- CMSG_VIOLENCE_LEVEL = 0x3183,
- CMSG_VOICE_CHAT_JOIN_CHANNEL = 0x3717,
- CMSG_VOICE_CHAT_LOGIN = 0x3716,
- CMSG_VOID_STORAGE_TRANSFER = 0x31A1,
+ CMSG_USE_ITEM = 0x3299,
+ CMSG_USE_TOY = 0x329B,
+ CMSG_VIOLENCE_LEVEL = 0x3184,
+ CMSG_VOICE_CHAT_JOIN_CHANNEL = 0x3715,
+ CMSG_VOICE_CHAT_LOGIN = 0x3714,
+ CMSG_VOID_STORAGE_TRANSFER = 0x31A2,
CMSG_WARDEN_DATA = 0x35ED,
CMSG_WHO = 0x3683,
CMSG_WHO_IS = 0x3682,
@@ -778,10 +784,10 @@ enum OpcodeServer : uint16
{
SMSG_ABORT_NEW_WORLD = 0x25AE,
SMSG_ACCOUNT_CRITERIA_UPDATE = 0x2655,
- SMSG_ACCOUNT_DATA_TIMES = 0x2752,
+ SMSG_ACCOUNT_DATA_TIMES = 0x2753,
SMSG_ACCOUNT_MOUNT_UPDATE = 0x25C3,
SMSG_ACCOUNT_TOYS_UPDATE = 0x25C4,
- SMSG_ACHIEVEMENT_DELETED = 0x2727,
+ SMSG_ACHIEVEMENT_DELETED = 0x2728,
SMSG_ACHIEVEMENT_EARNED = 0x2663,
SMSG_ACTIVATE_TAXI_REPLY = 0x26AC,
SMSG_ACTIVE_GLYPHS = 0x2C53,
@@ -790,7 +796,7 @@ enum OpcodeServer : uint16
SMSG_ADD_LOSS_OF_CONTROL = 0x269C,
SMSG_ADD_RUNE_POWER = 0x26EB,
SMSG_ADJUST_SPLINE_DURATION = 0x25E8,
- SMSG_ADVENTURE_MAP_POI_QUERY_RESPONSE = 0x2845,
+ SMSG_ADVENTURE_MAP_POI_QUERY_RESPONSE = 0x2847,
SMSG_AE_LOOT_TARGETS = 0x262E,
SMSG_AE_LOOT_TARGET_ACK = 0x262F,
SMSG_AI_REACTION = 0x26E8,
@@ -798,44 +804,47 @@ enum OpcodeServer : uint16
SMSG_ALL_ACHIEVEMENT_DATA = 0x256F,
SMSG_ALL_GUILD_ACHIEVEMENTS = 0x29B8,
SMSG_ARCHAEOLOGY_SURVERY_CAST = 0x2587,
- SMSG_AREA_POI_UPDATE = 0x2852,
- SMSG_AREA_SPIRIT_HEALER_TIME = 0x278A,
+ SMSG_AREA_POI_UPDATE = 0x2854,
+ SMSG_AREA_SPIRIT_HEALER_TIME = 0x278B,
SMSG_AREA_TRIGGER_DENIED = 0x26A3,
- SMSG_AREA_TRIGGER_NO_CORPSE = 0x275E,
+ SMSG_AREA_TRIGGER_NO_CORPSE = 0x275F,
SMSG_AREA_TRIGGER_PLAY_VISUAL_EVENT = 0x2640,
SMSG_AREA_TRIGGER_RE_PATH = 0x263E,
SMSG_AREA_TRIGGER_RE_SHAPE = 0x2643,
SMSG_ARENA_CROWD_CONTROL_SPELLS = 0x2651,
- SMSG_ARENA_MATCH_END = 0x28A9,
- SMSG_ARENA_MATCH_START = 0x28A8,
+ SMSG_ARENA_MATCH_END = 0x28AC,
+ SMSG_ARENA_MATCH_START = 0x28AB,
SMSG_ARENA_PREP_OPPONENT_SPECIALIZATIONS = 0x2668,
- SMSG_ARTIFACT_FORGE_OPENED = 0x27EE,
- SMSG_ARTIFACT_RESPEC_CONFIRM = 0x27F1,
- SMSG_ARTIFACT_TRAITS_REFUNDED = 0x27F2,
- SMSG_ARTIFACT_XP_GAIN = 0x2835,
- SMSG_ATTACKER_STATE_UPDATE = 0x27DB,
+ SMSG_ARTIFACT_FORGE_OPENED = 0x27EF,
+ SMSG_ARTIFACT_RESPEC_CONFIRM = 0x27F2,
+ SMSG_ARTIFACT_TRAITS_REFUNDED = 0x27F3,
+ SMSG_ARTIFACT_XP_GAIN = 0x2837,
+ SMSG_ATTACKER_STATE_UPDATE = 0x27DC,
SMSG_ATTACK_START = 0x2670,
SMSG_ATTACK_STOP = 0x2671,
- SMSG_ATTACK_SWING_ERROR = 0x273C,
- SMSG_ATTACK_SWING_LANDED_LOG = 0x273D,
- SMSG_AUCTION_CLOSED_NOTIFICATION = 0x2731,
- SMSG_AUCTION_COMMAND_RESULT = 0x272E,
- SMSG_AUCTION_HELLO_RESPONSE = 0x272C,
- SMSG_AUCTION_LIST_BIDDER_ITEMS_RESULT = 0x2735,
- SMSG_AUCTION_LIST_ITEMS_RESULT = 0x2733,
- SMSG_AUCTION_LIST_OWNER_ITEMS_RESULT = 0x2734,
- SMSG_AUCTION_LIST_PENDING_SALES_RESULT = 0x2736,
- SMSG_AUCTION_OUTBID_NOTIFICATION = 0x2730,
- SMSG_AUCTION_OWNER_BID_NOTIFICATION = 0x2732,
- SMSG_AUCTION_REPLICATE_RESPONSE = 0x272D,
- SMSG_AUCTION_WON_NOTIFICATION = 0x272F,
+ SMSG_ATTACK_SWING_ERROR = 0x273D,
+ SMSG_ATTACK_SWING_LANDED_LOG = 0x273E,
+ SMSG_AUCTION_CLOSED_NOTIFICATION = 0x2732,
+ SMSG_AUCTION_COMMAND_RESULT = 0x272F,
+ SMSG_AUCTION_HELLO_RESPONSE = 0x272D,
+ SMSG_AUCTION_LIST_BIDDER_ITEMS_RESULT = 0x2736,
+ SMSG_AUCTION_LIST_ITEMS_RESULT = 0x2734,
+ SMSG_AUCTION_LIST_OWNER_ITEMS_RESULT = 0x2735,
+ SMSG_AUCTION_LIST_PENDING_SALES_RESULT = 0x2737,
+ SMSG_AUCTION_OUTBID_NOTIFICATION = 0x2731,
+ SMSG_AUCTION_OWNER_BID_NOTIFICATION = 0x2733,
+ SMSG_AUCTION_REPLICATE_RESPONSE = 0x272E,
+ SMSG_AUCTION_WON_NOTIFICATION = 0x2730,
SMSG_AURA_POINTS_DEPLETED = 0x2C23,
SMSG_AURA_UPDATE = 0x2C22,
SMSG_AUTH_CHALLENGE = 0x3048,
SMSG_AUTH_RESPONSE = 0x256C,
SMSG_AVAILABLE_HOTFIXES = 0x25A2,
SMSG_AZERITE_EMPOWERED_ITEM_EQUIPPED_STATUS_CHANGED = 0x2876,
- SMSG_AZERITE_EMPOWERED_ITEM_RESPEC_OPEN = 0x283F,
+ SMSG_AZERITE_EMPOWERED_ITEM_RESPEC_OPEN = 0x2841,
+ SMSG_AZERITE_ESSENCE_FORGE_CLOSE = 0x2879,
+ SMSG_AZERITE_ESSENCE_FORGE_OPENED = 0x2878,
+ SMSG_AZERITE_ESSENCE_SELECTION_RESULT = 0x2877,
SMSG_AZERITE_XP_GAIN = 0x2875,
SMSG_BAN_REASON = 0x26B8,
SMSG_BARBER_SHOP_RESULT = 0x26F1,
@@ -848,44 +857,45 @@ enum OpcodeServer : uint16
SMSG_BATTLEFIELD_STATUS_QUEUED = 0x2592,
SMSG_BATTLEFIELD_STATUS_WAIT_FOR_GROUPS = 0x25A6,
SMSG_BATTLEGROUND_INFO_THROTTLED = 0x259C,
- SMSG_BATTLEGROUND_INIT = 0x27A9,
+ SMSG_BATTLEGROUND_INIT = 0x27AA,
SMSG_BATTLEGROUND_PLAYER_JOINED = 0x2599,
SMSG_BATTLEGROUND_PLAYER_LEFT = 0x259A,
SMSG_BATTLEGROUND_PLAYER_POSITIONS = 0x2596,
- SMSG_BATTLEGROUND_POINTS = 0x27A8,
- SMSG_BATTLENET_CHALLENGE_ABORT = 0x27DA,
- SMSG_BATTLENET_CHALLENGE_START = 0x27D9,
- SMSG_BATTLENET_NOTIFICATION = 0x284D,
- SMSG_BATTLENET_REALM_LIST_TICKET = 0x284F,
- SMSG_BATTLENET_RESPONSE = 0x284C,
- SMSG_BATTLENET_SET_SESSION_STATE = 0x284E,
+ SMSG_BATTLEGROUND_POINTS = 0x27A9,
+ SMSG_BATTLENET_CHALLENGE_ABORT = 0x27DB,
+ SMSG_BATTLENET_CHALLENGE_START = 0x27DA,
+ SMSG_BATTLENET_NOTIFICATION = 0x284F,
+ SMSG_BATTLENET_REALM_LIST_TICKET = 0x2851,
+ SMSG_BATTLENET_RESPONSE = 0x284E,
+ SMSG_BATTLENET_SET_SESSION_STATE = 0x2850,
SMSG_BATTLENET_UPDATE_SESSION_KEY = 0x286F,
- SMSG_BATTLE_PAY_ACK_FAILED = 0x27D2,
- SMSG_BATTLE_PAY_BATTLE_PET_DELIVERED = 0x27C7,
- SMSG_BATTLE_PAY_CONFIRM_PURCHASE = 0x27D1,
- SMSG_BATTLE_PAY_DELIVERY_ENDED = 0x27C5,
- SMSG_BATTLE_PAY_DELIVERY_STARTED = 0x27C4,
- SMSG_BATTLE_PAY_DISTRIBUTION_UPDATE = 0x27C3,
- SMSG_BATTLE_PAY_GET_DISTRIBUTION_LIST_RESPONSE = 0x27C1,
- SMSG_BATTLE_PAY_GET_PRODUCT_LIST_RESPONSE = 0x27BF,
- SMSG_BATTLE_PAY_GET_PURCHASE_LIST_RESPONSE = 0x27C0,
- SMSG_BATTLE_PAY_MOUNT_DELIVERED = 0x27C6,
+ SMSG_BATTLE_PAY_ACK_FAILED = 0x27D3,
+ SMSG_BATTLE_PAY_BATTLE_PET_DELIVERED = 0x27C8,
+ SMSG_BATTLE_PAY_BUNDLE_PRICE_UPDATE = 0x2862,
+ SMSG_BATTLE_PAY_CONFIRM_PURCHASE = 0x27D2,
+ SMSG_BATTLE_PAY_DELIVERY_ENDED = 0x27C6,
+ SMSG_BATTLE_PAY_DELIVERY_STARTED = 0x27C5,
+ SMSG_BATTLE_PAY_DISTRIBUTION_UPDATE = 0x27C4,
+ SMSG_BATTLE_PAY_GET_DISTRIBUTION_LIST_RESPONSE = 0x27C2,
+ SMSG_BATTLE_PAY_GET_PRODUCT_LIST_RESPONSE = 0x27C0,
+ SMSG_BATTLE_PAY_GET_PURCHASE_LIST_RESPONSE = 0x27C1,
+ SMSG_BATTLE_PAY_MOUNT_DELIVERED = 0x27C7,
SMSG_BATTLE_PAY_OPEN_CHECKOUT_RESULT = 0x2868,
- SMSG_BATTLE_PAY_PURCHASE_UPDATE = 0x27D0,
- SMSG_BATTLE_PAY_START_DISTRIBUTION_ASSIGN_TO_TARGET_RESPONSE = 0x27CE,
- SMSG_BATTLE_PAY_START_PURCHASE_RESPONSE = 0x27CD,
+ SMSG_BATTLE_PAY_PURCHASE_UPDATE = 0x27D1,
+ SMSG_BATTLE_PAY_START_DISTRIBUTION_ASSIGN_TO_TARGET_RESPONSE = 0x27CF,
+ SMSG_BATTLE_PAY_START_PURCHASE_RESPONSE = 0x27CE,
SMSG_BATTLE_PAY_SUBSCRIPTION_CHANGED = 0x2871,
- SMSG_BATTLE_PAY_TOY_DELIVERED = 0x27C8,
+ SMSG_BATTLE_PAY_TOY_DELIVERED = 0x27C9,
SMSG_BATTLE_PAY_VAS_BNET_TRANSFER_VALIDATION_RESULT = 0x2866,
- SMSG_BATTLE_PAY_VAS_BOOST_CONSUMED = 0x27C2,
- SMSG_BATTLE_PAY_VAS_CHARACTER_LIST = 0x2838,
+ SMSG_BATTLE_PAY_VAS_BOOST_CONSUMED = 0x27C3,
+ SMSG_BATTLE_PAY_VAS_CHARACTER_LIST = 0x283A,
SMSG_BATTLE_PAY_VAS_CHARACTER_QUEUE_STATUS = 0x2864,
SMSG_BATTLE_PAY_VAS_GUILD_FOLLOW_INFO = 0x29E7,
SMSG_BATTLE_PAY_VAS_GUILD_MASTER_LIST = 0x29E6,
- SMSG_BATTLE_PAY_VAS_PURCHASE_COMPLETE = 0x283B,
- SMSG_BATTLE_PAY_VAS_PURCHASE_LIST = 0x283C,
- SMSG_BATTLE_PAY_VAS_PURCHASE_STARTED = 0x283A,
- SMSG_BATTLE_PAY_VAS_REALM_LIST = 0x2839,
+ SMSG_BATTLE_PAY_VAS_PURCHASE_COMPLETE = 0x283D,
+ SMSG_BATTLE_PAY_VAS_PURCHASE_LIST = 0x283E,
+ SMSG_BATTLE_PAY_VAS_PURCHASE_STARTED = 0x283C,
+ SMSG_BATTLE_PAY_VAS_REALM_LIST = 0x283B,
SMSG_BATTLE_PAY_VAS_TRANSFER_QUEUE_STATUS = 0x2863,
SMSG_BATTLE_PETS_HEALED = 0x260A,
SMSG_BATTLE_PET_CAGE_DATE_ERROR = 0x26A6,
@@ -900,7 +910,7 @@ enum OpcodeServer : uint16
SMSG_BATTLE_PET_REVOKED = 0x2608,
SMSG_BATTLE_PET_TRAP_LEVEL = 0x2601,
SMSG_BATTLE_PET_UPDATES = 0x2600,
- SMSG_BINDER_CONFIRM = 0x2742,
+ SMSG_BINDER_CONFIRM = 0x2743,
SMSG_BIND_POINT_UPDATE = 0x257C,
SMSG_BLACK_MARKET_BID_ON_ITEM_RESULT = 0x2647,
SMSG_BLACK_MARKET_OPEN_RESULT = 0x2645,
@@ -908,14 +918,14 @@ enum OpcodeServer : uint16
SMSG_BLACK_MARKET_REQUEST_ITEMS_RESULT = 0x2646,
SMSG_BLACK_MARKET_WON = 0x2649,
SMSG_BONUS_ROLL_EMPTY = 0x2665,
- SMSG_BONUS_ROLL_FAILED = 0x2879,
- SMSG_BOSS_KILL_CREDIT = 0x27CC,
+ SMSG_BONUS_ROLL_FAILED = 0x287C,
+ SMSG_BOSS_KILL_CREDIT = 0x27CD,
SMSG_BREAK_TARGET = 0x266F,
SMSG_BROADCAST_ACHIEVEMENT = 0x2BBC,
SMSG_BUY_FAILED = 0x26FA,
SMSG_BUY_SUCCEEDED = 0x26F9,
- SMSG_CACHE_INFO = 0x274C,
- SMSG_CACHE_VERSION = 0x274B,
+ SMSG_CACHE_INFO = 0x274D,
+ SMSG_CACHE_VERSION = 0x274C,
SMSG_CALENDAR_CLEAR_PENDING_ACTION = 0x26CC,
SMSG_CALENDAR_COMMAND_RESULT = 0x26CD,
SMSG_CALENDAR_EVENT_INITIAL_INVITES = 0x26BC,
@@ -936,9 +946,9 @@ enum OpcodeServer : uint16
SMSG_CALENDAR_SEND_CALENDAR = 0x26BA,
SMSG_CALENDAR_SEND_EVENT = 0x26BB,
SMSG_CALENDAR_SEND_NUM_PENDING = 0x26CB,
- SMSG_CAMERA_EFFECT = 0x276F,
- SMSG_CANCEL_AUTO_REPEAT = 0x271B,
- SMSG_CANCEL_COMBAT = 0x273A,
+ SMSG_CAMERA_EFFECT = 0x2770,
+ SMSG_CANCEL_AUTO_REPEAT = 0x271C,
+ SMSG_CANCEL_COMBAT = 0x273B,
SMSG_CANCEL_ORPHAN_SPELL_VISUAL = 0x2C46,
SMSG_CANCEL_SCENE = 0x2657,
SMSG_CANCEL_SPELL_VISUAL = 0x2C44,
@@ -956,25 +966,25 @@ enum OpcodeServer : uint16
SMSG_CHALLENGE_MODE_REWARDS = 0x2622,
SMSG_CHALLENGE_MODE_START = 0x261E,
SMSG_CHALLENGE_MODE_UPDATE_DEATH_COUNT = 0x261F,
- SMSG_CHANGE_PLAYER_DIFFICULTY_RESULT = 0x273E,
+ SMSG_CHANGE_PLAYER_DIFFICULTY_RESULT = 0x273F,
SMSG_CHANNEL_LIST = 0x2BC3,
SMSG_CHANNEL_NOTIFY = 0x2BC0,
SMSG_CHANNEL_NOTIFY_JOINED = 0x2BC1,
SMSG_CHANNEL_NOTIFY_LEFT = 0x2BC2,
- SMSG_CHARACTER_CLASS_TRIAL_CREATE = 0x280C,
+ SMSG_CHARACTER_CLASS_TRIAL_CREATE = 0x280D,
SMSG_CHARACTER_INVENTORY_OVERFLOW_WARNING = 0x2870,
SMSG_CHARACTER_ITEM_FIXUP = 0x285F,
- SMSG_CHARACTER_LOGIN_FAILED = 0x274D,
- SMSG_CHARACTER_OBJECT_TEST_RESPONSE = 0x27D8,
- SMSG_CHARACTER_RENAME_RESULT = 0x27B1,
- SMSG_CHARACTER_UPGRADE_COMPLETE = 0x280B,
- SMSG_CHARACTER_UPGRADE_QUEUED = 0x280A,
+ SMSG_CHARACTER_LOGIN_FAILED = 0x274E,
+ SMSG_CHARACTER_OBJECT_TEST_RESPONSE = 0x27D9,
+ SMSG_CHARACTER_RENAME_RESULT = 0x27B2,
+ SMSG_CHARACTER_UPGRADE_COMPLETE = 0x280C,
+ SMSG_CHARACTER_UPGRADE_QUEUED = 0x280B,
SMSG_CHARACTER_UPGRADE_SPELL_TIER_SET = 0x25F5,
- SMSG_CHARACTER_UPGRADE_STARTED = 0x2809,
- SMSG_CHARACTER_UPGRADE_UNREVOKE_RESULT = 0x280D,
- SMSG_CHAR_CUSTOMIZE = 0x2722,
- SMSG_CHAR_CUSTOMIZE_FAILED = 0x2721,
- SMSG_CHAR_FACTION_CHANGE_RESULT = 0x27F6,
+ SMSG_CHARACTER_UPGRADE_STARTED = 0x280A,
+ SMSG_CHARACTER_UPGRADE_UNREVOKE_RESULT = 0x280E,
+ SMSG_CHAR_CUSTOMIZE = 0x2723,
+ SMSG_CHAR_CUSTOMIZE_FAILED = 0x2722,
+ SMSG_CHAR_FACTION_CHANGE_RESULT = 0x27F7,
SMSG_CHAT = 0x2BAD,
SMSG_CHAT_AUTO_RESPONDED = 0x2BB8,
SMSG_CHAT_DOWN = 0x2BBD,
@@ -995,40 +1005,43 @@ enum OpcodeServer : uint16
SMSG_CLEAR_LOSS_OF_CONTROL = 0x269E,
SMSG_CLEAR_SPELL_CHARGES = 0x2C28,
SMSG_CLEAR_TARGET = 0x26E4,
+ SMSG_CLUB_FINDER_APPLICANTS_LIST = 0x28B3,
+ SMSG_CLUB_FINDER_APPLICATIONS = 0x28B4,
+ SMSG_CLUB_FINDER_APPLICATIONS_CHANGED = 0x28B5,
+ SMSG_CLUB_FINDER_CLUBS_DATA = 0x28B6,
+ SMSG_CLUB_FINDER_CLUBS_LIST = 0x28B2,
SMSG_COIN_REMOVED = 0x262D,
SMSG_COMBAT_EVENT_FAILED = 0x2672,
- SMSG_COMMENTATOR_MAP_INFO = 0x274F,
- SMSG_COMMENTATOR_PLAYER_INFO = 0x2750,
- SMSG_COMMENTATOR_STATE_CHANGED = 0x274E,
+ SMSG_COMMENTATOR_MAP_INFO = 0x2750,
+ SMSG_COMMENTATOR_PLAYER_INFO = 0x2751,
+ SMSG_COMMENTATOR_STATE_CHANGED = 0x274F,
SMSG_COMPLAINT_RESULT = 0x26DB,
- SMSG_COMPLETE_SHIPMENT_RESPONSE = 0x27EA,
+ SMSG_COMPLETE_SHIPMENT_RESPONSE = 0x27EB,
SMSG_CONNECT_TO = 0x304D,
- SMSG_CONQUEST_FORMULA_CONSTANTS = 0x27D3,
+ SMSG_CONQUEST_FORMULA_CONSTANTS = 0x27D4,
SMSG_CONSOLE_WRITE = 0x2654,
- SMSG_CONSUMPTION_CONVERSION_INFO_RESPONSE = 0x2853,
- SMSG_CONSUMPTION_CONVERSION_RESULT = 0x2854,
- SMSG_CONTACT_LIST = 0x27D6,
+ SMSG_CONTACT_LIST = 0x27D7,
SMSG_CONTRIBUTION_COLLECTOR_STATE = 0x2867,
SMSG_CONTROL_UPDATE = 0x2667,
- SMSG_COOLDOWN_CHEAT = 0x2783,
+ SMSG_COOLDOWN_CHEAT = 0x2784,
SMSG_COOLDOWN_EVENT = 0x26EC,
SMSG_CORPSE_LOCATION = 0x266E,
- SMSG_CORPSE_RECLAIM_DELAY = 0x2796,
- SMSG_CORPSE_TRANSPORT_QUERY = 0x275A,
- SMSG_CREATE_CHAR = 0x2747,
- SMSG_CREATE_SHIPMENT_RESPONSE = 0x27E9,
- SMSG_CRITERIA_DELETED = 0x2726,
- SMSG_CRITERIA_UPDATE = 0x2720,
+ SMSG_CORPSE_RECLAIM_DELAY = 0x2797,
+ SMSG_CORPSE_TRANSPORT_QUERY = 0x275B,
+ SMSG_CREATE_CHAR = 0x2748,
+ SMSG_CREATE_SHIPMENT_RESPONSE = 0x27EA,
+ SMSG_CRITERIA_DELETED = 0x2727,
+ SMSG_CRITERIA_UPDATE = 0x2721,
SMSG_CROSSED_INEBRIATION_THRESHOLD = 0x26F5,
SMSG_CUSTOM_LOAD_SCREEN = 0x25E3,
SMSG_DAILY_QUESTS_RESET = 0x2A80,
- SMSG_DAMAGE_CALC_LOG = 0x2814,
+ SMSG_DAMAGE_CALC_LOG = 0x2815,
SMSG_DB_REPLY = 0x25A1,
- SMSG_DEATH_RELEASE_LOC = 0x270F,
+ SMSG_DEATH_RELEASE_LOC = 0x2710,
SMSG_DEFENSE_MESSAGE = 0x2BB6,
- SMSG_DELETE_CHAR = 0x2748,
- SMSG_DESTROY_ARENA_UNIT = 0x278C,
- SMSG_DESTRUCTIBLE_BUILDING_DAMAGE = 0x273B,
+ SMSG_DELETE_CHAR = 0x2749,
+ SMSG_DESTROY_ARENA_UNIT = 0x278D,
+ SMSG_DESTRUCTIBLE_BUILDING_DAMAGE = 0x273C,
SMSG_DIFFERENT_INSTANCE_FROM_PARTY = 0x258B,
SMSG_DISENCHANT_CREDIT = 0x25BC,
SMSG_DISMOUNT = 0x26E3,
@@ -1048,43 +1061,43 @@ enum OpcodeServer : uint16
SMSG_DUEL_OUT_OF_BOUNDS = 0x2675,
SMSG_DUEL_REQUESTED = 0x2673,
SMSG_DUEL_WINNER = 0x2679,
- SMSG_DURABILITY_DAMAGE_DEATH = 0x2792,
- SMSG_EMOTE = 0x2815,
+ SMSG_DURABILITY_DAMAGE_DEATH = 0x2793,
+ SMSG_EMOTE = 0x2816,
SMSG_ENABLE_BARBER_SHOP = 0x26F0,
SMSG_ENABLE_ENCRYPTION = 0x3049,
- SMSG_ENCHANTMENT_LOG = 0x275B,
- SMSG_ENCOUNTER_END = 0x27CB,
- SMSG_ENCOUNTER_START = 0x27CA,
+ SMSG_ENCHANTMENT_LOG = 0x275C,
+ SMSG_ENCOUNTER_END = 0x27CC,
+ SMSG_ENCOUNTER_START = 0x27CB,
SMSG_ENUM_CHARACTERS_RESULT = 0x2583,
SMSG_ENVIRONMENTAL_DAMAGE_LOG = 0x2C21,
SMSG_EQUIPMENT_SET_ID = 0x26E5,
SMSG_EXPECTED_SPAM_RECORDS = 0x2BB1,
- SMSG_EXPLORATION_EXPERIENCE = 0x27AE,
- SMSG_FACTION_BONUS_INFO = 0x276E,
+ SMSG_EXPLORATION_EXPERIENCE = 0x27AF,
+ SMSG_FACTION_BONUS_INFO = 0x276F,
SMSG_FAILED_PLAYER_CONDITION = 0x25E2,
SMSG_FEATURE_SYSTEM_STATUS = 0x25D1,
SMSG_FEATURE_SYSTEM_STATUS_GLUE_SCREEN = 0x25D2,
- SMSG_FEIGN_DEATH_RESISTED = 0x278F,
- SMSG_FISH_ESCAPED = 0x2702,
- SMSG_FISH_NOT_HOOKED = 0x2701,
+ SMSG_FEIGN_DEATH_RESISTED = 0x2790,
+ SMSG_FISH_ESCAPED = 0x2703,
+ SMSG_FISH_NOT_HOOKED = 0x2702,
SMSG_FLIGHT_SPLINE_SYNC = 0x2DF7,
- SMSG_FORCED_DEATH_UPDATE = 0x2710,
- SMSG_FORCE_ANIM = 0x279D,
+ SMSG_FORCED_DEATH_UPDATE = 0x2711,
+ SMSG_FORCE_ANIM = 0x279E,
SMSG_FORCE_OBJECT_RELINK = 0x266A,
- SMSG_FRIEND_STATUS = 0x27D7,
+ SMSG_FRIEND_STATUS = 0x27D8,
SMSG_GAME_EVENT_DEBUG_INITIALIZE = 0x2680,
SMSG_GAME_OBJECT_ACTIVATE_ANIM_KIT = 0x25D6,
SMSG_GAME_OBJECT_CUSTOM_ANIM = 0x25D7,
SMSG_GAME_OBJECT_DESPAWN = 0x25D8,
- SMSG_GAME_OBJECT_MULTI_TRANSITION = 0x2877,
+ SMSG_GAME_OBJECT_MULTI_TRANSITION = 0x287A,
SMSG_GAME_OBJECT_PLAY_SPELL_VISUAL = 0x2C4B,
SMSG_GAME_OBJECT_PLAY_SPELL_VISUAL_KIT = 0x2C4A,
- SMSG_GAME_OBJECT_RESET_STATE = 0x2765,
- SMSG_GAME_OBJECT_SET_STATE = 0x284B,
- SMSG_GAME_OBJECT_UI_ACTION = 0x2762,
+ SMSG_GAME_OBJECT_RESET_STATE = 0x2766,
+ SMSG_GAME_OBJECT_SET_STATE = 0x284D,
+ SMSG_GAME_OBJECT_UI_ACTION = 0x2763,
SMSG_GAME_SPEED_SET = 0x26B0,
- SMSG_GAME_TIME_SET = 0x2754,
- SMSG_GAME_TIME_UPDATE = 0x2753,
+ SMSG_GAME_TIME_SET = 0x2755,
+ SMSG_GAME_TIME_UPDATE = 0x2754,
SMSG_GARRISON_ADD_FOLLOWER_RESULT = 0x2902,
SMSG_GARRISON_ADD_MISSION_RESULT = 0x2906,
SMSG_GARRISON_ASSIGN_FOLLOWER_TO_BUILDING_RESULT = 0x2918,
@@ -1103,7 +1116,7 @@ enum OpcodeServer : uint16
SMSG_GARRISON_FOLLOWER_CHANGED_STATUS = 0x2915,
SMSG_GARRISON_FOLLOWER_CHANGED_XP = 0x2912,
SMSG_GARRISON_IS_UPGRADEABLE_RESULT = 0x2929,
- SMSG_GARRISON_LANDING_PAGE_SHIPMENT_INFO = 0x27EC,
+ SMSG_GARRISON_LANDING_PAGE_SHIPMENT_INFO = 0x27ED,
SMSG_GARRISON_LEARN_BLUEPRINT_RESULT = 0x28F7,
SMSG_GARRISON_LEARN_SPECIALIZATION_RESULT = 0x28F5,
SMSG_GARRISON_LIST_FOLLOWERS_CHEAT_RESULT = 0x2905,
@@ -1134,27 +1147,27 @@ enum OpcodeServer : uint16
SMSG_GARRISON_UNLEARN_BLUEPRINT_RESULT = 0x28F8,
SMSG_GARRISON_UPGRADE_RESULT = 0x28FD,
SMSG_GENERATE_RANDOM_CHARACTER_NAME_RESULT = 0x2584,
- SMSG_GET_ACCOUNT_CHARACTER_LIST_RESULT = 0x27AF,
+ SMSG_GET_ACCOUNT_CHARACTER_LIST_RESULT = 0x27B0,
SMSG_GET_DISPLAYED_TROPHY_LIST_RESPONSE = 0x2928,
SMSG_GET_GARRISON_INFO_RESULT = 0x28F0,
- SMSG_GET_SHIPMENTS_OF_TYPE_RESPONSE = 0x27EB,
- SMSG_GET_SHIPMENT_INFO_RESPONSE = 0x27E7,
- SMSG_GET_TROPHY_LIST_RESPONSE = 0x2810,
- SMSG_GM_PLAYER_INFO = 0x2782,
+ SMSG_GET_SHIPMENTS_OF_TYPE_RESPONSE = 0x27EC,
+ SMSG_GET_SHIPMENT_INFO_RESPONSE = 0x27E8,
+ SMSG_GET_TROPHY_LIST_RESPONSE = 0x2811,
+ SMSG_GM_PLAYER_INFO = 0x2783,
SMSG_GM_REQUEST_PLAYER_INFO = 0x25EE,
SMSG_GM_TICKET_CASE_STATUS = 0x26D2,
SMSG_GM_TICKET_SYSTEM_STATUS = 0x26D1,
- SMSG_GOD_MODE = 0x2741,
+ SMSG_GOD_MODE = 0x2742,
SMSG_GOSSIP_COMPLETE = 0x2A96,
SMSG_GOSSIP_MESSAGE = 0x2A97,
- SMSG_GOSSIP_POI = 0x27E4,
+ SMSG_GOSSIP_POI = 0x27E5,
SMSG_GOSSIP_TEXT_UPDATE = 0x2A98,
SMSG_GROUP_ACTION_THROTTLED = 0x259D,
- SMSG_GROUP_DECLINE = 0x27DF,
- SMSG_GROUP_DESTROYED = 0x27E1,
+ SMSG_GROUP_DECLINE = 0x27E0,
+ SMSG_GROUP_DESTROYED = 0x27E2,
SMSG_GROUP_INVITE_CONFIRMATION = 0x2860,
SMSG_GROUP_NEW_LEADER = 0x264C,
- SMSG_GROUP_UNINVITE = 0x27E0,
+ SMSG_GROUP_UNINVITE = 0x27E1,
SMSG_GUILD_ACHIEVEMENT_DELETED = 0x29C5,
SMSG_GUILD_ACHIEVEMENT_EARNED = 0x29C4,
SMSG_GUILD_ACHIEVEMENT_MEMBERS = 0x29C7,
@@ -1168,6 +1181,7 @@ enum OpcodeServer : uint16
SMSG_GUILD_COMMAND_RESULT = 0x29BA,
SMSG_GUILD_CRITERIA_DELETED = 0x29C6,
SMSG_GUILD_CRITERIA_UPDATE = 0x29C3,
+ SMSG_GUILD_EVENT_AWAY_CHANGE = 0x29F0,
SMSG_GUILD_EVENT_BANK_CONTENTS_CHANGED = 0x29F8,
SMSG_GUILD_EVENT_BANK_MONEY_CHANGED = 0x29F7,
SMSG_GUILD_EVENT_DISBANDED = 0x29ED,
@@ -1207,56 +1221,56 @@ enum OpcodeServer : uint16
SMSG_GUILD_ROSTER = 0x29BB,
SMSG_GUILD_ROSTER_UPDATE = 0x29BC,
SMSG_GUILD_SEND_RANK_CHANGE = 0x29B9,
- SMSG_HEALTH_UPDATE = 0x2705,
- SMSG_HIGHEST_THREAT_UPDATE = 0x2716,
+ SMSG_HEALTH_UPDATE = 0x2706,
+ SMSG_HIGHEST_THREAT_UPDATE = 0x2717,
SMSG_HOTFIX_MESSAGE = 0x25A3,
SMSG_HOTFIX_RESPONSE = 0x25A4,
- SMSG_INCOMING_SUMMON_COMPLETED = 0x28AB,
- SMSG_INCOMING_SUMMON_PENDING = 0x28AA,
- SMSG_INITIALIZE_FACTIONS = 0x276D,
+ SMSG_INCOMING_SUMMON_COMPLETED = 0x28AE,
+ SMSG_INCOMING_SUMMON_PENDING = 0x28AD,
+ SMSG_INITIALIZE_FACTIONS = 0x276E,
SMSG_INITIAL_SETUP = 0x2580,
- SMSG_INIT_WORLD_STATES = 0x2793,
+ SMSG_INIT_WORLD_STATES = 0x2794,
SMSG_INSPECT_RESULT = 0x2650,
- SMSG_INSTANCE_ENCOUNTER_CHANGE_PRIORITY = 0x27FC,
- SMSG_INSTANCE_ENCOUNTER_DISENGAGE_UNIT = 0x27FB,
- SMSG_INSTANCE_ENCOUNTER_END = 0x2804,
- SMSG_INSTANCE_ENCOUNTER_ENGAGE_UNIT = 0x27FA,
- SMSG_INSTANCE_ENCOUNTER_GAIN_COMBAT_RESURRECTION_CHARGE = 0x2806,
- SMSG_INSTANCE_ENCOUNTER_IN_COMBAT_RESURRECTION = 0x2805,
- SMSG_INSTANCE_ENCOUNTER_OBJECTIVE_COMPLETE = 0x27FF,
- SMSG_INSTANCE_ENCOUNTER_OBJECTIVE_START = 0x27FE,
- SMSG_INSTANCE_ENCOUNTER_OBJECTIVE_UPDATE = 0x2803,
- SMSG_INSTANCE_ENCOUNTER_PHASE_SHIFT_CHANGED = 0x2807,
- SMSG_INSTANCE_ENCOUNTER_SET_ALLOWING_RELEASE = 0x2802,
- SMSG_INSTANCE_ENCOUNTER_SET_SUPPRESSING_RELEASE = 0x2801,
- SMSG_INSTANCE_ENCOUNTER_START = 0x2800,
- SMSG_INSTANCE_ENCOUNTER_TIMER_START = 0x27FD,
- SMSG_INSTANCE_GROUP_SIZE_CHANGED = 0x273F,
+ SMSG_INSTANCE_ENCOUNTER_CHANGE_PRIORITY = 0x27FD,
+ SMSG_INSTANCE_ENCOUNTER_DISENGAGE_UNIT = 0x27FC,
+ SMSG_INSTANCE_ENCOUNTER_END = 0x2805,
+ SMSG_INSTANCE_ENCOUNTER_ENGAGE_UNIT = 0x27FB,
+ SMSG_INSTANCE_ENCOUNTER_GAIN_COMBAT_RESURRECTION_CHARGE = 0x2807,
+ SMSG_INSTANCE_ENCOUNTER_IN_COMBAT_RESURRECTION = 0x2806,
+ SMSG_INSTANCE_ENCOUNTER_OBJECTIVE_COMPLETE = 0x2800,
+ SMSG_INSTANCE_ENCOUNTER_OBJECTIVE_START = 0x27FF,
+ SMSG_INSTANCE_ENCOUNTER_OBJECTIVE_UPDATE = 0x2804,
+ SMSG_INSTANCE_ENCOUNTER_PHASE_SHIFT_CHANGED = 0x2808,
+ SMSG_INSTANCE_ENCOUNTER_SET_ALLOWING_RELEASE = 0x2803,
+ SMSG_INSTANCE_ENCOUNTER_SET_SUPPRESSING_RELEASE = 0x2802,
+ SMSG_INSTANCE_ENCOUNTER_START = 0x2801,
+ SMSG_INSTANCE_ENCOUNTER_TIMER_START = 0x27FE,
+ SMSG_INSTANCE_GROUP_SIZE_CHANGED = 0x2740,
SMSG_INSTANCE_INFO = 0x2653,
SMSG_INSTANCE_RESET = 0x26B5,
SMSG_INSTANCE_RESET_FAILED = 0x26B6,
- SMSG_INSTANCE_SAVE_CREATED = 0x27C9,
- SMSG_INVALIDATE_PAGE_TEXT = 0x270B,
+ SMSG_INSTANCE_SAVE_CREATED = 0x27CA,
+ SMSG_INVALIDATE_PAGE_TEXT = 0x270C,
SMSG_INVALIDATE_PLAYER = 0x26DA,
- SMSG_INVALID_PROMOTION_CODE = 0x279E,
- SMSG_INVENTORY_CHANGE_FAILURE = 0x276B,
- SMSG_ISLAND_AZERITE_XP_GAIN = 0x27AB,
- SMSG_ISLAND_COMPLETED = 0x27AC,
- SMSG_ISLAND_OPEN_QUEUE_NPC = 0x2840,
+ SMSG_INVALID_PROMOTION_CODE = 0x279F,
+ SMSG_INVENTORY_CHANGE_FAILURE = 0x276C,
+ SMSG_ISLAND_AZERITE_XP_GAIN = 0x27AC,
+ SMSG_ISLAND_COMPLETED = 0x27AD,
+ SMSG_ISLAND_OPEN_QUEUE_NPC = 0x2842,
SMSG_IS_QUEST_COMPLETE_RESPONSE = 0x2A83,
- SMSG_ITEM_CHANGED = 0x2729,
- SMSG_ITEM_COOLDOWN = 0x2813,
- SMSG_ITEM_ENCHANT_TIME_UPDATE = 0x27A0,
+ SMSG_ITEM_CHANGED = 0x272A,
+ SMSG_ITEM_COOLDOWN = 0x2814,
+ SMSG_ITEM_ENCHANT_TIME_UPDATE = 0x27A1,
SMSG_ITEM_EXPIRE_PURCHASE_REFUND = 0x25B2,
SMSG_ITEM_PURCHASE_REFUND_RESULT = 0x25B0,
SMSG_ITEM_PUSH_RESULT = 0x2639,
- SMSG_ITEM_TIME_UPDATE = 0x279F,
- SMSG_KICK_REASON = 0x2837,
+ SMSG_ITEM_TIME_UPDATE = 0x27A0,
+ SMSG_KICK_REASON = 0x2839,
SMSG_LEARNED_SPELLS = 0x2C4D,
SMSG_LEARN_PVP_TALENTS_FAILED = 0x25EA,
SMSG_LEARN_TALENTS_FAILED = 0x25E9,
SMSG_LEVEL_UPDATE = 0x2588,
- SMSG_LEVEL_UP_INFO = 0x2728,
+ SMSG_LEVEL_UP_INFO = 0x2729,
SMSG_LFG_BOOT_PLAYER = 0x2A35,
SMSG_LFG_DISABLED = 0x2A33,
SMSG_LFG_INSTANCE_SHUTDOWN_COUNTDOWN = 0x2A25,
@@ -1287,21 +1301,21 @@ enum OpcodeServer : uint16
SMSG_LF_GUILD_RECRUITS = 0x29CF,
SMSG_LIGHTNING_STORM_END = 0x26D7,
SMSG_LIGHTNING_STORM_START = 0x26D6,
- SMSG_LIVE_REGION_ACCOUNT_RESTORE_RESULT = 0x27BD,
- SMSG_LIVE_REGION_CHARACTER_COPY_RESULT = 0x27BB,
- SMSG_LIVE_REGION_GET_ACCOUNT_CHARACTER_LIST_RESULT = 0x27B0,
+ SMSG_LIVE_REGION_ACCOUNT_RESTORE_RESULT = 0x27BE,
+ SMSG_LIVE_REGION_CHARACTER_COPY_RESULT = 0x27BC,
+ SMSG_LIVE_REGION_GET_ACCOUNT_CHARACTER_LIST_RESULT = 0x27B1,
SMSG_LOAD_CUF_PROFILES = 0x25CE,
- SMSG_LOAD_EQUIPMENT_SET = 0x2756,
- SMSG_LOAD_SELECTED_TROPHY_RESULT = 0x2811,
- SMSG_LOGIN_SET_TIME_SPEED = 0x2755,
+ SMSG_LOAD_EQUIPMENT_SET = 0x2757,
+ SMSG_LOAD_SELECTED_TROPHY_RESULT = 0x2812,
+ SMSG_LOGIN_SET_TIME_SPEED = 0x2756,
SMSG_LOGIN_VERIFY_WORLD = 0x25AD,
SMSG_LOGOUT_CANCEL_ACK = 0x26B4,
SMSG_LOGOUT_COMPLETE = 0x26B3,
SMSG_LOGOUT_RESPONSE = 0x26B2,
- SMSG_LOG_XP_GAIN = 0x2724,
+ SMSG_LOG_XP_GAIN = 0x2725,
SMSG_LOOT_ALL_PASSED = 0x2637,
- SMSG_LOOT_LEGACY_RULES_IN_EFFECT = 0x2878,
- SMSG_LOOT_LIST = 0x278B,
+ SMSG_LOOT_LEGACY_RULES_IN_EFFECT = 0x287B,
+ SMSG_LOOT_LIST = 0x278C,
SMSG_LOOT_MONEY_NOTIFY = 0x2632,
SMSG_LOOT_RELEASE = 0x2631,
SMSG_LOOT_RELEASE_ALL = 0x2630,
@@ -1312,23 +1326,24 @@ enum OpcodeServer : uint16
SMSG_LOOT_ROLL_WON = 0x2638,
SMSG_LOSS_OF_CONTROL_AURA_UPDATE = 0x269B,
SMSG_MAIL_COMMAND_RESULT = 0x265B,
- SMSG_MAIL_LIST_RESULT = 0x27A1,
- SMSG_MAIL_QUERY_NEXT_TIME_RESULT = 0x27A2,
- SMSG_MAP_OBJECTIVES_INIT = 0x27AA,
+ SMSG_MAIL_LIST_RESULT = 0x27A2,
+ SMSG_MAIL_QUERY_NEXT_TIME_RESULT = 0x27A3,
+ SMSG_MAP_OBJECTIVES_INIT = 0x27AB,
SMSG_MAP_OBJECTIVE_ADD = 0x2597,
SMSG_MAP_OBJECTIVE_REMOVE = 0x2598,
SMSG_MAP_OBJ_EVENTS = 0x25D9,
SMSG_MASTER_LOOT_CANDIDATE_LIST = 0x2635,
SMSG_MESSAGE_BOX = 0x2575,
- SMSG_MINIMAP_PING = 0x2700,
+ SMSG_MINIMAP_PING = 0x2701,
SMSG_MIRROR_IMAGE_COMPONENTED_DATA = 0x2C14,
SMSG_MIRROR_IMAGE_CREATURE_DATA = 0x2C13,
SMSG_MISSILE_CANCEL = 0x25DA,
- SMSG_MODIFY_CHARGE_RECOVERY_SPEED = 0x27B4,
- SMSG_MODIFY_COOLDOWN = 0x27B2,
- SMSG_MODIFY_COOLDOWN_RECOVERY_SPEED = 0x27B3,
- SMSG_MODIFY_PARTY_RANGE = 0x278E,
+ SMSG_MODIFY_CHARGE_RECOVERY_SPEED = 0x27B5,
+ SMSG_MODIFY_COOLDOWN = 0x27B3,
+ SMSG_MODIFY_COOLDOWN_RECOVERY_SPEED = 0x27B4,
+ SMSG_MODIFY_PARTY_RANGE = 0x278F,
SMSG_MOTD = 0x2BAF,
+ SMSG_MOUNT_EQUIPMENT_APPLY_RESULT = 0x28B7,
SMSG_MOUNT_RESULT = 0x257A,
SMSG_MOVE_APPLY_MOVEMENT_FORCE = 0x2DE1,
SMSG_MOVE_DISABLE_COLLISION = 0x2DDD,
@@ -1353,7 +1368,7 @@ enum OpcodeServer : uint16
SMSG_MOVE_SET_HOVERING = 0x2DCF,
SMSG_MOVE_SET_IGNORE_MOVEMENT_FORCES = 0x2DD7,
SMSG_MOVE_SET_LAND_WALK = 0x2DCC,
- SMSG_MOVE_SET_MOVEMENT_FORCE_SPEED = 0x2DB4,
+ SMSG_MOVE_SET_MOD_MOVEMENT_FORCE_MAGNITUDE = 0x2DB4,
SMSG_MOVE_SET_NORMAL_FALL = 0x2DCE,
SMSG_MOVE_SET_PITCH_RATE = 0x2DC6,
SMSG_MOVE_SET_RUN_BACK_SPEED = 0x2DBF,
@@ -1404,7 +1419,7 @@ enum OpcodeServer : uint16
SMSG_MOVE_UPDATE_FLIGHT_BACK_SPEED = 0x2DAA,
SMSG_MOVE_UPDATE_FLIGHT_SPEED = 0x2DA9,
SMSG_MOVE_UPDATE_KNOCK_BACK = 0x2DB0,
- SMSG_MOVE_UPDATE_MOVEMENT_FORCE_SPEED = 0x2DB1,
+ SMSG_MOVE_UPDATE_MOD_MOVEMENT_FORCE_MAGNITUDE = 0x2DB1,
SMSG_MOVE_UPDATE_PITCH_RATE = 0x2DAC,
SMSG_MOVE_UPDATE_REMOVE_MOVEMENT_FORCE = 0x2DB3,
SMSG_MOVE_UPDATE_RUN_BACK_SPEED = 0x2DA5,
@@ -1422,30 +1437,30 @@ enum OpcodeServer : uint16
SMSG_NOTIFY_MONEY = 0x25AF,
SMSG_NOTIFY_RECEIVED_MAIL = 0x265C,
SMSG_OFFER_PETITION_ERROR = 0x26E9,
- SMSG_ON_CANCEL_EXPECTED_RIDE_VEHICLE_AURA = 0x2725,
+ SMSG_ON_CANCEL_EXPECTED_RIDE_VEHICLE_AURA = 0x2726,
SMSG_ON_MONSTER_MOVE = 0x2DA2,
- SMSG_OPEN_ALLIED_RACE_DETAILS_GIVER = 0x2841,
- SMSG_OPEN_CONTAINER = 0x276C,
+ SMSG_OPEN_ALLIED_RACE_DETAILS_GIVER = 0x2843,
+ SMSG_OPEN_CONTAINER = 0x276D,
SMSG_OPEN_LFG_DUNGEON_FINDER = 0x2A31,
- SMSG_OPEN_SHIPMENT_NPC_FROM_GOSSIP = 0x27E6,
- SMSG_OPEN_SHIPMENT_NPC_RESULT = 0x27E8,
- SMSG_OPEN_TRANSMOGRIFIER = 0x283E,
+ SMSG_OPEN_SHIPMENT_NPC_FROM_GOSSIP = 0x27E7,
+ SMSG_OPEN_SHIPMENT_NPC_RESULT = 0x27E9,
+ SMSG_OPEN_TRANSMOGRIFIER = 0x2840,
SMSG_OVERRIDE_LIGHT = 0x26EF,
- SMSG_PAGE_TEXT = 0x2761,
- SMSG_PARTY_COMMAND_RESULT = 0x27E3,
+ SMSG_PAGE_TEXT = 0x2762,
+ SMSG_PARTY_COMMAND_RESULT = 0x27E4,
SMSG_PARTY_INVITE = 0x25CF,
- SMSG_PARTY_KILL_LOG = 0x27A6,
- SMSG_PARTY_MEMBER_STATE = 0x27A4,
- SMSG_PARTY_MEMBER_STATE_UPDATE = 0x27A3,
+ SMSG_PARTY_KILL_LOG = 0x27A7,
+ SMSG_PARTY_MEMBER_STATE = 0x27A5,
+ SMSG_PARTY_MEMBER_STATE_UPDATE = 0x27A4,
SMSG_PARTY_UPDATE = 0x260C,
- SMSG_PAUSE_MIRROR_TIMER = 0x2758,
- SMSG_PENDING_RAID_LOCK = 0x2739,
+ SMSG_PAUSE_MIRROR_TIMER = 0x2759,
+ SMSG_PENDING_RAID_LOCK = 0x273A,
SMSG_PETITION_ALREADY_SIGNED = 0x25B8,
SMSG_PETITION_RENAME_GUILD_RESPONSE = 0x29FA,
SMSG_PETITION_SHOW_LIST = 0x26F2,
SMSG_PETITION_SHOW_SIGNATURES = 0x26F3,
- SMSG_PETITION_SIGN_RESULTS = 0x2798,
- SMSG_PET_ACTION_FEEDBACK = 0x2795,
+ SMSG_PETITION_SIGN_RESULTS = 0x2799,
+ SMSG_PET_ACTION_FEEDBACK = 0x2796,
SMSG_PET_ACTION_SOUND = 0x26CF,
SMSG_PET_ADDED = 0x25A9,
SMSG_PET_BATTLE_CHAT_RESTRICTED = 0x2619,
@@ -1467,7 +1482,7 @@ enum OpcodeServer : uint16
SMSG_PET_CLEAR_SPELLS = 0x2C24,
SMSG_PET_DISMISS_SOUND = 0x26D0,
SMSG_PET_GOD_MODE = 0x26AA,
- SMSG_PET_GUIDS = 0x274A,
+ SMSG_PET_GUIDS = 0x274B,
SMSG_PET_LEARNED_SPELLS = 0x2C4F,
SMSG_PET_MODE = 0x258A,
SMSG_PET_NAME_INVALID = 0x26F7,
@@ -1478,47 +1493,48 @@ enum OpcodeServer : uint16
SMSG_PET_TAME_FAILURE = 0x26E6,
SMSG_PET_UNLEARNED_SPELLS = 0x2C50,
SMSG_PHASE_SHIFT_CHANGE = 0x2577,
- SMSG_PLAYED_TIME = 0x2712,
+ SMSG_PLAYED_TIME = 0x2713,
SMSG_PLAYER_BOUND = 0x257D,
SMSG_PLAYER_SAVE_GUILD_EMBLEM = 0x29F9,
- SMSG_PLAYER_SKINNED = 0x2790,
- SMSG_PLAYER_TABARD_VENDOR_ACTIVATE = 0x27A5,
- SMSG_PLAY_MUSIC = 0x27B7,
- SMSG_PLAY_OBJECT_SOUND = 0x27B8,
- SMSG_PLAY_ONE_SHOT_ANIM_KIT = 0x277A,
+ SMSG_PLAYER_SKINNED = 0x2791,
+ SMSG_PLAYER_TABARD_VENDOR_ACTIVATE = 0x27A6,
+ SMSG_PLAY_MUSIC = 0x27B8,
+ SMSG_PLAY_OBJECT_SOUND = 0x27B9,
+ SMSG_PLAY_ONE_SHOT_ANIM_KIT = 0x277B,
SMSG_PLAY_ORPHAN_SPELL_VISUAL = 0x2C47,
SMSG_PLAY_SCENE = 0x2656,
- SMSG_PLAY_SOUND = 0x27B6,
- SMSG_PLAY_SPEAKERBOT_SOUND = 0x27B9,
+ SMSG_PLAY_SOUND = 0x27B7,
+ SMSG_PLAY_SPEAKERBOT_SOUND = 0x27BA,
SMSG_PLAY_SPELL_VISUAL = 0x2C45,
SMSG_PLAY_SPELL_VISUAL_KIT = 0x2C49,
- SMSG_PLAY_TIME_WARNING = 0x2743,
+ SMSG_PLAY_TIME_WARNING = 0x2744,
SMSG_PONG = 0x304E,
- SMSG_POWER_UPDATE = 0x2706,
- SMSG_PRE_RESSURECT = 0x27B5,
+ SMSG_POWER_UPDATE = 0x2707,
+ SMSG_PRE_RESSURECT = 0x27B6,
SMSG_PRINT_NOTIFICATION = 0x25E1,
- SMSG_PROC_RESIST = 0x27A7,
- SMSG_PROPOSE_LEVEL_GRANT = 0x271A,
+ SMSG_PROC_RESIST = 0x27A8,
+ SMSG_PROPOSE_LEVEL_GRANT = 0x271B,
SMSG_PUSH_SPELL_TO_ACTION_BAR = 0x2C51,
- SMSG_PVP_CREDIT = 0x271F,
+ SMSG_PVP_CREDIT = 0x2720,
SMSG_PVP_LOG_DATA = 0x25B3,
+ SMSG_PVP_MATCH_START = 0x28B1,
SMSG_PVP_OPTIONS_ENABLED = 0x25B6,
SMSG_PVP_SEASON = 0x25D3,
- SMSG_QUERY_BATTLE_PET_NAME_RESPONSE = 0x270D,
- SMSG_QUERY_COMMUNITY_NAME_RESPONSE = 0x2709,
- SMSG_QUERY_CREATURE_RESPONSE = 0x2703,
- SMSG_QUERY_GAME_OBJECT_RESPONSE = 0x2704,
+ SMSG_QUERY_BATTLE_PET_NAME_RESPONSE = 0x270E,
+ SMSG_QUERY_COMMUNITY_NAME_RESPONSE = 0x270A,
+ SMSG_QUERY_CREATURE_RESPONSE = 0x2704,
+ SMSG_QUERY_GAME_OBJECT_RESPONSE = 0x2705,
SMSG_QUERY_GARRISON_CREATURE_NAME_RESPONSE = 0x292B,
SMSG_QUERY_GUILD_INFO_RESPONSE = 0x29E5,
- SMSG_QUERY_ITEM_TEXT_RESPONSE = 0x2812,
- SMSG_QUERY_NPC_TEXT_RESPONSE = 0x2707,
- SMSG_QUERY_PAGE_TEXT_RESPONSE = 0x270A,
- SMSG_QUERY_PETITION_RESPONSE = 0x270E,
- SMSG_QUERY_PET_NAME_RESPONSE = 0x270C,
- SMSG_QUERY_PLAYER_NAME_RESPONSE = 0x2708,
+ SMSG_QUERY_ITEM_TEXT_RESPONSE = 0x2813,
+ SMSG_QUERY_NPC_TEXT_RESPONSE = 0x2708,
+ SMSG_QUERY_PAGE_TEXT_RESPONSE = 0x270B,
+ SMSG_QUERY_PETITION_RESPONSE = 0x270F,
+ SMSG_QUERY_PET_NAME_RESPONSE = 0x270D,
+ SMSG_QUERY_PLAYER_NAME_RESPONSE = 0x2709,
SMSG_QUERY_QUEST_INFO_RESPONSE = 0x2A95,
- SMSG_QUERY_TIME_RESPONSE = 0x2723,
- SMSG_QUERY_TREASURE_PICKER_RESPONSE = 0x2850,
+ SMSG_QUERY_TIME_RESPONSE = 0x2724,
+ SMSG_QUERY_TREASURE_PICKER_RESPONSE = 0x2852,
SMSG_QUEST_COMPLETION_NPC_RESPONSE = 0x2A81,
SMSG_QUEST_CONFIRM_ACCEPT = 0x2A8E,
SMSG_QUEST_FORCE_REMOVED = 0x2A9B,
@@ -1544,9 +1560,9 @@ enum OpcodeServer : uint16
SMSG_QUEST_UPDATE_COMPLETE_BY_SPELL = 0x2A87,
SMSG_QUEST_UPDATE_FAILED = 0x2A89,
SMSG_QUEST_UPDATE_FAILED_TIMER = 0x2A8A,
- SMSG_RAF_EMAIL_ENABLED_RESPONSE = 0x27D4,
- SMSG_RAID_DIFFICULTY_SET = 0x27F7,
- SMSG_RAID_GROUP_ONLY = 0x27F9,
+ SMSG_RAF_EMAIL_ENABLED_RESPONSE = 0x27D5,
+ SMSG_RAID_DIFFICULTY_SET = 0x27F8,
+ SMSG_RAID_GROUP_ONLY = 0x27FA,
SMSG_RAID_INSTANCE_MESSAGE = 0x2BB4,
SMSG_RAID_MARKERS_CHANGED = 0x25B9,
SMSG_RANDOM_ROLL = 0x264F,
@@ -1554,18 +1570,18 @@ enum OpcodeServer : uint16
SMSG_READY_CHECK_COMPLETED = 0x260F,
SMSG_READY_CHECK_RESPONSE = 0x260E,
SMSG_READY_CHECK_STARTED = 0x260D,
- SMSG_READ_ITEM_RESULT_FAILED = 0x27F3,
- SMSG_READ_ITEM_RESULT_OK = 0x27ED,
- SMSG_REALM_LOOKUP_INFORMATION = 0x2818,
+ SMSG_READ_ITEM_RESULT_FAILED = 0x27F4,
+ SMSG_READ_ITEM_RESULT_OK = 0x27EE,
+ SMSG_REALM_LOOKUP_INFORMATION = 0x2819,
SMSG_REALM_QUERY_RESPONSE = 0x26EE,
- SMSG_RECRUIT_A_FRIEND_RESPONSE = 0x27D5,
- SMSG_REFER_A_FRIEND_EXPIRED = 0x276A,
+ SMSG_RECRUIT_A_FRIEND_RESPONSE = 0x27D6,
+ SMSG_REFER_A_FRIEND_EXPIRED = 0x276B,
SMSG_REFER_A_FRIEND_FAILURE = 0x26F4,
SMSG_REFRESH_COMPONENT = 0x267C,
SMSG_REFRESH_SPELL_HISTORY = 0x2C2C,
SMSG_REMOVE_ITEM_PASSIVE = 0x25C0,
SMSG_REMOVE_LOSS_OF_CONTROL = 0x269D,
- SMSG_REPLACE_TROPHY_RESPONSE = 0x280F,
+ SMSG_REPLACE_TROPHY_RESPONSE = 0x2810,
SMSG_REPORT_PVP_PLAYER_AFK_RESULT = 0x26E2,
SMSG_REQUEST_ADDON_LIST = 0x2662,
SMSG_REQUEST_CEMETERY_LIST_RESPONSE = 0x259E,
@@ -1574,7 +1590,7 @@ enum OpcodeServer : uint16
SMSG_RESEARCH_COMPLETE = 0x2586,
SMSG_RESET_COMPRESSION_CONTEXT = 0x304F,
SMSG_RESET_FAILED_NOTIFY = 0x26EA,
- SMSG_RESET_RANGED_COMBAT_TIMER = 0x271C,
+ SMSG_RESET_RANGED_COMBAT_TIMER = 0x271D,
SMSG_RESET_WEEKLY_CURRENCY = 0x2574,
SMSG_RESPEC_WIPE_CONFIRM = 0x2629,
SMSG_RESPOND_INSPECT_ACHIEVEMENTS = 0x2571,
@@ -1583,17 +1599,17 @@ enum OpcodeServer : uint16
SMSG_RESUME_TOKEN = 0x25BE,
SMSG_RESURRECT_CLEAR_DATA = 0x257F,
SMSG_RESURRECT_REQUEST = 0x257E,
- SMSG_RESYNC_RUNES = 0x2746,
+ SMSG_RESYNC_RUNES = 0x2747,
SMSG_ROLE_CHANGED_INFORM = 0x258D,
SMSG_ROLE_CHOSEN = 0x2A39,
SMSG_ROLE_POLL_INFORM = 0x258E,
SMSG_RUNE_REGEN_DEBUG = 0x25C8,
- SMSG_SCENARIO_BOOT = 0x27F4,
- SMSG_SCENARIO_COMPLETED = 0x2834,
+ SMSG_SCENARIO_BOOT = 0x27F5,
+ SMSG_SCENARIO_COMPLETED = 0x2836,
SMSG_SCENARIO_POIS = 0x2652,
SMSG_SCENARIO_PROGRESS_UPDATE = 0x264B,
- SMSG_SCENARIO_SET_SHOULD_SHOW_CRITERIA = 0x2844,
- SMSG_SCENARIO_SPELL_UPDATE = 0x2843,
+ SMSG_SCENARIO_SET_SHOULD_SHOW_CRITERIA = 0x2846,
+ SMSG_SCENARIO_SPELL_UPDATE = 0x2845,
SMSG_SCENARIO_STATE = 0x264A,
SMSG_SCENE_OBJECT_EVENT = 0x25F8,
SMSG_SCENE_OBJECT_PET_BATTLE_FINAL_ROUND = 0x25FD,
@@ -1615,45 +1631,45 @@ enum OpcodeServer : uint16
SMSG_SERVER_TIME = 0x26B1,
SMSG_SETUP_CURRENCY = 0x2572,
SMSG_SETUP_RESEARCH_HISTORY = 0x2585,
- SMSG_SET_AI_ANIM_KIT = 0x2779,
- SMSG_SET_ALL_TASK_PROGRESS = 0x27DD,
- SMSG_SET_ANIM_TIER = 0x277D,
+ SMSG_SET_AI_ANIM_KIT = 0x277A,
+ SMSG_SET_ALL_TASK_PROGRESS = 0x27DE,
+ SMSG_SET_ANIM_TIER = 0x277E,
SMSG_SET_CURRENCY = 0x2573,
SMSG_SET_DF_FAST_LAUNCH_RESULT = 0x2A2E,
SMSG_SET_DUNGEON_DIFFICULTY = 0x26D3,
- SMSG_SET_FACTION_AT_WAR = 0x2745,
- SMSG_SET_FACTION_NOT_VISIBLE = 0x2774,
- SMSG_SET_FACTION_STANDING = 0x2775,
- SMSG_SET_FACTION_VISIBLE = 0x2773,
+ SMSG_SET_FACTION_AT_WAR = 0x2746,
+ SMSG_SET_FACTION_NOT_VISIBLE = 0x2775,
+ SMSG_SET_FACTION_STANDING = 0x2776,
+ SMSG_SET_FACTION_VISIBLE = 0x2774,
SMSG_SET_FLAT_SPELL_MODIFIER = 0x2C36,
- SMSG_SET_FORCED_REACTIONS = 0x2764,
+ SMSG_SET_FORCED_REACTIONS = 0x2765,
SMSG_SET_ITEM_PURCHASE_DATA = 0x25B1,
- SMSG_SET_LOOT_METHOD_FAILED = 0x281E,
+ SMSG_SET_LOOT_METHOD_FAILED = 0x281F,
SMSG_SET_MAX_WEEKLY_QUANTITY = 0x25B7,
- SMSG_SET_MELEE_ANIM_KIT = 0x277C,
- SMSG_SET_MOVEMENT_ANIM_KIT = 0x277B,
+ SMSG_SET_MELEE_ANIM_KIT = 0x277D,
+ SMSG_SET_MOVEMENT_ANIM_KIT = 0x277C,
SMSG_SET_PCT_SPELL_MODIFIER = 0x2C37,
SMSG_SET_PET_SPECIALIZATION = 0x2644,
- SMSG_SET_PLAYER_DECLINED_NAMES_RESULT = 0x2711,
+ SMSG_SET_PLAYER_DECLINED_NAMES_RESULT = 0x2712,
SMSG_SET_PLAY_HOVER_ANIM = 0x25CC,
- SMSG_SET_PROFICIENCY = 0x277E,
+ SMSG_SET_PROFICIENCY = 0x277F,
SMSG_SET_SPELL_CHARGES = 0x2C29,
- SMSG_SET_TASK_COMPLETE = 0x27DE,
+ SMSG_SET_TASK_COMPLETE = 0x27DF,
SMSG_SET_TIME_ZONE_INFORMATION = 0x26A5,
- SMSG_SET_VEHICLE_REC_ID = 0x2738,
- SMSG_SHOW_ADVENTURE_MAP = 0x283D,
+ SMSG_SET_VEHICLE_REC_ID = 0x2739,
+ SMSG_SHOW_ADVENTURE_MAP = 0x283F,
SMSG_SHOW_BANK = 0x26AE,
- SMSG_SHOW_MAILBOX = 0x27F5,
+ SMSG_SHOW_MAILBOX = 0x27F6,
SMSG_SHOW_NEUTRAL_PLAYER_FACTION_SELECT_UI = 0x25F1,
- SMSG_SHOW_TAXI_NODES = 0x26FF,
- SMSG_SHOW_TRADE_SKILL_RESPONSE = 0x27BE,
- SMSG_SOCKET_GEMS = 0x2770,
- SMSG_SOCKET_GEMS_FAILURE = 0x2771,
- SMSG_SORT_BAGS_RESULT = 0x282C,
+ SMSG_SHOW_TAXI_NODES = 0x2700,
+ SMSG_SHOW_TRADE_SKILL_RESPONSE = 0x27BF,
+ SMSG_SOCKET_GEMS = 0x2771,
+ SMSG_SOCKET_GEMS_FAILURE = 0x2772,
+ SMSG_SORT_BAGS_RESULT = 0x282D,
SMSG_SOR_START_EXPERIENCE_INCOMPLETE = 0x25F3,
SMSG_SPECIALIZATION_CHANGED = 0x25ED,
SMSG_SPECIAL_MOUNT_ANIM = 0x26CE,
- SMSG_SPEC_INVOLUNTARILY_CHANGED = 0x2760,
+ SMSG_SPEC_INVOLUNTARILY_CHANGED = 0x2761,
SMSG_SPELL_ABSORB_LOG = 0x2C1F,
SMSG_SPELL_CATEGORY_COOLDOWN = 0x2C17,
SMSG_SPELL_CHANNEL_START = 0x2C34,
@@ -1678,73 +1694,74 @@ enum OpcodeServer : uint16
SMSG_SPELL_PERIODIC_AURA_LOG = 0x2C1B,
SMSG_SPELL_PREPARE = 0x2C38,
SMSG_SPELL_START = 0x2C3A,
- SMSG_SPIRIT_HEALER_CONFIRM = 0x275D,
- SMSG_STAND_STATE_UPDATE = 0x2763,
+ SMSG_SPIRIT_HEALER_CONFIRM = 0x275E,
+ SMSG_STAND_STATE_UPDATE = 0x2764,
SMSG_START_ELAPSED_TIMER = 0x261B,
SMSG_START_ELAPSED_TIMERS = 0x261D,
SMSG_START_LOOT_ROLL = 0x2633,
- SMSG_START_MIRROR_TIMER = 0x2757,
+ SMSG_START_MIRROR_TIMER = 0x2758,
SMSG_START_TIMER = 0x25BB,
SMSG_STOP_ELAPSED_TIMER = 0x261C,
- SMSG_STOP_MIRROR_TIMER = 0x2759,
- SMSG_STOP_SPEAKERBOT_SOUND = 0x27BA,
+ SMSG_STOP_MIRROR_TIMER = 0x275A,
+ SMSG_STOP_SPEAKERBOT_SOUND = 0x27BB,
SMSG_STREAMING_MOVIES = 0x25BA,
SMSG_SUMMON_CANCEL = 0x26E1,
SMSG_SUMMON_RAID_MEMBER_VALIDATE_FAILED = 0x258F,
- SMSG_SUMMON_REQUEST = 0x2768,
+ SMSG_SUMMON_REQUEST = 0x2769,
SMSG_SUPERCEDED_SPELLS = 0x2C4C,
SMSG_SUSPEND_COMMS = 0x304A,
SMSG_SUSPEND_TOKEN = 0x25BD,
- SMSG_TALENTS_INVOLUNTARILY_RESET = 0x275F,
+ SMSG_TALENTS_INVOLUNTARILY_RESET = 0x2760,
SMSG_TAXI_NODE_STATUS = 0x26AB,
SMSG_TEXT_EMOTE = 0x26A9,
- SMSG_THREAT_CLEAR = 0x2719,
- SMSG_THREAT_REMOVE = 0x2718,
- SMSG_THREAT_UPDATE = 0x2717,
+ SMSG_THREAT_CLEAR = 0x271A,
+ SMSG_THREAT_REMOVE = 0x2719,
+ SMSG_THREAT_UPDATE = 0x2718,
SMSG_TIME_ADJUSTMENT = 0x2DA1,
SMSG_TIME_SYNC_REQUEST = 0x2DA0,
- SMSG_TITLE_EARNED = 0x2714,
- SMSG_TITLE_LOST = 0x2715,
+ SMSG_TITLE_EARNED = 0x2715,
+ SMSG_TITLE_LOST = 0x2716,
SMSG_TOTEM_CREATED = 0x26FB,
- SMSG_TOTEM_MOVED = 0x26FC,
+ SMSG_TOTEM_DURATION_CHANGED = 0x26FC,
+ SMSG_TOTEM_MOVED = 0x26FD,
SMSG_TRADE_STATUS = 0x2582,
SMSG_TRADE_UPDATED = 0x2581,
- SMSG_TRAINER_BUY_FAILED = 0x271E,
- SMSG_TRAINER_LIST = 0x271D,
- SMSG_TRANSFER_ABORTED = 0x2749,
+ SMSG_TRAINER_BUY_FAILED = 0x271F,
+ SMSG_TRAINER_LIST = 0x271E,
+ SMSG_TRANSFER_ABORTED = 0x274A,
SMSG_TRANSFER_PENDING = 0x25E5,
SMSG_TRANSMOG_COLLECTION_UPDATE = 0x25C6,
SMSG_TRANSMOG_SET_COLLECTION_UPDATE = 0x25C7,
- SMSG_TRIGGER_CINEMATIC = 0x2816,
- SMSG_TRIGGER_MOVIE = 0x26FD,
- SMSG_TURN_IN_PETITION_RESULT = 0x279A,
- SMSG_TUTORIAL_FLAGS = 0x2808,
- SMSG_TUTORIAL_HIGHLIGHT_SPELL = 0x284A,
- SMSG_TUTORIAL_UNHIGHLIGHT_SPELL = 0x2849,
+ SMSG_TRIGGER_CINEMATIC = 0x2817,
+ SMSG_TRIGGER_MOVIE = 0x26FE,
+ SMSG_TURN_IN_PETITION_RESULT = 0x279B,
+ SMSG_TUTORIAL_FLAGS = 0x2809,
+ SMSG_TUTORIAL_HIGHLIGHT_SPELL = 0x284C,
+ SMSG_TUTORIAL_UNHIGHLIGHT_SPELL = 0x284B,
SMSG_TWITTER_STATUS = 0x2FFD,
- SMSG_UI_TIME = 0x275C,
- SMSG_UNDELETE_CHARACTER_RESPONSE = 0x2819,
- SMSG_UNDELETE_COOLDOWN_STATUS_RESPONSE = 0x281A,
+ SMSG_UI_TIME = 0x275D,
+ SMSG_UNDELETE_CHARACTER_RESPONSE = 0x281A,
+ SMSG_UNDELETE_COOLDOWN_STATUS_RESPONSE = 0x281B,
SMSG_UNLEARNED_SPELLS = 0x2C4E,
- SMSG_UPDATE_ACCOUNT_DATA = 0x2751,
+ SMSG_UPDATE_ACCOUNT_DATA = 0x2752,
SMSG_UPDATE_ACTION_BUTTONS = 0x25F6,
SMSG_UPDATE_CELESTIAL_BODY = 0x286B,
- SMSG_UPDATE_CHARACTER_FLAGS = 0x280E,
+ SMSG_UPDATE_CHARACTER_FLAGS = 0x280F,
SMSG_UPDATE_EXPANSION_LEVEL = 0x2666,
SMSG_UPDATE_GAME_TIME_STATE = 0x2872,
SMSG_UPDATE_INSTANCE_OWNERSHIP = 0x26D8,
SMSG_UPDATE_LAST_INSTANCE = 0x26B7,
- SMSG_UPDATE_OBJECT = 0x2817,
+ SMSG_UPDATE_OBJECT = 0x2818,
SMSG_UPDATE_TALENT_DATA = 0x25EC,
- SMSG_UPDATE_TASK_PROGRESS = 0x27DC,
+ SMSG_UPDATE_TASK_PROGRESS = 0x27DD,
SMSG_UPDATE_WEEKLY_SPELL_USAGE = 0x2C19,
- SMSG_UPDATE_WORLD_STATE = 0x2794,
+ SMSG_UPDATE_WORLD_STATE = 0x2795,
SMSG_USERLIST_ADD = 0x2BB9,
SMSG_USERLIST_REMOVE = 0x2BBA,
SMSG_USERLIST_UPDATE = 0x2BBB,
- SMSG_USE_EQUIPMENT_SET_RESULT = 0x279B,
+ SMSG_USE_EQUIPMENT_SET_RESULT = 0x279C,
SMSG_VENDOR_INVENTORY = 0x25CA,
- SMSG_VIGNETTE_UPDATE = 0x27BC,
+ SMSG_VIGNETTE_UPDATE = 0x27BD,
SMSG_VOID_ITEM_SWAP_RESPONSE = 0x25DF,
SMSG_VOID_STORAGE_CONTENTS = 0x25DC,
SMSG_VOID_STORAGE_FAILED = 0x25DB,
@@ -1753,36 +1770,35 @@ enum OpcodeServer : uint16
SMSG_WAIT_QUEUE_FINISH = 0x256E,
SMSG_WAIT_QUEUE_UPDATE = 0x256D,
SMSG_WARDEN_DATA = 0x2576,
- SMSG_WARFRONT_COMPLETED = 0x27AD,
+ SMSG_WARFRONT_COMPLETED = 0x27AE,
SMSG_WARGAME_REQUEST_SUCCESSFULLY_SENT_TO_OPPONENT = 0x25B4,
SMSG_WEATHER = 0x26D5,
SMSG_WEEKLY_SPELL_USAGE = 0x2C18,
SMSG_WHO = 0x2BAE,
SMSG_WHO_IS = 0x26D4,
- SMSG_WORLD_QUEST_UPDATE = 0x2851,
+ SMSG_WORLD_QUEST_UPDATE = 0x2853,
SMSG_WORLD_SERVER_INFO = 0x25C2,
- SMSG_WORLD_TEXT = 0x2836,
- SMSG_WOW_TOKEN_AUCTION_SOLD = 0x2824,
- SMSG_WOW_TOKEN_BUY_REQUEST_CONFIRMATION = 0x2826,
- SMSG_WOW_TOKEN_BUY_RESULT_CONFIRMATION = 0x2827,
+ SMSG_WORLD_TEXT = 0x2838,
+ SMSG_WOW_TOKEN_AUCTION_SOLD = 0x2825,
+ SMSG_WOW_TOKEN_BUY_REQUEST_CONFIRMATION = 0x2827,
+ SMSG_WOW_TOKEN_BUY_RESULT_CONFIRMATION = 0x2828,
SMSG_WOW_TOKEN_CAN_REDEEM_FOR_BALANCE_RESULT = 0x2861,
- SMSG_WOW_TOKEN_CAN_VETERAN_BUY_RESULT = 0x2825,
- SMSG_WOW_TOKEN_DISTRIBUTION_GLUE_UPDATE = 0x281F,
- SMSG_WOW_TOKEN_DISTRIBUTION_UPDATE = 0x2820,
- SMSG_WOW_TOKEN_MARKET_PRICE_RESPONSE = 0x2821,
- SMSG_WOW_TOKEN_REDEEM_GAME_TIME_UPDATED = 0x2828,
- SMSG_WOW_TOKEN_REDEEM_REQUEST_CONFIRMATION = 0x2829,
- SMSG_WOW_TOKEN_REDEEM_RESULT = 0x282A,
- SMSG_WOW_TOKEN_SELL_REQUEST_CONFIRMATION = 0x2822,
- SMSG_WOW_TOKEN_SELL_RESULT_CONFIRMATION = 0x2823,
- SMSG_WOW_TOKEN_UPDATE_AUCTIONABLE_LIST_RESPONSE = 0x282B,
+ SMSG_WOW_TOKEN_CAN_VETERAN_BUY_RESULT = 0x2826,
+ SMSG_WOW_TOKEN_DISTRIBUTION_GLUE_UPDATE = 0x2820,
+ SMSG_WOW_TOKEN_DISTRIBUTION_UPDATE = 0x2821,
+ SMSG_WOW_TOKEN_MARKET_PRICE_RESPONSE = 0x2822,
+ SMSG_WOW_TOKEN_REDEEM_GAME_TIME_UPDATED = 0x2829,
+ SMSG_WOW_TOKEN_REDEEM_REQUEST_CONFIRMATION = 0x282A,
+ SMSG_WOW_TOKEN_REDEEM_RESULT = 0x282B,
+ SMSG_WOW_TOKEN_SELL_REQUEST_CONFIRMATION = 0x2823,
+ SMSG_WOW_TOKEN_SELL_RESULT_CONFIRMATION = 0x2824,
+ SMSG_WOW_TOKEN_UPDATE_AUCTIONABLE_LIST_RESPONSE = 0x282C,
SMSG_XP_GAIN_ABORTED = 0x25E0,
- SMSG_XP_GAIN_ENABLED = 0x27F8,
+ SMSG_XP_GAIN_ENABLED = 0x27F9,
SMSG_ZONE_UNDER_ATTACK = 0x2BB5,
// Opcodes that are not generated automatically
SMSG_ACCOUNT_HEIRLOOM_UPDATE = 0xBADD, // no client handler
- SMSG_ITEM_UPGRADE_RESULT = 0xBADD, // no client handler
SMSG_COMPRESSED_PACKET = 0x3052,
SMSG_MULTIPLE_PACKETS = 0x3051,
diff --git a/src/server/game/Server/WorldSession.h b/src/server/game/Server/WorldSession.h
index b7003370326..9c492dbaace 100644
--- a/src/server/game/Server/WorldSession.h
+++ b/src/server/game/Server/WorldSession.h
@@ -389,7 +389,6 @@ namespace WorldPackets
class WrapItem;
class CancelTempEnchantment;
class UseCritterItem;
- class UpgradeItem;
class SocketGems;
class SortBags;
class SortBankBags;
@@ -1405,7 +1404,6 @@ class TC_GAME_API WorldSession
void HandleBuybackItem(WorldPackets::Item::BuyBackItem& packet);
void HandleWrapItem(WorldPackets::Item::WrapItem& packet);
void HandleUseCritterItem(WorldPackets::Item::UseCritterItem& packet);
- void HandleUpgradeItem(WorldPackets::Item::UpgradeItem& packet);
void HandleAttackSwingOpcode(WorldPackets::Combat::AttackSwing& packet);
void HandleAttackStopOpcode(WorldPackets::Combat::AttackStop& packet);