Skip to content

Commit c6f0717

Browse files
committed
Convert compact sound list to single entry in registry data
1 parent 395beba commit c6f0717

File tree

1 file changed

+18
-1
lines changed

1 file changed

+18
-1
lines changed

common/src/main/java/com/viaversion/viabackwards/protocol/v1_21_11to1_21_9/Protocol1_21_11To1_21_9.java

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@
3434
import com.viaversion.viabackwards.protocol.v1_21_11to1_21_9.rewriter.EntityPacketRewriter1_21_11;
3535
import com.viaversion.viabackwards.protocol.v1_21_11to1_21_9.storage.GameTimeStorage;
3636
import com.viaversion.viaversion.api.connection.UserConnection;
37+
import com.viaversion.viaversion.api.data.FullMappings;
3738
import com.viaversion.viaversion.api.minecraft.entities.EntityTypes1_21_11;
3839
import com.viaversion.viaversion.api.protocol.packet.provider.PacketTypesProvider;
3940
import com.viaversion.viaversion.api.protocol.packet.provider.SimplePacketTypesProvider;
@@ -73,7 +74,23 @@ public final class Protocol1_21_11To1_21_9 extends BackwardsProtocol<Clientbound
7374
private final ParticleRewriter<ClientboundPacket1_21_11> particleRewriter = new ParticleRewriter<>(this);
7475
private final NBTComponentRewriter<ClientboundPacket1_21_11> translatableRewriter = new ComponentRewriter1_21_11(this);
7576
private final TagRewriter<ClientboundPacket1_21_11> tagRewriter = new TagRewriter<>(this);
76-
private final RegistryDataRewriter registryDataRewriter = new BackwardsRegistryRewriter(this);
77+
private final RegistryDataRewriter registryDataRewriter = new BackwardsRegistryRewriter(this) {
78+
@Override
79+
protected void updateType(final CompoundTag tag, final String key, final FullMappings mappings) {
80+
super.updateType(tag, key, mappings);
81+
82+
if (key.equals("sound") && tag.get(key) instanceof ListTag<?> listTag) {
83+
// From a compact list to a single value
84+
final Tag first;
85+
if (listTag.isEmpty()) {
86+
first = new StringTag(mappings.mappedIdentifier(0)); // Dummy
87+
} else {
88+
first = listTag.get(0);
89+
}
90+
tag.put(key, first);
91+
}
92+
}
93+
};
7794

7895
public Protocol1_21_11To1_21_9() {
7996
super(ClientboundPacket1_21_11.class, ClientboundPacket1_21_9.class, ServerboundPacket1_21_9.class, ServerboundPacket1_21_9.class);

0 commit comments

Comments
 (0)