]> git.smokeofanarchy.ru Git - space-station-14.git/commitdiff
HOTFIX Add logging to gamepreset fallback (#41522)
authorErrant <35878406+Errant-4@users.noreply.github.com>
Fri, 21 Nov 2025 22:48:00 +0000 (23:48 +0100)
committerGitHub <noreply@github.com>
Fri, 21 Nov 2025 22:48:00 +0000 (23:48 +0100)
* Add logging to gamepreset fallback

* cleanup

Content.Server/GameTicking/GameTicker.GamePreset.cs
Content.Server/GameTicking/Rules/GameRuleSystem.cs

index 69cc1c4165b6c5d5d2a9755fdafcbd8996b2794c..1973daa5a113c17d97ce1d7eb5766a34f78bcb53 100644 (file)
@@ -35,6 +35,7 @@ public sealed partial class GameTicker
 
     private bool StartPreset(ICommonSession[] origReadyPlayers, bool force)
     {
+        _sawmill.Info($"Attempting to start preset '{CurrentPreset?.ID}'");
         var startAttempt = new RoundStartAttemptEvent(origReadyPlayers, force);
         RaiseLocalEvent(startAttempt);
 
@@ -56,9 +57,12 @@ public sealed partial class GameTicker
             var fallbackPresets = _cfg.GetCVar(CCVars.GameLobbyFallbackPreset).Split(",");
             var startFailed = true;
 
+            _sawmill.Info($"Fallback - Failed to start round, attempting to start fallback presets.");
             foreach (var preset in fallbackPresets)
             {
+                _sawmill.Info($"Fallback - Clearing up gamerules");
                 ClearGameRules();
+                _sawmill.Info($"Fallback - Attempting to start '{preset}'");
                 SetGamePreset(preset, resetDelay: 1);
                 AddGamePresetRules();
                 StartGamePresetRules();
@@ -76,6 +80,7 @@ public sealed partial class GameTicker
                     startFailed = false;
                     break;
                 }
+                _sawmill.Info($"Fallback - '{preset}' failed to start.");
             }
 
             if (startFailed)
@@ -87,6 +92,7 @@ public sealed partial class GameTicker
 
         else
         {
+            _sawmill.Info($"Fallback - Failed to start preset but fallbacks are disabled. Returning to Lobby.");
             FailedPresetRestart();
             return false;
         }
index cb5b117549520b55a4fb527997c018f9a2ea4ebf..6b4240dd7ff936ef70c2a1c6266691f00d545b33 100644 (file)
@@ -38,6 +38,8 @@ public abstract partial class GameRuleSystem<T> : EntitySystem where T : ICompon
         while (query.MoveNext(out var uid, out _, out var gameRule))
         {
             var minPlayers = gameRule.MinPlayers;
+            var name = ToPrettyString(uid);
+
             if (args.Players.Length >= minPlayers)
                 continue;
 
@@ -46,8 +48,10 @@ public abstract partial class GameRuleSystem<T> : EntitySystem where T : ICompon
                 ChatManager.SendAdminAnnouncement(Loc.GetString("preset-not-enough-ready-players",
                     ("readyPlayersCount", args.Players.Length),
                     ("minimumPlayers", minPlayers),
-                    ("presetName", ToPrettyString(uid))));
+                    ("presetName", name)));
                 args.Cancel();
+                //TODO remove this once announcements are logged
+                Log.Info($"Rule '{name}' requires {minPlayers} players, but only {args.Players.Length} are ready.");
             }
             else
             {