diff --git a/core/src/main/java/org/geysermc/geyser/command/defaults/VersionCommand.java b/core/src/main/java/org/geysermc/geyser/command/defaults/VersionCommand.java index dbec4d4f8..4dd93ee74 100644 --- a/core/src/main/java/org/geysermc/geyser/command/defaults/VersionCommand.java +++ b/core/src/main/java/org/geysermc/geyser/command/defaults/VersionCommand.java @@ -62,9 +62,16 @@ public class VersionCommand extends GeyserCommand { } else { bedrockVersions = MinecraftProtocol.SUPPORTED_BEDROCK_CODECS.get(0).getMinecraftVersion(); } + String javaVersions; + List supportedJavaVersions = MinecraftProtocol.getJavaVersions(); + if (supportedJavaVersions.size() > 1) { + javaVersions = supportedJavaVersions.get(0) + " - " + supportedJavaVersions.get(supportedJavaVersions.size() - 1); + } else { + javaVersions = supportedJavaVersions.get(0); + } sender.sendMessage(GeyserLocale.getPlayerLocaleString("geyser.commands.version.version", sender.getLocale(), - GeyserImpl.NAME, GeyserImpl.VERSION, MinecraftProtocol.getJavaVersion(), bedrockVersions)); + GeyserImpl.NAME, GeyserImpl.VERSION, javaVersions, bedrockVersions)); // Disable update checking in dev mode and for players in Geyser Standalone if (GeyserImpl.getInstance().productionEnvironment() && !(!sender.isConsole() && geyser.getPlatformType() == PlatformType.STANDALONE)) { diff --git a/core/src/main/java/org/geysermc/geyser/dump/DumpInfo.java b/core/src/main/java/org/geysermc/geyser/dump/DumpInfo.java index 8a21b6929..7d4807050 100644 --- a/core/src/main/java/org/geysermc/geyser/dump/DumpInfo.java +++ b/core/src/main/java/org/geysermc/geyser/dump/DumpInfo.java @@ -207,14 +207,14 @@ public class DumpInfo { private final List bedrockVersions; private final List bedrockProtocols; private final int defaultBedrockProtocol; - private final String javaVersion; + private final List javaVersions; private final int javaProtocol; MCInfo() { this.bedrockVersions = MinecraftProtocol.SUPPORTED_BEDROCK_CODECS.stream().map(BedrockPacketCodec::getMinecraftVersion).toList(); this.bedrockProtocols = MinecraftProtocol.SUPPORTED_BEDROCK_CODECS.stream().map(BedrockPacketCodec::getProtocolVersion).toList(); this.defaultBedrockProtocol = MinecraftProtocol.DEFAULT_BEDROCK_CODEC.getProtocolVersion(); - this.javaVersion = MinecraftProtocol.getJavaVersion(); + this.javaVersions = MinecraftProtocol.getJavaVersions(); this.javaProtocol = MinecraftProtocol.getJavaProtocolVersion(); } } diff --git a/core/src/main/java/org/geysermc/geyser/network/MinecraftProtocol.java b/core/src/main/java/org/geysermc/geyser/network/MinecraftProtocol.java index 8fd2ca700..868f87a5d 100644 --- a/core/src/main/java/org/geysermc/geyser/network/MinecraftProtocol.java +++ b/core/src/main/java/org/geysermc/geyser/network/MinecraftProtocol.java @@ -33,6 +33,7 @@ import com.nukkitx.protocol.bedrock.v471.Bedrock_v471; import com.nukkitx.protocol.bedrock.v475.Bedrock_v475; import java.util.ArrayList; +import java.util.Arrays; import java.util.List; import java.util.StringJoiner; @@ -86,12 +87,12 @@ public final class MinecraftProtocol { } /** - * Gets the supported Minecraft: Java Edition version name. + * Gets the supported Minecraft: Java Edition version names. * - * @return the supported Minecraft: Java Edition version name + * @return the supported Minecraft: Java Edition version names */ - public static String getJavaVersion() { - return "1.18 - 1.18.1"; + public static List getJavaVersions() { + return Arrays.asList("1.18", "1.18.1"); } /** @@ -104,9 +105,9 @@ public final class MinecraftProtocol { } /** - * @return a string showing all supported versions for this Geyser instance + * @return a string showing all supported Bedrock versions for this Geyser instance */ - public static String getAllSupportedVersions() { + public static String getAllSupportedBedrockVersions() { StringJoiner joiner = new StringJoiner(", "); for (BedrockPacketCodec packetCodec : SUPPORTED_BEDROCK_CODECS) { joiner.add(packetCodec.getMinecraftVersion()); @@ -115,6 +116,18 @@ public final class MinecraftProtocol { return joiner.toString(); } + /** + * @return a string showing all supported Java versions for this Geyser instance + */ + public static String getAllSupportedJavaVersions() { + StringJoiner joiner = new StringJoiner(", "); + for (String version : getJavaVersions()) { + joiner.add(version); + } + + return joiner.toString(); + } + private MinecraftProtocol() { } } diff --git a/core/src/main/java/org/geysermc/geyser/network/UpstreamPacketHandler.java b/core/src/main/java/org/geysermc/geyser/network/UpstreamPacketHandler.java index 38673769b..781f58ef5 100644 --- a/core/src/main/java/org/geysermc/geyser/network/UpstreamPacketHandler.java +++ b/core/src/main/java/org/geysermc/geyser/network/UpstreamPacketHandler.java @@ -70,7 +70,7 @@ public class UpstreamPacketHandler extends LoggingPacketHandler { BedrockPacketCodec packetCodec = MinecraftProtocol.getBedrockCodec(loginPacket.getProtocolVersion()); if (packetCodec == null) { - String supportedVersions = MinecraftProtocol.getAllSupportedVersions(); + String supportedVersions = MinecraftProtocol.getAllSupportedBedrockVersions(); if (loginPacket.getProtocolVersion() > MinecraftProtocol.DEFAULT_BEDROCK_CODEC.getProtocolVersion()) { // Too early to determine session locale session.getGeyser().getLogger().info(GeyserLocale.getLocaleStringLog("geyser.network.outdated.server", supportedVersions));