From 5eac02efa7025e1c5fc562d2c57ec952f3768b7a Mon Sep 17 00:00:00 2001 From: Aviu00 <93730715+Aviu00@users.noreply.github.com> Date: Thu, 8 Feb 2024 20:38:26 +0900 Subject: [PATCH] - fix: Fix gulag again (#37) --- .../Administration/Managers/BanManager.cs | 2 +- .../Administration/Managers/IBanManager.cs | 1 - .../_Miracle/GulagSystem/GulagSystem.cs | 29 +++++++++++-------- 3 files changed, 18 insertions(+), 14 deletions(-) diff --git a/Content.Server/Administration/Managers/BanManager.cs b/Content.Server/Administration/Managers/BanManager.cs index 56f913a38e..670adfe82a 100644 --- a/Content.Server/Administration/Managers/BanManager.cs +++ b/Content.Server/Administration/Managers/BanManager.cs @@ -115,7 +115,7 @@ public sealed class BanManager : IBanManager, IPostInjectInit { // Clear out players that have disconnected. var toRemove = new List(); - foreach (var player in _cachedRoleBans.Keys) + foreach (var player in _cachedRoleBans.Keys.Concat(_cachedServerBans.Keys)) // Miracle edit { if (!_playerManager.TryGetSessionById(player, out _)) toRemove.Add(player); diff --git a/Content.Server/Administration/Managers/IBanManager.cs b/Content.Server/Administration/Managers/IBanManager.cs index ed029fb920..d0e49ec9c0 100644 --- a/Content.Server/Administration/Managers/IBanManager.cs +++ b/Content.Server/Administration/Managers/IBanManager.cs @@ -31,7 +31,6 @@ public interface IBanManager public HashSet GetServerBans(NetUserId userId); // Miracle edit public void RemoveCachedServerBan(NetUserId userId, int? id); // Miracle edit - public void AddCachedServerBan(ServerBanDef banDef); // Miracle edit /// diff --git a/Content.Server/_Miracle/GulagSystem/GulagSystem.cs b/Content.Server/_Miracle/GulagSystem/GulagSystem.cs index 820df1234d..2932a0d5fa 100644 --- a/Content.Server/_Miracle/GulagSystem/GulagSystem.cs +++ b/Content.Server/_Miracle/GulagSystem/GulagSystem.cs @@ -147,8 +147,8 @@ public sealed partial class GulagSystem : SharedGulagSystem } var banDef = ban.First(); - var newExpirationTime = banDef.ExpirationTime!.Value.DateTime + TimeSpan.FromDays(1); - _db.EditServerBan(banDef.Id!.Value, banDef.Reason, banDef.Severity, newExpirationTime, banDef.UserId!.Value, DateTime.Now); + var newExpirationTime = banDef.ExpirationTime!.Value + TimeSpan.FromDays(1); + EditServerBan(banDef, newExpirationTime); } public override void Update(float frameTime) @@ -379,24 +379,29 @@ public sealed partial class GulagSystem : SharedGulagSystem continue; } - var newExpirationTime = banDef.ExpirationTime!.Value.DateTime - ConvertPointsToTime(points); + var newExpirationTime = banDef.ExpirationTime!.Value - ConvertPointsToTime(points); - _db.EditServerBan(banDef.Id!.Value, banDef.Reason, banDef.Severity, newExpirationTime, banDef.UserId!.Value, DateTime.Now); - - // Update time - _banManager.RemoveCachedServerBan(banDef.UserId.Value, banDef.Id.Value); - _banManager.AddCachedServerBan(new ServerBanDef( - banDef.Id, banDef.UserId, banDef.Address, banDef.HWId, banDef.BanTime, newExpirationTime, - banDef.RoundId, banDef.PlaytimeAtNote, banDef.Reason, banDef.Severity, banDef.BanningAdmin, - banDef.Unban, banDef.ServerName)); + EditServerBan(banDef, newExpirationTime); } - + _pointsPerPlayer.Clear(); _activeMap = null!; _mapEntity = null!; } + private void EditServerBan(ServerBanDef banDef, DateTimeOffset newExpirationTime) + { + _db.EditServerBan(banDef.Id!.Value, banDef.Reason, banDef.Severity, newExpirationTime.UtcDateTime, banDef.UserId!.Value, + DateTime.UtcNow); + + _banManager.RemoveCachedServerBan(banDef.UserId.Value, banDef.Id.Value); + _banManager.AddCachedServerBan(new ServerBanDef( + banDef.Id, banDef.UserId, banDef.Address, banDef.HWId, banDef.BanTime, newExpirationTime, + banDef.RoundId, banDef.PlaytimeAtNote, banDef.Reason, banDef.Severity, banDef.BanningAdmin, + banDef.Unban, banDef.ServerName)); + } + private void OnRoundStarting(RoundStartingEvent ev) { //Spawn Gulag