From 96c8d5c28673b015a0288887a378d2dabcc6b99c Mon Sep 17 00:00:00 2001 From: Ty Conner Date: Sun, 15 Sep 2024 02:55:45 -0400 Subject: [PATCH] Update output of DateTime strings Define and use explicit formatting for DateTime objects used throughout source --- .../Extensions/DateTimeExtensions.cs | 12 +++++++ .../ACE.Database/ShardDatabaseOfflineTools.cs | 2 +- .../Command/Handlers/AdminCommands.cs | 26 +++++++------- .../Command/Handlers/AdminShardCommands.cs | 7 ++-- .../Command/Handlers/DeveloperCommands.cs | 34 +++++++++---------- .../Factories/WorldObjectFactory.cs | 3 +- Source/ACE.Server/Managers/ServerManager.cs | 5 +-- Source/ACE.Server/Mods/ModContainer.cs | 7 ++-- .../Actions/GameActionQueryBirth.cs | 2 +- Source/ACE.Server/Program.cs | 3 +- Source/ACE.Server/WorldObjects/Player.cs | 3 +- .../WorldObjects/Player_Networking.cs | 3 +- 12 files changed, 63 insertions(+), 44 deletions(-) create mode 100644 Source/ACE.Common/Extensions/DateTimeExtensions.cs diff --git a/Source/ACE.Common/Extensions/DateTimeExtensions.cs b/Source/ACE.Common/Extensions/DateTimeExtensions.cs new file mode 100644 index 0000000000..eb1cb905bb --- /dev/null +++ b/Source/ACE.Common/Extensions/DateTimeExtensions.cs @@ -0,0 +1,12 @@ +using System; + +namespace ACE.Common.Extensions +{ + public static class DateTimeExtensions + { + public static string ToCommonString(this DateTime dateTime) + { + return dateTime.ToString("M/d/yyyy h:mm:ss tt"); + } + } +} diff --git a/Source/ACE.Database/ShardDatabaseOfflineTools.cs b/Source/ACE.Database/ShardDatabaseOfflineTools.cs index 89a392c06a..6fa7319020 100644 --- a/Source/ACE.Database/ShardDatabaseOfflineTools.cs +++ b/Source/ACE.Database/ShardDatabaseOfflineTools.cs @@ -124,7 +124,7 @@ public static void PurgeCharacter(ShardDbContext context, uint characterId, out var message = $"[DATABASE][PURGE] Character 0x{characterId:X8}"; if (character != null) - message += $":{character.Name}, deleted on {Time.GetDateTimeFromTimestamp(character.DeleteTime).ToLocalTime()}"; + message += $":{character.Name}, deleted on {Time.GetDateTimeFromTimestamp(character.DeleteTime).ToLocalTime().ToCommonString()}"; message += $", and {possessionsPurged} of their possessions has been purged."; diff --git a/Source/ACE.Server/Command/Handlers/AdminCommands.cs b/Source/ACE.Server/Command/Handlers/AdminCommands.cs index c848b2879d..a81a363d5b 100644 --- a/Source/ACE.Server/Command/Handlers/AdminCommands.cs +++ b/Source/ACE.Server/Command/Handlers/AdminCommands.cs @@ -216,8 +216,8 @@ public static void HandleFinger(Session session, params string[] parameters) message = $"Account '{account.AccountName}' is not banned.\n"; if (account.AccessLevel > (int)AccessLevel.Player) message += $"Account '{account.AccountName}' has been granted AccessLevel.{((AccessLevel)account.AccessLevel).ToString()} rights.\n"; - message += $"Account created on {account.CreateTime.ToLocalTime()} by IP: {(account.CreateIP != null ? new IPAddress(account.CreateIP).ToString() : "N/A")} \n"; - message += $"Account last logged on at {(account.LastLoginTime.HasValue ? account.LastLoginTime.Value.ToLocalTime().ToString() : "N/A")} by IP: {(account.LastLoginIP != null ? new IPAddress(account.LastLoginIP).ToString() : "N/A")}\n"; + message += $"Account created on {account.CreateTime.ToLocalTime().ToCommonString()} by IP: {(account.CreateIP != null ? new IPAddress(account.CreateIP).ToString() : "N/A")} \n"; + message += $"Account last logged on at {(account.LastLoginTime.HasValue ? account.LastLoginTime.Value.ToLocalTime().ToCommonString() : "N/A")} by IP: {(account.LastLoginIP != null ? new IPAddress(account.LastLoginIP).ToString() : "N/A")}\n"; message += $"Account total times logged on {account.TotalTimesLoggedIn}\n"; var characters = DatabaseManager.Shard.BaseDatabase.GetCharacters(account.AccountId, true); message += $"{characters.Count} Character(s) owned by: {account.AccountName}\n"; @@ -964,7 +964,7 @@ public static void HandleTime(Session session, params string[] parameters) { // @time - Displays the server's current game time. - var messageUTC = "The current server time in UtcNow is: " + DateTime.UtcNow; + var messageUTC = "The current server time in UtcNow is: " + DateTime.UtcNow.ToCommonString(); //var messagePY = "The current server time translated to DerethDateTime is:\n" + Timers.CurrentLoreTime; var messageIGPY = "The current server time shown in game client is:\n" + Timers.CurrentInGameTime; var messageTOD = $"It is currently {Timers.CurrentInGameTime.TimeOfDay} in game right now."; @@ -1251,7 +1251,7 @@ public static void HandleAdminhouse(Session session, params string[] parameters) if (house != null) { var houseData = house.GetHouseData(PlayerManager.FindByGuid(new ObjectGuid(house.HouseOwner ?? 0))); - msg += $"{house.HouseType} | Owner: {house.HouseOwnerName} (0x{house.HouseOwner:X8}) | BuyTime: {Time.GetDateTimeFromTimestamp(houseData.BuyTime).ToLocalTime()} ({houseData.BuyTime}) | RentTime: {Time.GetDateTimeFromTimestamp(houseData.RentTime).ToLocalTime()} ({houseData.RentTime}) | RentDue: {Time.GetDateTimeFromTimestamp(house.GetRentDue(houseData.RentTime)).ToLocalTime()} ({house.GetRentDue(houseData.RentTime)}) | Rent is {(house.SlumLord.IsRentPaid() ? "" : "NOT ")}paid{(house.HouseStatus != HouseStatus.Active ? $" ({house.HouseStatus})" : "")}"; + msg += $"{house.HouseType} | Owner: {house.HouseOwnerName} (0x{house.HouseOwner:X8}) | BuyTime: {Time.GetDateTimeFromTimestamp(houseData.BuyTime).ToLocalTime().ToCommonString()} ({houseData.BuyTime}) | RentTime: {Time.GetDateTimeFromTimestamp(houseData.RentTime).ToLocalTime().ToCommonString()} ({houseData.RentTime}) | RentDue: {Time.GetDateTimeFromTimestamp(house.GetRentDue(houseData.RentTime)).ToLocalTime().ToCommonString()} ({house.GetRentDue(houseData.RentTime)}) | Rent is {(house.SlumLord.IsRentPaid() ? "" : "NOT ")}paid{(house.HouseStatus != HouseStatus.Active ? $" ({house.HouseStatus})" : "")}"; } else { @@ -1547,9 +1547,9 @@ private static void DumpHouse(Session session, House targetHouse, WorldObject wo msg += $"===HouseData===================================\n"; msg += $"Location: {houseData.Position.ToLOCString()}\n"; msg += $"Type: {houseData.Type}\n"; - msg += $"BuyTime: {(houseData.BuyTime > 0 ? $"{Time.GetDateTimeFromTimestamp(houseData.BuyTime).ToLocalTime()}" : "N/A")} ({houseData.BuyTime})\n"; - msg += $"RentTime: {(houseData.RentTime > 0 ? $"{Time.GetDateTimeFromTimestamp(houseData.RentTime).ToLocalTime()}" : "N/A")} ({houseData.RentTime})\n"; - msg += $"RentDue: {(houseData.RentTime > 0 ? $"{Time.GetDateTimeFromTimestamp(house.GetRentDue(houseData.RentTime)).ToLocalTime()} ({house.GetRentDue(houseData.RentTime)})" : " N/A (0)")}\n"; + msg += $"BuyTime: {(houseData.BuyTime > 0 ? $"{Time.GetDateTimeFromTimestamp(houseData.BuyTime).ToLocalTime().ToCommonString()}" : "N/A")} ({houseData.BuyTime})\n"; + msg += $"RentTime: {(houseData.RentTime > 0 ? $"{Time.GetDateTimeFromTimestamp(houseData.RentTime).ToLocalTime().ToCommonString()}" : "N/A")} ({houseData.RentTime})\n"; + msg += $"RentDue: {(houseData.RentTime > 0 ? $"{Time.GetDateTimeFromTimestamp(house.GetRentDue(houseData.RentTime)).ToLocalTime().ToCommonString()} ({house.GetRentDue(houseData.RentTime)})" : " N/A (0)")}\n"; msg += $"MaintenanceFree: {houseData.MaintenanceFree}\n"; session.Player.SendMessage(msg, ChatMessageType.System); } @@ -2928,7 +2928,7 @@ private static void DoGodMode(bool playerSaved, Session session, bool exceptionR } string returnState = "1="; - returnState += $"{DateTime.UtcNow}="; + returnState += $"{DateTime.UtcNow.ToCommonString()}="; // need level 25, available skill credits 24 returnState += $"24={session.Player.AvailableSkillCredits}=25={session.Player.Level}="; @@ -3602,7 +3602,7 @@ public static void Handleqst(Session session, params string[] parameters) foreach (var quest in quests) { var questEntry = ""; - questEntry += $"Quest Name: {quest.QuestName}\nCompletions: {quest.NumTimesCompleted} | Last Completion: {quest.LastTimeCompleted} ({Common.Time.GetDateTimeFromTimestamp(quest.LastTimeCompleted).ToLocalTime()})\n"; + questEntry += $"Quest Name: {quest.QuestName}\nCompletions: {quest.NumTimesCompleted} | Last Completion: {quest.LastTimeCompleted} ({Time.GetDateTimeFromTimestamp(quest.LastTimeCompleted).ToLocalTime().ToCommonString()})\n"; var nextSolve = creature.QuestManager.GetNextSolveTime(quest.QuestName); if (nextSolve == TimeSpan.MinValue) @@ -3610,7 +3610,7 @@ public static void Handleqst(Session session, params string[] parameters) else if (nextSolve == TimeSpan.MaxValue) questEntry += "Can Solve: Never again\n"; else - questEntry += $"Can Solve: In {nextSolve:%d} days, {nextSolve:%h} hours, {nextSolve:%m} minutes and, {nextSolve:%s} seconds. ({(DateTime.UtcNow + nextSolve).ToLocalTime()})\n"; + questEntry += $"Can Solve: In {nextSolve:%d} days, {nextSolve:%h} hours, {nextSolve:%m} minutes and, {nextSolve:%s} seconds. ({(DateTime.UtcNow + nextSolve).ToLocalTime().ToCommonString()})\n"; questEntry += "--====--\n"; session.Player.SendMessage(questEntry); @@ -3813,7 +3813,7 @@ public static void Handleqst(Session session, params string[] parameters) questEntry += $"Quest Name: {quest.QuestName}\n"; questEntry += $"Current Set Bits: 0x{quest.NumTimesCompleted:X}\n"; questEntry += $"Allowed Max Bits: 0x{maxSolves:X}\n"; - questEntry += $"Last Set On: {quest.LastTimeCompleted} ({Common.Time.GetDateTimeFromTimestamp(quest.LastTimeCompleted).ToLocalTime()})\n"; + questEntry += $"Last Set On: {quest.LastTimeCompleted} ({Common.Time.GetDateTimeFromTimestamp(quest.LastTimeCompleted).ToLocalTime().ToCommonString()})\n"; //var nextSolve = creature.QuestManager.GetNextSolveTime(quest.QuestName); @@ -3872,7 +3872,7 @@ public static void Handleqst(Session session, params string[] parameters) foreach (var quest in quests) { var questEntry = ""; - questEntry += $"Quest Name: {quest.QuestName}\nCompletions: {quest.NumTimesCompleted} | Last Completion: {quest.LastTimeCompleted} ({Common.Time.GetDateTimeFromTimestamp(quest.LastTimeCompleted).ToLocalTime()})\n"; + questEntry += $"Quest Name: {quest.QuestName}\nCompletions: {quest.NumTimesCompleted} | Last Completion: {quest.LastTimeCompleted} ({Time.GetDateTimeFromTimestamp(quest.LastTimeCompleted).ToLocalTime().ToCommonString()})\n"; var nextSolve = fellowship.QuestManager.GetNextSolveTime(quest.QuestName); if (nextSolve == TimeSpan.MinValue) @@ -3880,7 +3880,7 @@ public static void Handleqst(Session session, params string[] parameters) else if (nextSolve == TimeSpan.MaxValue) questEntry += "Can Solve: Never again\n"; else - questEntry += $"Can Solve: In {nextSolve:%d} days, {nextSolve:%h} hours, {nextSolve:%m} minutes and, {nextSolve:%s} seconds. ({(DateTime.UtcNow + nextSolve).ToLocalTime()})\n"; + questEntry += $"Can Solve: In {nextSolve:%d} days, {nextSolve:%h} hours, {nextSolve:%m} minutes and, {nextSolve:%s} seconds. ({(DateTime.UtcNow + nextSolve).ToLocalTime().ToCommonString()})\n"; questEntry += "--====--\n"; session.Player.SendMessage(questEntry); diff --git a/Source/ACE.Server/Command/Handlers/AdminShardCommands.cs b/Source/ACE.Server/Command/Handlers/AdminShardCommands.cs index 71a0ee7ee7..cafa5ab8dd 100644 --- a/Source/ACE.Server/Command/Handlers/AdminShardCommands.cs +++ b/Source/ACE.Server/Command/Handlers/AdminShardCommands.cs @@ -2,6 +2,7 @@ using log4net; +using ACE.Common.Extensions; using ACE.Entity.Enum; using ACE.Server.Managers; using ACE.Server.Network; @@ -29,7 +30,7 @@ public static class AdminShardCommands public static void HandleCancelShutdown(Session session, params string[] parameters) { var adminName = (session == null) ? "CONSOLE" : session.Player.Name; - var msg = $"{adminName} has requested the pending shut down @ {ServerManager.ShutdownTime.ToLocalTime()} ({ServerManager.ShutdownTime} UTC) be cancelled."; + var msg = $"{adminName} has requested the pending shut down @ {ServerManager.ShutdownTime.ToLocalTime().ToCommonString()} ({ServerManager.ShutdownTime.ToCommonString()} UTC) be cancelled."; log.Info(msg); PlayerManager.BroadcastToAuditChannel(session?.Player, msg); @@ -113,9 +114,9 @@ public static void ShutdownServer(Session session, params string[] parameters) var timeTillShutdown = TimeSpan.FromSeconds(ServerManager.ShutdownInterval); var timeRemaining = "The server will shut down in " + (timeTillShutdown.TotalSeconds > 120 ? $"{(int)timeTillShutdown.TotalMinutes} minutes." : $"{timeTillShutdown.TotalSeconds} seconds."); - log.Info($"{adminName} initiated a complete server shutdown @ {DateTime.Now} ({DateTime.UtcNow} UTC)"); + log.Info($"{adminName} initiated a complete server shutdown @ {DateTime.Now.ToCommonString()} ({DateTime.UtcNow.ToCommonString()} UTC)"); log.Info(timeRemaining); - PlayerManager.BroadcastToAuditChannel(session?.Player, $"{adminName} initiated a complete server shutdown @ {DateTime.Now} ({DateTime.UtcNow} UTC)"); + PlayerManager.BroadcastToAuditChannel(session?.Player, $"{adminName} initiated a complete server shutdown @ {DateTime.Now.ToCommonString()} ({DateTime.UtcNow.ToCommonString()} UTC)"); if (adminText.Length > 0) { diff --git a/Source/ACE.Server/Command/Handlers/DeveloperCommands.cs b/Source/ACE.Server/Command/Handlers/DeveloperCommands.cs index c4e681f7e6..d979498584 100644 --- a/Source/ACE.Server/Command/Handlers/DeveloperCommands.cs +++ b/Source/ACE.Server/Command/Handlers/DeveloperCommands.cs @@ -1296,7 +1296,7 @@ public static void HandleContract(Session session, params string[] parameters) else if (timeWhenDone == TimeSpan.MaxValue) contracts += $"TimeWhenDone: Unlimited ({contractTracker.TimeWhenDone})\n"; else - contracts += $"TimeWhenDone: In {timeWhenDone:%d} days, {timeWhenDone:%h} hours, {timeWhenDone:%m} minutes and, {timeWhenDone:%s} seconds. ({(DateTime.UtcNow + timeWhenDone).ToLocalTime()})\n"; + contracts += $"TimeWhenDone: In {timeWhenDone:%d} days, {timeWhenDone:%h} hours, {timeWhenDone:%m} minutes and, {timeWhenDone:%s} seconds. ({(DateTime.UtcNow + timeWhenDone).ToLocalTime().ToCommonString()})\n"; } if (contractTracker.Stage == Network.Structure.ContractStage.DoneOrPendingRepeat) @@ -1309,7 +1309,7 @@ public static void HandleContract(Session session, params string[] parameters) else if (timeWhenRepeats == TimeSpan.MaxValue) contracts += $"TimeWhenRepeats: Unlimited ({contractTracker.TimeWhenDone})\n"; else - contracts += $"TimeWhenRepeats: In {timeWhenRepeats:%d} days, {timeWhenRepeats:%h} hours, {timeWhenRepeats:%m} minutes and, {timeWhenRepeats:%s} seconds. ({(DateTime.UtcNow + timeWhenRepeats).ToLocalTime()})\n"; + contracts += $"TimeWhenRepeats: In {timeWhenRepeats:%d} days, {timeWhenRepeats:%h} hours, {timeWhenRepeats:%m} minutes and, {timeWhenRepeats:%s} seconds. ({(DateTime.UtcNow + timeWhenRepeats).ToLocalTime().ToCommonString()})\n"; } contracts += "--====--\n"; @@ -1974,7 +1974,7 @@ public static void HandleSetProperty(Session session, params string[] parameters public static void HandleSetPurchaseTime(Session session, params string[] parameters) { var currentTime = DateTime.UtcNow; - Console.WriteLine($"Current time: {currentTime}"); + Console.WriteLine($"Current time: {currentTime.ToCommonString()}"); // subtract 30 days var purchaseTime = currentTime - TimeSpan.FromDays(30); // add buffer @@ -1985,11 +1985,11 @@ public static void HandleSetPurchaseTime(Session session, params string[] parame var prevPurchaseTime = DateTimeOffset.FromUnixTimeSeconds(session.Player.HousePurchaseTimestamp ?? 0).UtcDateTime; var prevRentDue = DateTimeOffset.FromUnixTimeSeconds(session.Player.House.GetRentDue((uint)(session.Player.HousePurchaseTimestamp ?? 0))).UtcDateTime; - Console.WriteLine($"Previous purchase time: {prevPurchaseTime}"); - Console.WriteLine($"New purchase time: {purchaseTime}"); + Console.WriteLine($"Previous purchase time: {prevPurchaseTime.ToCommonString()}"); + Console.WriteLine($"New purchase time: {purchaseTime.ToCommonString()}"); - Console.WriteLine($"Previous rent time: {prevRentDue}"); - Console.WriteLine($"New rent time: {rentDue}"); + Console.WriteLine($"Previous rent time: {prevRentDue.ToCommonString()}"); + Console.WriteLine($"New rent time: {rentDue.ToCommonString()}"); session.Player.HousePurchaseTimestamp = (int)Time.GetUnixTime(purchaseTime); session.Player.HouseRentTimestamp = (int)session.Player.House.GetRentDue((uint)Time.GetUnixTime(purchaseTime)); @@ -2753,8 +2753,8 @@ public static void HandleGeneratorDump(Session session, params string[] paramete msg += $"GeneratorEvent: {(!string.IsNullOrWhiteSpace(wo.GeneratorEvent) ? wo.GeneratorEvent : "Undef")}\n"; if (wo.GeneratorTimeType == GeneratorTimeType.RealTime) { - msg += $"GeneratorStartTime: {wo.GeneratorStartTime} ({Time.GetDateTimeFromTimestamp(wo.GeneratorStartTime).ToLocalTime()})\n"; - msg += $"GeneratorEndTime: {wo.GeneratorEndTime} ({Time.GetDateTimeFromTimestamp(wo.GeneratorEndTime).ToLocalTime()})\n"; + msg += $"GeneratorStartTime: {wo.GeneratorStartTime} ({Time.GetDateTimeFromTimestamp(wo.GeneratorStartTime).ToLocalTime().ToCommonString()})\n"; + msg += $"GeneratorEndTime: {wo.GeneratorEndTime} ({Time.GetDateTimeFromTimestamp(wo.GeneratorEndTime).ToLocalTime().ToCommonString()})\n"; } msg += $"GeneratorEndDestructionType: {wo.GeneratorEndDestructionType.ToString()}\n"; msg += $"GeneratorDestructionType: {wo.GeneratorDestructionType.ToString()}\n"; @@ -2763,10 +2763,10 @@ public static void HandleGeneratorDump(Session session, params string[] paramete msg += $"MaxGeneratedObjects: {wo.MaxGeneratedObjects}\n"; msg += $"GeneratorInitialDelay: {wo.GeneratorInitialDelay}\n"; msg += $"RegenerationInterval: {wo.RegenerationInterval}\n"; - msg += $"GeneratorUpdateTimestamp: {wo.GeneratorUpdateTimestamp} ({Time.GetDateTimeFromTimestamp(wo.GeneratorUpdateTimestamp).ToLocalTime()})\n"; - msg += $"NextGeneratorUpdateTime: {wo.NextGeneratorUpdateTime} ({((wo.NextGeneratorUpdateTime == double.MaxValue) ? "Disabled" : Time.GetDateTimeFromTimestamp(wo.NextGeneratorUpdateTime).ToLocalTime().ToString())})\n"; - msg += $"RegenerationTimestamp: {wo.RegenerationTimestamp} ({Time.GetDateTimeFromTimestamp(wo.RegenerationTimestamp).ToLocalTime()})\n"; - msg += $"NextGeneratorRegenerationTime: {wo.NextGeneratorRegenerationTime} ({((wo.NextGeneratorRegenerationTime == double.MaxValue) ? "On Demand" : Time.GetDateTimeFromTimestamp(wo.NextGeneratorRegenerationTime).ToLocalTime().ToString())})\n"; + msg += $"GeneratorUpdateTimestamp: {wo.GeneratorUpdateTimestamp} ({Time.GetDateTimeFromTimestamp(wo.GeneratorUpdateTimestamp).ToLocalTime().ToCommonString()})\n"; + msg += $"NextGeneratorUpdateTime: {wo.NextGeneratorUpdateTime} ({((wo.NextGeneratorUpdateTime == double.MaxValue) ? "Disabled" : Time.GetDateTimeFromTimestamp(wo.NextGeneratorUpdateTime).ToLocalTime().ToCommonString())})\n"; + msg += $"RegenerationTimestamp: {wo.RegenerationTimestamp} ({Time.GetDateTimeFromTimestamp(wo.RegenerationTimestamp).ToLocalTime().ToCommonString()})\n"; + msg += $"NextGeneratorRegenerationTime: {wo.NextGeneratorRegenerationTime} ({((wo.NextGeneratorRegenerationTime == double.MaxValue) ? "On Demand" : Time.GetDateTimeFromTimestamp(wo.NextGeneratorRegenerationTime).ToLocalTime().ToCommonString())})\n"; msg += $"GeneratorProfiles.Count: {wo.GeneratorProfiles.Count(g => !g.IsPlaceholder)}\n"; msg += $"GeneratorActiveProfiles.Count: {wo.GeneratorActiveProfiles.Count}\n"; @@ -2786,7 +2786,7 @@ public static void HandleGeneratorDump(Session session, params string[] paramete msg += $"GeneratedTreasureItem: {profile.GeneratedTreasureItem}\n"; msg += $"IsMaxed: {profile.IsMaxed}\n"; if (!profile.IsMaxed) - msg += $"IsAvailable: {profile.IsAvailable}{(profile.IsAvailable ? "" : $", NextAvailable: {profile.NextAvailable.ToLocalTime()}")}\n"; + msg += $"IsAvailable: {profile.IsAvailable}{(profile.IsAvailable ? "" : $", NextAvailable: {profile.NextAvailable.ToLocalTime().ToCommonString()}")}\n"; msg += $"--====--\n"; if (profile.Spawned.Count > 0) { @@ -2817,7 +2817,7 @@ public static void HandleGeneratorDump(Session session, params string[] paramete msg += "Pending Spawn Times:\n"; foreach (var spawn in profile.SpawnQueue) { - msg += $"{spawn.ToLocalTime()}\n"; + msg += $"{spawn.ToLocalTime().ToCommonString()}\n"; } msg += $"--====--\n"; } @@ -3829,9 +3829,9 @@ public static void HandleVendorDump(Session session, params string[] parameters) msg += $"{shopItem.Name} (0x{shopItem.Guid} | {shopItem.WeenieClassId} | {shopItem.WeenieClassName} | {shopItem.WeenieType})\n"; msg += $"StackSize: {shopItem.StackSize ?? 1} | PaletteTemplate: {(PaletteTemplate)shopItem.PaletteTemplate} ({shopItem.PaletteTemplate}) | Shade: {shopItem.Shade:F3}\n"; var soldTimestamp = Time.GetDateTimeFromTimestamp(shopItem.SoldTimestamp ?? 0); - msg += $"SoldTimestamp: {soldTimestamp.ToLocalTime()} ({(shopItem.SoldTimestamp.HasValue ? $"{shopItem.SoldTimestamp}" : "NULL")})\n"; + msg += $"SoldTimestamp: {soldTimestamp.ToLocalTime().ToCommonString()} ({(shopItem.SoldTimestamp.HasValue ? $"{shopItem.SoldTimestamp}" : "NULL")})\n"; var rotTime = soldTimestamp.AddSeconds(PropertyManager.GetDouble("vendor_unique_rot_time").Item); - msg += $"RotTimestamp: {rotTime.ToLocalTime()}\n"; + msg += $"RotTimestamp: {rotTime.ToLocalTime().ToCommonString()}\n"; var payout = vendor.GetBuyCost(shopItem); msg += $"Paid: {payout:N0} {(payout == 1 ? currencyWeenie.GetName() : currencyWeenie.GetPluralName())}\n"; var cost = vendor.GetSellCost(shopItem); diff --git a/Source/ACE.Server/Factories/WorldObjectFactory.cs b/Source/ACE.Server/Factories/WorldObjectFactory.cs index 01fff18527..5e8442ca84 100644 --- a/Source/ACE.Server/Factories/WorldObjectFactory.cs +++ b/Source/ACE.Server/Factories/WorldObjectFactory.cs @@ -4,6 +4,7 @@ using log4net; +using ACE.Common.Extensions; using ACE.Database; using ACE.Entity; using ACE.Entity.Enum; @@ -306,7 +307,7 @@ public static List CreateNewWorldObjects(List so if (worldObject.Location == null) { - log.Warn($"CreateNewWorldObjects: {worldObject.Name} (0x{worldObject.Guid}) Location was null. CreationTimestamp = {worldObject.CreationTimestamp} ({Common.Time.GetDateTimeFromTimestamp(worldObject.CreationTimestamp ?? 0).ToLocalTime()}) | Location restored from world db instance."); + log.Warn($"CreateNewWorldObjects: {worldObject.Name} (0x{worldObject.Guid}) Location was null. CreationTimestamp = {worldObject.CreationTimestamp} ({Common.Time.GetDateTimeFromTimestamp(worldObject.CreationTimestamp ?? 0).ToLocalTime().ToCommonString()}) | Location restored from world db instance."); worldObject.Location = new Position(instance.ObjCellId, instance.OriginX, instance.OriginY, instance.OriginZ, instance.AnglesX, instance.AnglesY, instance.AnglesZ, instance.AnglesW); } } diff --git a/Source/ACE.Server/Managers/ServerManager.cs b/Source/ACE.Server/Managers/ServerManager.cs index 17ac04f05e..b4251050c9 100644 --- a/Source/ACE.Server/Managers/ServerManager.cs +++ b/Source/ACE.Server/Managers/ServerManager.cs @@ -4,6 +4,7 @@ using log4net; using ACE.Common; +using ACE.Common.Extensions; using ACE.Database; using ACE.Entity.Enum; using ACE.Server.Entity.Actions; @@ -108,7 +109,7 @@ private static void ShutdownServer() if (!ShutdownInitiated) { // reset shutdown details - string shutdownText = $"The server shut down has been cancelled @ {DateTime.Now} ({DateTime.UtcNow} UTC)"; + string shutdownText = $"The server shut down has been cancelled @ {DateTime.Now.ToCommonString()} ({DateTime.UtcNow.ToCommonString()} UTC)"; log.Info(shutdownText); // special text @@ -220,7 +221,7 @@ private static void ShutdownServer() } // Write exit to console/log - log.Info($"Exiting at {DateTime.UtcNow}"); + log.Info($"Exiting at {DateTime.UtcNow.ToCommonString()}"); // System exit Environment.Exit(Environment.ExitCode); diff --git a/Source/ACE.Server/Mods/ModContainer.cs b/Source/ACE.Server/Mods/ModContainer.cs index 159704b255..c64ea07a4c 100644 --- a/Source/ACE.Server/Mods/ModContainer.cs +++ b/Source/ACE.Server/Mods/ModContainer.cs @@ -1,4 +1,5 @@ using ACE.Common; +using ACE.Common.Extensions; using log4net; @@ -135,7 +136,7 @@ public void Disable() if (Status != ModStatus.Active) return; - log.Info($"{FolderName} shutting down @ {DateTime.Now}"); + log.Info($"{FolderName} shutting down @ {DateTime.Now.ToCommonString()}"); this.UnregisterAllCommands(); @@ -232,7 +233,7 @@ private void Reload(object sender, PluginReloadedEventArgs eventArgs) } Restart(); - log.Info($"Reloaded {FolderName} @ {DateTime.Now} after {lapsed.TotalSeconds}/{RELOAD_TIMEOUT.TotalSeconds} seconds"); + log.Info($"Reloaded {FolderName} @ {DateTime.Now.ToCommonString()} after {lapsed.TotalSeconds}/{RELOAD_TIMEOUT.TotalSeconds} seconds"); } @@ -246,7 +247,7 @@ private void ModDll_Changed(object sender, FileSystemEventArgs e) return; } - log.Info($"{FolderName} changed @ {DateTime.Now} after {lapsed.TotalMilliseconds}ms"); + log.Info($"{FolderName} changed @ {DateTime.Now.ToCommonString()} after {lapsed.TotalMilliseconds}ms"); _lastChange = DateTime.Now; Disable(); diff --git a/Source/ACE.Server/Network/GameAction/Actions/GameActionQueryBirth.cs b/Source/ACE.Server/Network/GameAction/Actions/GameActionQueryBirth.cs index c38f851d29..9dc5096ff2 100644 --- a/Source/ACE.Server/Network/GameAction/Actions/GameActionQueryBirth.cs +++ b/Source/ACE.Server/Network/GameAction/Actions/GameActionQueryBirth.cs @@ -14,7 +14,7 @@ public static void Handle(ClientMessage message, Session session) DateTime playerDOB = new DateTime(1970, 1, 1, 0, 0, 0, 0, System.DateTimeKind.Utc); playerDOB = playerDOB.AddSeconds(session.Player.CreationTimestamp.Value).ToUniversalTime(); - var dobEvent = new GameMessages.Messages.GameMessageSystemChat($"You were born on {playerDOB:G}.", ChatMessageType.Broadcast); + var dobEvent = new GameMessages.Messages.GameMessageSystemChat($"You were born on {playerDOB.ToCommonString()}.", ChatMessageType.Broadcast); session.Network.EnqueueSend(dobEvent); } diff --git a/Source/ACE.Server/Program.cs b/Source/ACE.Server/Program.cs index 884b68507c..b8a249c14a 100644 --- a/Source/ACE.Server/Program.cs +++ b/Source/ACE.Server/Program.cs @@ -10,6 +10,7 @@ using log4net.Config; using ACE.Common; +using ACE.Common.Extensions; using ACE.Database; using ACE.DatLoader; using ACE.Server.Command; @@ -164,7 +165,7 @@ public static void Main(string[] args) if (ConfigManager.Config.Offline.PurgeDeletedCharacters) { - log.Info($"Purging deleted characters, and their possessions, older than {ConfigManager.Config.Offline.PurgeDeletedCharactersDays} days ({DateTime.Now.AddDays(-ConfigManager.Config.Offline.PurgeDeletedCharactersDays)})..."); + log.Info($"Purging deleted characters, and their possessions, older than {ConfigManager.Config.Offline.PurgeDeletedCharactersDays} days ({DateTime.Now.AddDays(-ConfigManager.Config.Offline.PurgeDeletedCharactersDays).ToCommonString()})..."); ShardDatabaseOfflineTools.PurgeCharactersInParallel(ConfigManager.Config.Offline.PurgeDeletedCharactersDays, out var charactersPurged, out var playerBiotasPurged, out var possessionsPurged); log.Info($"Purged {charactersPurged:N0} characters, {playerBiotasPurged:N0} player biotas and {possessionsPurged:N0} possessions."); } diff --git a/Source/ACE.Server/WorldObjects/Player.cs b/Source/ACE.Server/WorldObjects/Player.cs index 76e8fae71e..e37ed8cc40 100644 --- a/Source/ACE.Server/WorldObjects/Player.cs +++ b/Source/ACE.Server/WorldObjects/Player.cs @@ -5,6 +5,7 @@ using log4net; using ACE.Common; +using ACE.Common.Extensions; using ACE.Database; using ACE.Database.Models.Auth; using ACE.DatLoader; @@ -647,7 +648,7 @@ private void FinalizeLogout() SavePlayerToDatabase(); PlayerManager.SwitchPlayerFromOnlineToOffline(this); - log.DebugFormat("[LOGOUT] Account {0} exited the world with character {1} (0x{2}) at {3}.", Account.AccountName, Name, Guid, DateTime.Now); + log.DebugFormat("[LOGOUT] Account {0} exited the world with character {1} (0x{2}) at {3}.", Account.AccountName, Name, Guid, DateTime.Now.ToCommonString()); } public void HandleMRT() diff --git a/Source/ACE.Server/WorldObjects/Player_Networking.cs b/Source/ACE.Server/WorldObjects/Player_Networking.cs index e530bea41a..a1f287006a 100644 --- a/Source/ACE.Server/WorldObjects/Player_Networking.cs +++ b/Source/ACE.Server/WorldObjects/Player_Networking.cs @@ -1,6 +1,7 @@ using System; using ACE.Common; +using ACE.Common.Extensions; using ACE.Database.Models.Shard; using ACE.Entity; using ACE.Entity.Enum; @@ -140,7 +141,7 @@ public void PlayerEnterWorld() actionChain.EnqueueChain(); } - log.DebugFormat("[LOGIN] Account {0} entered the world with character {1} (0x{2}) at {3}.", Account.AccountName, Name, Guid, DateTime.Now); + log.DebugFormat("[LOGIN] Account {0} entered the world with character {1} (0x{2}) at {3}.", Account.AccountName, Name, Guid, DateTime.Now.ToCommonString()); } public void SendTurbineChatChannels(bool breakAllegiance = false)