Java tutorial
/** * This work is licensed under the Creative Commons * Attribution-ShareAlike 3.0 Unported License. To view a copy of this * license, visit http://creativecommons.org/licenses/by-sa/3.0/. */ package nxminetilities.network; import java.io.IOException; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; import net.minecraft.nbt.CompressedStreamTools; import com.google.common.io.ByteArrayDataInput; import com.google.common.io.ByteArrayDataOutput; import cpw.mods.fml.relauncher.Side; public class MultilightToolPacket extends MinetilitiesPacket { private ItemStack is; public MultilightToolPacket(ItemStack itemStack) { is = itemStack; } public MultilightToolPacket() { } @Override public void write(ByteArrayDataOutput out) { out.writeShort(is.itemID); out.writeByte(is.stackSize); out.writeShort(is.getItemDamage()); try { byte[] abyte; abyte = CompressedStreamTools.compress(is.stackTagCompound); out.writeShort((short) abyte.length); out.write(abyte); } catch (IOException e) { e.printStackTrace(); } } @Override public void read(ByteArrayDataInput in) throws ProtocolException { is = new ItemStack(in.readShort(), in.readByte(), in.readShort()); try { byte[] abyte = new byte[in.readShort()]; in.readFully(abyte); is.stackTagCompound = CompressedStreamTools.decompress(abyte); } catch (IOException e) { e.printStackTrace(); } } @Override public void execute(EntityPlayer player, Side side) throws ProtocolException { ItemStack isPlayer = player.inventory.getCurrentItem(); isPlayer.stackTagCompound = is.stackTagCompound; } }