Check player limit earlier

This commit is contained in:
rtm516 2023-04-28 13:39:23 +01:00
parent 56b9fe7619
commit 56e4aa06b1
No known key found for this signature in database
GPG key ID: 331715B8B007C67A

View file

@ -27,6 +27,7 @@ package org.geysermc.connect.extension;
import org.cloudburstmc.protocol.bedrock.data.AttributeData;
import org.cloudburstmc.protocol.bedrock.packet.BedrockPacketHandler;
import org.cloudburstmc.protocol.bedrock.packet.LoginPacket;
import org.cloudburstmc.protocol.bedrock.packet.NetworkStackLatencyPacket;
import org.cloudburstmc.protocol.bedrock.packet.SetLocalPlayerAsInitializedPacket;
import org.cloudburstmc.protocol.bedrock.packet.UpdateAttributesPacket;
@ -72,17 +73,22 @@ public class PacketHandler extends UpstreamPacketHandler {
}
@Override
public PacketSignal handle(SetLocalPlayerAsInitializedPacket packet) {
geyserConnect.logger().debug("Player initialized: " + Utils.displayName(session));
public PacketSignal handle(LoginPacket loginPacket) {
// Check to see if the server is full and we have a hard player cap
if (geyserConnect.config().hardPlayerLimit()) {
if (session.getGeyser().getSessionManager().size() > session.getGeyser().getConfig().getMaxPlayers()) {
if (session.getGeyser().getSessionManager().size() >= session.getGeyser().getConfig().getMaxPlayers()) {
session.disconnect("disconnectionScreen.serverFull");
return PacketSignal.HANDLED;
}
}
return super.handle(loginPacket);
}
@Override
public PacketSignal handle(SetLocalPlayerAsInitializedPacket packet) {
geyserConnect.logger().debug("Player initialized: " + Utils.displayName(session));
// Handle the virtual host if specified
VirtualHostSection vhost = geyserConnect.config().vhost();
if (vhost.enabled()) {