diff --git a/Content.Client/Administration/UI/Tabs/ServerTab.xaml b/Content.Client/Administration/UI/Tabs/ServerTab.xaml index 57a87dcb83..7e15bc2753 100644 --- a/Content.Client/Administration/UI/Tabs/ServerTab.xaml +++ b/Content.Client/Administration/UI/Tabs/ServerTab.xaml @@ -5,9 +5,9 @@ MinSize="50 50"> - + diff --git a/Content.Client/Administration/UI/Tabs/ServerTab.xaml.cs b/Content.Client/Administration/UI/Tabs/ServerTab.xaml.cs index 24b92e42ce..b83a3d1ec0 100644 --- a/Content.Client/Administration/UI/Tabs/ServerTab.xaml.cs +++ b/Content.Client/Administration/UI/Tabs/ServerTab.xaml.cs @@ -18,6 +18,7 @@ namespace Content.Client.Administration.UI.Tabs _config.OnValueChanged(CCVars.OocEnabled, OocEnabledChanged, true); _config.OnValueChanged(CCVars.LoocEnabled, LoocEnabledChanged, true); + _config.OnValueChanged(CCVars.PanicBunkerEnabled, BunkerEnabledChanged, true); } private void OocEnabledChanged(bool value) @@ -30,6 +31,11 @@ namespace Content.Client.Administration.UI.Tabs SetLoocButton.Pressed = value; } + private void BunkerEnabledChanged(bool value) + { + SetPanicbunkerButton.Pressed = value; + } + protected override void Dispose(bool disposing) { base.Dispose(disposing); @@ -38,6 +44,7 @@ namespace Content.Client.Administration.UI.Tabs { _config.UnsubValueChanged(CCVars.OocEnabled, OocEnabledChanged); _config.UnsubValueChanged(CCVars.LoocEnabled, LoocEnabledChanged); + _config.UnsubValueChanged(CCVars.PanicBunkerEnabled, BunkerEnabledChanged); } } } diff --git a/Content.Server/Administration/Commands/PanicBunkerCommand.cs b/Content.Server/Administration/Commands/PanicBunkerCommand.cs index 9997880a3e..0273ac313d 100644 --- a/Content.Server/Administration/Commands/PanicBunkerCommand.cs +++ b/Content.Server/Administration/Commands/PanicBunkerCommand.cs @@ -12,21 +12,30 @@ public sealed class PanicBunkerCommand : IConsoleCommand public string Command => "panicbunker"; public string Description => "Enables or disables the panic bunker functionality."; - public string Help => "panicbunker "; + public string Help => "panicbunker"; public void Execute(IConsoleShell shell, string argStr, string[] args) { - if (args.Length != 1) + if (args.Length > 1) { - shell.WriteError(Loc.GetString("shell-wrong-arguments-number")); + shell.WriteError(Loc.GetString("shell-need-between-arguments",("lower", 0), ("upper", 1))); return; } - if (!bool.TryParse(args[0], out var enabled)) + var enabled = _cfg.GetCVar(CCVars.PanicBunkerEnabled); + + if (args.Length == 0) { - shell.WriteError(Loc.GetString("shell-invalid-bool")); + enabled = !enabled; + } + + if (args.Length == 1 && !bool.TryParse(args[0], out enabled)) + { + shell.WriteError(Loc.GetString("shell-argument-must-be-boolean")); return; } _cfg.SetCVar(CCVars.PanicBunkerEnabled, enabled); + + shell.WriteLine(Loc.GetString(enabled ? "panicbunker-command-enabled" : "panicbunker-command-disabled")); } } diff --git a/Content.Shared/CCVar/CCVars.cs b/Content.Shared/CCVar/CCVars.cs index b2044e27d9..f857a08d4e 100644 --- a/Content.Shared/CCVar/CCVars.cs +++ b/Content.Shared/CCVar/CCVars.cs @@ -250,7 +250,7 @@ namespace Content.Shared.CCVar /// Whether or not panic bunker is currently enabled. /// public static readonly CVarDef PanicBunkerEnabled = - CVarDef.Create("game.panic_bunker.enabled", false, CVar.SERVERONLY); + CVarDef.Create("game.panic_bunker.enabled", false, CVar.NOTIFY | CVar.REPLICATED); /// /// Show reason of disconnect for user or not. diff --git a/Resources/Locale/en-US/administration/commands/panicbunker.ftl b/Resources/Locale/en-US/administration/commands/panicbunker.ftl new file mode 100644 index 0000000000..46896500b8 --- /dev/null +++ b/Resources/Locale/en-US/administration/commands/panicbunker.ftl @@ -0,0 +1,2 @@ +panicbunker-command-enabled = Panic bunker has been enabled. +panicbunker-command-disabled = Panic bunker has been disabled. diff --git a/Resources/Locale/en-US/administration/ui/tabs/server-tab.ftl b/Resources/Locale/en-US/administration/ui/tabs/server-tab.ftl index 41999beaf0..713af85fa5 100644 --- a/Resources/Locale/en-US/administration/ui/tabs/server-tab.ftl +++ b/Resources/Locale/en-US/administration/ui/tabs/server-tab.ftl @@ -1,4 +1,4 @@ -server-reboot = Reboot server-shutdown = Shutdown server-ooc-toggle = Toggle OOC server-looc-toggle = Toggle LOOC +server-panicbunker-toggle = Toggle Panic bunker