package info.jbcs.minecraft.vending.network.server; import info.jbcs.minecraft.vending.network.AbstractMessage; import info.jbcs.minecraft.vending.tileentity.TileEntityVendingMachine; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.network.PacketBuffer; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.math.BlockPos; import net.minecraftforge.fml.relauncher.Side; import java.io.IOException; public class MessageSetLock extends AbstractMessage.AbstractServerMessage<MessageSetLock> { private int x, y, z; private boolean locked; @SuppressWarnings("unused") public MessageSetLock() { } public MessageSetLock(BlockPos pos, Boolean locked) { x = pos.getX(); y = pos.getY(); z = pos.getZ(); this.locked = locked; } @Override protected void read(PacketBuffer buffer) throws IOException { x = buffer.readInt(); y = buffer.readInt(); z = buffer.readInt(); locked = buffer.readBoolean(); } @Override protected void write(PacketBuffer buffer) throws IOException { buffer.writeInt(x); buffer.writeInt(y); buffer.writeInt(z); buffer.writeBoolean(locked); } @Override public void process(EntityPlayer player, Side side) { TileEntity tileEntity = player.world.getTileEntity(new BlockPos(x, y, z)); if (!(tileEntity instanceof TileEntityVendingMachine)) return; ((TileEntityVendingMachine) tileEntity).setOpen(!locked); ((TileEntityVendingMachine) tileEntity).markBlockForUpdate(new BlockPos(x, y, z)); } }