From d86084225e5c964e4feb688a9f17caea5baa6c4c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Karen/=E3=81=82=E3=81=91=E3=81=BF?= Date: Wed, 28 Sep 2022 01:43:37 +0900 Subject: [PATCH] Support for Minecraft version 1.19.1/1.19.2 --- .../game/data/registries/RegistryLoader.java | 16 +++++--- src/main/resources/protocol-versions.json | 40 ++++++++++++++++++- .../protocol/ProtocolVersionHandlerTest.java | 1 + 3 files changed, 51 insertions(+), 6 deletions(-) diff --git a/src/main/java/game/data/registries/RegistryLoader.java b/src/main/java/game/data/registries/RegistryLoader.java index a9e623ba..301b5bec 100644 --- a/src/main/java/game/data/registries/RegistryLoader.java +++ b/src/main/java/game/data/registries/RegistryLoader.java @@ -115,13 +115,19 @@ private void getReportsFromServerJar() throws IOException, InterruptedException String serverUrl = VersionManifestHandler.findServerUrl(version); /* - * Since newer Minecraft versions use Java 1.16, we can't generate reports if the user is still using an older - * version of Java. To maintain support for older Java versions, this check is only done at this stage. + * Since newer Minecraft versions use Java 17 (1.18+) or Java 16 (1.17.x), we can't generate reports if the user is using + * an incompatible version of Java. To maintain support for older Java versions, this check is only done at this stage. */ - if (Config.versionReporter().isAtLeast1_17() && getJavaVersion() < 16) { - System.err.println("Cannot run Minecraft version 1.17+ with a Java version below 16. You are currently using Java version " + getJavaVersion() + "."); + if (Config.versionReporter().isAtLeast1_18() && getJavaVersion() < 17) { + System.err.println("Cannot run Minecraft version 1.18+ with a Java version below 17. You are currently using Java version " + getJavaVersion() + "."); + System.err.println("Please consider upgrading your Java version to at least version 17.\n"); + System.err.println("If you have already installed a compatible version of Java and are still seeing this message, please ensure that your JAVA_HOME environment variable is set correctly.\n"); + throw new UnsupportedMinecraftVersionException("Minecraft version 1.18+ is not supported for Java version " + getJavaVersion()); + } else if (Config.versionReporter().isAtLeast1_17() && getJavaVersion() < 16) { + System.err.println("Cannot run Minecraft version 1.17.x with a Java version below 16. You are currently using Java version " + getJavaVersion() + "."); System.err.println("Please consider upgrading your Java version to at least version 16.\n"); - throw new UnsupportedMinecraftVersionException("Minecraft version 1.17 is not supported for java version " + getJavaVersion()); + System.err.println("If you have already installed a compatible version of Java and are still seeing this message, please ensure that your JAVA_HOME environment variable is set correctly.\n"); + throw new UnsupportedMinecraftVersionException("Minecraft version 1.17.x is not supported for Java version " + getJavaVersion()); } downloadServerJar(serverUrl); diff --git a/src/main/resources/protocol-versions.json b/src/main/resources/protocol-versions.json index 60a0ce84..f0aab4c4 100644 --- a/src/main/resources/protocol-versions.json +++ b/src/main/resources/protocol-versions.json @@ -278,6 +278,44 @@ "0x30": "UseItemOn", "0x31": "UseItem" } - } + }, + "760": { + "version": "1.19.1", + "dataVersion": 3117, + "clientBound": { + "0x00": "AddEntity", + "0x02": "AddPlayer", + "0x07": "BlockEntityData", + "0x09": "BlockUpdate", + "0x10": "ContainerClose", + "0x11": "ContainerSetContent", + "0x1c": "ForgetLevelChunk", + "0x21": "LevelChunkWithLight", + "0x24": "LightUpdate", + "0x25": "Login", + "0x26": "MapItemData", + "0x28": "MoveEntityPos", + "0x29": "MoveEntityPosRot", + "0x2d": "OpenScreen", + "0x3b": "RemoveEntities", + "0x3e": "Respawn", + "0x40": "SectionBlocksUpdate", + "0x50": "SetEntityData", + "0x53": "SetEquipment", + "0x62": "SystemChat", + "0x66": "TeleportEntity" + }, + "serverBound": { + "0x0c": "ContainerClose", + "0x10": "Interact", + "0x14": "MovePlayerPos", + "0x15": "MovePlayerPosRot", + "0x16": "MovePlayerRot", + "0x18": "MoveVehicle", + "0x29": "SetCommandBlock", + "0x31": "UseItemOn", + "0x32": "UseItem" + } + } } } \ No newline at end of file diff --git a/src/test/java/game/protocol/ProtocolVersionHandlerTest.java b/src/test/java/game/protocol/ProtocolVersionHandlerTest.java index cf6cb884..cf0a2741 100644 --- a/src/test/java/game/protocol/ProtocolVersionHandlerTest.java +++ b/src/test/java/game/protocol/ProtocolVersionHandlerTest.java @@ -24,6 +24,7 @@ void bestMatch() { versions.put(757, "1.18"); versions.put(758, "1.18"); versions.put(759, "1.19"); + versions.put(760, "1.19.1"); versions.forEach((k, v) -> { assertThat(pvh.getProtocolByProtocolVersion(k).getVersion()).isEqualTo(v);