1414import net .minecraft .network .packet .s2c .play .EntityStatusS2CPacket ;
1515import net .minecraft .sound .SoundEvents ;
1616import net .minecraft .util .Hand ;
17+ import net .minecraft .world .World ;
1718import org .spongepowered .asm .mixin .Mixin ;
1819import org .spongepowered .asm .mixin .Shadow ;
1920import org .spongepowered .asm .mixin .Unique ;
@@ -33,21 +34,28 @@ private static boolean modifyTotemOfUndyingAnimation(ItemStack instance, Item it
3334
3435 @ Inject (at = @ At ("HEAD" ), method = "onEntityStatus" )
3536 private void onCustomEntityStatus (EntityStatusS2CPacket packet , CallbackInfo ci ) {
36- if (this .getWorld () == null ) return ;
37- Entity entity = packet . getEntity ( this . getWorld ()) ;
38- if ( entity == null ) return ;
37+ if (this .getWorld () == null || packet . getStatus () != 36 ) {
38+ return ;
39+ }
3940
40- int status = packet .getStatus ();
41- if (status != 36 ) return ;
41+ final var client = MinecraftClient .getInstance ();
4242
43- MinecraftClient .getInstance ().particleManager .addEmitter (entity , JoyParticles .TOTEM_OF_PRIDE_PARTICLE , 30 );
43+ //noinspection ResultOfMethodCallIgnored - unnecessary
44+ client .submit (() -> {
45+ final World world = this .getWorld ();
46+ final Entity entity = packet .getEntity (world );
47+ if (entity == null ) {
48+ return ;
49+ }
4450
45- if (MinecraftClient .getInstance ().world != null ) {
46- MinecraftClient .getInstance ().world .playSound (entity .getX (), entity .getY (), entity .getZ (), SoundEvents .ITEM_TOTEM_USE , entity .getSoundCategory (), 1.0F , 1.0F , false );
47- }
51+ client .particleManager .addEmitter (entity , JoyParticles .TOTEM_OF_PRIDE_PARTICLE , 30 );
4852
49- if (entity == MinecraftClient .getInstance ().player )
50- MinecraftClient .getInstance ().gameRenderer .showFloatingItem (modifyTotem (MinecraftClient .getInstance ().player ));
53+ world .playSound (entity .getX (), entity .getY (), entity .getZ (), SoundEvents .ITEM_TOTEM_USE , entity .getSoundCategory (), 1.f , 1.f , false );
54+
55+ if (entity == client .player ) {
56+ client .gameRenderer .showFloatingItem (modifyTotem (client .player ));
57+ }
58+ });
5159 }
5260
5361 @ Unique
0 commit comments