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