| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192 |
- using Content.Shared.Administration;
- using Content.Shared.CCVar;
- using Robust.Shared.Configuration;
- using Robust.Shared.Console;
- namespace Content.Server.Administration.Commands;
- [AdminCommand(AdminFlags.Server)]
- public sealed class PanicBunkerCommand : LocalizedCommands
- {
- [Dependency] private readonly IConfigurationManager _cfg = default!;
- public override string Command => "panicbunker";
- public override void Execute(IConsoleShell shell, string argStr, string[] args)
- {
- var toggle = Toggle(CCVars.PanicBunkerEnabled, shell, args, _cfg);
- if (toggle == null)
- return;
- shell.WriteLine(Loc.GetString(toggle.Value ? "panicbunker-command-enabled" : "panicbunker-command-disabled"));
- }
- public static bool? Toggle(CVarDef<bool> cvar, IConsoleShell shell, string[] args, IConfigurationManager config)
- {
- if (args.Length > 1)
- {
- shell.WriteError(Loc.GetString("shell-need-between-arguments",("lower", 0), ("upper", 1)));
- return null;
- }
- var enabled = config.GetCVar(cvar);
- if (args.Length == 0)
- {
- enabled = !enabled;
- }
- if (args.Length == 1 && !bool.TryParse(args[0], out enabled))
- {
- shell.WriteError(Loc.GetString("shell-argument-must-be-boolean"));
- return null;
- }
- config.SetCVar(cvar, enabled);
- return enabled;
- }
- }
- [AdminCommand(AdminFlags.Server)]
- public sealed class PanicBunkerDisableWithAdminsCommand : LocalizedCommands
- {
- [Dependency] private readonly IConfigurationManager _cfg = default!;
- public override string Command => "panicbunker_disable_with_admins";
- public override void Execute(IConsoleShell shell, string argStr, string[] args)
- {
- var toggle = PanicBunkerCommand.Toggle(CCVars.PanicBunkerDisableWithAdmins, shell, args, _cfg);
- if (toggle == null)
- return;
- shell.WriteLine(Loc.GetString(toggle.Value
- ? "panicbunker-command-disable-with-admins-enabled"
- : "panicbunker-command-disable-with-admins-disabled"
- ));
- }
- }
- [AdminCommand(AdminFlags.Server)]
- public sealed class PanicBunkerEnableWithoutAdminsCommand : LocalizedCommands
- {
- [Dependency] private readonly IConfigurationManager _cfg = default!;
- public override string Command => "panicbunker_enable_without_admins";
- public override void Execute(IConsoleShell shell, string argStr, string[] args)
- {
- var toggle = PanicBunkerCommand.Toggle(CCVars.PanicBunkerEnableWithoutAdmins, shell, args, _cfg);
- if (toggle == null)
- return;
- shell.WriteLine(Loc.GetString(toggle.Value
- ? "panicbunker-command-enable-without-admins-enabled"
- : "panicbunker-command-enable-without-admins-disabled"
- ));
- }
- }
- [AdminCommand(AdminFlags.Server)]
- public sealed class PanicBunkerCountDeadminnedCommand : LocalizedCommands
- {
- [Dependency] private readonly IConfigurationManager _cfg = default!;
- public override string Command => "panicbunker_count_deadminned_admins";
- public override void Execute(IConsoleShell shell, string argStr, string[] args)
- {
- var toggle = PanicBunkerCommand.Toggle(CCVars.PanicBunkerCountDeadminnedAdmins, shell, args, _cfg);
- if (toggle == null)
- return;
- shell.WriteLine(Loc.GetString(toggle.Value
- ? "panicbunker-command-count-deadminned-admins-enabled"
- : "panicbunker-command-count-deadminned-admins-disabled"
- ));
- }
- }
- [AdminCommand(AdminFlags.Server)]
- public sealed class PanicBunkerShowReasonCommand : LocalizedCommands
- {
- [Dependency] private readonly IConfigurationManager _cfg = default!;
- public override string Command => "panicbunker_show_reason";
- public override void Execute(IConsoleShell shell, string argStr, string[] args)
- {
- var toggle = PanicBunkerCommand.Toggle(CCVars.PanicBunkerShowReason, shell, args, _cfg);
- if (toggle == null)
- return;
- shell.WriteLine(Loc.GetString(toggle.Value
- ? "panicbunker-command-show-reason-enabled"
- : "panicbunker-command-show-reason-disabled"
- ));
- }
- }
- [AdminCommand(AdminFlags.Server)]
- public sealed class PanicBunkerMinAccountAgeCommand : LocalizedCommands
- {
- [Dependency] private readonly IConfigurationManager _cfg = default!;
- public override string Command => "panicbunker_min_account_age";
- public override void Execute(IConsoleShell shell, string argStr, string[] args)
- {
- if (args.Length == 0)
- {
- var current = _cfg.GetCVar(CCVars.PanicBunkerMinAccountAge);
- shell.WriteLine(Loc.GetString("panicbunker-command-min-account-age-is", ("minutes", current)));
- }
- if (args.Length > 1)
- {
- shell.WriteError(Loc.GetString("shell-need-between-arguments",("lower", 0), ("upper", 1)));
- return;
- }
- if (!int.TryParse(args[0], out var minutes))
- {
- shell.WriteError(Loc.GetString("shell-argument-must-be-number"));
- return;
- }
- _cfg.SetCVar(CCVars.PanicBunkerMinAccountAge, minutes);
- shell.WriteLine(Loc.GetString("panicbunker-command-min-account-age-set", ("minutes", minutes)));
- }
- }
- [AdminCommand(AdminFlags.Server)]
- public sealed class PanicBunkerMinOverallMinutesCommand : LocalizedCommands
- {
- [Dependency] private readonly IConfigurationManager _cfg = default!;
- public override string Command => "panicbunker_min_overall_minutes";
- public override void Execute(IConsoleShell shell, string argStr, string[] args)
- {
- if (args.Length == 0)
- {
- var current = _cfg.GetCVar(CCVars.PanicBunkerMinOverallMinutes);
- shell.WriteLine(Loc.GetString("panicbunker-command-min-overall-minutes-is", ("minutes", current)));
- }
- if (args.Length > 1)
- {
- shell.WriteError(Loc.GetString("shell-need-between-arguments",("lower", 0), ("upper", 1)));
- return;
- }
- if (!int.TryParse(args[0], out var minutes))
- {
- shell.WriteError(Loc.GetString("shell-argument-must-be-number"));
- return;
- }
- _cfg.SetCVar(CCVars.PanicBunkerMinOverallMinutes, minutes);
- shell.WriteLine(Loc.GetString("panicbunker-command-overall-minutes-age-set", ("minutes", minutes)));
- }
- }
|