From fb368a9ebe7d8dab2fc757b5efe9c79f6cfd8bc9 Mon Sep 17 00:00:00 2001 From: KennyTV Date: Thu, 27 May 2021 15:46:08 +0200 Subject: [PATCH] 1.17-pre1 --- README.md | 1 + build.gradle.kts | 2 +- .../packets/BlockItemPackets1_17.java | 8 +++++--- .../assets/viabackwards/data/mapping-1.16.2to1.17.json | 4 +++- gradle/libs.versions.toml | 2 +- 5 files changed, 11 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index 81d5e672..08bd5fb3 100644 --- a/README.md +++ b/README.md @@ -27,6 +27,7 @@ You can find the latest dev builds here:\ Known issues - * Custom 1.17+ min_y and height world values are not and will (most likely) never be supported => Clients older than 1.17 will not be able to see or interact with blocks below y=0 and above y=255 +* < 1.17 clients on 1.17+ servers might experience inventory desyncs on certain inventory click actions * Sound mappings are incomplete ([see here](https://github.com/ViaVersion/ViaBackwards/issues/326)) Other Links diff --git a/build.gradle.kts b/build.gradle.kts index 2c0d88c2..3e643bee 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -8,7 +8,7 @@ plugins { allprojects { group = "com.viaversion" - version = "4.0.0-21w20a-SNAPSHOT" + version = "4.0.0-1.17-pre1-SNAPSHOT" description = "Allow older clients to join newer server versions." } diff --git a/common/src/main/java/com/viaversion/viabackwards/protocol/protocol1_16_4to1_17/packets/BlockItemPackets1_17.java b/common/src/main/java/com/viaversion/viabackwards/protocol/protocol1_16_4to1_17/packets/BlockItemPackets1_17.java index 12ffb521..f3b1cd1a 100644 --- a/common/src/main/java/com/viaversion/viabackwards/protocol/protocol1_16_4to1_17/packets/BlockItemPackets1_17.java +++ b/common/src/main/java/com/viaversion/viabackwards/protocol/protocol1_16_4to1_17/packets/BlockItemPackets1_17.java @@ -75,7 +75,7 @@ public class BlockItemPackets1_17 extends com.viaversion.viabackwards.api.rewrit } }); - // This will cause desync issues for players with a high latency, but works:tm: + //TODO This will cause desync issues for players under certain circumstances, but mostly works:tm: protocol.registerServerbound(ServerboundPackets1_16_2.CLICK_WINDOW, new PacketRemapper() { @Override public void registerMap() { @@ -84,9 +84,11 @@ public class BlockItemPackets1_17 extends com.viaversion.viabackwards.api.rewrit map(Type.BYTE); // Button map(Type.SHORT, Type.NOTHING); // Action id - removed map(Type.VAR_INT); // Mode - handler(wrapper -> { - wrapper.write(Type.VAR_INT, 0); + // The 1.17 client would check the entire inventory for changes before -> after a click and send the changed slots here + wrapper.write(Type.VAR_INT, 0); // Empty array of slot+item + + // Expected is the carried item after clicking, old clients send the clicked one (*mostly* being the same) handleItemToServer(wrapper.passthrough(Type.FLAT_VAR_INT_ITEM)); }); } diff --git a/common/src/main/resources/assets/viabackwards/data/mapping-1.16.2to1.17.json b/common/src/main/resources/assets/viabackwards/data/mapping-1.16.2to1.17.json index 0bd833c8..9e346e49 100644 --- a/common/src/main/resources/assets/viabackwards/data/mapping-1.16.2to1.17.json +++ b/common/src/main/resources/assets/viabackwards/data/mapping-1.16.2to1.17.json @@ -684,7 +684,9 @@ "minecraft:light": "minecraft:air", "minecraft:raw_iron_block": "minecraft:iron_block", "minecraft:raw_copper_block": "minecraft:iron_block", - "minecraft:raw_gold_block": "minecraft:gold_block" + "minecraft:raw_gold_block": "minecraft:gold_block", + "minecraft:potted_azalea_bush": "minecraft:potted_cactus", + "minecraft:potted_flowering_azalea_bush": "minecraft:potted_cactus" }, "items": { "minecraft:dirt_path": { diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 8a964b86..5f6b1696 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -3,7 +3,7 @@ metadata.format.version = "1.0" [versions] # ViaVersion -viaver = "4.0.0-21w20a-SNAPSHOT" +viaver = "4.0.0-1.17-pre1-SNAPSHOT" # Common provided netty = "4.0.20.Final"