Files
wwdpublic/Content.Client/JoinQueue/JoinQueueManager.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

27 lines
651 B
C#

using Content.Shared.JoinQueue;
using Robust.Client.State;
using Robust.Shared.Network;
namespace Content.Client.JoinQueue;
public sealed class JoinQueueManager
{
[Dependency] private readonly IClientNetManager _net = default!;
[Dependency] private readonly IStateManager _state = default!;
public void Initialize()
{
_net.RegisterNetMessage<QueueUpdateMessage>(OnQueueUpdate);
}
private void OnQueueUpdate(QueueUpdateMessage msg)
{
if (_state.CurrentState is not QueueState)
_state.RequestStateChange<QueueState>();
((QueueState) _state.CurrentState).OnQueueUpdate(msg);
}
}