Unregister connection before it's ready

This commit is contained in:
Adrian Bergqvist 2023-04-05 21:15:38 +02:00
parent 7613b68fc8
commit ebc80709b1
No known key found for this signature in database
GPG Key ID: 3B3DA43224B79417
3 changed files with 10 additions and 2 deletions

View File

@ -5,7 +5,7 @@ plugins {
}
group = "org.adde0109"
version = "1.3.0-beta"
version = "1.3.1-beta"
repositories {
mavenCentral()

View File

@ -40,7 +40,7 @@ import static com.velocitypowered.api.network.ProtocolVersion.MINECRAFT_1_19;
import static com.velocitypowered.api.network.ProtocolVersion.MINECRAFT_1_19_3;
import static com.velocitypowered.proxy.protocol.packet.brigadier.ArgumentIdentifier.mapSet;
@Plugin(id = "ambassador", name = "Ambassador", version = "1.3.0-beta", authors = {"adde0109"})
@Plugin(id = "ambassador", name = "Ambassador", version = "1.3.1-beta", authors = {"adde0109"})
public class Ambassador {
public ProxyServer server;

View File

@ -7,6 +7,7 @@ import com.velocitypowered.api.event.connection.LoginEvent;
import com.velocitypowered.api.event.connection.PostLoginEvent;
import com.velocitypowered.api.event.player.*;
import com.velocitypowered.api.proxy.server.RegisteredServer;
import com.velocitypowered.proxy.VelocityServer;
import com.velocitypowered.proxy.connection.client.ConnectedPlayer;
import com.velocitypowered.proxy.network.Connections;
import com.velocitypowered.proxy.protocol.StateRegistry;
@ -42,6 +43,13 @@ public class VelocityEventHandler {
continuation.resume();
}
@Subscribe(order = PostOrder.FIRST)
public void onPostLoginEvent(PostLoginEvent event, Continuation continuation) {
if (((ConnectedPlayer) event.getPlayer()).getPhase() instanceof VelocityForgeClientConnectionPhase)
((VelocityServer) Ambassador.getInstance().server).unregisterConnection((ConnectedPlayer) event.getPlayer());
continuation.resume();
}
@Subscribe(order = PostOrder.LAST)
public void onPlayerChooseInitialServerEvent(PlayerChooseInitialServerEvent event, Continuation continuation) {
ConnectedPlayer player = (ConnectedPlayer) event.getPlayer();