Don't construct crafting monitor elements if noone is watching

This commit is contained in:
Raoul Van den Berge
2016-11-05 17:43:55 +01:00
parent f6b983f0b4
commit fd953a52f0

View File

@@ -538,11 +538,15 @@ public class TileController extends TileBase implements INetworkMaster, IEnergyR
@Override
public void sendCraftingMonitorUpdate() {
List<ICraftingMonitorElement> elements = getElements();
worldObj.getMinecraftServer().getPlayerList().getPlayerList().stream()
List<EntityPlayerMP> 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<ICraftingMonitorElement> elements = getElements();
watchers.forEach(player -> RS.INSTANCE.network.sendTo(new MessageCraftingMonitorElements(elements), player));
}
}
@Override