AdminLogOnTrigger (#41474)
* commit * requested * also requested * Update Content.Shared/Trigger/Components/Effects/AdminLogOnTriggerComponent.cs --------- Co-authored-by: iaada <iaada@users.noreply.github.com> Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>
This commit is contained in:
@@ -0,0 +1,34 @@
|
|||||||
|
using Content.Shared.Database;
|
||||||
|
using Content.Shared.Random;
|
||||||
|
using Content.Shared.Trigger.Components.Triggers;
|
||||||
|
using Robust.Shared.GameStates;
|
||||||
|
using Robust.Shared.Prototypes;
|
||||||
|
|
||||||
|
namespace Content.Shared.Trigger.Components.Effects;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// This component creates an admin log when receiving a trigger.
|
||||||
|
/// <see cref="BaseXOnTriggerComponent.TargetUser"/> is ignored.
|
||||||
|
/// </summary>
|
||||||
|
[RegisterComponent, NetworkedComponent, AutoGenerateComponentState]
|
||||||
|
public sealed partial class AdminLogOnTriggerComponent : BaseXOnTriggerComponent
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// The message displayed in the logs describing what specifically was done by this trigger.
|
||||||
|
/// This entity and the user will be included alongside the message.
|
||||||
|
/// </summary>
|
||||||
|
[DataField(required: true), AutoNetworkedField]
|
||||||
|
public LocId Message = string.Empty;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// What type of action took place?
|
||||||
|
/// </summary>
|
||||||
|
[DataField, AutoNetworkedField]
|
||||||
|
public LogType LogType = LogType.Trigger;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// How important is this trigger?
|
||||||
|
/// </summary>
|
||||||
|
[DataField, AutoNetworkedField]
|
||||||
|
public LogImpact LogImpact = LogImpact.Low;
|
||||||
|
}
|
||||||
19
Content.Shared/Trigger/Systems/AdminLogOnTriggerSystem.cs
Normal file
19
Content.Shared/Trigger/Systems/AdminLogOnTriggerSystem.cs
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
using Content.Shared.Administration.Logs;
|
||||||
|
using Content.Shared.Trigger.Components.Effects;
|
||||||
|
|
||||||
|
namespace Content.Shared.Trigger.Systems;
|
||||||
|
|
||||||
|
public sealed class AdminLogOnTriggerSystem : XOnTriggerSystem<AdminLogOnTriggerComponent>
|
||||||
|
{
|
||||||
|
[Dependency] private readonly ISharedAdminLogManager _adminLogger = default!;
|
||||||
|
|
||||||
|
protected override void OnTrigger(Entity<AdminLogOnTriggerComponent> ent, EntityUid target, ref TriggerEvent args)
|
||||||
|
{
|
||||||
|
_adminLogger.Add(
|
||||||
|
ent.Comp.LogType,
|
||||||
|
ent.Comp.LogImpact,
|
||||||
|
$"{ToPrettyString(args.User)} sent a trigger using {ToPrettyString(ent)}: {Loc.GetString(ent.Comp.Message)}"
|
||||||
|
);
|
||||||
|
// Intentionally does not handle the event since this shouldn't affect the gamestate.
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user