aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/server/game/Handlers/QueryHandler.cpp5
-rw-r--r--src/server/game/Server/Packets/QueryPackets.cpp6
-rw-r--r--src/server/game/Server/Packets/QueryPackets.h6
-rw-r--r--src/server/game/Server/Protocol/Opcodes.cpp2
4 files changed, 9 insertions, 10 deletions
diff --git a/src/server/game/Handlers/QueryHandler.cpp b/src/server/game/Handlers/QueryHandler.cpp
index b173bcca98f..5d40165df04 100644
--- a/src/server/game/Handlers/QueryHandler.cpp
+++ b/src/server/game/Handlers/QueryHandler.cpp
@@ -397,18 +397,17 @@ void WorldSession::HandleDBQueryBulk(WorldPackets::Query::DBQueryBulk& packet)
{
WorldPackets::Query::DBReply response;
response.TableHash = packet.TableHash;
- response.Allow = store->HasRecord(rec.RecordID);
+ response.RecordID = rec.RecordID;
if (store->HasRecord(rec.RecordID))
{
- response.RecordID = rec.RecordID;
+ response.Allow = true;
response.Timestamp = sDB2Manager.GetHotfixDate(rec.RecordID, packet.TableHash);
store->WriteRecord(rec.RecordID, GetSessionDbcLocale(), response.Data);
}
else
{
TC_LOG_TRACE("network", "CMSG_DB_QUERY_BULK: %s requested non-existing entry %u in datastore: %u", GetPlayerInfo().c_str(), rec.RecordID, packet.TableHash);
- response.RecordID = -int32(rec.RecordID);
response.Timestamp = time(NULL);
}
diff --git a/src/server/game/Server/Packets/QueryPackets.cpp b/src/server/game/Server/Packets/QueryPackets.cpp
index 02da5d591a1..094e29d5faa 100644
--- a/src/server/game/Server/Packets/QueryPackets.cpp
+++ b/src/server/game/Server/Packets/QueryPackets.cpp
@@ -258,9 +258,9 @@ void WorldPackets::Query::DBQueryBulk::Read()
WorldPacket const* WorldPackets::Query::DBReply::Write()
{
- _worldPacket << TableHash;
- _worldPacket << RecordID;
- _worldPacket << Timestamp;
+ _worldPacket << uint32(TableHash);
+ _worldPacket << uint32(RecordID);
+ _worldPacket << uint32(Timestamp);
_worldPacket.WriteBit(Allow);
_worldPacket << uint32(Data.size());
_worldPacket.append(Data);
diff --git a/src/server/game/Server/Packets/QueryPackets.h b/src/server/game/Server/Packets/QueryPackets.h
index 09856184386..9c2ef75ff11 100644
--- a/src/server/game/Server/Packets/QueryPackets.h
+++ b/src/server/game/Server/Packets/QueryPackets.h
@@ -178,7 +178,7 @@ namespace WorldPackets
struct DBQueryRecord
{
ObjectGuid GUID;
- int32 RecordID = 0;
+ uint32 RecordID = 0;
};
DBQueryBulk(WorldPacket&& packet) : ClientPacket(CMSG_DB_QUERY_BULK, std::move(packet)) { }
@@ -196,10 +196,10 @@ namespace WorldPackets
WorldPacket const* Write() override;
- bool Allow = false;
uint32 TableHash = 0;
uint32 Timestamp = 0;
- int32 RecordID = 0;
+ uint32 RecordID = 0;
+ bool Allow = false;
ByteBuffer Data;
};
diff --git a/src/server/game/Server/Protocol/Opcodes.cpp b/src/server/game/Server/Protocol/Opcodes.cpp
index b3e07342b21..e52dc914da0 100644
--- a/src/server/game/Server/Protocol/Opcodes.cpp
+++ b/src/server/game/Server/Protocol/Opcodes.cpp
@@ -1053,7 +1053,7 @@ void OpcodeTable::Initialize()
DEFINE_SERVER_OPCODE_HANDLER(SMSG_DAILY_QUESTS_RESET, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
DEFINE_SERVER_OPCODE_HANDLER(SMSG_DAMAGE_CALC_LOG, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
DEFINE_SERVER_OPCODE_HANDLER(SMSG_DANCE_STUDIO_CREATE_RESULT, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
- DEFINE_SERVER_OPCODE_HANDLER(SMSG_DB_REPLY, STATUS_NEVER, CONNECTION_TYPE_REALM);
+ DEFINE_SERVER_OPCODE_HANDLER(SMSG_DB_REPLY, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); // do not enable until all DB2 stores have updated structures
DEFINE_SERVER_OPCODE_HANDLER(SMSG_DEATH_RELEASE_LOC, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
DEFINE_SERVER_OPCODE_HANDLER(SMSG_DEFENSE_MESSAGE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
DEFINE_SERVER_OPCODE_HANDLER(SMSG_DELETE_CHAR, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);