looool
This commit is contained in:
@@ -12,7 +12,7 @@ public sealed partial class AdminMenuWindow : DefaultWindow
|
||||
|
||||
public AdminMenuWindow()
|
||||
{
|
||||
MinSize = new Vector2(650, 250);
|
||||
MinSize = new Vector2(650, 280);
|
||||
Title = Loc.GetString("admin-menu-title");
|
||||
RobustXamlLoader.Load(this);
|
||||
MasterTabContainer.SetTabTitle((int) TabIndex.Admin, Loc.GetString("admin-menu-admin-tab"));
|
||||
|
||||
@@ -27,6 +27,11 @@
|
||||
<cc:CommandButton Name="ShowReasonButton" Command="panicbunker_show_reason"
|
||||
ToggleMode="True" Text="{Loc admin-ui-panic-bunker-show-reason}"
|
||||
ToolTip="{Loc admin-ui-panic-bunker-show-reason-tooltip}" />
|
||||
<BoxContainer Orientation="Horizontal" Margin="2">
|
||||
<Label Text="{Loc cp14-admin-ui-suspicious-warning-level-setting}" MinWidth="175" />
|
||||
<OptionButton Name="SuspiciousWarningLevel" HorizontalAlignment="Left" Margin="4 0"
|
||||
ToolTip="{Loc cp14-admin-ui-suspicious-warning-level-setting-desc}" />
|
||||
</BoxContainer>
|
||||
<BoxContainer Orientation="Vertical" Margin="0 10 0 0">
|
||||
<BoxContainer Orientation="Horizontal" Margin="2">
|
||||
<Label Text="{Loc admin-ui-panic-bunker-min-account-age}" MinWidth="175" />
|
||||
|
||||
@@ -1,7 +1,9 @@
|
||||
using Content.Shared.Administration.Events;
|
||||
using Content.Shared.CCVar;
|
||||
using Robust.Client.AutoGenerated;
|
||||
using Robust.Client.UserInterface;
|
||||
using Robust.Client.UserInterface.XAML;
|
||||
using Robust.Shared.Configuration;
|
||||
using Robust.Shared.Console;
|
||||
|
||||
namespace Content.Client.Administration.UI.Tabs.PanicBunkerTab;
|
||||
@@ -10,9 +12,13 @@ namespace Content.Client.Administration.UI.Tabs.PanicBunkerTab;
|
||||
public sealed partial class PanicBunkerTab : Control
|
||||
{
|
||||
[Dependency] private readonly IConsoleHost _console = default!;
|
||||
[Dependency] private readonly IConfigurationManager _cfg = default!;
|
||||
|
||||
private string _minAccountAge;
|
||||
private string _minOverallMinutes;
|
||||
// CrystallEdge suspicious activity warning system
|
||||
private List<SuspiciousWarningLevelSelection> _suspiciousWarningLevelSelections = [];
|
||||
private string _currentSuspiciousWarningLevel = string.Empty;
|
||||
|
||||
public PanicBunkerTab()
|
||||
{
|
||||
@@ -28,6 +34,21 @@ public sealed partial class PanicBunkerTab : Control
|
||||
MinOverallMinutes.OnTextEntered += args => SendMinOverallMinutes(args.Text);
|
||||
MinOverallMinutes.OnFocusExit += args => SendMinOverallMinutes(args.Text);
|
||||
_minOverallMinutes = MinOverallMinutes.Text;
|
||||
|
||||
// CrystallEdge suspicious activity warning system
|
||||
foreach (var type in Enum.GetValues<SuspiciousWarningLevelSelection>())
|
||||
{
|
||||
_suspiciousWarningLevelSelections.Add(type);
|
||||
SuspiciousWarningLevel.AddItem(GetLocalizedEnumValue(type));
|
||||
}
|
||||
|
||||
UpdateSuspiciousWarningLevel();
|
||||
|
||||
SuspiciousWarningLevel.OnItemSelected += ev =>
|
||||
{
|
||||
SuspiciousWarningLevel.SelectId(ev.Id);
|
||||
SendSuspiciousWarningLevel(_suspiciousWarningLevelSelections[ev.Id]);
|
||||
};
|
||||
}
|
||||
|
||||
private void SendMinAccountAge(string text)
|
||||
@@ -74,4 +95,43 @@ public sealed partial class PanicBunkerTab : Control
|
||||
MinOverallMinutes.Text = status.MinOverallMinutes.ToString();
|
||||
_minOverallMinutes = MinOverallMinutes.Text;
|
||||
}
|
||||
|
||||
// CrystallEdge suspicious activity warning system
|
||||
private enum SuspiciousWarningLevelSelection
|
||||
{
|
||||
Disabled,
|
||||
Low,
|
||||
Medium,
|
||||
High,
|
||||
}
|
||||
|
||||
private string GetLocalizedEnumValue(SuspiciousWarningLevelSelection selection)
|
||||
{
|
||||
return selection switch
|
||||
{
|
||||
SuspiciousWarningLevelSelection.Disabled => Loc.GetString("cp14-admin-ui-suspicious-warning-level-disabled"),
|
||||
SuspiciousWarningLevelSelection.Low => Loc.GetString("cp14-admin-ui-suspicious-warning-level-low"),
|
||||
SuspiciousWarningLevelSelection.Medium => Loc.GetString("cp14-admin-ui-suspicious-warning-level-medium"),
|
||||
SuspiciousWarningLevelSelection.High => Loc.GetString("cp14-admin-ui-suspicious-warning-level-high"),
|
||||
_ => throw new ArgumentOutOfRangeException(nameof(selection), selection, null),
|
||||
};
|
||||
}
|
||||
|
||||
private void UpdateSuspiciousWarningLevel()
|
||||
{
|
||||
_currentSuspiciousWarningLevel = _cfg.GetCVar(CCVars.SuspiciousAccountsWarningLevel);
|
||||
if (!Enum.TryParse(_currentSuspiciousWarningLevel, true, out SuspiciousWarningLevelSelection currentSuspiciousWarningSelection))
|
||||
{
|
||||
throw new ArgumentOutOfRangeException(nameof(_currentSuspiciousWarningLevel),
|
||||
_currentSuspiciousWarningLevel,
|
||||
null);
|
||||
}
|
||||
|
||||
SuspiciousWarningLevel.SelectId((int)currentSuspiciousWarningSelection);
|
||||
}
|
||||
|
||||
private void SendSuspiciousWarningLevel(SuspiciousWarningLevelSelection selection)
|
||||
{
|
||||
_console.ExecuteCommand($"cp14.suspicious-warning-level {Enum.GetName(selection)}");
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user