|
34 | 34 | import com.viaversion.viabackwards.protocol.v1_21_11to1_21_9.rewriter.EntityPacketRewriter1_21_11; |
35 | 35 | import com.viaversion.viabackwards.protocol.v1_21_11to1_21_9.storage.GameTimeStorage; |
36 | 36 | import com.viaversion.viaversion.api.connection.UserConnection; |
| 37 | +import com.viaversion.viaversion.api.data.FullMappings; |
37 | 38 | import com.viaversion.viaversion.api.minecraft.entities.EntityTypes1_21_11; |
38 | 39 | import com.viaversion.viaversion.api.protocol.packet.provider.PacketTypesProvider; |
39 | 40 | import com.viaversion.viaversion.api.protocol.packet.provider.SimplePacketTypesProvider; |
@@ -73,7 +74,23 @@ public final class Protocol1_21_11To1_21_9 extends BackwardsProtocol<Clientbound |
73 | 74 | private final ParticleRewriter<ClientboundPacket1_21_11> particleRewriter = new ParticleRewriter<>(this); |
74 | 75 | private final NBTComponentRewriter<ClientboundPacket1_21_11> translatableRewriter = new ComponentRewriter1_21_11(this); |
75 | 76 | 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 | + }; |
77 | 94 |
|
78 | 95 | public Protocol1_21_11To1_21_9() { |
79 | 96 | super(ClientboundPacket1_21_11.class, ClientboundPacket1_21_9.class, ServerboundPacket1_21_9.class, ServerboundPacket1_21_9.class); |
|
0 commit comments