public void queueInventory(final ICrafting c) { if (Platform.isServer() && c instanceof EntityPlayer && this.monitor != null) { try { PacketMEInventoryUpdate piu = new PacketMEInventoryUpdate(); final IItemList<IAEItemStack> monitorCache = this.monitor.getStorageList(); for (final IAEItemStack send : monitorCache) { try { piu.appendItem(send); } catch (final BufferOverflowException boe) { NetworkHandler.instance.sendTo(piu, (EntityPlayerMP) c); piu = new PacketMEInventoryUpdate(); piu.appendItem(send); } } NetworkHandler.instance.sendTo(piu, (EntityPlayerMP) c); } catch (final IOException e) { AELog.error(e); } } }
@Override public void detectAndSendChanges() { if (Platform.isServer()) { if (this.monitor != this.host.getItemInventory()) { this.isContainerValid = false; } for (final Settings set : this.serverCM.getSettings()) { final Enum<?> sideLocal = this.serverCM.getSetting(set); final Enum<?> sideRemote = this.clientCM.getSetting(set); if (sideLocal != sideRemote) { this.clientCM.putSetting(set, sideLocal); for (final Object crafter : this.crafters) { try { NetworkHandler.instance.sendTo( new PacketValueConfig(set.name(), sideLocal.name()), (EntityPlayerMP) crafter); } catch (final IOException e) { AELog.error(e); } } } } if (!this.items.isEmpty()) { try { final IItemList<IAEItemStack> monitorCache = this.monitor.getStorageList(); final PacketMEInventoryUpdate piu = new PacketMEInventoryUpdate(); for (final IAEItemStack is : this.items) { final IAEItemStack send = monitorCache.findPrecise(is); if (send == null) { is.setStackSize(0); piu.appendItem(is); } else { piu.appendItem(send); } } if (!piu.isEmpty()) { this.items.resetStatus(); for (final Object c : this.crafters) { if (c instanceof EntityPlayer) { NetworkHandler.instance.sendTo(piu, (EntityPlayerMP) c); } } } } catch (final IOException e) { AELog.error(e); } } this.updatePowerStatus(); final boolean oldAccessible = this.canAccessViewCells; this.canAccessViewCells = this.hasAccess(SecurityPermissions.BUILD, false); if (this.canAccessViewCells != oldAccessible) { for (int y = 0; y < 5; y++) { if (this.cellView[y] != null) { this.cellView[y].allowEdit = this.canAccessViewCells; } } } super.detectAndSendChanges(); } }