Package pneumaticCraft.common.network

Source Code of pneumaticCraft.common.network.PacketSendNBTPacket

package pneumaticCraft.common.network;

import io.netty.buffer.ByteBuf;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.network.PacketBuffer;
import net.minecraft.tileentity.TileEntity;
import pneumaticCraft.client.render.pneumaticArmor.blockTracker.BlockTrackEntryInventory;
import pneumaticCraft.lib.Log;

public class PacketSendNBTPacket extends LocationIntPacket<PacketSendNBTPacket>{

    private NBTTagCompound tag;

    public PacketSendNBTPacket(){}

    public PacketSendNBTPacket(TileEntity te){
        super(te.xCoord, te.yCoord, te.zCoord);
        tag = new NBTTagCompound();
        te.writeToNBT(tag);
    }

    @Override
    public void toBytes(ByteBuf buffer){
        super.toBytes(buffer);
        try {
            new PacketBuffer(buffer).writeNBTTagCompoundToBuffer(tag);
        } catch(Exception e) {
            Log.error("An exception occured when trying to encode a Send NBT Packet.");
            e.printStackTrace();
        }
    }

    @Override
    public void fromBytes(ByteBuf buffer){
        super.fromBytes(buffer);
        try {
            tag = new PacketBuffer(buffer).readNBTTagCompoundFromBuffer();
        } catch(Exception e) {
            Log.error("An exception occured when trying to decode a Send NBT Packet.");
            e.printStackTrace();
        }
    }

    @Override
    public void handleClientSide(PacketSendNBTPacket message, EntityPlayer player){
        TileEntity te = player.worldObj.getTileEntity(message.x, message.y, message.z);
        if(te != null) {
            try {
                te.readFromNBT(message.tag);
            } catch(Throwable e) {
                BlockTrackEntryInventory.addTileEntityToBlackList(te, e);
            }
        }
    }

    @Override
    public void handleServerSide(PacketSendNBTPacket message, EntityPlayer player){}

}
TOP

Related Classes of pneumaticCraft.common.network.PacketSendNBTPacket

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.