Files
wwdpublic/Content.Client/DiscordAuth/DiscordAuthManager.cs
DEATHB4DEFEAT d4663e9993 Port Queue and Discord Auth From Corvax (#355)
# Description

I didn't make 2 PRs because the queue kinda depends on Discord auth and
I didn't wanna spend the time splitting them up.

The queue puts everyone except admins/whitelisted/previously in-game
players into a queue after the soft max players is reached, hard cap
still denies new connections (and queues) from everyone.
Priority queuing is simple to add and I'll do that when I make donator
benefits or whatever similar system.

---

<details><summary><h1>Media</h1></summary>
<p>

Too big to embed and I don't wanna compress it :)

https://youtu.be/NBqN6Piv94w

</p>
</details>

---

# Changelog

🆑
- add: Added a queue for players so you don't need to spam reconnect and
hope you join when someone leaves.
2024-05-13 00:58:39 -04:00

32 lines
826 B
C#

using Content.Shared.DiscordAuth;
using Robust.Client.State;
using Robust.Shared.Network;
namespace Content.Client.DiscordAuth;
public sealed class DiscordAuthManager
{
[Dependency] private readonly IClientNetManager _net = default!;
[Dependency] private readonly IStateManager _state = default!;
public string AuthUrl { get; private set; } = string.Empty;
public void Initialize()
{
_net.RegisterNetMessage<DiscordAuthCheckMessage>();
_net.RegisterNetMessage<DiscordAuthRequiredMessage>(OnDiscordAuthRequired);
}
private void OnDiscordAuthRequired(DiscordAuthRequiredMessage message)
{
if (_state.CurrentState is not DiscordAuthState)
{
AuthUrl = message.AuthUrl;
_state.RequestStateChange<DiscordAuthState>();
}
}
}