From 14d5d9fc07d64e910c4e1e5b61c308f562fc648d Mon Sep 17 00:00:00 2001 From: Adrian Bergqvist Date: Thu, 13 Oct 2022 22:05:54 +0200 Subject: [PATCH] Fixed modern forwarding support and kick handling --- build.gradle | 2 +- src/main/java/org/adde0109/ambassador/Ambassador.java | 2 +- .../ambassador/forge/ForgeFML2ClientConnectionPhase.java | 2 ++ .../org/adde0109/ambassador/forge/ForgeFML2ConnectionType.java | 3 ++- 4 files changed, 6 insertions(+), 3 deletions(-) diff --git a/build.gradle b/build.gradle index f849837..d31d037 100644 --- a/build.gradle +++ b/build.gradle @@ -4,7 +4,7 @@ plugins { } group 'org.adde0109' -version '1.0.4-alpha' +version '1.0.5-alpha' repositories { maven { diff --git a/src/main/java/org/adde0109/ambassador/Ambassador.java b/src/main/java/org/adde0109/ambassador/Ambassador.java index 14a3033..a0ffd8e 100644 --- a/src/main/java/org/adde0109/ambassador/Ambassador.java +++ b/src/main/java/org/adde0109/ambassador/Ambassador.java @@ -22,7 +22,7 @@ import org.slf4j.Logger; import java.nio.file.Path; -@Plugin(id = "ambassador", name = "Ambassador", version = "1.0.4-alpha", authors = {"adde0109"}) +@Plugin(id = "ambassador", name = "Ambassador", version = "1.0.5-alpha", authors = {"adde0109"}) public class Ambassador { public ProxyServer server; diff --git a/src/main/java/org/adde0109/ambassador/forge/ForgeFML2ClientConnectionPhase.java b/src/main/java/org/adde0109/ambassador/forge/ForgeFML2ClientConnectionPhase.java index a98176c..e8a740d 100644 --- a/src/main/java/org/adde0109/ambassador/forge/ForgeFML2ClientConnectionPhase.java +++ b/src/main/java/org/adde0109/ambassador/forge/ForgeFML2ClientConnectionPhase.java @@ -79,6 +79,7 @@ public class ForgeFML2ClientConnectionPhase implements VelocityForgeClientConnec if (player.getConnectedServer() != null) { backupServer = player.getConnectedServer().getServer(); player.getConnectedServer().disconnect(); + player.setConnectedServer(null); } MinecraftConnection connection = player.getConnection(); connection.setSessionHandler(new VelocityForgeHandshakeSessionHandler(connection.getSessionHandler(),player)); @@ -112,6 +113,7 @@ public class ForgeFML2ClientConnectionPhase implements VelocityForgeClientConnec if (backupServer != null && !(event.getResult() instanceof KickedFromServerEvent.RedirectPlayer)) { net.kyori.adventure.text.Component reason = event.getServerKickReason().orElse(null); event.setResult(KickedFromServerEvent.RedirectPlayer.create(backupServer,reason)); + backupServer = null; } } diff --git a/src/main/java/org/adde0109/ambassador/forge/ForgeFML2ConnectionType.java b/src/main/java/org/adde0109/ambassador/forge/ForgeFML2ConnectionType.java index 9a6aba7..31e977b 100644 --- a/src/main/java/org/adde0109/ambassador/forge/ForgeFML2ConnectionType.java +++ b/src/main/java/org/adde0109/ambassador/forge/ForgeFML2ConnectionType.java @@ -25,7 +25,8 @@ public class ForgeFML2ConnectionType implements ConnectionType { @Override public GameProfile addGameProfileTokensIfRequired(GameProfile original, PlayerInfoForwarding forwardingType) { - original.addProperties(Collections.singleton(new GameProfile.Property("extraData", "\1FML2\1", ""))); + if (forwardingType == PlayerInfoForwarding.LEGACY) + original.addProperties(Collections.singleton(new GameProfile.Property("extraData", "\1FML2\1", ""))); return original; } }