TechReborn/src/main/java/techreborn/packets/AbstractPacket.java

50 lines
No EOL
1.5 KiB
Java

package techreborn.packets;
import io.netty.buffer.ByteBuf;
import io.netty.channel.ChannelHandlerContext;
import net.minecraft.entity.player.EntityPlayer;
/**
* AbstractPacket class. Should be the parent of all packets wishing to use the
* PacketPipeline.
*
* @author sirgingalot
*/
public abstract class AbstractPacket {
/**
* Encode the packet data into the ByteBuf stream. Complex data sets may
* need specific data handlers (See
*
* @param ctx channel context
* @param buffer the buffer to encode into
* @link{cpw.mods.fml.common.network.ByteBuffUtils )
*/
public abstract void encodeInto(ChannelHandlerContext ctx, ByteBuf buffer);
/**
* Decode the packet data from the ByteBuf stream. Complex data sets may
* need specific data handlers (See
*
* @param ctx channel context
* @param buffer the buffer to decode from
* @link{cpw.mods.fml.common.network.ByteBuffUtils )
*/
public abstract void decodeInto(ChannelHandlerContext ctx, ByteBuf buffer);
/**
* Handle a packet on the client side. Note this occurs after decoding has
* completed.
*
* @param player the player reference
*/
public abstract void handleClientSide(EntityPlayer player);
/**
* Handle a packet on the powerSink side. Note this occurs after decoding has
* completed.
*
* @param player the player reference
*/
public abstract void handleServerSide(EntityPlayer player);
}