diff --git a/Robust.Client/Console/ClientConGroupController.cs b/Robust.Client/Console/ClientConGroupController.cs index 2e38859cd..c1c46ef40 100644 --- a/Robust.Client/Console/ClientConGroupController.cs +++ b/Robust.Client/Console/ClientConGroupController.cs @@ -23,7 +23,7 @@ namespace Robust.Client.Console public bool CanCommand(string cmdName) { - return _implementation?.CanCommand(cmdName) ?? false; + return _implementation?.CanCommand(cmdName) ?? true; } public bool CanViewVar() diff --git a/Robust.Client/Console/ClientConsoleHost.cs b/Robust.Client/Console/ClientConsoleHost.cs index 24cb051f8..71c753517 100644 --- a/Robust.Client/Console/ClientConsoleHost.cs +++ b/Robust.Client/Console/ClientConsoleHost.cs @@ -1,7 +1,10 @@ using System; using System.Collections.Generic; using Robust.Client.Log; +using Robust.Client.Player; using Robust.Shared.Console; +using Robust.Shared.Enums; +using Robust.Shared.IoC; using Robust.Shared.Log; using Robust.Shared.Network; using Robust.Shared.Network.Messages; @@ -40,6 +43,8 @@ namespace Robust.Client.Console /// internal class ClientConsoleHost : ConsoleHost, IClientConsoleHost { + [Dependency] private readonly IClientConGroupController _conGroup = default!; + private bool _requestedCommands; /// @@ -103,6 +108,14 @@ namespace Robust.Client.Console if (AvailableCommands.ContainsKey(commandName)) { + var playerManager = IoCManager.Resolve(); + + if (!_conGroup.CanCommand(commandName) && playerManager.LocalPlayer?.Session.Status > SessionStatus.Connecting) + { + WriteError(null, $"Insufficient perms for command: {commandName}"); + return; + } + var command1 = AvailableCommands[commandName]; args.RemoveAt(0); var shell = new ConsoleShell(this, null);