76 lines
2.4 KiB
C#
76 lines
2.4 KiB
C#
using Content.Shared.Administration.Events;
|
|
using Robust.Client.AutoGenerated;
|
|
using Robust.Client.UserInterface;
|
|
using Robust.Client.UserInterface.XAML;
|
|
using Robust.Shared.Console;
|
|
|
|
/*
|
|
* TODO: Remove me once a more mature gateway process is established. This code is only being issued as a stopgap to help with potential tiding in the immediate future.
|
|
*/
|
|
|
|
namespace Content.Client.Administration.UI.Tabs.BabyJailTab;
|
|
|
|
[GenerateTypedNameReferences]
|
|
public sealed partial class BabyJailTab : Control
|
|
{
|
|
[Dependency] private readonly IConsoleHost _console = default!;
|
|
|
|
private string _maxAccountAge;
|
|
private string _maxOverallMinutes;
|
|
|
|
public BabyJailTab()
|
|
{
|
|
RobustXamlLoader.Load(this);
|
|
IoCManager.InjectDependencies(this);
|
|
|
|
MaxAccountAge.OnTextEntered += args => SendMaxAccountAge(args.Text);
|
|
MaxAccountAge.OnFocusExit += args => SendMaxAccountAge(args.Text);
|
|
_maxAccountAge = MaxAccountAge.Text;
|
|
|
|
MaxOverallMinutes.OnTextEntered += args => SendMaxOverallMinutes(args.Text);
|
|
MaxOverallMinutes.OnFocusExit += args => SendMaxOverallMinutes(args.Text);
|
|
_maxOverallMinutes = MaxOverallMinutes.Text;
|
|
}
|
|
|
|
private void SendMaxAccountAge(string text)
|
|
{
|
|
if (string.IsNullOrWhiteSpace(text) ||
|
|
text == _maxAccountAge ||
|
|
!int.TryParse(text, out var minutes))
|
|
{
|
|
return;
|
|
}
|
|
|
|
_console.ExecuteCommand($"babyjail_max_account_age {minutes}");
|
|
}
|
|
|
|
private void SendMaxOverallMinutes(string text)
|
|
{
|
|
if (string.IsNullOrWhiteSpace(text) ||
|
|
text == _maxOverallMinutes ||
|
|
!int.TryParse(text, out var minutes))
|
|
{
|
|
return;
|
|
}
|
|
|
|
_console.ExecuteCommand($"babyjail_max_overall_minutes {minutes}");
|
|
}
|
|
|
|
public void UpdateStatus(BabyJailStatus status)
|
|
{
|
|
EnabledButton.Pressed = status.Enabled;
|
|
EnabledButton.Text = Loc.GetString(status.Enabled
|
|
? "admin-ui-baby-jail-enabled"
|
|
: "admin-ui-baby-jail-disabled"
|
|
);
|
|
EnabledButton.ModulateSelfOverride = status.Enabled ? Color.Red : null;
|
|
ShowReasonButton.Pressed = status.ShowReason;
|
|
|
|
MaxAccountAge.Text = status.MaxAccountAgeMinutes.ToString();
|
|
_maxAccountAge = MaxAccountAge.Text;
|
|
|
|
MaxOverallMinutes.Text = status.MaxOverallMinutes.ToString();
|
|
_maxOverallMinutes = MaxOverallMinutes.Text;
|
|
}
|
|
}
|