2323import com .viaversion .viabackwards .api .BackwardsProtocol ;
2424import com .viaversion .viabackwards .api .data .BackwardsMappingData ;
2525import com .viaversion .viabackwards .api .rewriters .BackwardsRegistryRewriter ;
26- import com .viaversion .viabackwards .api .rewriters .SoundRewriter ;
2726import com .viaversion .viabackwards .api .rewriters .text .NBTComponentRewriter ;
2827import com .viaversion .viabackwards .protocol .v1_21_6to1_21_5 .data .Dialog ;
2928import com .viaversion .viabackwards .protocol .v1_21_6to1_21_5 .provider .ChestDialogViewProvider ;
3837import com .viaversion .viabackwards .protocol .v1_21_6to1_21_5 .storage .ServerLinks ;
3938import com .viaversion .viaversion .api .Via ;
4039import com .viaversion .viaversion .api .connection .UserConnection ;
40+ import com .viaversion .viaversion .api .minecraft .Holder ;
4141import com .viaversion .viaversion .api .minecraft .entities .EntityTypes1_21_6 ;
4242import com .viaversion .viaversion .api .platform .providers .ViaProviders ;
4343import com .viaversion .viaversion .api .protocol .packet .PacketWrapper ;
@@ -140,13 +140,9 @@ public void handleArgument(final PacketWrapper wrapper, final String argumentTyp
140140
141141 final RegistryAndTags registryAndTags = wrapper .user ().get (RegistryAndTags .class );
142142 final ServerLinks serverLinks = wrapper .user ().get (ServerLinks .class );
143- final int id = wrapper .read (Types .VAR_INT ) - 1 ;
144- CompoundTag tag ;
145- if (id == -1 ) {
146- tag = (CompoundTag ) wrapper .read (Types .TRUSTED_TAG );
147- } else {
148- tag = registryAndTags .fromRegistry (id );
149- }
143+
144+ final Holder <CompoundTag > holder = wrapper .passthrough (Types .TRUSTED_COMPOUND_TAG_HOLDER );
145+ final CompoundTag tag = holder .isDirect () ? holder .value () : registryAndTags .fromRegistry (holder .id ());
150146
151147 final DialogViewProvider provider = Via .getManager ().getProviders ().get (DialogViewProvider .class );
152148 provider .openDialog (wrapper .user (), new Dialog (registryAndTags , serverLinks , tag ));
@@ -159,7 +155,7 @@ public void handleArgument(final PacketWrapper wrapper, final String argumentTyp
159155
160156 final RegistryAndTags registryAndTags = wrapper .user ().get (RegistryAndTags .class );
161157 final ServerLinks serverLinks = wrapper .user ().get (ServerLinks .class );
162- final CompoundTag tag = ( CompoundTag ) wrapper .read (Types .TRUSTED_TAG );
158+ final CompoundTag tag = wrapper .read (Types .TRUSTED_COMPOUND_TAG );
163159
164160 final DialogViewProvider provider = Via .getManager ().getProviders ().get (DialogViewProvider .class );
165161 provider .openDialog (wrapper .user (), new Dialog (registryAndTags , serverLinks , tag ));
0 commit comments