From 2aadd545cf9eabb418cb651c30a0fab8162643f3 Mon Sep 17 00:00:00 2001 From: Adrian Bergqvist Date: Mon, 1 Aug 2022 00:52:35 +0200 Subject: [PATCH] Now works with legacy forwarding on 1.18 and later --- build.gradle | 2 +- src/main/java/org/adde0109/ambassador/Ambassador.java | 9 ++++++++- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/build.gradle b/build.gradle index 0e02d56..8791d01 100644 --- a/build.gradle +++ b/build.gradle @@ -4,7 +4,7 @@ plugins { } group 'org.adde0109' -version '0.3.1' +version '0.3.2' repositories { maven { diff --git a/src/main/java/org/adde0109/ambassador/Ambassador.java b/src/main/java/org/adde0109/ambassador/Ambassador.java index e967c17..0021036 100644 --- a/src/main/java/org/adde0109/ambassador/Ambassador.java +++ b/src/main/java/org/adde0109/ambassador/Ambassador.java @@ -11,6 +11,7 @@ import com.velocitypowered.api.plugin.Plugin; import com.velocitypowered.api.plugin.annotation.DataDirectory; import com.velocitypowered.api.proxy.ProxyServer; +import com.velocitypowered.api.util.GameProfile; import net.kyori.adventure.text.Component; import net.kyori.adventure.text.format.NamedTextColor; import org.adde0109.ambassador.forge.ForgeConnection; @@ -23,7 +24,7 @@ import org.slf4j.Logger; import java.nio.file.Path; import java.util.*; -@Plugin(id = "ambassador", name = "Ambassador", version = "0.3.1", authors = {"adde0109"}) +@Plugin(id = "ambassador", name = "Ambassador", version = "0.3.2", authors = {"adde0109"}) public class Ambassador { private final ProxyServer server; @@ -94,6 +95,12 @@ public class Ambassador { event.getPlayer().sendMessage(Component.text("This server requires Forge!", NamedTextColor.RED)); continuation.resume(); } else if (forgeConnection.isPresent()) { + + //To make legacy forwarding work + List properties = new ArrayList<>(event.getPlayer().getGameProfileProperties()); + properties.add(new GameProfile.Property("extraData", "\1FML2\1","")); + event.getPlayer().setGameProfileProperties(properties); + if (forgeConnection.get().getTransmittedHandshake().isPresent() && forgeConnection.get().getRecivedClientModlist().isPresent() && msg.equals(forgeConnection.get().getTransmittedHandshake().get())) {