Add antag notice to admin chat alerts (#35994)

Add antag notice to admin chat pop-ups
This commit is contained in:
SlamBamActionman
2025-03-22 00:21:32 +01:00
committed by GitHub
parent 1b26a98d7f
commit 6856440084

View File

@@ -2,6 +2,7 @@
using System.Text.Json; using System.Text.Json;
using System.Threading; using System.Threading;
using System.Threading.Tasks; using System.Threading.Tasks;
using Content.Server.Administration.Systems;
using Content.Server.Database; using Content.Server.Database;
using Content.Server.GameTicking; using Content.Server.GameTicking;
using Content.Shared.Administration.Logs; using Content.Shared.Administration.Logs;
@@ -310,6 +311,10 @@ public sealed partial class AdminLogManager : SharedAdminLogManager, IAdminLogMa
Players = new List<AdminLogPlayer>(players.Count) Players = new List<AdminLogPlayer>(players.Count)
}; };
var adminLog = false;
var adminSys = _entityManager.SystemOrNull<AdminSystem>();
var logMessage = message;
foreach (var id in players) foreach (var id in players)
{ {
var player = new AdminLogPlayer var player = new AdminLogPlayer
@@ -319,8 +324,21 @@ public sealed partial class AdminLogManager : SharedAdminLogManager, IAdminLogMa
}; };
log.Players.Add(player); log.Players.Add(player);
if (adminSys != null)
{
var cachedInfo = adminSys.GetCachedPlayerInfo(new NetUserId(id));
if (cachedInfo != null && cachedInfo.Antag)
{
logMessage += " [ANTAG: " + cachedInfo.CharacterName + "]";
}
}
if (adminLog)
continue;
if (impact == LogImpact.Extreme) // Always chat-notify Extreme logs if (impact == LogImpact.Extreme) // Always chat-notify Extreme logs
_chat.SendAdminAlert(message); adminLog = true;
if (impact == LogImpact.High) // Only chat-notify High logs if the player is below a threshold playtime if (impact == LogImpact.High) // Only chat-notify High logs if the player is below a threshold playtime
{ {
@@ -330,12 +348,15 @@ public sealed partial class AdminLogManager : SharedAdminLogManager, IAdminLogMa
if (playtimes.TryGetValue(PlayTimeTrackingShared.TrackerOverall, out var overallTime) && if (playtimes.TryGetValue(PlayTimeTrackingShared.TrackerOverall, out var overallTime) &&
overallTime <= TimeSpan.FromHours(_highImpactLogPlaytime)) overallTime <= TimeSpan.FromHours(_highImpactLogPlaytime))
{ {
_chat.SendAdminAlert(message); adminLog = true;
} }
} }
} }
} }
if (adminLog)
_chat.SendAdminAlert(logMessage);
if (preRound) if (preRound)
{ {
_preRoundLogQueue.Enqueue(log); _preRoundLogQueue.Enqueue(log);