From f20288046193abbf67a940f1faee73e88a3a41a8 Mon Sep 17 00:00:00 2001 From: AshBats <119367329+AshBats@users.noreply.github.com> Date: Sun, 14 Dec 2025 14:15:58 +1100 Subject: [PATCH] Admin log now shows APC power toggle interactions (#41839) Added logging to the APC's toggle interaction --- .../Power/EntitySystems/ApcSystem.cs | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/Content.Server/Power/EntitySystems/ApcSystem.cs b/Content.Server/Power/EntitySystems/ApcSystem.cs index b3b2330a3c..8956504346 100644 --- a/Content.Server/Power/EntitySystems/ApcSystem.cs +++ b/Content.Server/Power/EntitySystems/ApcSystem.cs @@ -2,7 +2,9 @@ using Content.Server.Popups; using Content.Server.Power.Components; using Content.Server.Power.Pow3r; using Content.Shared.Access.Systems; +using Content.Shared.Administration.Logs; using Content.Shared.APC; +using Content.Shared.Database; using Content.Shared.Emag.Systems; using Content.Shared.Emp; using Content.Shared.Popups; @@ -18,6 +20,7 @@ namespace Content.Server.Power.EntitySystems; public sealed class ApcSystem : EntitySystem { [Dependency] private readonly AccessReaderSystem _accessReader = default!; + [Dependency] private readonly ISharedAdminLogManager _adminLogger = default!; [Dependency] private readonly IGameTiming _gameTiming = default!; [Dependency] private readonly EmagSystem _emag = default!; [Dependency] private readonly PopupSystem _popup = default!; @@ -112,7 +115,7 @@ public sealed class ApcSystem : EntitySystem if (_accessReader.IsAllowed(args.Actor, uid)) { - ApcToggleBreaker(uid, component); + ApcToggleBreaker(uid, component, user: args.Actor); } else { @@ -121,7 +124,12 @@ public sealed class ApcSystem : EntitySystem } } - public void ApcToggleBreaker(EntityUid uid, ApcComponent? apc = null, PowerNetworkBatteryComponent? battery = null) + /// Toggles the enabled state of the APC's main breaker. + public void ApcToggleBreaker( + EntityUid uid, + ApcComponent? apc = null, + PowerNetworkBatteryComponent? battery = null, + EntityUid? user = null) { if (!Resolve(uid, ref apc, ref battery)) return; @@ -134,6 +142,13 @@ public sealed class ApcSystem : EntitySystem UpdateUIState(uid, apc); _audio.PlayPvs(apc.OnReceiveMessageSound, uid, AudioParams.Default.WithVolume(-2f)); + + if (user != null) + { + var humanReadableState = apc.MainBreakerEnabled ? "Enabled" : "Disabled"; + _adminLogger.Add(LogType.ItemConfigure, LogImpact.Medium, + $"{ToPrettyString(user):user} set the main breaker state of {ToPrettyString(uid):entity} to {humanReadableState:state}."); + } } private void OnEmagged(EntityUid uid, ApcComponent comp, ref GotEmaggedEvent args) -- 2.52.0