package ru.nord.common.network; import io.netty.buffer.ByteBuf; import io.netty.channel.ChannelHandlerContext; import net.minecraft.entity.player.EntityPlayer; /** * Класс AbstractPacket. Должен быть родителем всех пакетов, желающих использовать PacketPipeline. * * @author sirgingalot */ public abstract class PacketAbstract { /** * Кодирование пакетные данные в поток ByteBuf. Сложные наборы данных, возможно, потребуют конкретных обработчиков данных(например, ItemStack) (См. {cpw.mods.fml.common.network.ByteBuffUtils}) * * @param ctx контекст канала * @param buffer буфер для кодирования в */ public abstract void encodeInto(ChannelHandlerContext ctx, ByteBuf buffer); /** * Декодировать пакет данных из потока ByteBuf. Сложные наборы данных, возможно, потребуют конкретных обработчиков данных(например, ItemStack) (См. {cpw.mods.fml.common.network.ByteBuffUtils}) * * @param ctx контекст канала * @param buffer буфер для кодирования из */ public abstract void decodeInto(ChannelHandlerContext ctx, ByteBuf buffer); /** * Действия пакета на стороне клиента. Обратите внимание, это происходит после завершения декодирования. * * @param player игрок */ public abstract void handleClientSide(EntityPlayer player); /** * Действия пакета на стороне сервера. Обратите внимание, это происходит после завершения декодирования. * * @param player игрок */ public abstract void handleServerSide(EntityPlayer player); }