From c2306d7fa633e31abff280826c3146a0bb083f47 Mon Sep 17 00:00:00 2001 From: Motschen Date: Sat, 23 Jan 2021 19:58:36 +0100 Subject: [PATCH] Fix ClassCastExeption --- .../visualoverhaul/VisualOverhaulClient.java | 1 + .../renderer/FurnaceBlockEntityRenderer.java | 2 +- .../MixinAbstractFurnaceBlockEntity.java | 25 +++++++++++-------- 3 files changed, 16 insertions(+), 12 deletions(-) diff --git a/src/main/java/eu/midnightdust/visualoverhaul/VisualOverhaulClient.java b/src/main/java/eu/midnightdust/visualoverhaul/VisualOverhaulClient.java index d6708f1..f30d510 100644 --- a/src/main/java/eu/midnightdust/visualoverhaul/VisualOverhaulClient.java +++ b/src/main/java/eu/midnightdust/visualoverhaul/VisualOverhaulClient.java @@ -58,6 +58,7 @@ public class VisualOverhaulClient implements ClientModInitializer { } }); + ClientSidePacketRegistryImpl.INSTANCE.register(UPDATE_POTION_BOTTLES, (packetContext, attachedData) -> { BlockPos pos = attachedData.readBlockPos(); diff --git a/src/main/java/eu/midnightdust/visualoverhaul/block/renderer/FurnaceBlockEntityRenderer.java b/src/main/java/eu/midnightdust/visualoverhaul/block/renderer/FurnaceBlockEntityRenderer.java index 1053934..e956034 100644 --- a/src/main/java/eu/midnightdust/visualoverhaul/block/renderer/FurnaceBlockEntityRenderer.java +++ b/src/main/java/eu/midnightdust/visualoverhaul/block/renderer/FurnaceBlockEntityRenderer.java @@ -62,7 +62,7 @@ public class FurnaceBlockEntityRenderer extends BlockEntityRenderer watchingPlayers = PlayerStream.watching(world, getPos()); - PacketByteBuf passedData = new PacketByteBuf(Unpooled.buffer()); - passedData.writeBlockPos(pos); - passedData.writeItemStack(inventory.get(0)); - passedData.writeItemStack(inventory.get(1)); - passedData.writeItemStack(inventory.get(2)); + if (this.world.getBlockState(this.pos).getBlock().is(Blocks.FURNACE)) { + if (!this.world.isClient && (invUpdate || world.getPlayers().size() == playerUpdate)) { + Stream watchingPlayers = PlayerStream.watching(world, getPos()); + PacketByteBuf passedData = new PacketByteBuf(Unpooled.buffer()); + passedData.writeBlockPos(pos); + passedData.writeItemStack(inventory.get(0)); + passedData.writeItemStack(inventory.get(1)); + passedData.writeItemStack(inventory.get(2)); - passedData.writeString(String.valueOf(inventory)); - watchingPlayers.forEach(player -> ServerSidePacketRegistryImpl.INSTANCE.sendToPlayer(player, VisualOverhaul.UPDATE_FURNACE_ITEMS, passedData)); - invUpdate = false; + passedData.writeString(String.valueOf(inventory)); + watchingPlayers.forEach(player -> ServerSidePacketRegistryImpl.INSTANCE.sendToPlayer(player, VisualOverhaul.UPDATE_FURNACE_ITEMS, passedData)); + invUpdate = false; + } + playerUpdate = world.getPlayers().size(); } - playerUpdate = world.getPlayers().size(); } @Inject(at = @At("RETURN"), method = "getStack", cancellable = true)