package crazypants.enderio.conduit.gui; import cpw.mods.fml.common.network.simpleimpl.IMessage; import cpw.mods.fml.common.network.simpleimpl.IMessageHandler; import cpw.mods.fml.common.network.simpleimpl.MessageContext; import io.netty.buffer.ByteBuf; import net.minecraft.entity.player.EntityPlayerMP; public class PacketSlotVisibility implements IMessage, IMessageHandler<PacketSlotVisibility, IMessage> { private boolean inputVisible; private boolean outputVisible; public PacketSlotVisibility() { } public PacketSlotVisibility(boolean inputVisible, boolean outputVisible) { this.inputVisible = inputVisible; this.outputVisible = outputVisible; } @Override public void fromBytes(ByteBuf bb) { int value = bb.readUnsignedByte(); inputVisible = (value & 1) != 0; outputVisible = (value & 2) != 0; } @Override public void toBytes(ByteBuf bb) { int value = (inputVisible ? 1 : 0) | (outputVisible ? 2 : 0); bb.writeByte(value); } @Override public IMessage onMessage(PacketSlotVisibility message, MessageContext ctx) { EntityPlayerMP player = ctx.getServerHandler().playerEntity; if(player.openContainer instanceof ExternalConnectionContainer) { ExternalConnectionContainer ecc = (ExternalConnectionContainer) player.openContainer; ecc.setInoutSlotsVisible(message.inputVisible, message.outputVisible); } return null; } }