Add multiple logs (#12857)

This commit is contained in:
Chief-Engineer
2022-12-15 12:33:27 -06:00
committed by GitHub
parent 343e695524
commit eb18363bd2
8 changed files with 92 additions and 4 deletions

View File

@@ -5,10 +5,12 @@ using Content.Server.MachineLinking.System;
using Content.Server.Popups; using Content.Server.Popups;
using Content.Server.Station.Systems; using Content.Server.Station.Systems;
using Content.Shared.Access.Systems; using Content.Shared.Access.Systems;
using Content.Shared.Administration.Logs;
using Content.Shared.Cargo; using Content.Shared.Cargo;
using Content.Shared.Cargo.BUI; using Content.Shared.Cargo.BUI;
using Content.Shared.Cargo.Events; using Content.Shared.Cargo.Events;
using Content.Shared.Cargo.Prototypes; using Content.Shared.Cargo.Prototypes;
using Content.Shared.Database;
using Content.Shared.GameTicking; using Content.Shared.GameTicking;
using Robust.Server.GameObjects; using Robust.Server.GameObjects;
using Robust.Shared.Audio; using Robust.Shared.Audio;
@@ -35,6 +37,7 @@ namespace Content.Server.Cargo.Systems
[Dependency] private readonly PopupSystem _popup = default!; [Dependency] private readonly PopupSystem _popup = default!;
[Dependency] private readonly StationSystem _station = default!; [Dependency] private readonly StationSystem _station = default!;
[Dependency] private readonly UserInterfaceSystem _uiSystem = default!; [Dependency] private readonly UserInterfaceSystem _uiSystem = default!;
[Dependency] private readonly ISharedAdminLogManager _adminLogger = default!;
private void InitializeConsole() private void InitializeConsole()
{ {
@@ -160,6 +163,10 @@ namespace Content.Server.Cargo.Systems
SoundSystem.Play(component.ConfirmSound.GetSound(), Filter.Pvs(uid, entityManager: EntityManager), uid); SoundSystem.Play(component.ConfirmSound.GetSound(), Filter.Pvs(uid, entityManager: EntityManager), uid);
// Log order approval
_adminLogger.Add(LogType.Action, LogImpact.Low,
$"{ToPrettyString(player):user} approved order [orderNum:{order.OrderNumber}, amount:{order.Amount}, product:{order.ProductId}, requester:{order.Requester}, reason:{order.Reason}] with balance at {bankAccount.Balance}");
DeductFunds(bankAccount, cost); DeductFunds(bankAccount, cost);
UpdateOrders(orderDatabase); UpdateOrders(orderDatabase);
} }
@@ -173,6 +180,9 @@ namespace Content.Server.Cargo.Systems
private void OnAddOrderMessage(EntityUid uid, CargoOrderConsoleComponent component, CargoConsoleAddOrderMessage args) private void OnAddOrderMessage(EntityUid uid, CargoOrderConsoleComponent component, CargoConsoleAddOrderMessage args)
{ {
if (args.Session.AttachedEntity is not {Valid: true} player)
return;
if (args.Amount <= 0) if (args.Amount <= 0)
return; return;
@@ -188,6 +198,11 @@ namespace Content.Server.Cargo.Systems
PlayDenySound(uid, component); PlayDenySound(uid, component);
return; return;
} }
// Log order addition
_adminLogger.Add(LogType.Action, LogImpact.Low,
$"{ToPrettyString(player):user} added order [orderNum:{data.OrderNumber}, amount:{data.Amount}, product:{data.ProductId}, requester:{data.Requester}, reason:{data.Reason}]");
} }
private void OnOrderUIOpened(EntityUid uid, CargoOrderConsoleComponent component, BoundUIOpenedEvent args) private void OnOrderUIOpened(EntityUid uid, CargoOrderConsoleComponent component, BoundUIOpenedEvent args)

View File

@@ -1,6 +1,8 @@
using Content.Server.Body.Components; using Content.Server.Body.Components;
using Content.Server.Body.Systems; using Content.Server.Body.Systems;
using Content.Server.Chemistry.EntitySystems; using Content.Server.Chemistry.EntitySystems;
using Content.Shared.Administration.Logs;
using Content.Shared.Database;
using Content.Shared.FixedPoint; using Content.Shared.FixedPoint;
using Content.Shared.Foam; using Content.Shared.Foam;
using Content.Shared.Inventory; using Content.Shared.Inventory;
@@ -12,6 +14,7 @@ namespace Content.Server.Chemistry.Components
public sealed class FoamSolutionAreaEffectComponent : SolutionAreaEffectComponent public sealed class FoamSolutionAreaEffectComponent : SolutionAreaEffectComponent
{ {
[Dependency] private readonly IEntityManager _entMan = default!; [Dependency] private readonly IEntityManager _entMan = default!;
[Dependency] private readonly ISharedAdminLogManager _adminLogger = default!;
public new const string SolutionName = "solutionArea"; public new const string SolutionName = "solutionArea";
@@ -61,7 +64,11 @@ namespace Content.Server.Chemistry.Components
bloodstream.ChemicalSolution.AvailableVolume); bloodstream.ChemicalSolution.AvailableVolume);
var transferSolution = cloneSolution.SplitSolution(transferAmount); var transferSolution = cloneSolution.SplitSolution(transferAmount);
bloodstreamSys.TryAddToChemicals(entity, transferSolution, bloodstream); if (bloodstreamSys.TryAddToChemicals(entity, transferSolution, bloodstream))
{
// Log solution addition by foam
_adminLogger.Add(LogType.ForceFeed, LogImpact.Medium, $"{_entMan.ToPrettyString(entity):target} was affected by foam {SolutionContainerSystem.ToPrettyString(transferSolution)}");
}
} }
protected override void OnKill() protected override void OnKill()

View File

@@ -1,8 +1,10 @@
using Content.Server.Body.Components; using Content.Server.Body.Components;
using Content.Server.Body.Systems; using Content.Server.Body.Systems;
using Content.Server.Chemistry.EntitySystems; using Content.Server.Chemistry.EntitySystems;
using Content.Shared.Administration.Logs;
using Content.Shared.Chemistry; using Content.Shared.Chemistry;
using Content.Shared.Chemistry.Reagent; using Content.Shared.Chemistry.Reagent;
using Content.Shared.Database;
using Content.Shared.FixedPoint; using Content.Shared.FixedPoint;
using Content.Shared.Smoking; using Content.Shared.Smoking;
@@ -13,6 +15,7 @@ namespace Content.Server.Chemistry.Components
public sealed class SmokeSolutionAreaEffectComponent : SolutionAreaEffectComponent public sealed class SmokeSolutionAreaEffectComponent : SolutionAreaEffectComponent
{ {
[Dependency] private readonly IEntityManager _entMan = default!; [Dependency] private readonly IEntityManager _entMan = default!;
[Dependency] private readonly ISharedAdminLogManager _adminLogger = default!;
public new const string SolutionName = "solutionArea"; public new const string SolutionName = "solutionArea";
@@ -49,7 +52,11 @@ namespace Content.Server.Chemistry.Components
} }
var bloodstreamSys = EntitySystem.Get<BloodstreamSystem>(); var bloodstreamSys = EntitySystem.Get<BloodstreamSystem>();
bloodstreamSys.TryAddToChemicals(entity, transferSolution, bloodstream); if (bloodstreamSys.TryAddToChemicals(entity, transferSolution, bloodstream))
{
// Log solution addition by smoke
_adminLogger.Add(LogType.ForceFeed, LogImpact.Medium, $"{_entMan.ToPrettyString(entity):target} was affected by smoke {SolutionContainerSystem.ToPrettyString(transferSolution)}");
}
} }

View File

@@ -6,9 +6,11 @@ using Content.Server.Labels.Components;
using Content.Server.Popups; using Content.Server.Popups;
using Content.Server.Storage.Components; using Content.Server.Storage.Components;
using Content.Server.Storage.EntitySystems; using Content.Server.Storage.EntitySystems;
using Content.Shared.Administration.Logs;
using Content.Shared.Chemistry; using Content.Shared.Chemistry;
using Content.Shared.Chemistry.Components; using Content.Shared.Chemistry.Components;
using Content.Shared.Containers.ItemSlots; using Content.Shared.Containers.ItemSlots;
using Content.Shared.Database;
using Content.Shared.FixedPoint; using Content.Shared.FixedPoint;
using JetBrains.Annotations; using JetBrains.Annotations;
using Robust.Server.GameObjects; using Robust.Server.GameObjects;
@@ -35,6 +37,7 @@ namespace Content.Server.Chemistry.EntitySystems
[Dependency] private readonly UserInterfaceSystem _userInterfaceSystem = default!; [Dependency] private readonly UserInterfaceSystem _userInterfaceSystem = default!;
[Dependency] private readonly StorageSystem _storageSystem = default!; [Dependency] private readonly StorageSystem _storageSystem = default!;
[Dependency] private readonly LabelSystem _labelSystem = default!; [Dependency] private readonly LabelSystem _labelSystem = default!;
[Dependency] private readonly ISharedAdminLogManager _adminLogger = default!;
private const string PillPrototypeId = "Pill"; private const string PillPrototypeId = "Pill";
@@ -209,6 +212,19 @@ namespace Content.Server.Chemistry.EntitySystems
if (TryComp<SpriteComponent>(item, out var spriteComp)) if (TryComp<SpriteComponent>(item, out var spriteComp))
spriteComp.LayerSetState(0, "pill" + (chemMaster.PillType + 1)); spriteComp.LayerSetState(0, "pill" + (chemMaster.PillType + 1));
if (user.HasValue)
{
// Log pill creation by a user
_adminLogger.Add(LogType.Action, LogImpact.Low,
$"{ToPrettyString(user.Value):user} printed {ToPrettyString(item):pill} {SolutionContainerSystem.ToPrettyString(itemSolution)}");
}
else
{
// Log pill creation by magic? This should never happen... right?
_adminLogger.Add(LogType.Action, LogImpact.Low,
$"Unknown printed {ToPrettyString(item):pill} {SolutionContainerSystem.ToPrettyString(itemSolution)}");
}
} }
UpdateUiState(chemMaster); UpdateUiState(chemMaster);
@@ -242,6 +258,19 @@ namespace Content.Server.Chemistry.EntitySystems
_solutionContainerSystem.TryAddSolution( _solutionContainerSystem.TryAddSolution(
container, solution, withdrawal); container, solution, withdrawal);
if (user.HasValue)
{
// Log bottle creation by a user
_adminLogger.Add(LogType.Action, LogImpact.Low,
$"{ToPrettyString(user.Value):user} bottled {ToPrettyString(container):bottle} {SolutionContainerSystem.ToPrettyString(solution)}");
}
else
{
// Log bottle creation by magic? This should never happen... right?
_adminLogger.Add(LogType.Action, LogImpact.Low,
$"Unknown bottled {ToPrettyString(container):bottle} {SolutionContainerSystem.ToPrettyString(solution)}");
}
UpdateUiState(chemMaster); UpdateUiState(chemMaster);
ClickSound(chemMaster); ClickSound(chemMaster);
} }

View File

@@ -238,10 +238,16 @@ namespace Content.Server.Construction
if (transform.Anchored) if (transform.Anchored)
{ {
TryUnAnchor(uid, userUid, usingUid, anchorable, transform, usingTool); TryUnAnchor(uid, userUid, usingUid, anchorable, transform, usingTool);
// Log unanchor attempt
_adminLogger.Add(LogType.Anchor, LogImpact.Low, $"{ToPrettyString(userUid):user} is trying to unanchor {ToPrettyString(uid):entity} from {transform.Coordinates:targetlocation}");
} }
else else
{ {
TryAnchor(uid, userUid, usingUid, anchorable, transform, pullable, usingTool); TryAnchor(uid, userUid, usingUid, anchorable, transform, pullable, usingTool);
// Log anchor attempt
_adminLogger.Add(LogType.Anchor, LogImpact.Low, $"{ToPrettyString(userUid):user} is trying to anchor {ToPrettyString(uid):entity} to {transform.Coordinates:targetlocation}");
} }
} }

View File

@@ -19,6 +19,7 @@ using Robust.Shared.Random;
using Robust.Shared.Utility; using Robust.Shared.Utility;
using System.Linq; using System.Linq;
using System.Threading.Tasks; using System.Threading.Tasks;
using Content.Shared.Database;
using Robust.Shared.Asynchronous; using Robust.Shared.Asynchronous;
namespace Content.Server.GameTicking namespace Content.Server.GameTicking
@@ -295,6 +296,9 @@ namespace Content.Server.GameTicking
public void ShowRoundEndScoreboard(string text = "") public void ShowRoundEndScoreboard(string text = "")
{ {
// Log end of round
_adminLogger.Add(LogType.EmergencyShuttle, LogImpact.High, $"Round ended, showing summary");
//Tell every client the round has ended. //Tell every client the round has ended.
var gamemodeTitle = Preset != null ? Loc.GetString(Preset.ModeTitle) : string.Empty; var gamemodeTitle = Preset != null ? Loc.GetString(Preset.ModeTitle) : string.Empty;

View File

@@ -1,6 +1,8 @@
using Content.Server.Labels.Components; using Content.Server.Labels.Components;
using Content.Server.UserInterface; using Content.Server.UserInterface;
using Content.Server.Popups; using Content.Server.Popups;
using Content.Shared.Administration.Logs;
using Content.Shared.Database;
using Content.Shared.Interaction; using Content.Shared.Interaction;
using Content.Shared.Labels; using Content.Shared.Labels;
using Content.Shared.Verbs; using Content.Shared.Verbs;
@@ -19,6 +21,7 @@ namespace Content.Server.Labels
[Dependency] private readonly UserInterfaceSystem _userInterfaceSystem = default!; [Dependency] private readonly UserInterfaceSystem _userInterfaceSystem = default!;
[Dependency] private readonly PopupSystem _popupSystem = default!; [Dependency] private readonly PopupSystem _popupSystem = default!;
[Dependency] private readonly LabelSystem _labelSystem = default!; [Dependency] private readonly LabelSystem _labelSystem = default!;
[Dependency] private readonly ISharedAdminLogManager _adminLogger = default!;
public override void Initialize() public override void Initialize()
{ {
@@ -57,8 +60,13 @@ namespace Content.Server.Labels
return; return;
AddLabelTo(uid, handLabeler, target, out string? result); AddLabelTo(uid, handLabeler, target, out string? result);
if (result != null) if (result == null)
return;
_popupSystem.PopupEntity(result, args.User, Filter.Entities(args.User)); _popupSystem.PopupEntity(result, args.User, Filter.Entities(args.User));
// Log labeling
_adminLogger.Add(LogType.Action, LogImpact.Low,
$"{ToPrettyString(args.User):user} labeled {ToPrettyString(target):target} with {ToPrettyString(uid):labeler}");
} }
private void AddLabelTo(EntityUid uid, HandLabelerComponent? handLabeler, EntityUid target, out string? result) private void AddLabelTo(EntityUid uid, HandLabelerComponent? handLabeler, EntityUid target, out string? result)
@@ -91,8 +99,16 @@ namespace Content.Server.Labels
private void OnHandLabelerLabelChanged(EntityUid uid, HandLabelerComponent handLabeler, HandLabelerLabelChangedMessage args) private void OnHandLabelerLabelChanged(EntityUid uid, HandLabelerComponent handLabeler, HandLabelerLabelChangedMessage args)
{ {
if (args.Session.AttachedEntity is not {Valid: true} player)
return;
handLabeler.AssignedLabel = args.Label.Trim().Substring(0, Math.Min(handLabeler.MaxLabelChars, args.Label.Length)); handLabeler.AssignedLabel = args.Label.Trim().Substring(0, Math.Min(handLabeler.MaxLabelChars, args.Label.Length));
DirtyUI(uid, handLabeler); DirtyUI(uid, handLabeler);
// Log label change
_adminLogger.Add(LogType.Action, LogImpact.Low,
$"{ToPrettyString(player):user} set {ToPrettyString(uid):labeler} to apply label \"{handLabeler.AssignedLabel}\"");
} }
private void DirtyUI(EntityUid uid, private void DirtyUI(EntityUid uid,

View File

@@ -1,7 +1,9 @@
using System.Diagnostics.CodeAnalysis; using System.Diagnostics.CodeAnalysis;
using Content.Shared.ActionBlocker; using Content.Shared.ActionBlocker;
using Content.Shared.Administration.Logs;
using Content.Shared.Alert; using Content.Shared.Alert;
using Content.Shared.Damage; using Content.Shared.Damage;
using Content.Shared.Database;
using Content.Shared.DragDrop; using Content.Shared.DragDrop;
using Content.Shared.Emoting; using Content.Shared.Emoting;
using Content.Shared.FixedPoint; using Content.Shared.FixedPoint;
@@ -29,6 +31,7 @@ namespace Content.Shared.MobState.EntitySystems
[Dependency] private readonly SharedPhysicsSystem _physics = default!; [Dependency] private readonly SharedPhysicsSystem _physics = default!;
[Dependency] protected readonly StatusEffectsSystem Status = default!; [Dependency] protected readonly StatusEffectsSystem Status = default!;
[Dependency] private readonly StandingStateSystem _standing = default!; [Dependency] private readonly StandingStateSystem _standing = default!;
[Dependency] private readonly ISharedAdminLogManager _adminLogger = default!;
public override void Initialize() public override void Initialize()
{ {
@@ -325,6 +328,7 @@ namespace Content.Shared.MobState.EntitySystems
ExitState(component, old); ExitState(component, old);
component.CurrentState = state; component.CurrentState = state;
_adminLogger.Add(LogType.Damaged, state == DamageState.Alive ? LogImpact.Low : LogImpact.Medium, $"{ToPrettyString(component.Owner):user} state changed from {old} to {state}");
EnterState(component, state); EnterState(component, state);
UpdateState(component, state, threshold); UpdateState(component, state, threshold);