From a1dbbf39152f8241a273fcf3edaa43995b03b82d Mon Sep 17 00:00:00 2001 From: Kelsi Date: Mon, 9 Mar 2026 15:12:34 -0700 Subject: [PATCH] Handle auction removed, container open, and GM ticket status - SMSG_AUCTION_REMOVED_NOTIFICATION: notify player of expired auction - SMSG_OPEN_CONTAINER: log container open event - SMSG_GM_TICKET_STATUS_UPDATE: consume (no ticket UI yet) - SMSG_PLAYER_VEHICLE_DATA: consume (no vehicle UI yet) - SMSG_SET_EXTRA_AURA_INFO_NEED_UPDATE: consume --- src/game/game_handler.cpp | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/src/game/game_handler.cpp b/src/game/game_handler.cpp index 67bdf452..12150b0d 100644 --- a/src/game/game_handler.cpp +++ b/src/game/game_handler.cpp @@ -4121,6 +4121,40 @@ void GameHandler::handlePacket(network::Packet& packet) { packet.setReadPos(packet.getSize()); break; } + case Opcode::SMSG_AUCTION_REMOVED_NOTIFICATION: { + // uint32 auctionId + uint32 itemEntry + uint32 itemRandom — auction expired/cancelled + if (packet.getSize() - packet.getReadPos() >= 12) { + /*uint32_t auctionId =*/ packet.readUInt32(); + uint32_t itemEntry = packet.readUInt32(); + /*uint32_t itemRandom =*/ packet.readUInt32(); + ensureItemInfo(itemEntry); + auto* info = getItemInfo(itemEntry); + std::string itemName = info ? info->name : ("Item #" + std::to_string(itemEntry)); + addSystemChatMessage("Your auction of " + itemName + " has expired."); + } + packet.setReadPos(packet.getSize()); + break; + } + case Opcode::SMSG_OPEN_CONTAINER: { + // uint64 containerGuid — tells client to open this container + // The actual items come via update packets; we just log this. + if (packet.getSize() - packet.getReadPos() >= 8) { + uint64_t containerGuid = packet.readUInt64(); + LOG_DEBUG("SMSG_OPEN_CONTAINER: guid=0x", std::hex, containerGuid, std::dec); + } + break; + } + case Opcode::SMSG_GM_TICKET_STATUS_UPDATE: + // GM ticket status (new/updated); no ticket UI yet + packet.setReadPos(packet.getSize()); + break; + case Opcode::SMSG_PLAYER_VEHICLE_DATA: + // Vehicle data update for player in vehicle; no vehicle UI yet + packet.setReadPos(packet.getSize()); + break; + case Opcode::SMSG_SET_EXTRA_AURA_INFO_NEED_UPDATE: + packet.setReadPos(packet.getSize()); + break; case Opcode::SMSG_TAXINODE_STATUS: // Node status cache not implemented yet. packet.setReadPos(packet.getSize());