void HandleDBQueryBulk(DBQueryBulk dbQuery) { IDB2Storage store = Global.DB2Mgr.GetStorage(dbQuery.TableHash); if (store == null) { Log.outError(LogFilter.Network, "CMSG_DB_QUERY_BULK: {0} requested unsupported unknown hotfix type: {1}", GetPlayerInfo(), dbQuery.TableHash); return; } foreach (DBQueryBulk.DBQueryRecord record in dbQuery.Queries) { DBReply dbReply = new DBReply(); dbReply.TableHash = dbQuery.TableHash; dbReply.RecordID = record.RecordID; if (store.HasRecord(record.RecordID)) { dbReply.Allow = true; dbReply.Timestamp = (uint)GameTime.GetGameTime(); store.WriteRecord(record.RecordID, GetSessionDbcLocale(), dbReply.Data); } else { Log.outTrace(LogFilter.Network, "CMSG_DB_QUERY_BULK: {0} requested non-existing entry {1} in datastore: {2}", GetPlayerInfo(), record.RecordID, dbQuery.TableHash); dbReply.Timestamp = (uint)Time.UnixTime; } SendPacket(dbReply); } }
void HandleDBQueryBulk(DBQueryBulk dbQuery) { IDB2Storage store = Global.DB2Mgr.GetStorage(dbQuery.TableHash); foreach (DBQueryBulk.DBQueryRecord record in dbQuery.Queries) { DBReply dbReply = new DBReply(); dbReply.TableHash = dbQuery.TableHash; dbReply.RecordID = record.RecordID; if (store != null && store.HasRecord(record.RecordID)) { dbReply.Status = 1; dbReply.Timestamp = (uint)GameTime.GetGameTime(); store.WriteRecord(record.RecordID, GetSessionDbcLocale(), dbReply.Data); var optionalDataEntries = Global.DB2Mgr.GetHotfixOptionalData(dbQuery.TableHash, record.RecordID, GetSessionDbcLocale()); foreach (HotfixOptionalData optionalData in optionalDataEntries) { dbReply.Data.WriteUInt32(optionalData.Key); dbReply.Data.WriteBytes(optionalData.Data); } } else { Log.outTrace(LogFilter.Network, "CMSG_DB_QUERY_BULK: {0} requested non-existing entry {1} in datastore: {2}", GetPlayerInfo(), record.RecordID, dbQuery.TableHash); dbReply.Timestamp = (uint)Time.UnixTime; } SendPacket(dbReply); } }