From be2292e815151d8859b8d00dcffa223b03225053 Mon Sep 17 00:00:00 2001 From: hondacrx Date: Tue, 6 Apr 2021 23:32:52 -0400 Subject: [PATCH] Core/Misc: Change all unix time columns in character database to bigint (signed) Port From (https://github.com/TrinityCore/TrinityCore/commit/d29dd1eeb5c52dc76bd741fe1ee0e875c416b8e7) --- .../Game/Achievements/AchievementManager.cs | 12 +-- Source/Game/AuctionHouse/AuctionManager.cs | 8 +- Source/Game/BlackMarket/BlackMarketEntry.cs | 2 +- Source/Game/Calendar/CalendarManager.cs | 6 +- Source/Game/Chat/Channels/Channel.cs | 2 +- Source/Game/Chat/Commands/BanCommands.cs | 16 +-- .../Game/Chat/Commands/CharacterCommands.cs | 2 +- Source/Game/Chat/Commands/ListCommands.cs | 4 +- Source/Game/Entities/Player/Player.DB.cs | 20 ++-- Source/Game/Events/GameEventManager.cs | 2 +- Source/Game/Garrisons/Garrisons.cs | 4 +- Source/Game/Globals/ObjectManager.cs | 13 ++- Source/Game/Groups/GroupManager.cs | 2 +- Source/Game/Guilds/Guild.cs | 6 +- Source/Game/Guilds/GuildFinderManager.cs | 2 +- .../Networking/Packets/CharacterPackets.cs | 6 +- .../Game/Networking/Packets/TicketPackets.cs | 4 +- .../Quest/QuestObjectiveCriteriaManager.cs | 4 +- Source/Game/Scenarios/InstanceScenario.cs | 4 +- Source/Game/Server/WorldManager.cs | 2 +- Source/Game/Server/WorldSession.cs | 4 +- Source/Game/Spells/SpellHistory.cs | 55 ++++++----- Source/Game/SupportSystem/SupportTickets.cs | 14 +-- sql/base/characters_database.sql | 97 ++++++++++--------- .../master/2021_04_05_00_characters.sql | 93 ++++++++++++++++++ 25 files changed, 243 insertions(+), 141 deletions(-) create mode 100644 sql/updates/characters/master/2021_04_05_00_characters.sql diff --git a/Source/Game/Achievements/AchievementManager.cs b/Source/Game/Achievements/AchievementManager.cs index 08cddacdf..d3e692873 100644 --- a/Source/Game/Achievements/AchievementManager.cs +++ b/Source/Game/Achievements/AchievementManager.cs @@ -255,7 +255,7 @@ namespace Game.Achievements continue; CompletedAchievementData ca = new(); - ca.Date = achievementResult.Read(1); + ca.Date = achievementResult.Read(1); ca.Changed = false; _achievementPoints += achievement.Points; @@ -284,7 +284,7 @@ namespace Game.Achievements { uint id = criteriaResult.Read(0); ulong counter = criteriaResult.Read(1); - long date = criteriaResult.Read(2); + long date = criteriaResult.Read(2); Criteria criteria = Global.CriteriaMgr.GetCriteria(id); if (criteria == null) @@ -768,7 +768,7 @@ namespace Game.Achievements continue; CompletedAchievementData ca = _completedAchievements[achievementid]; - ca.Date = achievementResult.Read(1); + ca.Date = achievementResult.Read(1); var guids = new StringArray(achievementResult.Read(2), ' '); if (!guids.IsEmpty()) { @@ -792,7 +792,7 @@ namespace Game.Achievements { uint id = criteriaResult.Read(0); ulong counter = criteriaResult.Read(1); - long date = criteriaResult.Read(2); + long date = criteriaResult.Read(2); ulong guidLow = criteriaResult.Read(3); Criteria criteria = Global.CriteriaMgr.GetCriteria(id); @@ -839,7 +839,7 @@ namespace Game.Achievements stmt = DB.Characters.GetPreparedStatement(CharStatements.INS_GUILD_ACHIEVEMENT); stmt.AddValue(0, _owner.GetId()); stmt.AddValue(1, pair.Key); - stmt.AddValue(2, (uint)pair.Value.Date); + stmt.AddValue(2, pair.Value.Date); foreach (var guid in pair.Value.CompletingPlayers) guidstr.AppendFormat("{0},", guid.GetCounter()); @@ -863,7 +863,7 @@ namespace Game.Achievements stmt.AddValue(0, _owner.GetId()); stmt.AddValue(1, pair.Key); stmt.AddValue(2, pair.Value.Counter); - stmt.AddValue(3, (uint)pair.Value.Date); + stmt.AddValue(3, pair.Value.Date); stmt.AddValue(4, pair.Value.PlayerGUID.GetCounter()); trans.Append(stmt); } diff --git a/Source/Game/AuctionHouse/AuctionManager.cs b/Source/Game/AuctionHouse/AuctionManager.cs index c6d691918..5afdb3d0a 100644 --- a/Source/Game/AuctionHouse/AuctionManager.cs +++ b/Source/Game/AuctionHouse/AuctionManager.cs @@ -252,8 +252,8 @@ namespace Game auction.BuyoutOrUnitPrice = result.Read(5); auction.Deposit = result.Read(6); auction.BidAmount = result.Read(7); - auction.StartTime = Time.UnixTimeToDateTime(result.Read(8)); - auction.EndTime = Time.UnixTimeToDateTime(result.Read(9)); + auction.StartTime = Time.UnixTimeToDateTime(result.Read(8)); + auction.EndTime = Time.UnixTimeToDateTime(result.Read(9)); if (biddersByAuction.ContainsKey(auction.Id)) auction.BidderHistory = biddersByAuction[auction.Id]; @@ -654,8 +654,8 @@ namespace Game stmt.AddValue(5, auction.BuyoutOrUnitPrice); stmt.AddValue(6, auction.Deposit); stmt.AddValue(7, auction.BidAmount); - stmt.AddValue(8, (uint)Time.DateTimeToUnixTime(auction.StartTime)); - stmt.AddValue(9, (uint)Time.DateTimeToUnixTime(auction.EndTime)); + stmt.AddValue(8, Time.DateTimeToUnixTime(auction.StartTime)); + stmt.AddValue(9, Time.DateTimeToUnixTime(auction.EndTime)); trans.Append(stmt); foreach (Item item in auction.Items) diff --git a/Source/Game/BlackMarket/BlackMarketEntry.cs b/Source/Game/BlackMarket/BlackMarketEntry.cs index 926e64dfb..52a2429b8 100644 --- a/Source/Game/BlackMarket/BlackMarketEntry.cs +++ b/Source/Game/BlackMarket/BlackMarketEntry.cs @@ -124,7 +124,7 @@ namespace Game.BlackMarket } _currentBid = fields.Read(1); - _secondsRemaining = (uint)(fields.Read(2) - Global.BlackMarketMgr.GetLastUpdate()); + _secondsRemaining = (uint)(fields.Read(2) - Global.BlackMarketMgr.GetLastUpdate()); _numBids = fields.Read(3); _bidder = fields.Read(4); diff --git a/Source/Game/Calendar/CalendarManager.cs b/Source/Game/Calendar/CalendarManager.cs index c916048ca..7669824f5 100644 --- a/Source/Game/Calendar/CalendarManager.cs +++ b/Source/Game/Calendar/CalendarManager.cs @@ -56,9 +56,9 @@ namespace Game string description = result.Read(3); CalendarEventType type = (CalendarEventType)result.Read(4); int textureID = result.Read(5); - uint date = result.Read(6); + long date = result.Read(6); CalendarFlags flags = (CalendarFlags)result.Read(7); - uint lockDate = result.Read(8); + long lockDate = result.Read(8); ulong guildID = 0; if (flags.HasAnyFlag(CalendarFlags.GuildEvent) || flags.HasAnyFlag(CalendarFlags.WithoutInvites)) @@ -89,7 +89,7 @@ namespace Game ObjectGuid invitee = ObjectGuid.Create(HighGuid.Player, result.Read(2)); ObjectGuid senderGUID = ObjectGuid.Create(HighGuid.Player, result.Read(3)); CalendarInviteStatus status = (CalendarInviteStatus)result.Read(4); - uint responseTime = result.Read(5); + long responseTime = result.Read(5); CalendarModerationRank rank = (CalendarModerationRank)result.Read(6); string note = result.Read(7); diff --git a/Source/Game/Chat/Channels/Channel.cs b/Source/Game/Chat/Channels/Channel.cs index 65a6a5d89..287d083e1 100644 --- a/Source/Game/Chat/Channels/Channel.cs +++ b/Source/Game/Chat/Channels/Channel.cs @@ -165,7 +165,7 @@ namespace Game.Chat if (WorldConfig.GetIntValue(WorldCfg.PreserveCustomChannelDuration) > 0) { PreparedStatement stmt = DB.Characters.GetPreparedStatement(CharStatements.DEL_OLD_CHANNELS); - stmt.AddValue(0, WorldConfig.GetIntValue(WorldCfg.PreserveCustomChannelDuration) * Time.Day); + stmt.AddValue(0, (long)(WorldConfig.GetIntValue(WorldCfg.PreserveCustomChannelDuration) * Time.Day)); DB.Characters.Execute(stmt); Log.outDebug(LogFilter.ChatSystem, "Cleaned out unused custom chat channels."); diff --git a/Source/Game/Chat/Commands/BanCommands.cs b/Source/Game/Chat/Commands/BanCommands.cs index 742d7e44e..94bd56226 100644 --- a/Source/Game/Chat/Commands/BanCommands.cs +++ b/Source/Game/Chat/Commands/BanCommands.cs @@ -245,13 +245,13 @@ namespace Game.Chat.Commands handler.SendSysMessage(CypherStrings.BaninfoBanhistory, name); do { - long unbanDate = result.Read(3); + long unbanDate = result.Read(3); bool active = false; - if (result.Read(2) && (result.Read(1) == 0 || unbanDate >= Time.UnixTime)) + if (result.Read(2) && (result.Read(1) == 0L || unbanDate >= Time.UnixTime)) active = true; - bool permanent = (result.Read(1) == 0); - string banTime = permanent ? handler.GetCypherString(CypherStrings.BaninfoInfinite) : Time.secsToTimeString(result.Read(1), true); - handler.SendSysMessage(CypherStrings.BaninfoHistoryentry, Time.UnixTimeToDateTime(result.Read(0)).ToShortTimeString(), banTime, + bool permanent = (result.Read(1) == 0L); + string banTime = permanent ? handler.GetCypherString(CypherStrings.BaninfoInfinite) : Time.secsToTimeString(result.Read(1), true); + handler.SendSysMessage(CypherStrings.BaninfoHistoryentry, Time.UnixTimeToDateTime(result.Read(0)).ToShortTimeString(), banTime, active ? handler.GetCypherString(CypherStrings.Yes) : handler.GetCypherString(CypherStrings.No), result.Read(4), result.Read(5)); } while (result.NextRow()); @@ -399,12 +399,12 @@ namespace Game.Chat.Commands { do { - long timeBan = banInfo.Read(0); + long timeBan = banInfo.Read(0); DateTime tmBan = Time.UnixTimeToDateTime(timeBan); string bannedby = banInfo.Read(2).Substring(0, 15); string banreason = banInfo.Read(3).Substring(0, 15); - if (banInfo.Read(0) == banInfo.Read(1)) + if (banInfo.Read(0) == banInfo.Read(1)) { handler.SendSysMessage("|{0}|{1:D2}-{2:D2}-{3:D2} {4:D2}:{5:D2}| permanent |{6}|{7}|", char_name, tmBan.Year % 100, tmBan.Month + 1, tmBan.Day, tmBan.Hour, tmBan.Minute, @@ -412,7 +412,7 @@ namespace Game.Chat.Commands } else { - long timeUnban = banInfo.Read(1); + long timeUnban = banInfo.Read(1); DateTime tmUnban = Time.UnixTimeToDateTime(timeUnban); handler.SendSysMessage("|{0}|{1:D2}-{2:D2}-{3:D2} {4:D2}:{5:D2}|{6:D2}-{7:D2}-{8:D2} {9:D2}:{10:D2}|{11}|{12}|", char_name, tmBan.Year % 100, tmBan.Month + 1, tmBan.Day, tmBan.Hour, tmBan.Minute, diff --git a/Source/Game/Chat/Commands/CharacterCommands.cs b/Source/Game/Chat/Commands/CharacterCommands.cs index 471767ab4..219ec1e29 100644 --- a/Source/Game/Chat/Commands/CharacterCommands.cs +++ b/Source/Game/Chat/Commands/CharacterCommands.cs @@ -654,7 +654,7 @@ namespace Game.Chat // account name will be empty for not existed account Global.AccountMgr.GetName(info.accountId, out info.accountName); - info.deleteDate = result.Read(3); + info.deleteDate = result.Read(3); foundList.Add(info); } while (result.NextRow()); diff --git a/Source/Game/Chat/Commands/ListCommands.cs b/Source/Game/Chat/Commands/ListCommands.cs index 37b7403cb..24f31f6fc 100644 --- a/Source/Game/Chat/Commands/ListCommands.cs +++ b/Source/Game/Chat/Commands/ListCommands.cs @@ -407,8 +407,8 @@ namespace Game.Chat.Commands ulong receiverId = result1.Read(3); string receiver = result1.Read(4); string subject = result1.Read(5); - long deliverTime = result1.Read(6); - long expireTime = result1.Read(7); + long deliverTime = result1.Read(6); + long expireTime = result1.Read(7); ulong money = result1.Read(8); byte hasItem = result1.Read(9); uint gold = (uint)(money / MoneyConstants.Gold); diff --git a/Source/Game/Entities/Player/Player.DB.cs b/Source/Game/Entities/Player/Player.DB.cs index e6c252f54..fba76e96a 100644 --- a/Source/Game/Entities/Player/Player.DB.cs +++ b/Source/Game/Entities/Player/Player.DB.cs @@ -692,7 +692,7 @@ namespace Game.Entities GetName(), GetGUID().ToString(), quest_id, qstatus); } - long quest_time = result.Read(2); + long quest_time = result.Read(2); if (quest.HasSpecialFlag(QuestSpecialFlags.Timed) && !GetQuestRewardStatus(quest_id)) { @@ -851,7 +851,7 @@ namespace Game.Entities } // save _any_ from daily quest times (it must be after last reset anyway) - m_lastDailyQuestTime = result.Read(1); + m_lastDailyQuestTime = result.Read(1); Quest quest = Global.ObjectMgr.GetQuestTemplate(quest_id); if (quest == null) @@ -1176,8 +1176,8 @@ namespace Game.Entities m.receiver = result.Read(3); m.subject = result.Read(4); m.body = result.Read(5); - m.expire_time = result.Read(6); - m.deliver_time = result.Read(7); + m.expire_time = result.Read(6); + m.deliver_time = result.Read(7); m.money = result.Read(8); m.COD = result.Read(9); m.checkMask = (MailCheckMask)result.Read(10); @@ -2544,10 +2544,10 @@ namespace Game.Entities uint totaltime = result.Read (fieldIndex++); uint leveltime = result.Read(fieldIndex++); float rest_bonus = result.Read(fieldIndex++); - uint logout_time = result.Read(fieldIndex++); + long logout_time = result.Read(fieldIndex++); byte is_logout_resting = result.Read(fieldIndex++); uint resettalents_cost = result.Read(fieldIndex++); - uint resettalents_time = result.Read(fieldIndex++); + long resettalents_time = result.Read(fieldIndex++); uint primarySpecialization = result.Read(fieldIndex++); float trans_x = result.Read(fieldIndex++); float trans_y = result.Read(fieldIndex++); @@ -2559,7 +2559,7 @@ namespace Game.Entities ushort at_login = result.Read(fieldIndex++); ushort zone = result.Read(fieldIndex++); byte online = result.Read(fieldIndex++); - uint death_expire_time = result.Read(fieldIndex++); + long death_expire_time = result.Read(fieldIndex++); string taxi_path = result.Read(fieldIndex++); Difficulty dungeonDifficulty = (Difficulty)result.Read(fieldIndex++); uint totalKills = result.Read(fieldIndex++); @@ -3381,7 +3381,7 @@ namespace Game.Entities stmt.AddValue(index++, m_PlayedTimeTotal); stmt.AddValue(index++, m_PlayedTimeLevel); stmt.AddValue(index++, finiteAlways(_restMgr.GetRestBonus(RestTypes.XP))); - stmt.AddValue(index++, (uint)Time.UnixTime); + stmt.AddValue(index++, Time.UnixTime); stmt.AddValue(index++, (HasPlayerFlag(PlayerFlags.Resting) ? 1 : 0)); //save, far from tavern/city //save, but in tavern/city @@ -3392,7 +3392,7 @@ namespace Game.Entities stmt.AddValue(index++, m_stableSlots); stmt.AddValue(index++, (ushort)atLoginFlags); stmt.AddValue(index++, GetZoneId()); - stmt.AddValue(index++, (uint)m_deathExpireTime); + stmt.AddValue(index++, m_deathExpireTime); ss.Clear(); ss.Append(m_taxi.SaveTaxiDestinationsToString()); @@ -3521,7 +3521,7 @@ namespace Game.Entities stmt.AddValue(index++, m_PlayedTimeTotal); stmt.AddValue(index++, m_PlayedTimeLevel); stmt.AddValue(index++, finiteAlways(_restMgr.GetRestBonus(RestTypes.XP))); - stmt.AddValue(index++, (uint)Time.UnixTime); + stmt.AddValue(index++, Time.UnixTime); stmt.AddValue(index++, (HasPlayerFlag(PlayerFlags.Resting) ? 1 : 0)); //save, far from tavern/city //save, but in tavern/city diff --git a/Source/Game/Events/GameEventManager.cs b/Source/Game/Events/GameEventManager.cs index 071e4e59f..108dea80e 100644 --- a/Source/Game/Events/GameEventManager.cs +++ b/Source/Game/Events/GameEventManager.cs @@ -1543,7 +1543,7 @@ namespace Game stmt = DB.Characters.GetPreparedStatement(CharStatements.INS_GAME_EVENT_SAVE); stmt.AddValue(0, event_id); stmt.AddValue(1, mGameEvent[event_id].state); - stmt.AddValue(2, mGameEvent[event_id].nextstart != 0 ? mGameEvent[event_id].nextstart : 0); + stmt.AddValue(2, mGameEvent[event_id].nextstart != 0 ? mGameEvent[event_id].nextstart : 0L); trans.Append(stmt); DB.Characters.CommitTransaction(trans); } diff --git a/Source/Game/Garrisons/Garrisons.cs b/Source/Game/Garrisons/Garrisons.cs index 6bb872d79..8e785dbb2 100644 --- a/Source/Game/Garrisons/Garrisons.cs +++ b/Source/Game/Garrisons/Garrisons.cs @@ -66,7 +66,7 @@ namespace Game.Garrisons { uint plotInstanceId = buildings.Read(0); uint buildingId = buildings.Read(1); - ulong timeBuilt = buildings.Read(2); + long timeBuilt = buildings.Read(2); bool active = buildings.Read(3); @@ -80,7 +80,7 @@ namespace Game.Garrisons plot.BuildingInfo.PacketInfo.HasValue = true; plot.BuildingInfo.PacketInfo.Value.GarrPlotInstanceID = plotInstanceId; plot.BuildingInfo.PacketInfo.Value.GarrBuildingID = buildingId; - plot.BuildingInfo.PacketInfo.Value.TimeBuilt = (long)timeBuilt; + plot.BuildingInfo.PacketInfo.Value.TimeBuilt = timeBuilt; plot.BuildingInfo.PacketInfo.Value.Active = active; } while (buildings.NextRow()); diff --git a/Source/Game/Globals/ObjectManager.cs b/Source/Game/Globals/ObjectManager.cs index 1fa2f7995..4145e9ab0 100644 --- a/Source/Game/Globals/ObjectManager.cs +++ b/Source/Game/Globals/ObjectManager.cs @@ -9085,7 +9085,6 @@ namespace Game long curTime = Time.UnixTime; DateTime lt = Time.UnixTimeToDateTime(curTime).ToLocalTime(); - long basetime = curTime; Log.outInfo(LogFilter.Server, "Returning mails current time: hour: {0}, minute: {1}, second: {2} ", lt.Hour, lt.Minute, lt.Second); PreparedStatement stmt; @@ -9093,11 +9092,11 @@ namespace Game if (!serverUp) { stmt = DB.Characters.GetPreparedStatement(CharStatements.DEL_EMPTY_EXPIRED_MAIL); - stmt.AddValue(0, basetime); + stmt.AddValue(0, curTime); DB.Characters.Execute(stmt); } stmt = DB.Characters.GetPreparedStatement(CharStatements.SEL_EXPIRED_MAIL); - stmt.AddValue(0, basetime); + stmt.AddValue(0, curTime); SQLResult result = DB.Characters.Query(stmt); if (result.IsEmpty()) { @@ -9107,7 +9106,7 @@ namespace Game MultiMap itemsCache = new(); stmt = DB.Characters.GetPreparedStatement(CharStatements.SEL_EXPIRED_MAIL_ITEMS); - stmt.AddValue(0, (uint)basetime); + stmt.AddValue(0, curTime); SQLResult items = DB.Characters.Query(stmt); if (!items.IsEmpty()) { @@ -9131,7 +9130,7 @@ namespace Game m.sender = result.Read(2); m.receiver = result.Read(3); bool has_items = result.Read(4); - m.expire_time = result.Read(5); + m.expire_time = result.Read(5); m.deliver_time = 0; m.COD = result.Read(6); m.checkMask = (MailCheckMask)result.Read(7); @@ -9175,8 +9174,8 @@ namespace Game stmt = DB.Characters.GetPreparedStatement(CharStatements.UPD_MAIL_RETURNED); stmt.AddValue(0, m.receiver); stmt.AddValue(1, m.sender); - stmt.AddValue(2, basetime + 30 * Time.Day); - stmt.AddValue(3, basetime); + stmt.AddValue(2, curTime + 30 * Time.Day); + stmt.AddValue(3, curTime); stmt.AddValue(4, MailCheckMask.Returned); stmt.AddValue(5, m.messageID); DB.Characters.Execute(stmt); diff --git a/Source/Game/Groups/GroupManager.cs b/Source/Game/Groups/GroupManager.cs index a6d2cb3b2..0c2e78774 100644 --- a/Source/Game/Groups/GroupManager.cs +++ b/Source/Game/Groups/GroupManager.cs @@ -212,7 +212,7 @@ namespace Game.Groups if (difficultyEntry == null || difficultyEntry.InstanceType != mapEntry.InstanceType) continue; - InstanceSave save = Global.InstanceSaveMgr.AddInstanceSave(mapEntry.Id, result.Read(2), (Difficulty)diff, result.Read(5), result.Read(6), result.Read(7) == 0, true); + InstanceSave save = Global.InstanceSaveMgr.AddInstanceSave(mapEntry.Id, result.Read(2), (Difficulty)diff, result.Read(5), result.Read(6), result.Read(7) == 0, true); group.BindToInstance(save, result.Read(3), true); ++count; } diff --git a/Source/Game/Guilds/Guild.cs b/Source/Game/Guilds/Guild.cs index 148418d22..abacc9b4f 100644 --- a/Source/Game/Guilds/Guild.cs +++ b/Source/Game/Guilds/Guild.cs @@ -1259,7 +1259,7 @@ namespace Game.Guilds m_eventLog.LoadEvent(new EventLogEntry( m_id, // guild id field.Read(1), // guid - field.Read(6), // timestamp + field.Read(6), // timestamp (GuildEventLogTypes)field.Read(2), // event type field.Read(3), // player guid 1 field.Read(4), // player guid 2 @@ -1297,7 +1297,7 @@ namespace Game.Guilds pLog.LoadEvent(new BankEventLogEntry( m_id, // guild id guid, // guid - field.Read(8), // timestamp + field.Read(8), // timestamp dbTabId, // tab id eventType, // event type field.Read(4), // player guid @@ -1317,7 +1317,7 @@ namespace Game.Guilds var news = new NewsLogEntry( m_id, // guild id field.Read(1), // guid - field.Read(6), // timestamp //64 bits? + field.Read(6), // timestamp //64 bits? (GuildNews)field.Read(2), // type ObjectGuid.Create(HighGuid.Player, field.Read(3)), // player guid field.Read(4), // Flags diff --git a/Source/Game/Guilds/GuildFinderManager.cs b/Source/Game/Guilds/GuildFinderManager.cs index 67598b849..fd25ef74b 100644 --- a/Source/Game/Guilds/GuildFinderManager.cs +++ b/Source/Game/Guilds/GuildFinderManager.cs @@ -97,7 +97,7 @@ namespace Game.Guilds byte classRoles = result.Read(3); byte interests = result.Read(4); string comment = result.Read(5); - uint submitTime = result.Read(6); + long submitTime = result.Read(6); MembershipRequest request = new(playerId, guildId, availability, classRoles, interests, comment, submitTime); diff --git a/Source/Game/Networking/Packets/CharacterPackets.cs b/Source/Game/Networking/Packets/CharacterPackets.cs index 1f69b4f57..a98dccba5 100644 --- a/Source/Game/Networking/Packets/CharacterPackets.cs +++ b/Source/Game/Networking/Packets/CharacterPackets.cs @@ -143,7 +143,7 @@ namespace Game.Networking.Packets StringArguments equipment = new(fields.Read(17)); ListPosition = fields.Read(19); - LastPlayedTime = fields.Read(20); + LastPlayedTime = fields.Read(20); var spec = Global.DB2Mgr.GetChrSpecializationByIndex(ClassId, fields.Read(21)); if (spec != null) @@ -188,7 +188,7 @@ namespace Game.Networking.Packets foreach (var visualItem in VisualItems) visualItem.Write(data); - data.WriteUInt32(LastPlayedTime); + data.WriteUInt32((uint)LastPlayedTime); data.WriteUInt16(SpecID); data.WriteUInt32(Unknown703); data.WriteUInt32(LastLoginVersion); @@ -242,7 +242,7 @@ namespace Game.Networking.Packets public uint Flags4; public bool FirstLogin; public byte unkWod61x; - public uint LastPlayedTime; + public long LastPlayedTime; public ushort SpecID; public uint Unknown703; public uint LastLoginVersion; diff --git a/Source/Game/Networking/Packets/TicketPackets.cs b/Source/Game/Networking/Packets/TicketPackets.cs index 0ae2919e3..ddc47d9d5 100644 --- a/Source/Game/Networking/Packets/TicketPackets.cs +++ b/Source/Game/Networking/Packets/TicketPackets.cs @@ -224,9 +224,9 @@ namespace Game.Networking.Packets Text = data.ReadString(data.ReadBits(12)); } - public SupportTicketChatLine(uint timestamp, string text) + public SupportTicketChatLine(long timestamp, string text) { - Timestamp = timestamp; + Timestamp = (uint)timestamp; Text = text; } diff --git a/Source/Game/Quest/QuestObjectiveCriteriaManager.cs b/Source/Game/Quest/QuestObjectiveCriteriaManager.cs index fbf231076..721c28542 100644 --- a/Source/Game/Quest/QuestObjectiveCriteriaManager.cs +++ b/Source/Game/Quest/QuestObjectiveCriteriaManager.cs @@ -91,7 +91,7 @@ namespace Game { uint criteriaId = criteriaResult.Read(0); ulong counter = criteriaResult.Read(1); - long date = criteriaResult.Read(2); + long date = criteriaResult.Read(2); Criteria criteria = Global.CriteriaMgr.GetCriteria(criteriaId); if (criteria == null) @@ -154,7 +154,7 @@ namespace Game stmt.AddValue(0, _owner.GetGUID().GetCounter()); stmt.AddValue(1, pair.Key); stmt.AddValue(2, pair.Value.Counter); - stmt.AddValue(3, (uint)pair.Value.Date); + stmt.AddValue(3, pair.Value.Date); trans.Append(stmt); } diff --git a/Source/Game/Scenarios/InstanceScenario.cs b/Source/Game/Scenarios/InstanceScenario.cs index 3ea251dac..af91b59ff 100644 --- a/Source/Game/Scenarios/InstanceScenario.cs +++ b/Source/Game/Scenarios/InstanceScenario.cs @@ -83,7 +83,7 @@ namespace Game.Scenarios stmt.AddValue(0, id); stmt.AddValue(1, iter.Key); stmt.AddValue(2, iter.Value.Counter); - stmt.AddValue(3, (uint)iter.Value.Date); + stmt.AddValue(3, iter.Value.Date); trans.Append(stmt); } @@ -109,7 +109,7 @@ namespace Game.Scenarios { uint id = result.Read(0); ulong counter = result.Read(1); - long date = result.Read(2); + long date = result.Read(2); Criteria criteria = Global.CriteriaMgr.GetCriteria(id); if (criteria == null) diff --git a/Source/Game/Server/WorldManager.cs b/Source/Game/Server/WorldManager.cs index 79e5468dc..0866baeb5 100644 --- a/Source/Game/Server/WorldManager.cs +++ b/Source/Game/Server/WorldManager.cs @@ -1691,7 +1691,7 @@ namespace Game stmt = DB.Characters.GetPreparedStatement(CharStatements.INS_CHARACTER_BAN); stmt.AddValue(0, guid.GetCounter()); - stmt.AddValue(1, duration_secs); + stmt.AddValue(1, (long)duration_secs); stmt.AddValue(2, author); stmt.AddValue(3, reason); trans.Append(stmt); diff --git a/Source/Game/Server/WorldSession.cs b/Source/Game/Server/WorldSession.cs index cbc05da4b..cb31e6c9b 100644 --- a/Source/Game/Server/WorldSession.cs +++ b/Source/Game/Server/WorldSession.cs @@ -514,7 +514,7 @@ namespace Game continue; } - _accountData[type].Time = result.Read(1); + _accountData[type].Time = result.Read(1); var bytes = result.Read(2); var line = Encoding.Default.GetString(bytes); _accountData[type].Data = line; @@ -522,7 +522,7 @@ namespace Game while (result.NextRow()); } - void SetAccountData(AccountDataTypes type, uint time, string data) + void SetAccountData(AccountDataTypes type, long time, string data) { if (Convert.ToBoolean((1 << (int)type) & (int)AccountDataTypes.GlobalCacheMask)) { diff --git a/Source/Game/Spells/SpellHistory.cs b/Source/Game/Spells/SpellHistory.cs index 5c1e51745..802a34212 100644 --- a/Source/Game/Spells/SpellHistory.cs +++ b/Source/Game/Spells/SpellHistory.cs @@ -39,22 +39,29 @@ namespace Game.Spells { do { - uint spellId = cooldownsResult.Read(0); - if (!Global.SpellMgr.HasSpellInfo(spellId, Difficulty.None)) + CooldownEntry cooldownEntry = new(); + cooldownEntry.SpellId = cooldownsResult.Read(0); + if (!Global.SpellMgr.HasSpellInfo(cooldownEntry.SpellId, Difficulty.None)) continue; - int index = (typeof(T) == typeof(Pet) ? 1 : 2); + if (typeof(T) == typeof(Pet)) + { + cooldownEntry.CooldownEnd = Time.UnixTimeToDateTime(cooldownsResult.Read(1)); + cooldownEntry.ItemId = 0; + cooldownEntry.CategoryId = cooldownsResult.Read(2); + cooldownEntry.CategoryEnd = Time.UnixTimeToDateTime(cooldownsResult.Read(3)); + } + else + { + cooldownEntry.CooldownEnd = Time.UnixTimeToDateTime(cooldownsResult.Read(2)); + cooldownEntry.ItemId = cooldownsResult.Read(1); + cooldownEntry.CategoryId = cooldownsResult.Read(3); + cooldownEntry.CategoryEnd = Time.UnixTimeToDateTime(cooldownsResult.Read(4)); + } - CooldownEntry cooldownEntry = new(); - cooldownEntry.SpellId = spellId; - cooldownEntry.CooldownEnd = Time.UnixTimeToDateTime(cooldownsResult.Read(index++)); - cooldownEntry.ItemId = 0; - cooldownEntry.CategoryId = cooldownsResult.Read(index++); - cooldownEntry.CategoryEnd = Time.UnixTimeToDateTime(cooldownsResult.Read(index++)); - - _spellCooldowns[spellId] = cooldownEntry; + _spellCooldowns[cooldownEntry.SpellId] = cooldownEntry; if (cooldownEntry.CategoryId != 0) - _categoryCooldowns[cooldownEntry.CategoryId] = _spellCooldowns[spellId]; + _categoryCooldowns[cooldownEntry.CategoryId] = _spellCooldowns[cooldownEntry.SpellId]; } while (cooldownsResult.NextRow()); } @@ -69,8 +76,8 @@ namespace Game.Spells continue; ChargeEntry charges; - charges.RechargeStart = Time.UnixTimeToDateTime(chargesResult.Read(1)); - charges.RechargeEnd = Time.UnixTimeToDateTime(chargesResult.Read(2)); + charges.RechargeStart = Time.UnixTimeToDateTime(chargesResult.Read(1)); + charges.RechargeEnd = Time.UnixTimeToDateTime(chargesResult.Read(2)); _categoryCharges.Add(categoryId, charges); } while (chargesResult.NextRow()); @@ -90,7 +97,7 @@ namespace Game.Spells stmt.AddValue(0, _owner.GetCharmInfo().GetPetNumber()); trans.Append(stmt); - byte index = 0; + byte index; foreach (var pair in _spellCooldowns) { if (!pair.Value.OnHold) @@ -99,9 +106,9 @@ namespace Game.Spells stmt = DB.Characters.GetPreparedStatement(CharStatements.INS_PET_SPELL_COOLDOWN); stmt.AddValue(index++, _owner.GetCharmInfo().GetPetNumber()); stmt.AddValue(index++, pair.Key); - stmt.AddValue(index++, (uint)Time.DateTimeToUnixTime(pair.Value.CooldownEnd)); + stmt.AddValue(index++, Time.DateTimeToUnixTime(pair.Value.CooldownEnd)); stmt.AddValue(index++, pair.Value.CategoryId); - stmt.AddValue(index++, (uint)Time.DateTimeToUnixTime(pair.Value.CategoryEnd)); + stmt.AddValue(index++, Time.DateTimeToUnixTime(pair.Value.CategoryEnd)); trans.Append(stmt); } } @@ -112,8 +119,8 @@ namespace Game.Spells stmt = DB.Characters.GetPreparedStatement(CharStatements.INS_PET_SPELL_CHARGES); stmt.AddValue(index++, _owner.GetCharmInfo().GetPetNumber()); stmt.AddValue(index++, pair.Key); - stmt.AddValue(index++, (uint)Time.DateTimeToUnixTime(pair.Value.RechargeStart)); - stmt.AddValue(index++, (uint)Time.DateTimeToUnixTime(pair.Value.RechargeEnd)); + stmt.AddValue(index++, Time.DateTimeToUnixTime(pair.Value.RechargeStart)); + stmt.AddValue(index++, Time.DateTimeToUnixTime(pair.Value.RechargeEnd)); trans.Append(stmt); } } @@ -127,7 +134,7 @@ namespace Game.Spells stmt.AddValue(0, _owner.GetGUID().GetCounter()); trans.Append(stmt); - byte index = 0; + byte index; foreach (var pair in _spellCooldowns) { if (!pair.Value.OnHold) @@ -137,9 +144,9 @@ namespace Game.Spells stmt.AddValue(index++, _owner.GetGUID().GetCounter()); stmt.AddValue(index++, pair.Key); stmt.AddValue(index++, pair.Value.ItemId); - stmt.AddValue(index++, (uint)Time.DateTimeToUnixTime(pair.Value.CooldownEnd)); + stmt.AddValue(index++, Time.DateTimeToUnixTime(pair.Value.CooldownEnd)); stmt.AddValue(index++, pair.Value.CategoryId); - stmt.AddValue(index++, (uint)Time.DateTimeToUnixTime(pair.Value.CategoryEnd)); + stmt.AddValue(index++, Time.DateTimeToUnixTime(pair.Value.CategoryEnd)); trans.Append(stmt); } } @@ -150,8 +157,8 @@ namespace Game.Spells stmt = DB.Characters.GetPreparedStatement(CharStatements.INS_CHAR_SPELL_CHARGES); stmt.AddValue(index++, _owner.GetGUID().GetCounter()); stmt.AddValue(index++, pair.Key); - stmt.AddValue(index++, (uint)Time.DateTimeToUnixTime(pair.Value.RechargeStart)); - stmt.AddValue(index++, (uint)Time.DateTimeToUnixTime(pair.Value.RechargeEnd)); + stmt.AddValue(index++, Time.DateTimeToUnixTime(pair.Value.RechargeStart)); + stmt.AddValue(index++, Time.DateTimeToUnixTime(pair.Value.RechargeEnd)); trans.Append(stmt); } } diff --git a/Source/Game/SupportSystem/SupportTickets.cs b/Source/Game/SupportSystem/SupportTickets.cs index e950b0e92..71ab89d70 100644 --- a/Source/Game/SupportSystem/SupportTickets.cs +++ b/Source/Game/SupportSystem/SupportTickets.cs @@ -116,7 +116,6 @@ namespace Game.SupportSystem float _facing; string _note; - public BugTicket() { _note = ""; @@ -134,7 +133,7 @@ namespace Game.SupportSystem _id = fields.Read(idx); _playerGuid = ObjectGuid.Create(HighGuid.Player, fields.Read(++idx)); _note = fields.Read(++idx); - _createTime = fields.Read(++idx); + _createTime = fields.Read(++idx); _mapId = fields.Read(++idx); _pos = new Vector3(fields.Read(++idx), fields.Read(++idx), fields.Read(++idx)); _facing = fields.Read(++idx); @@ -163,6 +162,7 @@ namespace Game.SupportSystem stmt.AddValue(idx, _id); stmt.AddValue(++idx, _playerGuid.GetCounter()); stmt.AddValue(++idx, _note); + stmt.AddValue(++idx, _createTime); stmt.AddValue(++idx, _mapId); stmt.AddValue(++idx, _pos.X); stmt.AddValue(++idx, _pos.Y); @@ -184,7 +184,7 @@ namespace Game.SupportSystem public override string FormatViewMessageString(CommandHandler handler, bool detailed = false) { - ulong curTime = (ulong)Time.UnixTime; + var curTime = (ulong)Time.UnixTime; StringBuilder ss = new(); ss.Append(handler.GetParsedString(CypherStrings.CommandTicketlistguid, _id)); @@ -234,7 +234,7 @@ namespace Game.SupportSystem _id = fields.Read(idx); _playerGuid = ObjectGuid.Create(HighGuid.Player, fields.Read(++idx)); _note = fields.Read(++idx); - _createTime = fields.Read(++idx); + _createTime = fields.Read(++idx); _mapId = fields.Read(++idx); _pos = new Vector3(fields.Read(++idx), fields.Read(++idx), fields.Read(++idx)); _facing = fields.Read(++idx); @@ -263,7 +263,7 @@ namespace Game.SupportSystem public void LoadChatLineFromDB(SQLFields fields) { - _chatLog.Lines.Add(new SupportTicketSubmitComplaint.SupportTicketChatLine(fields.Read(0), fields.Read(1))); + _chatLog.Lines.Add(new SupportTicketSubmitComplaint.SupportTicketChatLine(fields.Read(0), fields.Read(1))); } public override void SaveToDB() @@ -275,6 +275,7 @@ namespace Game.SupportSystem stmt.AddValue(idx, _id); stmt.AddValue(++idx, _playerGuid.GetCounter()); stmt.AddValue(++idx, _note); + stmt.AddValue(++idx, _createTime); stmt.AddValue(++idx, _mapId); stmt.AddValue(++idx, _pos.X); stmt.AddValue(++idx, _pos.Y); @@ -376,7 +377,7 @@ namespace Game.SupportSystem _id = fields.Read(idx); _playerGuid = ObjectGuid.Create(HighGuid.Player, fields.Read(++idx)); _note = fields.Read(++idx); - _createTime = fields.Read(++idx); + _createTime = fields.Read(++idx); _mapId = fields.Read(++idx); _pos = new Vector3(fields.Read(++idx), fields.Read(++idx), fields.Read(++idx)); _facing = fields.Read(++idx); @@ -405,6 +406,7 @@ namespace Game.SupportSystem stmt.AddValue(idx, _id); stmt.AddValue(++idx, _playerGuid.GetCounter()); stmt.AddValue(++idx, _note); + stmt.AddValue(++idx, _createTime); stmt.AddValue(++idx, _mapId); stmt.AddValue(++idx, _pos.X); stmt.AddValue(++idx, _pos.Y); diff --git a/sql/base/characters_database.sql b/sql/base/characters_database.sql index 98bee12f4..4d8786510 100644 --- a/sql/base/characters_database.sql +++ b/sql/base/characters_database.sql @@ -25,7 +25,7 @@ DROP TABLE IF EXISTS `account_data`; CREATE TABLE `account_data` ( `accountId` int(10) unsigned NOT NULL DEFAULT '0' COMMENT 'Account Identifier', `type` tinyint(3) unsigned NOT NULL DEFAULT '0', - `time` int(10) unsigned NOT NULL DEFAULT '0', + `time` bigint(20) NOT NULL DEFAULT '0', `data` blob NOT NULL, PRIMARY KEY (`accountId`,`type`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; @@ -221,8 +221,8 @@ CREATE TABLE `auctionhouse` ( `buyoutOrUnitPrice` bigint(20) unsigned NOT NULL DEFAULT '0', `deposit` bigint(20) unsigned NOT NULL DEFAULT '0', `bidAmount` bigint(20) unsigned NOT NULL DEFAULT '0', - `startTime` int(10) unsigned NOT NULL DEFAULT '0', - `endTime` int(10) unsigned NOT NULL DEFAULT '0', + `startTime` bigint(20) NOT NULL DEFAULT '0', + `endTime` bigint(20) NOT NULL DEFAULT '0', PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; @@ -246,7 +246,7 @@ DROP TABLE IF EXISTS `blackmarket_auctions`; CREATE TABLE `blackmarket_auctions` ( `marketId` int(10) NOT NULL DEFAULT '0', `currentBid` bigint(20) unsigned NOT NULL DEFAULT '0', - `time` int(10) NOT NULL DEFAULT '0', + `time` bigint(20) NOT NULL DEFAULT '0', `numBids` int(10) NOT NULL DEFAULT '0', `bidder` bigint(20) unsigned NOT NULL DEFAULT '0', PRIMARY KEY (`marketId`) @@ -300,9 +300,9 @@ CREATE TABLE `calendar_events` ( `Description` varchar(255) NOT NULL DEFAULT '', `EventType` tinyint(1) unsigned NOT NULL DEFAULT '4', `TextureID` int(10) NOT NULL DEFAULT '-1', - `Date` int(10) unsigned NOT NULL DEFAULT '0', + `Date` bigint(20) NOT NULL DEFAULT '0', `Flags` int(10) unsigned NOT NULL DEFAULT '0', - `LockDate` int(10) unsigned NOT NULL DEFAULT '0', + `LockDate` bigint(20) NOT NULL DEFAULT '0', PRIMARY KEY (`EventID`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; @@ -329,7 +329,7 @@ CREATE TABLE `calendar_invites` ( `Invitee` bigint(20) unsigned NOT NULL DEFAULT '0', `Sender` bigint(20) unsigned NOT NULL DEFAULT '0', `Status` tinyint(1) unsigned NOT NULL DEFAULT '0', - `ResponseTime` int(10) unsigned NOT NULL DEFAULT '0', + `ResponseTime` bigint(20) NOT NULL DEFAULT '0', `ModerationRank` tinyint(1) unsigned NOT NULL DEFAULT '0', `Note` varchar(255) NOT NULL DEFAULT '', PRIMARY KEY (`InviteID`) @@ -359,7 +359,7 @@ CREATE TABLE `channels` ( `ownership` tinyint(3) unsigned NOT NULL DEFAULT '1', `password` varchar(32) DEFAULT NULL, `bannedList` text, - `lastUsed` int(10) unsigned NOT NULL, + `lastUsed` bigint(20) unsigned NOT NULL, PRIMARY KEY (`name`,`team`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='Channel System'; /*!40101 SET character_set_client = @saved_cs_client */; @@ -383,7 +383,7 @@ DROP TABLE IF EXISTS `character_account_data`; CREATE TABLE `character_account_data` ( `guid` bigint(20) unsigned NOT NULL DEFAULT '0', `type` tinyint(3) unsigned NOT NULL DEFAULT '0', - `time` int(10) unsigned NOT NULL DEFAULT '0', + `time` bigint(20) NOT NULL DEFAULT '0', `data` blob NOT NULL, PRIMARY KEY (`guid`,`type`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; @@ -408,7 +408,7 @@ DROP TABLE IF EXISTS `character_achievement`; CREATE TABLE `character_achievement` ( `guid` bigint(20) unsigned NOT NULL, `achievement` int(10) unsigned NOT NULL, - `date` int(10) unsigned NOT NULL DEFAULT '0', + `date` bigint(20) NOT NULL DEFAULT '0', PRIMARY KEY (`guid`,`achievement`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; @@ -433,7 +433,7 @@ CREATE TABLE `character_achievement_progress` ( `guid` bigint(20) unsigned NOT NULL, `criteria` int(10) unsigned NOT NULL, `counter` bigint(20) unsigned NOT NULL, - `date` int(10) unsigned NOT NULL DEFAULT '0', + `date` bigint(20) NOT NULL DEFAULT '0', PRIMARY KEY (`guid`,`criteria`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; @@ -597,8 +597,8 @@ DROP TABLE IF EXISTS `character_banned`; /*!40101 SET character_set_client = utf8 */; CREATE TABLE `character_banned` ( `guid` bigint(20) unsigned NOT NULL DEFAULT '0' COMMENT 'Global Unique Identifier', - `bandate` int(10) unsigned NOT NULL DEFAULT '0', - `unbandate` int(10) unsigned NOT NULL DEFAULT '0', + `bandate` bigint(20) NOT NULL DEFAULT '0', + `unbandate` bigint(20) NOT NULL DEFAULT '0', `bannedby` varchar(50) NOT NULL, `banreason` varchar(255) NOT NULL, `active` tinyint(3) unsigned NOT NULL DEFAULT '1', @@ -939,7 +939,7 @@ CREATE TABLE `character_garrison_buildings` ( `guid` bigint(20) unsigned NOT NULL, `plotInstanceId` int(10) unsigned NOT NULL DEFAULT '0', `buildingId` int(10) unsigned NOT NULL DEFAULT '0', - `timeBuilt` bigint(20) unsigned NOT NULL, + `timeBuilt` bigint(20) NOT NULL, `active` tinyint(3) unsigned NOT NULL DEFAULT '0', PRIMARY KEY (`guid`,`plotInstanceId`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; @@ -1250,7 +1250,7 @@ CREATE TABLE `character_queststatus` ( `guid` bigint(20) unsigned NOT NULL DEFAULT '0', `quest` int(10) unsigned NOT NULL DEFAULT '0', `status` tinyint(3) unsigned NOT NULL DEFAULT '0', - `timer` int(10) unsigned NOT NULL DEFAULT '0', + `timer` bigint(20) NOT NULL DEFAULT '0', PRIMARY KEY (`guid`,`quest`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='Player System'; /*!40101 SET character_set_client = @saved_cs_client */; @@ -1274,7 +1274,7 @@ DROP TABLE IF EXISTS `character_queststatus_daily`; CREATE TABLE `character_queststatus_daily` ( `guid` bigint(20) unsigned NOT NULL DEFAULT '0' COMMENT 'Global Unique Identifier', `quest` int(10) unsigned NOT NULL DEFAULT '0' COMMENT 'Quest Identifier', - `time` int(10) unsigned NOT NULL DEFAULT '0', + `time` bigint(20) NOT NULL DEFAULT '0', PRIMARY KEY (`guid`,`quest`), KEY `idx_guid` (`guid`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='Player System'; @@ -1372,7 +1372,7 @@ CREATE TABLE `character_queststatus_objectives_criteria_progress` ( `guid` bigint(20) unsigned NOT NULL, `criteriaId` int(10) unsigned NOT NULL, `counter` bigint(20) unsigned NOT NULL, - `date` int(10) unsigned NOT NULL DEFAULT '0', + `date` bigint(20) NOT NULL DEFAULT '0', PRIMARY KEY (`guid`,`criteriaId`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='Player System'; /*!40101 SET character_set_client = @saved_cs_client */; @@ -1570,8 +1570,8 @@ DROP TABLE IF EXISTS `character_spell_charges`; CREATE TABLE `character_spell_charges` ( `guid` bigint(20) unsigned NOT NULL DEFAULT '0' COMMENT 'Global Unique Identifier, Low part', `categoryId` int(10) unsigned NOT NULL DEFAULT '0' COMMENT 'SpellCategory.dbc Identifier', - `rechargeStart` int(10) unsigned NOT NULL DEFAULT '0', - `rechargeEnd` int(10) unsigned NOT NULL DEFAULT '0', + `rechargeStart` bigint(20) NOT NULL DEFAULT '0', + `rechargeEnd` bigint(20) NOT NULL DEFAULT '0', KEY `idx_guid` (`guid`) USING BTREE ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; @@ -1596,9 +1596,9 @@ CREATE TABLE `character_spell_cooldown` ( `guid` bigint(20) unsigned NOT NULL DEFAULT '0' COMMENT 'Global Unique Identifier, Low part', `spell` int(10) unsigned NOT NULL DEFAULT '0' COMMENT 'Spell Identifier', `item` int(10) unsigned NOT NULL DEFAULT '0' COMMENT 'Item Identifier', - `time` int(10) unsigned NOT NULL DEFAULT '0', + `time` bigint(20) NOT NULL DEFAULT '0', `categoryId` int(10) unsigned NOT NULL DEFAULT '0' COMMENT 'Spell category Id', - `categoryEnd` int(10) unsigned NOT NULL DEFAULT '0', + `categoryEnd` bigint(20) NOT NULL DEFAULT '0', PRIMARY KEY (`guid`,`spell`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; @@ -1806,11 +1806,11 @@ CREATE TABLE `characters` ( `cinematic` tinyint(3) unsigned NOT NULL DEFAULT '0', `totaltime` int(10) unsigned NOT NULL DEFAULT '0', `leveltime` int(10) unsigned NOT NULL DEFAULT '0', - `logout_time` int(10) unsigned NOT NULL DEFAULT '0', + `logout_time` bigint(20) NOT NULL DEFAULT '0', `is_logout_resting` tinyint(3) unsigned NOT NULL DEFAULT '0', `rest_bonus` float NOT NULL DEFAULT '0', `resettalents_cost` int(10) unsigned NOT NULL DEFAULT '0', - `resettalents_time` int(10) unsigned NOT NULL DEFAULT '0', + `resettalents_time` bigint(20) NOT NULL DEFAULT '0', `numRespecs` tinyint(3) unsigned NOT NULL DEFAULT '0', `primarySpecialization` int(10) unsigned NOT NULL DEFAULT '0', `trans_x` float NOT NULL DEFAULT '0', @@ -1822,7 +1822,7 @@ CREATE TABLE `characters` ( `stable_slots` tinyint(3) unsigned NOT NULL DEFAULT '0', `at_login` smallint(5) unsigned NOT NULL DEFAULT '0', `zone` smallint(5) unsigned NOT NULL DEFAULT '0', - `death_expire_time` int(10) unsigned NOT NULL DEFAULT '0', + `death_expire_time` bigint(20) NOT NULL DEFAULT '0', `taxi_path` text, `totalKills` int(10) unsigned NOT NULL DEFAULT '0', `todayKills` smallint(5) unsigned NOT NULL DEFAULT '0', @@ -1846,7 +1846,7 @@ CREATE TABLE `characters` ( `actionBars` tinyint(3) unsigned NOT NULL DEFAULT '0', `deleteInfos_Account` int(10) unsigned DEFAULT NULL, `deleteInfos_Name` varchar(12) DEFAULT NULL, - `deleteDate` int(10) unsigned DEFAULT NULL, + `deleteDate` bigint(20) DEFAULT NULL, `honor` int(10) unsigned NOT NULL DEFAULT '0', `honorLevel` int(10) unsigned NOT NULL DEFAULT '1', `honorRestState` tinyint(3) unsigned NOT NULL DEFAULT '2', @@ -1964,7 +1964,7 @@ DROP TABLE IF EXISTS `creature_respawn`; /*!40101 SET character_set_client = utf8 */; CREATE TABLE `creature_respawn` ( `guid` bigint(20) unsigned NOT NULL DEFAULT '0' COMMENT 'Global Unique Identifier', - `respawnTime` bigint(20) unsigned NOT NULL DEFAULT '0', + `respawnTime` bigint(20) NOT NULL DEFAULT '0', `mapId` smallint(10) unsigned NOT NULL DEFAULT '0', `instanceId` int(10) unsigned NOT NULL DEFAULT '0' COMMENT 'Instance Identifier', PRIMARY KEY (`guid`,`instanceId`), @@ -2015,7 +2015,7 @@ DROP TABLE IF EXISTS `game_event_save`; CREATE TABLE `game_event_save` ( `eventEntry` tinyint(3) unsigned NOT NULL, `state` tinyint(3) unsigned NOT NULL DEFAULT '1', - `next_start` int(10) unsigned NOT NULL DEFAULT '0', + `next_start` bigint(20) NOT NULL DEFAULT '0', PRIMARY KEY (`eventEntry`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; @@ -2038,7 +2038,7 @@ DROP TABLE IF EXISTS `gameobject_respawn`; /*!40101 SET character_set_client = utf8 */; CREATE TABLE `gameobject_respawn` ( `guid` bigint(20) unsigned NOT NULL DEFAULT '0' COMMENT 'Global Unique Identifier', - `respawnTime` bigint(20) unsigned NOT NULL DEFAULT '0', + `respawnTime` bigint(20) NOT NULL DEFAULT '0', `mapId` smallint(10) unsigned NOT NULL DEFAULT '0', `instanceId` int(10) unsigned NOT NULL DEFAULT '0' COMMENT 'Instance Identifier', PRIMARY KEY (`guid`,`instanceId`), @@ -2066,7 +2066,7 @@ CREATE TABLE `gm_bug` ( `id` int(10) unsigned NOT NULL, `playerGuid` bigint(20) unsigned NOT NULL, `note` text NOT NULL, - `createTime` int(10) unsigned NOT NULL DEFAULT '0', + `createTime` bigint(20) NOT NULL DEFAULT '0', `mapId` smallint(5) unsigned NOT NULL DEFAULT '0', `posX` float NOT NULL DEFAULT '0', `posY` float NOT NULL DEFAULT '0', @@ -2099,7 +2099,7 @@ CREATE TABLE `gm_complaint` ( `id` int(10) unsigned NOT NULL, `playerGuid` bigint(20) unsigned NOT NULL, `note` text NOT NULL, - `createTime` int(10) unsigned NOT NULL DEFAULT '0', + `createTime` bigint(20) NOT NULL DEFAULT '0', `mapId` smallint(5) unsigned NOT NULL DEFAULT '0', `posX` float NOT NULL DEFAULT '0', `posY` float NOT NULL DEFAULT '0', @@ -2134,7 +2134,7 @@ DROP TABLE IF EXISTS `gm_complaint_chatlog`; CREATE TABLE `gm_complaint_chatlog` ( `complaintId` int(10) unsigned NOT NULL, `lineId` int(10) unsigned NOT NULL, - `timestamp` int(10) unsigned NOT NULL, + `timestamp` bigint(20) NOT NULL, `text` text NOT NULL, PRIMARY KEY (`complaintId`,`lineId`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; @@ -2160,7 +2160,7 @@ CREATE TABLE `gm_suggestion` ( `id` int(10) unsigned NOT NULL, `playerGuid` bigint(20) unsigned NOT NULL, `note` text NOT NULL, - `createTime` int(10) unsigned NOT NULL DEFAULT '0', + `createTime` bigint(20) NOT NULL DEFAULT '0', `mapId` smallint(5) unsigned NOT NULL DEFAULT '0', `posX` float NOT NULL DEFAULT '0', `posY` float NOT NULL DEFAULT '0', @@ -2316,7 +2316,7 @@ DROP TABLE IF EXISTS `guild_achievement`; CREATE TABLE `guild_achievement` ( `guildId` bigint(20) unsigned NOT NULL, `achievement` int(10) unsigned NOT NULL, - `date` int(10) unsigned NOT NULL DEFAULT '0', + `date` bigint(20) NOT NULL DEFAULT '0', `guids` text NOT NULL, PRIMARY KEY (`guildId`,`achievement`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; @@ -2342,7 +2342,7 @@ CREATE TABLE `guild_achievement_progress` ( `guildId` bigint(20) unsigned NOT NULL, `criteria` int(10) unsigned NOT NULL, `counter` bigint(20) unsigned NOT NULL, - `date` int(10) unsigned NOT NULL DEFAULT '0', + `date` bigint(20) NOT NULL DEFAULT '0', `completedGuid` bigint(20) unsigned NOT NULL DEFAULT '0', PRIMARY KEY (`guildId`,`criteria`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; @@ -2373,7 +2373,7 @@ CREATE TABLE `guild_bank_eventlog` ( `ItemOrMoney` bigint(20) unsigned NOT NULL DEFAULT '0', `ItemStackCount` smallint(5) unsigned NOT NULL DEFAULT '0', `DestTabId` tinyint(3) unsigned NOT NULL DEFAULT '0' COMMENT 'Destination Tab Id', - `TimeStamp` int(10) unsigned NOT NULL DEFAULT '0' COMMENT 'Event UNIX time', + `TimeStamp` bigint(20) NOT NULL DEFAULT '0' COMMENT 'Event UNIX time', PRIMARY KEY (`guildid`,`LogGuid`,`TabId`), KEY `guildid_key` (`guildid`), KEY `Idx_PlayerGuid` (`PlayerGuid`), @@ -2485,7 +2485,7 @@ CREATE TABLE `guild_eventlog` ( `PlayerGuid1` bigint(20) unsigned NOT NULL COMMENT 'Player 1', `PlayerGuid2` bigint(20) unsigned NOT NULL COMMENT 'Player 2', `NewRank` tinyint(3) unsigned NOT NULL COMMENT 'New rank(in case promotion/demotion)', - `TimeStamp` int(10) unsigned NOT NULL COMMENT 'Event UNIX time', + `TimeStamp` bigint(20) NOT NULL COMMENT 'Event UNIX time', PRIMARY KEY (`guildid`,`LogGuid`), KEY `Idx_PlayerGuid1` (`PlayerGuid1`), KEY `Idx_PlayerGuid2` (`PlayerGuid2`), @@ -2516,7 +2516,7 @@ CREATE TABLE `guild_finder_applicant` ( `classRole` tinyint(3) unsigned DEFAULT '0', `interests` tinyint(3) unsigned DEFAULT '0', `comment` varchar(255) DEFAULT NULL, - `submitTime` int(10) unsigned DEFAULT NULL, + `submitTime` bigint(20) DEFAULT NULL, PRIMARY KEY (`guildId`,`playerGuid`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; @@ -2631,7 +2631,7 @@ CREATE TABLE `guild_newslog` ( `PlayerGuid` bigint(20) unsigned NOT NULL DEFAULT '0', `Flags` int(10) unsigned NOT NULL DEFAULT '0', `Value` int(10) unsigned NOT NULL DEFAULT '0', - `TimeStamp` int(10) unsigned NOT NULL DEFAULT '0' COMMENT 'Event UNIX time', + `TimeStamp` bigint(20) NOT NULL DEFAULT '0' COMMENT 'Event UNIX time', PRIMARY KEY (`guildid`,`LogGuid`), KEY `guildid_key` (`guildid`), KEY `Idx_PlayerGuid` (`PlayerGuid`), @@ -2685,7 +2685,7 @@ DROP TABLE IF EXISTS `instance`; CREATE TABLE `instance` ( `id` int(10) unsigned NOT NULL DEFAULT '0', `map` smallint(5) unsigned NOT NULL DEFAULT '0', - `resettime` bigint(20) unsigned NOT NULL DEFAULT '0', + `resettime` bigint(20) NOT NULL DEFAULT '0', `difficulty` tinyint(3) unsigned NOT NULL DEFAULT '0', `completedEncounters` int(10) unsigned NOT NULL DEFAULT '0', `data` tinytext NOT NULL, @@ -2716,7 +2716,7 @@ DROP TABLE IF EXISTS `instance_reset`; CREATE TABLE `instance_reset` ( `mapid` smallint(5) unsigned NOT NULL DEFAULT '0', `difficulty` tinyint(3) unsigned NOT NULL DEFAULT '0', - `resettime` bigint(20) unsigned NOT NULL DEFAULT '0', + `resettime` bigint(20) NOT NULL DEFAULT '0', PRIMARY KEY (`mapid`,`difficulty`), KEY `difficulty` (`difficulty`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; @@ -2892,7 +2892,7 @@ CREATE TABLE `instance_scenario_progress` ( `id` int(10) unsigned NOT NULL, `criteria` int(10) unsigned NOT NULL, `counter` bigint(20) unsigned NOT NULL, - `date` int(10) unsigned NOT NULL DEFAULT '0', + `date` bigint(20) NOT NULL DEFAULT '0', PRIMARY KEY (`id`,`criteria`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; @@ -3353,8 +3353,8 @@ CREATE TABLE `mail` ( `subject` longtext, `body` longtext, `has_items` tinyint(3) unsigned NOT NULL DEFAULT '0', - `expire_time` int(10) unsigned NOT NULL DEFAULT '0', - `deliver_time` int(10) unsigned NOT NULL DEFAULT '0', + `expire_time` bigint(20) NOT NULL DEFAULT '0', + `deliver_time` bigint(20) NOT NULL DEFAULT '0', `money` bigint(20) unsigned NOT NULL DEFAULT '0', `cod` bigint(20) unsigned NOT NULL DEFAULT '0', `checked` tinyint(3) unsigned NOT NULL DEFAULT '0', @@ -3491,8 +3491,8 @@ DROP TABLE IF EXISTS `pet_spell_charges`; CREATE TABLE `pet_spell_charges` ( `guid` int(10) unsigned NOT NULL, `categoryId` int(10) unsigned NOT NULL DEFAULT '0' COMMENT 'SpellCategory.dbc Identifier', - `rechargeStart` int(10) unsigned NOT NULL DEFAULT '0', - `rechargeEnd` int(10) unsigned NOT NULL DEFAULT '0', + `rechargeStart` bigint(20) NOT NULL DEFAULT '0', + `rechargeEnd` bigint(20) NOT NULL DEFAULT '0', KEY `idx_guid` (`guid`) USING BTREE ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; @@ -3516,9 +3516,9 @@ DROP TABLE IF EXISTS `pet_spell_cooldown`; CREATE TABLE `pet_spell_cooldown` ( `guid` int(10) unsigned NOT NULL DEFAULT '0' COMMENT 'Global Unique Identifier, Low part', `spell` int(10) unsigned NOT NULL DEFAULT '0' COMMENT 'Spell Identifier', - `time` int(10) unsigned NOT NULL DEFAULT '0', + `time` bigint(20) NOT NULL DEFAULT '0', `categoryId` int(10) unsigned NOT NULL DEFAULT '0' COMMENT 'Spell category Id', - `categoryEnd` int(10) unsigned NOT NULL DEFAULT '0', + `categoryEnd` bigint(20) NOT NULL DEFAULT '0', PRIMARY KEY (`guid`,`spell`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; @@ -3851,7 +3851,8 @@ INSERT INTO `updates` VALUES ('2020_10_20_00_characters.sql','744F2A36865761920CE98A6DDE3A3BADF44D1E77','ARCHIVED','2020-10-20 21:36:49',0), ('2020_11_16_00_characters.sql','33D5C7539E239132923D01F4B6EAD5F3EF3EEB69','RELEASED','2020-11-16 19:16:31',0), ('2020_12_13_00_characters.sql','6AC743240033DED2C402ECB894A59D79EF607920','RELEASED','2020-12-13 18:36:58',0), -('2021_03_27_00_characters_aura_stored_location.sql','BF772ABC2DF186AF0A5DC56D5E824A2F4813BA69','RELEASED','2021-03-27 15:53:04',0); +('2021_03_27_00_characters_aura_stored_location.sql','BF772ABC2DF186AF0A5DC56D5E824A2F4813BA69','RELEASED','2021-03-27 15:53:04',0), +('2021_04_05_00_characters.sql','33D656995E0F3578FFE1A658ED1692CA5310AB30','RELEASED','2021-04-05 23:44:54',0); /*!40000 ALTER TABLE `updates` ENABLE KEYS */; UNLOCK TABLES; diff --git a/sql/updates/characters/master/2021_04_05_00_characters.sql b/sql/updates/characters/master/2021_04_05_00_characters.sql new file mode 100644 index 000000000..5b66a62f1 --- /dev/null +++ b/sql/updates/characters/master/2021_04_05_00_characters.sql @@ -0,0 +1,93 @@ +ALTER TABLE `account_data` MODIFY `time` bigint(20) NOT NULL DEFAULT '0'; + +ALTER TABLE `account_instance_times` MODIFY `releaseTime` bigint(20) NOT NULL DEFAULT '0'; + +ALTER TABLE `auctionhouse` + MODIFY `startTime` bigint(20) NOT NULL DEFAULT '0', + MODIFY `endTime` bigint(20) NOT NULL DEFAULT '0'; + +ALTER TABLE `blackmarket_auctions` MODIFY `time` bigint(20) NOT NULL DEFAULT '0'; + +ALTER TABLE `calendar_events` + MODIFY `Date` bigint(20) NOT NULL DEFAULT '0', + MODIFY `LockDate` bigint(20) NOT NULL DEFAULT '0'; + +ALTER TABLE `calendar_invites` MODIFY `ResponseTime` bigint(20) NOT NULL DEFAULT '0'; + +ALTER TABLE `channels` MODIFY `lastUsed` bigint(20) NOT NULL DEFAULT '0'; + +ALTER TABLE `character_account_data` MODIFY `time` bigint(20) NOT NULL DEFAULT '0'; + +ALTER TABLE `character_achievement` MODIFY `date` bigint(20) NOT NULL DEFAULT '0'; + +ALTER TABLE `character_achievement_progress` MODIFY `date` bigint(20) NOT NULL DEFAULT '0'; + +ALTER TABLE `character_banned` + MODIFY `bandate` bigint(20) NOT NULL DEFAULT '0', + MODIFY `unbandate` bigint(20) NOT NULL DEFAULT '0'; + +ALTER TABLE `character_garrison_buildings` MODIFY `timeBuilt` bigint(20) NOT NULL DEFAULT '0'; + +ALTER TABLE `character_queststatus` MODIFY `timer` bigint(20) NOT NULL DEFAULT '0'; + +ALTER TABLE `character_queststatus_daily` MODIFY `time` bigint(20) NOT NULL DEFAULT '0'; + +ALTER TABLE `character_queststatus_objectives_criteria_progress` MODIFY `date` bigint(20) NOT NULL DEFAULT '0'; + +ALTER TABLE `character_spell_charges` + MODIFY `rechargeStart` bigint(20) NOT NULL DEFAULT '0', + MODIFY `rechargeEnd` bigint(20) NOT NULL DEFAULT '0'; + +ALTER TABLE `character_spell_cooldown` + MODIFY `time` bigint(20) NOT NULL DEFAULT '0', + MODIFY `categoryEnd` bigint(20) NOT NULL DEFAULT '0'; + +ALTER TABLE `characters` + MODIFY `logout_time` bigint(20) NOT NULL DEFAULT '0', + MODIFY `resettalents_time` bigint(20) NOT NULL DEFAULT '0', + MODIFY `death_expire_time` bigint(20) NOT NULL DEFAULT '0', + MODIFY `deleteDate` bigint(20) unsigned DEFAULT NULL; + +ALTER TABLE `creature_respawn` MODIFY `respawnTime` bigint(20) NOT NULL DEFAULT '0'; + +ALTER TABLE `game_event_save` MODIFY `next_start` bigint(20) NOT NULL DEFAULT '0'; + +ALTER TABLE `gameobject_respawn` MODIFY `respawnTime` bigint(20) NOT NULL DEFAULT '0'; + +ALTER TABLE `gm_bug` MODIFY `createTime` bigint(20) NOT NULL DEFAULT '0'; + +ALTER TABLE `gm_complaint` MODIFY `createTime` bigint(20) NOT NULL DEFAULT '0'; + +ALTER TABLE `gm_complaint_chatlog` MODIFY `timestamp` bigint(20) NOT NULL DEFAULT '0'; + +ALTER TABLE `gm_suggestion` MODIFY `createTime` bigint(20) NOT NULL DEFAULT '0'; + +ALTER TABLE `guild_achievement` MODIFY `date` bigint(20) NOT NULL DEFAULT '0'; + +ALTER TABLE `guild_achievement_progress` MODIFY `date` bigint(20) NOT NULL DEFAULT '0'; + +ALTER TABLE `guild_bank_eventlog` MODIFY `TimeStamp` bigint(20) NOT NULL DEFAULT '0' COMMENT 'Event UNIX time'; + +ALTER TABLE `guild_eventlog` MODIFY `TimeStamp` bigint(20) NOT NULL COMMENT 'Event UNIX time'; + +ALTER TABLE `guild_finder_applicant` MODIFY `submitTime` bigint(20) DEFAULT NULL; + +ALTER TABLE `guild_newslog` MODIFY `TimeStamp` bigint(20) NOT NULL DEFAULT '0' COMMENT 'Event UNIX time'; + +ALTER TABLE `instance` MODIFY `resettime` bigint(20) NOT NULL DEFAULT '0'; + +ALTER TABLE `instance_reset` MODIFY `resettime` bigint(20) NOT NULL DEFAULT '0'; + +ALTER TABLE `instance_scenario_progress` MODIFY `date` bigint(20) NOT NULL DEFAULT '0'; + +ALTER TABLE `mail` + MODIFY `expire_time` bigint(20) NOT NULL DEFAULT '0', + MODIFY `deliver_time` bigint(20) NOT NULL DEFAULT '0'; + +ALTER TABLE `pet_spell_charges` + MODIFY `rechargeStart` bigint(20) NOT NULL DEFAULT '0', + MODIFY `rechargeEnd` bigint(20) NOT NULL DEFAULT '0'; + +ALTER TABLE `pet_spell_cooldown` + MODIFY `time` bigint(20) NOT NULL DEFAULT '0', + MODIFY `categoryEnd` bigint(20) NOT NULL DEFAULT '0';