3030import com .viaversion .viabackwards .protocol .v1_20_5to1_20_3 .storage .SecureChatStorage ;
3131import com .viaversion .viaversion .api .connection .UserConnection ;
3232import com .viaversion .viaversion .api .data .entity .DimensionData ;
33- import com .viaversion .viaversion .api .data .entity .EntityTracker ;
3433import com .viaversion .viaversion .api .minecraft .Particle ;
3534import com .viaversion .viaversion .api .minecraft .RegistryEntry ;
3635import com .viaversion .viaversion .api .minecraft .entities .EntityType ;
@@ -72,15 +71,16 @@ public void registerPackets() {
7271
7372 protocol .registerClientbound (ClientboundPackets1_20_5 .SET_EQUIPMENT , wrapper -> {
7473 final int entityId = wrapper .passthrough (Types .VAR_INT ); // Entity id
74+ final EntityType type = tracker (wrapper .user ()).entityType (entityId );
7575 byte slot ;
7676 do {
7777 slot = wrapper .read (Types .BYTE );
7878 final Item item = protocol .getItemRewriter ().handleItemToClient (wrapper .user (), wrapper .read (Types1_20_5 .ITEM ));
7979
8080 if (slot == 6 ) {
81- final EntityTracker tracker = wrapper . user (). getEntityTracker ( Protocol1_20_5To1_20_3 . class );
82- slot = 4 ; // Map body slot index to chest slot index for horses
83- final EntityType type = tracker . entityType ( entityId );
81+ if ( type != null && type . isOrHasParent ( EntityTypes1_20_5 . ABSTRACT_HORSE )) {
82+ slot = 4 ; // Map body slot index to chest slot index for horses
83+ }
8484 if (type != null && type .isOrHasParent (EntityTypes1_20_5 .LLAMA )) {
8585 // Cancel equipment and set correct entity data instead
8686 wrapper .cancel ();
@@ -449,4 +449,4 @@ public void onMappingDataLoaded() {
449449 public EntityType typeFromId (final int type ) {
450450 return EntityTypes1_20_5 .getTypeFromId (type );
451451 }
452- }
452+ }
0 commit comments