]> git.smokeofanarchy.ru Git - space-station-14.git/commitdiff
Add admin log messages for gamerule addition and end (#24092)
authorTrevor Day <tday93@users.noreply.github.com>
Sat, 20 Jan 2024 18:02:12 +0000 (10:02 -0800)
committerGitHub <noreply@github.com>
Sat, 20 Jan 2024 18:02:12 +0000 (12:02 -0600)
* Add admin log messages for gamerule addition and end

* Use EventRan end EventStopped LogTypes instead of new GameRule logtype

* Apply suggestions from code review

---------

Co-authored-by: Chief-Engineer <119664036+Chief-Engineer@users.noreply.github.com>
Content.Server/GameTicking/GameTicker.GameRule.cs
Content.Server/GameTicking/Rules/SecretRuleSystem.cs

index c04b8d671161c940231866e9b581bed3b3b8dbbd..971e103c1b577a47cfe8c74b6a3ecf410f1973c0 100644 (file)
@@ -2,6 +2,7 @@ using System.Linq;
 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 sealed partial class GameTicker
     {
         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 sealed partial class GameTicker
 
         _allPreviousGameRules.Add((RoundDuration(), id));
         _sawmill.Info($"Started game rule {ToPrettyString(ruleEntity)}");
+        _adminLogger.Add(LogType.EventStarted, $"Started game rule {ToPrettyString(ruleEntity)}");
 
         EnsureComp<ActiveGameRuleComponent>(ruleEntity);
         ruleData.ActivatedAt = _gameTiming.CurTime;
@@ -131,6 +134,7 @@ public sealed partial class GameTicker
         EnsureComp<EndedGameRuleComponent>(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 @@ public sealed partial class GameTicker
 
         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 @@ public sealed partial class GameTicker
         {
             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);
         }
index afd6455f923ff8242018391e4319620dec15a2c0..1e3858ceef6f80582a862c11324b189b926b1aca 100644 (file)
@@ -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<SecretRuleComponent>
     [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 @@ public sealed class SecretRuleSystem : GameRuleSystem<SecretRuleComponent>
         var presetString = _configurationManager.GetCVar(CCVars.SecretWeightPrototype);
         var preset = _prototypeManager.Index<WeightedRandomPrototype>(presetString).Pick(_random);
         Logger.InfoS("gamepreset", $"Selected {preset} for secret.");
+        _adminLogger.Add(LogType.EventStarted, $"Selected {preset} for secret.");
 
         var rules = _prototypeManager.Index<GamePresetPrototype>(preset).Rules;
         foreach (var rule in rules)