package info.jbcs.minecraft.vending.network.server; import info.jbcs.minecraft.vending.Vending; 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.common.network.ByteBufUtils; import net.minecraftforge.fml.relauncher.Side; import java.io.IOException; public class MessageWrench extends AbstractMessage.AbstractServerMessage<MessageWrench> { private int x, y, z; private boolean infinite; private String ownerName; @SuppressWarnings("unused") public MessageWrench() { } public MessageWrench(TileEntity tileEntityVendingMachine, boolean infinite, String ownerName) { TileEntityVendingMachine entity = (TileEntityVendingMachine) tileEntityVendingMachine; BlockPos blockPos = entity.getPos(); x = blockPos.getX(); y = blockPos.getY(); z = blockPos.getZ(); this.infinite = infinite; this.ownerName = ownerName; } @Override protected void read(PacketBuffer buffer) throws IOException { x = buffer.readInt(); y = buffer.readInt(); z = buffer.readInt(); infinite = buffer.readBoolean(); ownerName = ByteBufUtils.readUTF8String(buffer); } @Override protected void write(PacketBuffer buffer) throws IOException { buffer.writeInt(x); buffer.writeInt(y); buffer.writeInt(z); buffer.writeBoolean(infinite); ByteBufUtils.writeUTF8String(buffer, ownerName); } @Override public void process(EntityPlayer player, Side side) { if (player.inventory.getCurrentItem().isEmpty() || player.inventory.getCurrentItem().getItem() != Vending.itemWrench) return; TileEntity tileEntity = player.world.getTileEntity(new BlockPos(x, y, z)); if (!(tileEntity instanceof TileEntityVendingMachine)) return; TileEntityVendingMachine entity = (TileEntityVendingMachine) tileEntity; entity.setInfinite(infinite); entity.setOwnerName(ownerName); entity.markBlockForUpdate(new BlockPos(x, y, z)); } }