diff --git a/common/src/main/java/com/viaversion/viabackwards/protocol/protocol1_20_2to1_20_3/Protocol1_20_2To1_20_3.java b/common/src/main/java/com/viaversion/viabackwards/protocol/protocol1_20_2to1_20_3/Protocol1_20_2To1_20_3.java index 5c6693ce..af56bd67 100644 --- a/common/src/main/java/com/viaversion/viabackwards/protocol/protocol1_20_2to1_20_3/Protocol1_20_2To1_20_3.java +++ b/common/src/main/java/com/viaversion/viabackwards/protocol/protocol1_20_2to1_20_3/Protocol1_20_2To1_20_3.java @@ -23,6 +23,7 @@ import com.viaversion.viabackwards.api.rewriters.SoundRewriter; import com.viaversion.viabackwards.api.rewriters.TranslatableRewriter; import com.viaversion.viabackwards.protocol.protocol1_20_2to1_20_3.rewriter.BlockItemPacketRewriter1_20_3; import com.viaversion.viabackwards.protocol.protocol1_20_2to1_20_3.rewriter.EntityPacketRewriter1_20_3; +import com.viaversion.viabackwards.protocol.protocol1_20_2to1_20_3.storage.ResourcepackIDStorage; import com.viaversion.viaversion.api.connection.UserConnection; import com.viaversion.viaversion.api.minecraft.entities.EntityTypes1_20_3; import com.viaversion.viaversion.api.protocol.packet.ClientboundPacketType; @@ -40,11 +41,13 @@ import com.viaversion.viaversion.protocols.protocol1_20_2to1_20.packet.Clientbou import com.viaversion.viaversion.protocols.protocol1_20_2to1_20.packet.ServerboundConfigurationPackets1_20_2; import com.viaversion.viaversion.protocols.protocol1_20_2to1_20.packet.ServerboundPackets1_20_2; import com.viaversion.viaversion.protocols.protocol1_20_3to1_20_2.Protocol1_20_3To1_20_2; +import com.viaversion.viaversion.protocols.protocol1_20_3to1_20_2.packet.ClientboundConfigurationPackets1_20_3; import com.viaversion.viaversion.protocols.protocol1_20_3to1_20_2.packet.ClientboundPackets1_20_3; import com.viaversion.viaversion.protocols.protocol1_20_3to1_20_2.packet.ServerboundPackets1_20_3; import com.viaversion.viaversion.rewriter.ComponentRewriter.ReadType; import com.viaversion.viaversion.rewriter.StatisticsRewriter; import java.util.BitSet; +import java.util.UUID; public final class Protocol1_20_2To1_20_3 extends BackwardsProtocol { @@ -228,9 +231,8 @@ public final class Protocol1_20_2To1_20_3 extends BackwardsProtocol { + final ResourcepackIDStorage storage = wrapper.user().get(ResourcepackIDStorage.class); + wrapper.write(Type.UUID, storage != null ? storage.uuid() : UUID.randomUUID()); + }); + + cancelClientbound(State.CONFIGURATION, ClientboundConfigurationPackets1_20_3.RESOURCE_PACK_POP.getId()); + registerServerbound(State.CONFIGURATION, ServerboundConfigurationPackets1_20_2.RESOURCE_PACK, wrapper -> { + final ResourcepackIDStorage storage = wrapper.user().get(ResourcepackIDStorage.class); + wrapper.write(Type.UUID, storage != null ? storage.uuid() : UUID.randomUUID()); + }); + registerClientbound(State.CONFIGURATION, ClientboundConfigurationPackets1_20_3.RESOURCE_PACK_PUSH.getId(), ServerboundConfigurationPackets1_20_2.RESOURCE_PACK.getId(), resourcePackHandler()); + // TODO Auto map via packet types provider + registerClientbound(State.CONFIGURATION, ClientboundConfigurationPackets1_20_3.UPDATE_ENABLED_FEATURES.getId(), ClientboundConfigurationPackets1_20_2.UPDATE_ENABLED_FEATURES.getId()); + registerClientbound(State.CONFIGURATION, ClientboundConfigurationPackets1_20_3.UPDATE_TAGS.getId(), ClientboundConfigurationPackets1_20_2.UPDATE_TAGS.getId()); } private PacketHandler resourcePackHandler() { return wrapper -> { + final UUID uuid = wrapper.read(Type.UUID); + wrapper.user().put(new ResourcepackIDStorage(uuid)); + wrapper.passthrough(Type.STRING); // Url wrapper.passthrough(Type.STRING); // Hash wrapper.passthrough(Type.BOOLEAN); // Required @@ -331,7 +352,7 @@ public final class Protocol1_20_2To1_20_3 extends BackwardsProtocol. + */ +package com.viaversion.viabackwards.protocol.protocol1_20_2to1_20_3.storage; + +import com.viaversion.viaversion.api.connection.StorableObject; +import java.util.UUID; + +public final class ResourcepackIDStorage implements StorableObject { + private final UUID uuid; + + public ResourcepackIDStorage(final UUID uuid) { + this.uuid = uuid; + } + + public UUID uuid() { + return uuid; + } + + @Override + public boolean clearOnServerSwitch() { + return false; + } +} diff --git a/common/src/main/resources/assets/viabackwards/data/mappings-1.20.3to1.20.2.nbt b/common/src/main/resources/assets/viabackwards/data/mappings-1.20.3to1.20.2.nbt index 9e60ea7e..ef11fb53 100644 Binary files a/common/src/main/resources/assets/viabackwards/data/mappings-1.20.3to1.20.2.nbt and b/common/src/main/resources/assets/viabackwards/data/mappings-1.20.3to1.20.2.nbt differ diff --git a/gradle.properties b/gradle.properties index 33aa8a8c..78adcf6c 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,4 +1,4 @@ -projectVersion=4.9.0-23w46a-SNAPSHOT +projectVersion=4.9.0-1.20.3-pre1-SNAPSHOT # Smile emoji mcVersions=1.20.2, 1.20.1, 1.20, 1.19.4, 1.19.3, 1.19.2, 1.19.1, 1.19, 1.18.2, 1.18.1, 1.18, 1.17.1, 1.17, 1.16.5, 1.16.4, 1.16.3, 1.16.2, 1.16.1, 1.16, 1.15.2, 1.15.1, 1.15, 1.14.4, 1.14.3, 1.14.2, 1.14.1, 1.14, 1.13.2, 1.13.1, 1.13, 1.12.2, 1.12.1, 1.12, 1.11.2, 1.11.1, 1.11, 1.10.2, 1.10.1, 1.10 diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 2f9ed8d7..d5f88579 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -3,7 +3,7 @@ metadata.format.version = "1.1" [versions] # ViaVersion -viaver = "4.9.0-23w46a-SNAPSHOT" +viaver = "4.9.0-1.20.3-pre1-SNAPSHOT" # Common provided netty = "4.0.20.Final"