aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/server/game/Entities/Unit/Unit.h3
-rw-r--r--src/server/game/Handlers/AuctionHouseHandler.cpp20
-rw-r--r--src/server/game/Handlers/BlackMarketHandler.cpp46
-rw-r--r--src/server/game/Handlers/NPCHandler.cpp7
-rw-r--r--src/server/game/Server/Packets/AuctionHousePackets.cpp14
-rw-r--r--src/server/game/Server/Packets/AuctionHousePackets.h20
-rw-r--r--src/server/game/Server/Packets/BlackMarketPackets.cpp32
-rw-r--r--src/server/game/Server/Packets/BlackMarketPackets.h51
-rw-r--r--src/server/game/Server/Packets/NPCPackets.cpp7
-rw-r--r--src/server/game/Server/Packets/NPCPackets.h10
-rw-r--r--src/server/game/Server/Protocol/Opcodes.cpp10
-rw-r--r--src/server/game/Server/Protocol/Opcodes.h8
-rw-r--r--src/server/game/Server/WorldSession.h18
13 files changed, 224 insertions, 22 deletions
diff --git a/src/server/game/Entities/Unit/Unit.h b/src/server/game/Entities/Unit/Unit.h
index 270674fdba6..5cb5638faeb 100644
--- a/src/server/game/Entities/Unit/Unit.h
+++ b/src/server/game/Entities/Unit/Unit.h
@@ -755,7 +755,8 @@ enum NPCFlags
UNIT_NPC_FLAG_MAILBOX = 0x04000000, // mailbox
UNIT_NPC_FLAG_REFORGER = 0x08000000, // reforging
UNIT_NPC_FLAG_TRANSMOGRIFIER = 0x10000000, // transmogrification
- UNIT_NPC_FLAG_VAULTKEEPER = 0x20000000 // void storage
+ UNIT_NPC_FLAG_VAULTKEEPER = 0x20000000, // void storage
+ UNIT_NPC_FLAG_BLACK_MARKET = 0x80000000 // black market
};
enum MovementFlags
diff --git a/src/server/game/Handlers/AuctionHouseHandler.cpp b/src/server/game/Handlers/AuctionHouseHandler.cpp
index 0cabbf3f220..6a3f8665bbf 100644
--- a/src/server/game/Handlers/AuctionHouseHandler.cpp
+++ b/src/server/game/Handlers/AuctionHouseHandler.cpp
@@ -33,15 +33,12 @@
#include "AuctionHousePackets.h"
//void called when player click on auctioneer npc
-void WorldSession::HandleAuctionHelloOpcode(WorldPacket& recvData)
+void WorldSession::HandleAuctionHelloOpcode(WorldPackets::AuctionHouse::AuctionHello& packet)
{
- ObjectGuid guid; //NPC guid
- recvData >> guid;
-
- Creature* unit = GetPlayer()->GetNPCIfCanInteractWith(guid, UNIT_NPC_FLAG_AUCTIONEER);
+ Creature* unit = GetPlayer()->GetNPCIfCanInteractWith(packet.Guid, UNIT_NPC_FLAG_AUCTIONEER);
if (!unit)
{
- TC_LOG_DEBUG("network", "WORLD: HandleAuctionHelloOpcode - Unit (%s) not found or you can't interact with him.", guid.ToString().c_str());
+ TC_LOG_DEBUG("network", "WORLD: HandleAuctionHelloOpcode - Unit (%s) not found or you can't interact with him.", packet.Guid.ToString().c_str());
return;
}
@@ -49,7 +46,7 @@ void WorldSession::HandleAuctionHelloOpcode(WorldPacket& recvData)
if (GetPlayer()->HasUnitState(UNIT_STATE_DIED))
GetPlayer()->RemoveAurasByType(SPELL_AURA_FEIGN_DEATH);
- SendAuctionHello(guid, unit);
+ SendAuctionHello(packet.Guid, unit);
}
//this void causes that auction window is opened
@@ -65,11 +62,10 @@ void WorldSession::SendAuctionHello(ObjectGuid guid, Creature* unit)
if (!ahEntry)
return;
- WorldPacket data(SMSG_AUCTION_HELLO, 12);
- data << guid;
- data << uint32(ahEntry->ID);
- data << uint8(1); // 3.3.3: 1 - AH enabled, 0 - AH disabled
- SendPacket(&data);
+ WorldPackets::AuctionHouse::AuctionHelloResponse auctionHelloResponse;
+ auctionHelloResponse.Guid = guid;
+ auctionHelloResponse.OpenForBusiness = true; // 3.3.3: 1 - AH enabled, 0 - AH disabled
+ SendPacket(auctionHelloResponse.Write());
}
void WorldSession::SendAuctionCommandResult(AuctionEntry* auction, uint32 action, uint32 errorCode, uint32 /*bidError = 0*/)
diff --git a/src/server/game/Handlers/BlackMarketHandler.cpp b/src/server/game/Handlers/BlackMarketHandler.cpp
new file mode 100644
index 00000000000..3a23e4b1ec4
--- /dev/null
+++ b/src/server/game/Handlers/BlackMarketHandler.cpp
@@ -0,0 +1,46 @@
+/*
+* Copyright (C) 2008-2015 TrinityCore <http://www.trinitycore.org/>
+*
+* This program is free software; you can redistribute it and/or modify it
+* under the terms of the GNU General Public License as published by the
+* Free Software Foundation; either version 2 of the License, or (at your
+* option) any later version.
+*
+* This program is distributed in the hope that it will be useful, but WITHOUT
+* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
+* more details.
+*
+* You should have received a copy of the GNU General Public License along
+* with this program. If not, see <http://www.gnu.org/licenses/>.
+*/
+
+#include "BlackMarketPackets.h"
+#include "ObjectMgr.h"
+#include "Player.h"
+#include "WorldPacket.h"
+#include "WorldSession.h"
+
+void WorldSession::HandleBlackMarketOpen(WorldPackets::BlackMarket::BlackMarketOpen& packet)
+{
+ Creature* unit = GetPlayer()->GetNPCIfCanInteractWith(packet.Guid, UNIT_NPC_FLAG_BLACK_MARKET);
+ if (!unit)
+ {
+ TC_LOG_DEBUG("network", "WORLD: HandleBlackMarketHello - Unit (GUID: %u) not found or you can't interact with him.", packet.Guid.ToString().c_str());
+ return;
+ }
+
+ // remove fake death
+ if (GetPlayer()->HasUnitState(UNIT_STATE_DIED))
+ GetPlayer()->RemoveAurasByType(SPELL_AURA_FEIGN_DEATH);
+
+ SendBlackMarketOpenResult(packet.Guid, unit);
+}
+
+void WorldSession::SendBlackMarketOpenResult(ObjectGuid guid, Creature* auctioneer)
+{
+ WorldPackets::BlackMarket::BlackMarketOpenResult packet;
+ packet.Guid = guid;
+ packet.Enable = false;
+ SendPacket(packet.Write());
+}
diff --git a/src/server/game/Handlers/NPCHandler.cpp b/src/server/game/Handlers/NPCHandler.cpp
index 30f3b45b47b..6e778b6070c 100644
--- a/src/server/game/Handlers/NPCHandler.cpp
+++ b/src/server/game/Handlers/NPCHandler.cpp
@@ -96,10 +96,9 @@ void WorldSession::HandleBankerActivateOpcode(WorldPackets::NPC::Hello& packet)
void WorldSession::SendShowBank(ObjectGuid guid)
{
- WorldPacket data(SMSG_SHOW_BANK, 8);
- data << guid;
- m_currentBankerGUID = guid;
- SendPacket(&data);
+ WorldPackets::NPC::ShowBank packet;
+ packet.Guid = guid;
+ SendPacket(packet.Write());
}
void WorldSession::SendShowMailBox(ObjectGuid guid)
diff --git a/src/server/game/Server/Packets/AuctionHousePackets.cpp b/src/server/game/Server/Packets/AuctionHousePackets.cpp
index 596419d71c7..a756572b443 100644
--- a/src/server/game/Server/Packets/AuctionHousePackets.cpp
+++ b/src/server/game/Server/Packets/AuctionHousePackets.cpp
@@ -19,6 +19,20 @@
#include "AuctionHouseMgr.h"
#include "ObjectGuid.h"
+void WorldPackets::AuctionHouse::AuctionHello::Read()
+{
+ _worldPacket >> Guid;
+}
+
+WorldPacket const* WorldPackets::AuctionHouse::AuctionHelloResponse::Write()
+{
+ _worldPacket << Guid;
+ _worldPacket.WriteBit(OpenForBusiness);
+ _worldPacket.FlushBits();
+
+ return &_worldPacket;
+}
+
WorldPackets::AuctionHouse::AuctionCommandResult::AuctionCommandResult()
: ServerPacket(SMSG_AUCTION_COMMAND_RESULT, 4 + 4 + 4 + 8 + 4 + 8 + 8 + 8) { }
diff --git a/src/server/game/Server/Packets/AuctionHousePackets.h b/src/server/game/Server/Packets/AuctionHousePackets.h
index 5c8f7f53d5f..d16190b5e71 100644
--- a/src/server/game/Server/Packets/AuctionHousePackets.h
+++ b/src/server/game/Server/Packets/AuctionHousePackets.h
@@ -26,6 +26,26 @@ namespace WorldPackets
{
namespace AuctionHouse
{
+ class AuctionHello final : public ClientPacket
+ {
+ public:
+ AuctionHello(WorldPacket&& packet) : ClientPacket(CMSG_AUCTION_HELLO, std::move(packet)) { }
+
+ void Read() override;
+ ObjectGuid Guid;
+ };
+
+ class AuctionHelloResponse final : public ServerPacket
+ {
+ public:
+ AuctionHelloResponse() : ServerPacket(SMSG_AUCTION_HELLO, 1 + 16) { }
+
+ WorldPacket const* Write() override;
+
+ ObjectGuid Guid;
+ bool OpenForBusiness = true;
+ };
+
class AuctionCommandResult final : public ServerPacket
{
public:
diff --git a/src/server/game/Server/Packets/BlackMarketPackets.cpp b/src/server/game/Server/Packets/BlackMarketPackets.cpp
new file mode 100644
index 00000000000..5a4bad63d65
--- /dev/null
+++ b/src/server/game/Server/Packets/BlackMarketPackets.cpp
@@ -0,0 +1,32 @@
+/*
+* Copyright (C) 2008-2015 TrinityCore <http://www.trinitycore.org/>
+*
+* This program is free software; you can redistribute it and/or modify it
+* under the terms of the GNU General Public License as published by the
+* Free Software Foundation; either version 2 of the License, or (at your
+* option) any later version.
+*
+* This program is distributed in the hope that it will be useful, but WITHOUT
+* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
+* more details.
+*
+* You should have received a copy of the GNU General Public License along
+* with this program. If not, see <http://www.gnu.org/licenses/>.
+*/
+
+#include "BlackMarketPackets.h"
+
+void WorldPackets::BlackMarket::BlackMarketOpen::Read()
+{
+ _worldPacket >> Guid;
+}
+
+WorldPacket const* WorldPackets::BlackMarket::BlackMarketOpenResult::Write()
+{
+ _worldPacket << Guid;
+ _worldPacket.WriteBit(Enable);
+ _worldPacket.FlushBits();
+
+ return &_worldPacket;
+}
diff --git a/src/server/game/Server/Packets/BlackMarketPackets.h b/src/server/game/Server/Packets/BlackMarketPackets.h
new file mode 100644
index 00000000000..9c04a639fc0
--- /dev/null
+++ b/src/server/game/Server/Packets/BlackMarketPackets.h
@@ -0,0 +1,51 @@
+/*
+* Copyright (C) 2008-2015 TrinityCore <http://www.trinitycore.org/>
+*
+* This program is free software; you can redistribute it and/or modify it
+* under the terms of the GNU General Public License as published by the
+* Free Software Foundation; either version 2 of the License, or (at your
+* option) any later version.
+*
+* This program is distributed in the hope that it will be useful, but WITHOUT
+* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
+* more details.
+*
+* You should have received a copy of the GNU General Public License along
+* with this program. If not, see <http://www.gnu.org/licenses/>.
+*/
+
+#ifndef BlackMarketPackets_h__
+#define BlackMarketPackets_h__
+
+#include "Packet.h"
+#include "ObjectGuid.h"
+#include "WorldSession.h"
+
+namespace WorldPackets
+{
+ namespace BlackMarket
+ {
+ class BlackMarketOpen final : public ClientPacket
+ {
+ public:
+ BlackMarketOpen(WorldPacket&& packet) : ClientPacket(CMSG_BLACK_MARKET_OPEN, std::move(packet)) { }
+
+ void Read() override;
+
+ ObjectGuid Guid;
+ };
+
+ class BlackMarketOpenResult final : public ServerPacket
+ {
+ public:
+ BlackMarketOpenResult() : ServerPacket(SMSG_BLACK_MARKET_OPEN_RESULT, 15) { }
+
+ WorldPacket const* Write() override;
+
+ ObjectGuid Guid;
+ bool Enable = true;
+ };
+ }
+}
+#endif // BlackMarketPackets_h__
diff --git a/src/server/game/Server/Packets/NPCPackets.cpp b/src/server/game/Server/Packets/NPCPackets.cpp
index 1df59cd469d..bd3fe1e5803 100644
--- a/src/server/game/Server/Packets/NPCPackets.cpp
+++ b/src/server/game/Server/Packets/NPCPackets.cpp
@@ -118,3 +118,10 @@ WorldPacket const* WorldPackets::NPC::TrainerList::Write()
return &_worldPacket;
}
+
+WorldPacket const* WorldPackets::NPC::ShowBank::Write()
+{
+ _worldPacket << Guid;
+
+ return &_worldPacket;
+}
diff --git a/src/server/game/Server/Packets/NPCPackets.h b/src/server/game/Server/Packets/NPCPackets.h
index 823632e8f6f..840041983d9 100644
--- a/src/server/game/Server/Packets/NPCPackets.h
+++ b/src/server/game/Server/Packets/NPCPackets.h
@@ -127,6 +127,16 @@ namespace WorldPackets
int32 TrainerID = 1;
std::vector<TrainerListSpell> Spells;
};
+
+ class ShowBank final : public ServerPacket
+ {
+ public:
+ ShowBank() : ServerPacket(SMSG_SHOW_BANK, 16) { }
+
+ WorldPacket const* Write() override;
+
+ ObjectGuid Guid;
+ };
}
}
diff --git a/src/server/game/Server/Protocol/Opcodes.cpp b/src/server/game/Server/Protocol/Opcodes.cpp
index c3fcfc98d12..5dbb8391f73 100644
--- a/src/server/game/Server/Protocol/Opcodes.cpp
+++ b/src/server/game/Server/Protocol/Opcodes.cpp
@@ -19,6 +19,8 @@
#include "Opcodes.h"
#include "WorldSession.h"
#include "Packets/AchievementPackets.h"
+#include "Packets/AuctionHousePackets.h"
+#include "Packets/BlackMarketPackets.h"
#include "Packets/CharacterPackets.h"
#include "Packets/ChannelPackets.h"
#include "Packets/ChatPackets.h"
@@ -159,7 +161,7 @@ void OpcodeTable::Initialize()
DEFINE_OPCODE_HANDLER_OLD(CMSG_ARENA_TEAM_ROSTER, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleArenaTeamRosterOpcode );
DEFINE_HANDLER(CMSG_ATTACKSTOP, STATUS_LOGGEDIN, PROCESS_INPLACE, WorldPackets::Combat::AttackStop, &WorldSession::HandleAttackStopOpcode);
DEFINE_HANDLER(CMSG_ATTACKSWING, STATUS_LOGGEDIN, PROCESS_INPLACE, WorldPackets::Combat::AttackSwing, &WorldSession::HandleAttackSwingOpcode);
- DEFINE_OPCODE_HANDLER_OLD(CMSG_AUCTION_HELLO, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleAuctionHelloOpcode );
+ DEFINE_HANDLER(CMSG_AUCTION_HELLO, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, WorldPackets::AuctionHouse::AuctionHello, &WorldSession::HandleAuctionHelloOpcode);
DEFINE_OPCODE_HANDLER_OLD(CMSG_AUCTION_LIST_BIDDER_ITEMS, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleAuctionListBidderItems );
DEFINE_OPCODE_HANDLER_OLD(CMSG_AUCTION_LIST_ITEMS, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleAuctionListItems );
DEFINE_OPCODE_HANDLER_OLD(CMSG_AUCTION_LIST_OWNER_ITEMS, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleAuctionListOwnerItems );
@@ -198,6 +200,7 @@ void OpcodeTable::Initialize()
DEFINE_OPCODE_HANDLER_OLD(CMSG_BATTLE_PET_SET_BATTLE_SLOT, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL );
DEFINE_OPCODE_HANDLER_OLD(CMSG_BEGIN_TRADE, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleBeginTradeOpcode );
DEFINE_HANDLER(CMSG_BINDER_ACTIVATE, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, WorldPackets::NPC::Hello, &WorldSession::HandleBinderActivateOpcode);
+ DEFINE_HANDLER(CMSG_BLACK_MARKET_OPEN, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, WorldPackets::BlackMarket::BlackMarketOpen, &WorldSession::HandleBlackMarketOpen);
DEFINE_OPCODE_HANDLER_OLD(CMSG_BUG, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleBugOpcode );
DEFINE_OPCODE_HANDLER_OLD(CMSG_BUSY_TRADE, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleBusyTradeOpcode );
DEFINE_HANDLER(CMSG_BUYBACK_ITEM, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, WorldPackets::Item::BuyBackItem, &WorldSession::HandleBuybackItem);
@@ -743,7 +746,7 @@ void OpcodeTable::Initialize()
DEFINE_SERVER_OPCODE_HANDLER(SMSG_AUCTION_BIDDER_LIST_RESULT, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
DEFINE_SERVER_OPCODE_HANDLER(SMSG_AUCTION_BIDDER_NOTIFICATION, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
DEFINE_SERVER_OPCODE_HANDLER(SMSG_AUCTION_COMMAND_RESULT, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
- DEFINE_SERVER_OPCODE_HANDLER(SMSG_AUCTION_HELLO, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
+ DEFINE_SERVER_OPCODE_HANDLER(SMSG_AUCTION_HELLO, STATUS_NEVER, CONNECTION_TYPE_REALM);
DEFINE_SERVER_OPCODE_HANDLER(SMSG_AUCTION_LIST_PENDING_SALES, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
DEFINE_SERVER_OPCODE_HANDLER(SMSG_AUCTION_LIST_ITEMS_RESULT, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
DEFINE_SERVER_OPCODE_HANDLER(SMSG_AUCTION_OWNER_LIST_RESULT, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
@@ -787,6 +790,7 @@ void OpcodeTable::Initialize()
DEFINE_SERVER_OPCODE_HANDLER(SMSG_BINDER_CONFIRM, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
DEFINE_SERVER_OPCODE_HANDLER(SMSG_BINDPOINTUPDATE, STATUS_NEVER, CONNECTION_TYPE_INSTANCE);
DEFINE_SERVER_OPCODE_HANDLER(SMSG_BINDZONEREPLY, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
+ DEFINE_SERVER_OPCODE_HANDLER(SMSG_BLACK_MARKET_OPEN_RESULT, STATUS_NEVER, CONNECTION_TYPE_REALM);
DEFINE_SERVER_OPCODE_HANDLER(SMSG_BREAK_TARGET, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
DEFINE_SERVER_OPCODE_HANDLER(SMSG_BUY_BANK_SLOT_RESULT, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
DEFINE_SERVER_OPCODE_HANDLER(SMSG_BUY_FAILED, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
@@ -1323,7 +1327,7 @@ void OpcodeTable::Initialize()
DEFINE_SERVER_OPCODE_HANDLER(SMSG_SET_TIME_ZONE_INFORMATION, STATUS_NEVER, CONNECTION_TYPE_REALM);
DEFINE_SERVER_OPCODE_HANDLER(SMSG_SETUP_CURRENCY, STATUS_NEVER, CONNECTION_TYPE_INSTANCE);
DEFINE_SERVER_OPCODE_HANDLER(SMSG_SHOWTAXINODES, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
- DEFINE_SERVER_OPCODE_HANDLER(SMSG_SHOW_BANK, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
+ DEFINE_SERVER_OPCODE_HANDLER(SMSG_SHOW_BANK, STATUS_NEVER, CONNECTION_TYPE_REALM);
DEFINE_SERVER_OPCODE_HANDLER(SMSG_SHOW_MAILBOX, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
DEFINE_SERVER_OPCODE_HANDLER(SMSG_SHOW_RATINGS, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
DEFINE_SERVER_OPCODE_HANDLER(SMSG_SOCKET_GEMS_RESULT, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
diff --git a/src/server/game/Server/Protocol/Opcodes.h b/src/server/game/Server/Protocol/Opcodes.h
index d6008aed049..fd7aaf7c17b 100644
--- a/src/server/game/Server/Protocol/Opcodes.h
+++ b/src/server/game/Server/Protocol/Opcodes.h
@@ -114,6 +114,9 @@ enum OpcodeClient : uint32
CMSG_BATTLE_PET_SET_BATTLE_SLOT = 0x120B,
CMSG_BEGIN_TRADE = 0xBADD,
CMSG_BINDER_ACTIVATE = 0x02F3,
+ CMSG_BLACK_MARKET_BID = 0x13C2,
+ CMSG_BLACK_MARKET_OPEN = 0x1B39,
+ CMSG_BLACK_MARKET_REQUEST_ITEMS = 0x0B21,
CMSG_BOT_DETECTED2 = 0xBADD,
CMSG_BUG = 0xBADD,
CMSG_BUSY_TRADE = 0xBADD,
@@ -760,6 +763,9 @@ enum OpcodeServer : uint32
SMSG_BINDER_CONFIRM = 0x0B11,
SMSG_BINDPOINTUPDATE = 0x0A30,
SMSG_BINDZONEREPLY = 0xBADD,
+ SMSG_BLACK_MARKET_BID_ON_ITEM_RESULT = 0x0825,
+ SMSG_BLACK_MARKET_OPEN_RESULT = 0x0A05,
+ SMSG_BLACK_MARKET_ITEM_RESULT = 0x1BC2,
SMSG_BREAK_TARGET = 0xBADD,
SMSG_BUY_BANK_SLOT_RESULT = 0xBADD,
SMSG_BUY_FAILED = 0x013A,
@@ -1326,7 +1332,7 @@ enum OpcodeServer : uint32
SMSG_SET_VIGNETTE = 0x09AC,
SMSG_SETUP_CURRENCY = 0x0B06,
SMSG_SHOWTAXINODES = 0x12A1,
- SMSG_SHOW_BANK = 0x0204,
+ SMSG_SHOW_BANK = 0x1B51,
SMSG_SHOW_MAILBOX = 0xBADD,
SMSG_SHOW_RATINGS = 0xBADD,
SMSG_SOCKET_GEMS_RESULT = 0xBADD,
diff --git a/src/server/game/Server/WorldSession.h b/src/server/game/Server/WorldSession.h
index 3cba8396dfc..c67a283acc6 100644
--- a/src/server/game/Server/WorldSession.h
+++ b/src/server/game/Server/WorldSession.h
@@ -75,6 +75,16 @@ class RBACData;
namespace WorldPackets
{
+ namespace AuctionHouse
+ {
+ class AuctionHello;
+ }
+
+ namespace BlackMarket
+ {
+ class BlackMarketOpen;
+ }
+
namespace Character
{
struct CharacterCreateInfo;
@@ -552,6 +562,9 @@ class WorldSession
void SendAuctionOwnerNotification(AuctionEntry* auction);
void SendAuctionRemovedNotification(uint32 auctionId, uint32 itemEntry, int32 randomPropertyId);
+ // Black Market
+ void SendBlackMarketOpenResult(ObjectGuid guid, Creature* auctioneer);
+
//Item Enchantment
void SendEnchantmentLog(ObjectGuid target, ObjectGuid caster, uint32 itemId, uint32 enchantId);
void SendItemEnchantTimeUpdate(ObjectGuid Playerguid, ObjectGuid Itemguid, uint32 slot, uint32 Duration);
@@ -878,7 +891,7 @@ class WorldSession
void HandleSetTradeItemOpcode(WorldPacket& recvPacket);
void HandleUnacceptTradeOpcode(WorldPacket& recvPacket);
- void HandleAuctionHelloOpcode(WorldPacket& recvPacket);
+ void HandleAuctionHelloOpcode(WorldPackets::AuctionHouse::AuctionHello& packet);
void HandleAuctionListItems(WorldPacket& recvData);
void HandleAuctionListBidderItems(WorldPacket& recvData);
void HandleAuctionSellItem(WorldPacket& recvData);
@@ -887,6 +900,9 @@ class WorldSession
void HandleAuctionPlaceBid(WorldPacket& recvData);
void HandleAuctionListPendingSales(WorldPacket& recvData);
+ // Black Market
+ void HandleBlackMarketOpen(WorldPackets::BlackMarket::BlackMarketOpen& packet);
+
void HandleGetMailList(WorldPacket& recvData);
void HandleSendMail(WorldPacket& recvData);
void HandleMailTakeMoney(WorldPacket& recvData);