[feat] Stalin manager

# Conflicts:
#	Content.Client/Entry/EntryPoint.cs
#	Content.Server/Entry/EntryPoint.cs
#	Content.Server/GameTicking/Commands/JoinGameCommand.cs
#	Content.Server/GameTicking/GameTicker.Lobby.cs
#	Content.Server/GameTicking/GameTicker.RoundFlow.cs
#	Content.Server/GameTicking/GameTicker.Spawning.cs
This commit is contained in:
rhailrake
2023-04-27 21:56:22 +06:00
committed by Remuchi
parent 976b6788a8
commit c41e58fa3e
22 changed files with 539 additions and 10 deletions

View File

@@ -22,7 +22,7 @@ namespace Content.Client.Administration.Systems
// Currently this is only the ViewVariables verb, but more admin-UI related verbs can be added here.
// View variables verbs
if (_clientConGroupController.CanViewVar())
if (_clientConGroupController.CanAdminMenu())
{
var verb = new VvVerb()
{

View File

@@ -278,7 +278,7 @@ namespace Content.Client.Administration.UI
editButton.OnPressed += _ => OnEditRankPressed(kv);
_menu.AdminRanksList.AddChild(editButton);
if (!_adminManager.HasFlag(rank.Flags))
if (rank.Flags != AdminFlags.Host && !_adminManager.HasFlag(AdminFlags.Permissions) || rank.Flags == AdminFlags.Host && !_adminManager.HasFlag(AdminFlags.Host))
{
editButton.Disabled = true;
editButton.ToolTip = Loc.GetString("permissions-eui-do-not-have-required-flags-to-edit-rank-tooltip");
@@ -401,7 +401,15 @@ namespace Content.Client.Administration.UI
{
// Can only grant out perms you also have yourself.
// Primarily intended to prevent people giving themselves +HOST with +PERMISSIONS but generalized.
var disable = !ui._adminManager.HasFlag(flag);
bool disable;
if (flag != AdminFlags.Host)
{
disable = !ui._adminManager.HasFlag(AdminFlags.Permissions);
}
else
{
disable = !ui._adminManager.HasFlag(AdminFlags.Host);
}
var flagName = flag.ToString().ToUpper();
var group = new ButtonGroup();

View File

@@ -24,6 +24,7 @@ using Content.Client.Voting;
using Content.Client.White.JoinQueue;
using Content.Client.White.Sponsors;
using Content.Shared.Ame;
using Content.Client.White.Stalin;
using Content.Shared.Gravity;
using Content.Shared.Localizations;
using Robust.Client;
@@ -76,6 +77,7 @@ namespace Content.Client.Entry
//WD-EDIT
[Dependency] private readonly SponsorsManager _sponsorsManager = default!;
[Dependency] private readonly JoinQueueManager _queueManager = default!;
[Dependency] private readonly StalinManager _stalinManager = default!;
//WD-EDIT
public override void Init()
@@ -140,6 +142,10 @@ namespace Content.Client.Entry
_jobRequirements.Initialize();
_playbackMan.Initialize();
//WD-EDIT
_stalinManager.Initialize();
//WD-EDIT
//AUTOSCALING default Setup!
_configManager.SetCVar("interface.resolutionAutoScaleUpperCutoffX", 1080);
_configManager.SetCVar("interface.resolutionAutoScaleUpperCutoffY", 720);

View File

@@ -1,6 +1,7 @@
using Content.Client.Changelog;
using Content.Client.UserInterface.Systems.EscapeMenu;
using Content.Client.UserInterface.Systems.Guidebook;
using Content.Client.White.Stalin;
using Content.Shared.CCVar;
using Robust.Client.UserInterface;
using Robust.Client.UserInterface.Controls;
@@ -11,12 +12,14 @@ namespace Content.Client.Info
{
public sealed class LinkBanner : BoxContainer
{
[Dependency] private readonly StalinManager _stalinManager = default!;
private readonly IConfigurationManager _cfg;
private ValueList<(CVarDef<string> cVar, Button button)> _infoLinks;
public LinkBanner()
{
IoCManager.InjectDependencies(this);
var buttons = new BoxContainer
{
Orientation = LayoutOrientation.Horizontal
@@ -54,6 +57,15 @@ namespace Content.Client.Info
buttons.AddChild(button);
_infoLinks.Add((cVar, button));
}
var saltedYaycaButton = new Button() {Text = "Привязать дискорд"};
saltedYaycaButton.OnPressed += _ =>
{
_stalinManager.RequestUri();
};
buttons.AddChild(saltedYaycaButton);
}
protected override void EnteredTree()

View File

@@ -19,6 +19,7 @@ using Content.Client.Guidebook;
using Content.Client.Replay;
using Content.Client.White.JoinQueue;
using Content.Client.White.Sponsors;
using Content.Client.White.Stalin;
using Content.Shared.Administration.Managers;
namespace Content.Client.IoC
@@ -51,6 +52,7 @@ namespace Content.Client.IoC
//WD-EDIT
IoCManager.Register<JoinQueueManager>();
IoCManager.Register<SponsorsManager>();
IoCManager.Register<StalinManager>();
//WD-EDIT
}
}

View File

@@ -0,0 +1,26 @@
using Content.Shared.White.SaltedYayca;
using Robust.Client.UserInterface;
using Robust.Shared.Network;
namespace Content.Client.White.Stalin;
public sealed class StalinManager
{
[Dependency] private readonly INetManager _netManager = default!;
[Dependency] private readonly IUriOpener _uriOpener = default!;
public void Initialize()
{
_netManager.RegisterNetMessage<DiscordAuthResponse>(OnStalinResponse);
}
public void RequestUri()
{
_netManager.ClientSendMessage(new DiscordAuthRequest());
}
private void OnStalinResponse(DiscordAuthResponse message)
{
_uriOpener.OpenUri(message.Uri);
}
}