From a4b2a016f8031a5a37f282ce424fab4cc00c3844 Mon Sep 17 00:00:00 2001 From: Redned Date: Sat, 2 Nov 2019 15:58:50 -0500 Subject: [PATCH] Set version for pong and StartGamePacket from bedrock packet codec --- .../network/ConnectorServerEventHandler.java | 57 +++++++++---------- .../network/session/GeyserSession.java | 2 +- 2 files changed, 28 insertions(+), 31 deletions(-) diff --git a/connector/src/main/java/org/geysermc/connector/network/ConnectorServerEventHandler.java b/connector/src/main/java/org/geysermc/connector/network/ConnectorServerEventHandler.java index f9f12689..da8c8581 100644 --- a/connector/src/main/java/org/geysermc/connector/network/ConnectorServerEventHandler.java +++ b/connector/src/main/java/org/geysermc/connector/network/ConnectorServerEventHandler.java @@ -55,48 +55,45 @@ public class ConnectorServerEventHandler implements BedrockServerEventHandler { @Override public BedrockPong onQuery(InetSocketAddress inetSocketAddress) { - PingEvent pong = new PingEvent(inetSocketAddress); GeyserLogger.DEFAULT.debug(inetSocketAddress + " has pinged you!"); GeyserConfiguration config = connector.getConfig(); - pong.setEdition("MCPE"); - pong.setGameType("Default"); - pong.setNintendoLimited(false); - pong.setProtocolVersion(GeyserConnector.BEDROCK_PACKET_CODEC.getProtocolVersion()); - pong.setVersion("1.12.0"); + PingEvent pongEvent = new PingEvent(inetSocketAddress); + pongEvent.setEdition("MCPE"); + pongEvent.setGameType("Default"); + pongEvent.setNintendoLimited(false); + pongEvent.setProtocolVersion(GeyserConnector.BEDROCK_PACKET_CODEC.getProtocolVersion()); + pongEvent.setVersion(GeyserConnector.BEDROCK_PACKET_CODEC.getMinecraftVersion()); - connector.getPluginManager().runEvent(pong); + connector.getPluginManager().runEvent(pongEvent); if (connector.getConfig().isPingPassthrough()) { ServerStatusInfo serverInfo = connector.getPassthroughThread().getInfo(); if (serverInfo != null) { - pong.setMotd(MessageUtils.getBedrockMessage(serverInfo.getDescription())); - pong.setSubMotd(config.getBedrock().getMotd2()); - pong.setPlayerCount(serverInfo.getPlayerInfo().getOnlinePlayers()); - pong.setMaximumPlayerCount(serverInfo.getPlayerInfo().getMaxPlayers()); + pongEvent.setMotd(MessageUtils.getBedrockMessage(serverInfo.getDescription())); + pongEvent.setSubMotd(config.getBedrock().getMotd2()); + pongEvent.setPlayerCount(serverInfo.getPlayerInfo().getOnlinePlayers()); + pongEvent.setMaximumPlayerCount(serverInfo.getPlayerInfo().getMaxPlayers()); } } else { - pong.setPlayerCount(1); - pong.setMaximumPlayerCount(config.getMaxPlayers()); - pong.setMotd(config.getBedrock().getMotd1()); - pong.setSubMotd(config.getBedrock().getMotd2()); + pongEvent.setPlayerCount(1); + pongEvent.setMaximumPlayerCount(config.getMaxPlayers()); + pongEvent.setMotd(config.getBedrock().getMotd1()); + pongEvent.setSubMotd(config.getBedrock().getMotd2()); } - BedrockPong c = new BedrockPong(); - - c.setEdition(pong.getEdition()); - c.setGameType(pong.getGameType()); - c.setNintendoLimited(pong.isNintendoLimited()); - c.setProtocolVersion(pong.getProtocolVersion()); - c.setVersion(pong.getVersion()); - - c.setMotd(pong.getMotd()); - c.setSubMotd(pong.getSubMotd()); - c.setPlayerCount(pong.getPlayerCount()); - c.setMaximumPlayerCount(pong.getMaximumPlayerCount()); - c.setIpv4Port(config.getBedrock().getPort()); - - return c; + BedrockPong pong = new BedrockPong(); + pong.setEdition(pongEvent.getEdition()); + pong.setGameType(pongEvent.getGameType()); + pong.setNintendoLimited(pongEvent.isNintendoLimited()); + pong.setProtocolVersion(pongEvent.getProtocolVersion()); + pong.setVersion(pongEvent.getVersion()); + pong.setMotd(pongEvent.getMotd()); + pong.setSubMotd(pongEvent.getSubMotd()); + pong.setPlayerCount(pongEvent.getPlayerCount()); + pong.setMaximumPlayerCount(pongEvent.getMaximumPlayerCount()); + pong.setIpv4Port(config.getBedrock().getPort()); + return pong; } @Override diff --git a/connector/src/main/java/org/geysermc/connector/network/session/GeyserSession.java b/connector/src/main/java/org/geysermc/connector/network/session/GeyserSession.java index 649f6e85..63547416 100644 --- a/connector/src/main/java/org/geysermc/connector/network/session/GeyserSession.java +++ b/connector/src/main/java/org/geysermc/connector/network/session/GeyserSession.java @@ -297,7 +297,7 @@ public class GeyserSession implements Player { startGamePacket.setMultiplayerCorrelationId(""); startGamePacket.setBlockPalette(Toolbox.BLOCKS); startGamePacket.setItemEntries(Toolbox.ITEMS); - startGamePacket.setMovementServerAuthoritative(true); + startGamePacket.setVanillaVersion(GeyserConnector.BEDROCK_PACKET_CODEC.getMinecraftVersion()); upstream.sendPacket(startGamePacket); PlayStatusPacket playStatusPacket = new PlayStatusPacket();