]> git.smokeofanarchy.ru Git - space-station-14.git/commitdiff
[PRIORITY NEGATIVE ONE/STABLE HOTFIX] ADMIN NOTES CANNOT BE ACCESSED (#40863)
authorPrincess Cheeseballs <66055347+Princess-Cheeseballs@users.noreply.github.com>
Sun, 12 Oct 2025 21:52:26 +0000 (14:52 -0700)
committerGitHub <noreply@github.com>
Sun, 12 Oct 2025 21:52:26 +0000 (23:52 +0200)
Co-authored-by: Princess Cheeseballs <66055347+Pronana@users.noreply.github.com>
Fix logger obsolete warnings (#40553)"

Content.Client/Administration/UI/Notes/AdminNotesLine.xaml.cs
Content.Client/Construction/UI/ConstructionMenuPresenter.cs
Content.Client/Guidebook/DocumentParsingManager.cs
Content.Client/Guidebook/Richtext/Table.cs
Content.Client/Guidebook/Richtext/TextLinkTag.cs
Content.Client/Launcher/LauncherConnecting.cs
Content.Client/UserInterface/Systems/Alerts/Widgets/AlertsUI.xaml.cs
Content.Replay/Menu/ReplayMainMenu.cs
Content.Server/Chat/Managers/ChatManager.cs
Content.Server/GameTicking/Commands/JoinGameCommand.cs

index 24e5cfdfab4d805c44e7225666342a484b859fcc..97ddc150007a4e13a4e0b1ef57cd390d638d2289 100644 (file)
@@ -14,9 +14,6 @@ namespace Content.Client.Administration.UI.Notes;
 [GenerateTypedNameReferences]
 public sealed partial class AdminNotesLine : BoxContainer
 {
-    [Dependency] private readonly ILogManager _logManager = default!;
-
-    private readonly ISawmill _sawmill = default!;
     private readonly SpriteSystem _sprites;
 
     private const string AdminNotesTextureBase = "/Textures/Interface/AdminNotes/";
@@ -36,8 +33,6 @@ public sealed partial class AdminNotesLine : BoxContainer
     public AdminNotesLine(SpriteSystem sprites, SharedAdminNote note)
     {
         RobustXamlLoader.Load(this);
-
-        _sawmill = _logManager.GetSawmill("admin.notes");
         _sprites = sprites;
 
         Note = note;
@@ -66,7 +61,7 @@ public sealed partial class AdminNotesLine : BoxContainer
         if (iconPath is null)
         {
             SeverityRect.Visible = false;
-            _sawmill.Warning($"Could not find an icon for note ID {Note.Id}");
+            Logger.WarningS("admin.notes", $"Could not find an icon for note ID {Note.Id}");
         }
         else
         {
index d640de7b68769e54d2e75c4ba3246395142cfd94..d5fee2bdda79c7beb77e455a709a5fa141b75a44 100644 (file)
@@ -30,10 +30,8 @@ namespace Content.Client.Construction.UI
         [Dependency] private readonly IUserInterfaceManager _uiManager = default!;
         [Dependency] private readonly IPlayerManager _playerManager = default!;
         [Dependency] private readonly IClientPreferencesManager _preferencesManager = default!;
-        [Dependency] private readonly ILogManager _logManager = default!;
-
-        private readonly ISawmill _sawmill = default!;
         private readonly SpriteSystem _spriteSystem;
+
         private readonly IConstructionMenuView _constructionView;
         private readonly EntityWhitelistSystem _whitelistSystem;
 
@@ -89,8 +87,6 @@ namespace Content.Client.Construction.UI
         {
             // This is a lot easier than a factory
             IoCManager.InjectDependencies(this);
-            _sawmill = _logManager.GetSawmill("construction.menu");
-
             _constructionView = new ConstructionMenu();
             _whitelistSystem = _entManager.System<EntityWhitelistSystem>();
             _spriteSystem = _entManager.System<SpriteSystem>();
@@ -288,7 +284,7 @@ namespace Content.Client.Construction.UI
 
                 if (!_constructionSystem!.TryGetRecipePrototype(recipe.ID, out var targetProtoId))
                 {
-                    _sawmill.Error("Cannot find the target prototype in the recipe cache with the id \"{0}\" of {1}.",
+                    Logger.Error("Cannot find the target prototype in the recipe cache with the id \"{0}\" of {1}.",
                         recipe.ID,
                         nameof(ConstructionPrototype));
                     continue;
index 37ec1ac2de78c06e87e4efdcd96b5fcfc14700a4..1727ae0de0abfe4aaab11393e7ca82af6faaa6eb 100644 (file)
@@ -7,6 +7,7 @@ using Robust.Client.UserInterface;
 using Robust.Shared.ContentPack;
 using Robust.Shared.Prototypes;
 using Robust.Shared.Reflection;
+using Robust.Shared.Sandboxing;
 using Robust.Shared.Utility;
 using static Pidgin.Parser;
 
@@ -20,7 +21,7 @@ public sealed partial class DocumentParsingManager
     [Dependency] private readonly IPrototypeManager _prototype = default!;
     [Dependency] private readonly IReflectionManager _reflectionManager = default!;
     [Dependency] private readonly IResourceManager _resourceManager = default!;
-    [Dependency] private readonly IDynamicTypeFactory _dynamicTypeFactory = default!;
+    [Dependency] private readonly ISandboxHelper _sandboxHelper = default!;
 
     private readonly Dictionary<string, Parser<char, Control>> _tagControlParsers = new();
     private Parser<char, Control> _controlParser = default!;
@@ -42,7 +43,7 @@ public sealed partial class DocumentParsingManager
 
         foreach (var typ in _reflectionManager.GetAllChildren<IDocumentTag>())
         {
-            _tagControlParsers.Add(typ.Name, CreateTagControlParser(typ.Name, typ, _dynamicTypeFactory));
+            _tagControlParsers.Add(typ.Name, CreateTagControlParser(typ.Name, typ, _sandboxHelper));
         }
 
         ControlParser = whitespaceAndCommentParser.Then(_controlParser.Many());
@@ -86,14 +87,14 @@ public sealed partial class DocumentParsingManager
         return true;
     }
 
-    private Parser<char, Control> CreateTagControlParser(string tagId, Type tagType, IDynamicTypeFactory typeFactory)
+    private Parser<char, Control> CreateTagControlParser(string tagId, Type tagType, ISandboxHelper sandbox)
     {
         return Map(
                 (args, controls) =>
                 {
                     try
                     {
-                        var tag = (IDocumentTag) typeFactory.CreateInstance(tagType);
+                        var tag = (IDocumentTag) sandbox.CreateInstance(tagType);
                         if (!tag.TryParseTag(args, out var control))
                         {
                             _sawmill.Error($"Failed to parse {tagId} args");
index 82b884aa96ae77a64dc305b51b2975c8d6a4926a..b6923c3698eab21f94e01053d531f179fafe76b9 100644 (file)
@@ -8,11 +8,6 @@ namespace Content.Client.Guidebook.Richtext;
 [UsedImplicitly]
 public sealed class Table : TableContainer, IDocumentTag
 {
-    [Dependency] private readonly ILogManager _logManager = default!;
-
-    private ISawmill Sawmill => _sawmill ??= _logManager.GetSawmill("table");
-    private ISawmill? _sawmill;
-
     public bool TryParseTag(Dictionary<string, string> args, [NotNullWhen(true)] out Control? control)
     {
         HorizontalExpand = true;
@@ -20,7 +15,7 @@ public sealed class Table : TableContainer, IDocumentTag
 
         if (!args.TryGetValue("Columns", out var columns) || !int.TryParse(columns, out var columnsCount))
         {
-            Sawmill.Error("Guidebook tag \"Table\" does not specify required property \"Columns.\"");
+            Logger.Error("Guidebook tag \"Table\" does not specify required property \"Columns.\"");
             control = null;
             return false;
         }
index 5c0098d5b54ac0d6981c5a822d9726ded3f8ad64..a551b184734454e4c5ccc097b8e88d096bab6a65 100644 (file)
@@ -1,4 +1,4 @@
-using System.Diagnostics.CodeAnalysis;
+using System.Diagnostics.CodeAnalysis;
 using JetBrains.Annotations;
 using Robust.Client.UserInterface;
 using Robust.Client.UserInterface.Controls;
@@ -12,11 +12,6 @@ namespace Content.Client.Guidebook.RichText;
 [UsedImplicitly]
 public sealed class TextLinkTag : IMarkupTagHandler
 {
-    [Dependency] private readonly ILogManager _logManager = default!;
-
-    private ISawmill Sawmill => _sawmill ??= _logManager.GetSawmill(Name);
-    private ISawmill? _sawmill;
-
     public static Color LinkColor => Color.CornflowerBlue;
 
     public string Name => "textlink";
@@ -58,7 +53,7 @@ public sealed class TextLinkTag : IMarkupTagHandler
         if (control.TryGetParentHandler<ILinkClickHandler>(out var handler))
             handler.HandleClick(link);
         else
-            Sawmill.Warning("Warning! No valid ILinkClickHandler found.");
+            Logger.Warning("Warning! No valid ILinkClickHandler found.");
     }
 }
 
index 3496c92aba3a736e15303138690dd20ad86f2ab9..33d31cc52d85f3fbdea268801ea96b6149bac6ec 100644 (file)
@@ -20,9 +20,7 @@ namespace Content.Client.Launcher
         [Dependency] private readonly IPrototypeManager _prototypeManager = default!;
         [Dependency] private readonly IConfigurationManager _cfg = default!;
         [Dependency] private readonly IClipboardManager _clipboard = default!;
-        [Dependency] private readonly ILogManager _logManager = default!;
 
-        private ISawmill _sawmill = default!;
         private LauncherConnectingGui? _control;
 
         private Page _currentPage;
@@ -61,8 +59,6 @@ namespace Content.Client.Launcher
 
         protected override void Startup()
         {
-            _sawmill = _logManager.GetSawmill("launcher-ui");
-
             _control = new LauncherConnectingGui(this, _random, _prototypeManager, _cfg, _clipboard);
 
             _userInterfaceManager.StateRoot.AddChild(_control);
@@ -119,12 +115,12 @@ namespace Content.Client.Launcher
                 }
                 else
                 {
-                    _sawmill.Info($"Redial not possible, no Ss14Address");
+                    Logger.InfoS("launcher-ui", $"Redial not possible, no Ss14Address");
                 }
             }
             catch (Exception ex)
             {
-                _sawmill.Error($"Redial exception: {ex}");
+                Logger.ErrorS("launcher-ui", $"Redial exception: {ex}");
             }
             return false;
         }
index 9d62f0c9be713cbf8f93c20f03fbbe746422e113..d6a79a81c461b2d67f37e616cd677e10c4c2c21e 100644 (file)
@@ -14,18 +14,12 @@ namespace Content.Client.UserInterface.Systems.Alerts.Widgets;
 [GenerateTypedNameReferences]
 public sealed partial class AlertsUI : UIWidget
 {
-    [Dependency] private readonly ILogManager _logManager = default!;
-
-    private readonly ISawmill _sawmill = default!;
-
     // also known as Control.Children?
     private readonly Dictionary<AlertKey, AlertControl> _alertControls = new();
 
     public AlertsUI()
     {
         RobustXamlLoader.Load(this);
-
-        _sawmill = _logManager.GetSawmill("alertsui");
     }
 
     public void SyncControls(AlertsSystem alertsSystem,
@@ -84,15 +78,15 @@ public sealed partial class AlertsUI : UIWidget
         {
             if (!alertKey.AlertType.HasValue)
             {
-                _sawmill.Warning("found alertkey without alerttype," +
-                                 " alert keys should never be stored without an alerttype set: {0}", alertKey);
+                Logger.WarningS("alert", "found alertkey without alerttype," +
+                                         " alert keys should never be stored without an alerttype set: {0}", alertKey);
                 continue;
             }
 
             var alertType = alertKey.AlertType.Value;
             if (!alertsSystem.TryGet(alertType, out var newAlert))
             {
-                _sawmill.Error("Unrecognized alertType {0}", alertType);
+                Logger.ErrorS("alert", "Unrecognized alertType {0}", alertType);
                 continue;
             }
 
index 5adb76994241a73c47696001090a7157854daa32..85c39c59dac7ee4af28d8c953c04c078a11bc78d 100644 (file)
@@ -33,9 +33,7 @@ public sealed class ReplayMainScreen : State
     [Dependency] private readonly IClientRobustSerializer _serializer = default!;
     [Dependency] private readonly IUserInterfaceManager _userInterfaceManager = default!;
     [Dependency] private readonly ContentReplayPlaybackManager _replayMan = default!;
-    [Dependency] private readonly ILogManager _logManager = default!;
 
-    private ISawmill _sawmill = default!;
     private ReplayMainMenuControl _mainMenuControl = default!;
     private SelectReplayWindow? _selectWindow;
     private ResPath _directory;
@@ -44,8 +42,6 @@ public sealed class ReplayMainScreen : State
 
     protected override void Startup()
     {
-        _sawmill = _logManager.GetSawmill("replay.screen");
-
         _mainMenuControl = new(_resourceCache);
         _userInterfaceManager.StateRoot.AddChild(_mainMenuControl);
 
@@ -267,7 +263,7 @@ public sealed class ReplayMainScreen : State
         }
         catch (Exception ex)
         {
-            _sawmill.Error($"Failed to load replay info. Exception: {ex}");
+            Logger.Error($"Failed to load replay info. Exception: {ex}");
             SelectReplay(null);
             return;
         }
index a37c05336f6759e09fb1cb52275c895be3e38825..c62a10ada362c995e4394bd56c8d1f639c856bbf 100644 (file)
@@ -1,3 +1,6 @@
+using System.Diagnostics.CodeAnalysis;
+using System.Linq;
+using System.Runtime.InteropServices;
 using Content.Server.Administration.Logs;
 using Content.Server.Administration.Managers;
 using Content.Server.Administration.Systems;
@@ -15,9 +18,6 @@ using Robust.Shared.Network;
 using Robust.Shared.Player;
 using Robust.Shared.Replays;
 using Robust.Shared.Utility;
-using System.Diagnostics.CodeAnalysis;
-using System.Linq;
-using System.Runtime.InteropServices;
 
 namespace Content.Server.Chat.Managers;
 
@@ -45,7 +45,6 @@ internal sealed partial class ChatManager : IChatManager
     [Dependency] private readonly PlayerRateLimitManager _rateLimitManager = default!;
     [Dependency] private readonly ISharedPlayerManager _player = default!;
     [Dependency] private readonly DiscordChatLink _discordLink = default!;
-    [Dependency] private readonly ILogManager _logManager = default!;
 
     /// <summary>
     /// The maximum length a player-sent message can be sent
@@ -55,7 +54,6 @@ internal sealed partial class ChatManager : IChatManager
     private bool _oocEnabled = true;
     private bool _adminOocEnabled = true;
 
-    private ISawmill _sawmill = default!;
     private readonly Dictionary<NetUserId, ChatUser> _players = new();
 
     public void Initialize()
@@ -66,8 +64,6 @@ internal sealed partial class ChatManager : IChatManager
         _configurationManager.OnValueChanged(CCVars.OocEnabled, OnOocEnabledChanged, true);
         _configurationManager.OnValueChanged(CCVars.AdminOocEnabled, OnAdminOocEnabledChanged, true);
 
-        _sawmill = _logManager.GetSawmill("SERVER");
-
         RegisterRateLimits();
     }
 
@@ -115,7 +111,7 @@ internal sealed partial class ChatManager : IChatManager
     {
         var wrappedMessage = Loc.GetString("chat-manager-server-wrap-message", ("message", FormattedMessage.EscapeText(message)));
         ChatMessageToAll(ChatChannel.Server, message, wrappedMessage, EntityUid.Invalid, hideChat: false, recordReplay: true, colorOverride: colorOverride);
-        _sawmill.Info(message);
+        Logger.InfoS("SERVER", message);
 
         _adminLogger.Add(LogType.Chat, LogImpact.Low, $"Server announcement: {message}");
     }
index bfb3d91464511f87e49c425c4a71094a206ccaa8..a32a2f94955b0a1e1e0d6ef3f44317c03e440b87 100644 (file)
@@ -13,14 +13,11 @@ namespace Content.Server.GameTicking.Commands
     [AnyCommand]
     sealed class JoinGameCommand : IConsoleCommand
     {
-        [Dependency] private readonly ILogManager _logManager = default!;
         [Dependency] private readonly IEntityManager _entManager = default!;
         [Dependency] private readonly IPrototypeManager _prototypeManager = default!;
         [Dependency] private readonly IAdminManager _adminManager = default!;
         [Dependency] private readonly IConfigurationManager _cfg = default!;
 
-        private readonly ISawmill _sawmill = default!;
-
         public string Command => "joingame";
         public string Description => "";
         public string Help => "";
@@ -28,8 +25,6 @@ namespace Content.Server.GameTicking.Commands
         public JoinGameCommand()
         {
             IoCManager.InjectDependencies(this);
-
-            _sawmill = _logManager.GetSawmill("security");
         }
         public void Execute(IConsoleShell shell, string argStr, string[] args)
         {
@@ -51,7 +46,7 @@ namespace Content.Server.GameTicking.Commands
 
             if (ticker.PlayerGameStatuses.TryGetValue(player.UserId, out var status) && status == PlayerGameStatus.JoinedGame)
             {
-                _sawmill.Info($"{player.Name} ({player.UserId}) attempted to latejoin while in-game.");
+                Logger.InfoS("security", $"{player.Name} ({player.UserId}) attempted to latejoin while in-game.");
                 shell.WriteError($"{player.Name} is not in the lobby.   This incident will be reported.");
                 return;
             }