package mods.eln.node; import cpw.mods.fml.common.FMLCommonHandler; import cpw.mods.fml.common.eventhandler.SubscribeEvent; import cpw.mods.fml.common.gameevent.TickEvent.Phase; import cpw.mods.fml.common.gameevent.TickEvent.ServerTickEvent; import net.minecraft.entity.player.EntityPlayerMP; import net.minecraft.server.MinecraftServer; public class NodeServer { public NodeServer() { FMLCommonHandler.instance().bus().register(this); } public void init() { // NodeBlockEntity.nodeAddedList.clear(); } public void stop() { // NodeBlockEntity.nodeAddedList.clear(); } public int counter = 0; @SubscribeEvent public void tick(ServerTickEvent event) { if (event.phase != Phase.START) return; MinecraftServer server = FMLCommonHandler.instance().getMinecraftServerInstance(); if (server != null) { for (NodeBase node : NodeManager.instance.getNodeList()) { if (node.getNeedPublish()) { node.publishToAllPlayer(); } } for (Object obj : server.getConfigurationManager().playerEntityList) { EntityPlayerMP player = (EntityPlayerMP) obj; NodeBase openContainerNode = null; INodeContainer container = null; if (player.openContainer != null && player.openContainer instanceof INodeContainer) { container = ((INodeContainer) player.openContainer); openContainerNode = container.getNode(); } for (NodeBase node : NodeManager.instance.getNodeList()) { if (node == openContainerNode) { if ((counter % (1 + container.getRefreshRateDivider())) == 0) node.publishToPlayer(player); } } } counter++; } } }