Package mods.railcraft.common.util.network

Source Code of mods.railcraft.common.util.network.RailcraftPacket

/*
* Copyright (c) CovertJaguar, 2014 http://railcraft.info
*
* This code is the property of CovertJaguar
* and may only be used with explicit written
* permission unless otherwise specified on the
* license page at http://railcraft.info/wiki/info:license.
*/
package mods.railcraft.common.util.network;

import cpw.mods.fml.common.network.internal.FMLProxyPacket;
import io.netty.buffer.Unpooled;
import java.io.ByteArrayOutputStream;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;

public abstract class RailcraftPacket {

    public final static String CHANNEL_NAME = "RC";

    public enum PacketType {

        TILE_ENTITY,
        GUI_RETURN,
        TILE_EXTRA_DATA,
        TILE_REQUEST,
        GUI_INTEGER,
        GUI_STRING,
        GUI_WIDGET,
        EFFECT,
        CONTROLLER_REQUEST, CONTROLLER_UPDATE,
        RECEIVER_REQUEST, RECEIVER_UPDATE,
        ITEM_NBT,
        KEY_PRESS,
        GOLDEN_TICKET_GUI,
    }

    public FMLProxyPacket getPacket() {
        ByteArrayOutputStream bytes = new ByteArrayOutputStream();
        DataOutputStream data = new DataOutputStream(bytes);
        try {
            data.writeByte(getID());
            writeData(data);
        } catch (IOException e) {
            e.printStackTrace();
        }
        return new FMLProxyPacket(Unpooled.wrappedBuffer(bytes.toByteArray()), CHANNEL_NAME);
    }

    public abstract void writeData(DataOutputStream data) throws IOException;

    public abstract void readData(DataInputStream data) throws IOException;

    public abstract int getID();

    @Override
    public String toString() {
        return getClass().getSimpleName();
    }

}
TOP

Related Classes of mods.railcraft.common.util.network.RailcraftPacket

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.