From fd953a52f060d403c64ac0dcbef59d15dcbca2a5 Mon Sep 17 00:00:00 2001 From: Raoul Van den Berge Date: Sat, 5 Nov 2016 17:43:55 +0100 Subject: [PATCH] Don't construct crafting monitor elements if noone is watching --- .../refinedstorage/tile/TileController.java | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/src/main/java/com/raoulvdberge/refinedstorage/tile/TileController.java b/src/main/java/com/raoulvdberge/refinedstorage/tile/TileController.java index 0a77b79e4..f3fb729ca 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/tile/TileController.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/tile/TileController.java @@ -538,11 +538,15 @@ public class TileController extends TileBase implements INetworkMaster, IEnergyR @Override public void sendCraftingMonitorUpdate() { - List elements = getElements(); - - worldObj.getMinecraftServer().getPlayerList().getPlayerList().stream() + List watchers = worldObj.getMinecraftServer().getPlayerList().getPlayerList().stream() .filter(player -> player.openContainer instanceof ContainerCraftingMonitor && pos.equals(((ContainerCraftingMonitor) player.openContainer).getCraftingMonitor().getNetworkPosition())) - .forEach(player -> RS.INSTANCE.network.sendTo(new MessageCraftingMonitorElements(elements), player)); + .collect(Collectors.toList()); + + if (!watchers.isEmpty()) { + List elements = getElements(); + + watchers.forEach(player -> RS.INSTANCE.network.sendTo(new MessageCraftingMonitorElements(elements), player)); + } } @Override