diff --git a/Content.Server/GameTicking/GameTicker.GameRule.cs b/Content.Server/GameTicking/GameTicker.GameRule.cs index c04b8d671161c9..971e103c1b577a 100644 --- a/Content.Server/GameTicking/GameTicker.GameRule.cs +++ b/Content.Server/GameTicking/GameTicker.GameRule.cs @@ -2,6 +2,7 @@ using Content.Server.Administration; using Content.Server.GameTicking.Rules.Components; using Content.Shared.Administration; +using Content.Shared.Database; using Content.Shared.Prototypes; using JetBrains.Annotations; using Robust.Shared.Console; @@ -59,6 +60,7 @@ public EntityUid AddGameRule(string ruleId) { var ruleEntity = Spawn(ruleId, MapCoordinates.Nullspace); _sawmill.Info($"Added game rule {ToPrettyString(ruleEntity)}"); + _adminLogger.Add(LogType.EventStarted, $"Added game rule {ToPrettyString(ruleEntity)}"); var ev = new GameRuleAddedEvent(ruleEntity, ruleId); RaiseLocalEvent(ruleEntity, ref ev, true); @@ -102,6 +104,7 @@ public bool StartGameRule(EntityUid ruleEntity, GameRuleComponent? ruleData = nu _allPreviousGameRules.Add((RoundDuration(), id)); _sawmill.Info($"Started game rule {ToPrettyString(ruleEntity)}"); + _adminLogger.Add(LogType.EventStarted, $"Started game rule {ToPrettyString(ruleEntity)}"); EnsureComp(ruleEntity); ruleData.ActivatedAt = _gameTiming.CurTime; @@ -131,6 +134,7 @@ public bool EndGameRule(EntityUid ruleEntity, GameRuleComponent? ruleData = null EnsureComp(ruleEntity); _sawmill.Info($"Ended game rule {ToPrettyString(ruleEntity)}"); + _adminLogger.Add(LogType.EventStopped, $"Ended game rule {ToPrettyString(ruleEntity)}"); var ev = new GameRuleEndedEvent(ruleEntity, id); RaiseLocalEvent(ruleEntity, ref ev, true); @@ -227,6 +231,14 @@ private void AddGameRuleCommand(IConsoleShell shell, string argstr, string[] arg foreach (var rule in args) { + if (shell.Player != null) + { + _adminLogger.Add(LogType.EventStarted, $"{shell.Player} tried to add game rule [{rule}] via command"); + } + else + { + _adminLogger.Add(LogType.EventStarted, $"Unknown tried to add game rule [{rule}] via command"); + } var ent = AddGameRule(rule); // Start rule if we're already in the middle of a round @@ -250,6 +262,14 @@ private void EndGameRuleCommand(IConsoleShell shell, string argstr, string[] arg { if (!NetEntity.TryParse(rule, out var ruleEntNet) || !TryGetEntity(ruleEntNet, out var ruleEnt)) continue; + if (shell.Player != null) + { + _adminLogger.Add(LogType.EventStopped, $"{shell.Player} tried to end game rule [{rule}] via command"); + } + else + { + _adminLogger.Add(LogType.EventStopped, $"Unknown tried to end game rule [{rule}] via command"); + } EndGameRule(ruleEnt.Value); } diff --git a/Content.Server/GameTicking/Rules/SecretRuleSystem.cs b/Content.Server/GameTicking/Rules/SecretRuleSystem.cs index afd6455f923ff8..1e3858ceef6f80 100644 --- a/Content.Server/GameTicking/Rules/SecretRuleSystem.cs +++ b/Content.Server/GameTicking/Rules/SecretRuleSystem.cs @@ -1,8 +1,10 @@ +using Content.Server.Administration.Logs; using Content.Server.GameTicking.Presets; using Content.Server.GameTicking.Rules.Components; using Content.Shared.Random; using Content.Shared.Random.Helpers; using Content.Shared.CCVar; +using Content.Shared.Database; using Robust.Shared.Prototypes; using Robust.Shared.Random; using Robust.Shared.Configuration; @@ -14,6 +16,7 @@ public sealed class SecretRuleSystem : GameRuleSystem [Dependency] private readonly IPrototypeManager _prototypeManager = default!; [Dependency] private readonly IRobustRandom _random = default!; [Dependency] private readonly IConfigurationManager _configurationManager = default!; + [Dependency] private readonly IAdminLogManager _adminLogger = default!; protected override void Started(EntityUid uid, SecretRuleComponent component, GameRuleComponent gameRule, GameRuleStartedEvent args) { @@ -38,6 +41,7 @@ private void PickRule(SecretRuleComponent component) var presetString = _configurationManager.GetCVar(CCVars.SecretWeightPrototype); var preset = _prototypeManager.Index(presetString).Pick(_random); Logger.InfoS("gamepreset", $"Selected {preset} for secret."); + _adminLogger.Add(LogType.EventStarted, $"Selected {preset} for secret."); var rules = _prototypeManager.Index(preset).Rules; foreach (var rule in rules)