From 82984dd096a87108c049f32381589df6a2a6a3fe Mon Sep 17 00:00:00 2001 From: rtm516 Date: Sun, 6 Jun 2021 10:42:46 +0100 Subject: [PATCH] Fix srv resolving --- .../org/geysermc/connect/MasterServer.java | 2 +- .../connect/proxy/GeyserProxySession.java | 41 +++++++++++++++++++ .../org/geysermc/connect/utils/Player.java | 4 +- 3 files changed, 44 insertions(+), 3 deletions(-) create mode 100644 src/main/java/org/geysermc/connect/proxy/GeyserProxySession.java diff --git a/src/main/java/org/geysermc/connect/MasterServer.java b/src/main/java/org/geysermc/connect/MasterServer.java index 703d5f4..55130ca 100644 --- a/src/main/java/org/geysermc/connect/MasterServer.java +++ b/src/main/java/org/geysermc/connect/MasterServer.java @@ -185,7 +185,7 @@ public class MasterServer { // Create the Geyser instance createGeyserProxy(); - + logger.info("Server started on " + geyserConnectConfig.getAddress() + ":" + port); } diff --git a/src/main/java/org/geysermc/connect/proxy/GeyserProxySession.java b/src/main/java/org/geysermc/connect/proxy/GeyserProxySession.java new file mode 100644 index 0000000..ce29ae3 --- /dev/null +++ b/src/main/java/org/geysermc/connect/proxy/GeyserProxySession.java @@ -0,0 +1,41 @@ +/* + * Copyright (c) 2019-2021 GeyserMC. http://geysermc.org + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + * + * @author GeyserMC + * @link https://github.com/GeyserMC/GeyserConnect + */ + +package org.geysermc.connect.proxy; + +import com.nukkitx.protocol.bedrock.BedrockServerSession; +import org.geysermc.connector.GeyserConnector; +import org.geysermc.connector.network.session.GeyserSession; + +public class GeyserProxySession extends GeyserSession { + public GeyserProxySession(GeyserConnector connector, BedrockServerSession bedrockServerSession) { + super(connector, bedrockServerSession); + } + + @Override + protected void disableSrvResolving() { + // Do nothing + } +} diff --git a/src/main/java/org/geysermc/connect/utils/Player.java b/src/main/java/org/geysermc/connect/utils/Player.java index 3f45431..d5e105a 100644 --- a/src/main/java/org/geysermc/connect/utils/Player.java +++ b/src/main/java/org/geysermc/connect/utils/Player.java @@ -40,12 +40,12 @@ import lombok.Getter; import lombok.Setter; import org.geysermc.common.window.FormWindow; import org.geysermc.connect.MasterServer; +import org.geysermc.connect.proxy.GeyserProxySession; import org.geysermc.connect.ui.FormID; import org.geysermc.connect.ui.UIHandler; import org.geysermc.connector.GeyserConnector; import org.geysermc.connector.common.AuthType; import org.geysermc.connector.network.UpstreamPacketHandler; -import org.geysermc.connector.network.session.GeyserSession; import org.geysermc.connector.network.session.auth.AuthData; import org.geysermc.connector.network.session.auth.BedrockClientData; import org.geysermc.connector.network.translators.world.block.BlockTranslator1_16_100; @@ -220,7 +220,7 @@ public class Player { transferPacket.setPort(currentServer.getPort()); session.sendPacket(transferPacket); } else { - GeyserSession geyserSession = new GeyserSession(GeyserConnector.getInstance(), session); + GeyserProxySession geyserSession = new GeyserProxySession(GeyserConnector.getInstance(), session); session.setPacketHandler(new UpstreamPacketHandler(GeyserConnector.getInstance(), geyserSession)); geyserSession.getUpstream().getSession().setPacketCodec(session.getPacketCodec());