- fix: Fix gulag again (#37)

This commit is contained in:
Aviu00
2024-02-08 20:38:26 +09:00
committed by GitHub
parent 893911035b
commit 5eac02efa7
3 changed files with 18 additions and 14 deletions

View File

@@ -115,7 +115,7 @@ public sealed class BanManager : IBanManager, IPostInjectInit
{
// Clear out players that have disconnected.
var toRemove = new List<NetUserId>();
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);

View File

@@ -31,7 +31,6 @@ public interface IBanManager
public HashSet<ServerBanDef> GetServerBans(NetUserId userId); // Miracle edit
public void RemoveCachedServerBan(NetUserId userId, int? id); // Miracle edit
public void AddCachedServerBan(ServerBanDef banDef); // Miracle edit
/// <summary>

View File

@@ -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