nxminetilities.network.MultilightToolPacket.java Source code

Java tutorial

Introduction

Here is the source code for nxminetilities.network.MultilightToolPacket.java

Source

/**
 * 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;
    }

}