diff --git a/src/main/java/com/linearpast/sccore/animation/network/toclient/AnimationClearPacket.java b/src/main/java/com/linearpast/sccore/animation/network/toclient/AnimationClearPacket.java index e2deeec..0b5e238 100644 --- a/src/main/java/com/linearpast/sccore/animation/network/toclient/AnimationClearPacket.java +++ b/src/main/java/com/linearpast/sccore/animation/network/toclient/AnimationClearPacket.java @@ -6,6 +6,9 @@ import net.minecraft.client.Minecraft; import net.minecraft.client.player.LocalPlayer; import net.minecraft.network.FriendlyByteBuf; import net.minecraft.resources.ResourceLocation; +import net.minecraftforge.api.distmarker.Dist; +import net.minecraftforge.api.distmarker.OnlyIn; +import net.minecraftforge.fml.DistExecutor; import net.minecraftforge.network.NetworkEvent; import org.jetbrains.annotations.Nullable; @@ -21,17 +24,20 @@ public record AnimationClearPacket(@Nullable ResourceLocation layer) { public void encode(FriendlyByteBuf buf) { buf.writeNullable(layer, FriendlyByteBuf::writeResourceLocation); } - public void handle(Supplier supplier) { NetworkEvent.Context context = supplier.get(); context.enqueueWork(() -> { context.setPacketHandled(true); - LocalPlayer player = Minecraft.getInstance().player; - if(player == null) return; - List layers = new ArrayList<>(); - if(layer != null) layers.add(layer); - else layers.addAll(AnimationRegistry.getLayers().keySet()); - layers.forEach(layer -> AnimationUtils.playAnimation(player, layer, null)); + DistExecutor.unsafeRunWhenOn(Dist.CLIENT, () -> this::handleClient); }); } + @OnlyIn(Dist.CLIENT) + public void handleClient() { + LocalPlayer player = Minecraft.getInstance().player; + if(player == null) return; + List layers = new ArrayList<>(); + if(layer != null) layers.add(layer); + else layers.addAll(AnimationRegistry.getLayers().keySet()); + layers.forEach(layer -> AnimationUtils.playAnimation(player, layer, null)); + } }