Search in sources :

Example 66 with ByteBuffer

use of org.lanternpowered.server.network.buffer.ByteBuffer in project LanternServer by LanternPowered.

the class CodecPlayOutTabComplete method encode.

@Override
public ByteBuffer encode(CodecContext context, MessagePlayOutTabComplete message) throws CodecException {
    final ByteBuffer buf = context.byteBufAlloc().buffer();
    final List<String> matches = message.getMatches();
    buf.writeVarInt(matches.size());
    matches.forEach(buf::writeString);
    return buf;
}
Also used : ByteBuffer(org.lanternpowered.server.network.buffer.ByteBuffer)

Example 67 with ByteBuffer

use of org.lanternpowered.server.network.buffer.ByteBuffer in project LanternServer by LanternPowered.

the class CodecPlayOutTabListHeaderAndFooter method encode.

@Override
public ByteBuffer encode(CodecContext context, MessagePlayOutTabListHeaderAndFooter message) throws CodecException {
    ByteBuffer buf = context.byteBufAlloc().buffer();
    Text header = message.getHeader();
    Text footer = message.getFooter();
    if (header != null) {
        buf.write(Types.TEXT, header);
    } else {
        buf.writeString(EMPTY_TEXT);
    }
    if (footer != null) {
        buf.write(Types.TEXT, footer);
    } else {
        buf.writeString(EMPTY_TEXT);
    }
    return buf;
}
Also used : Text(org.spongepowered.api.text.Text) ByteBuffer(org.lanternpowered.server.network.buffer.ByteBuffer)

Example 68 with ByteBuffer

use of org.lanternpowered.server.network.buffer.ByteBuffer in project LanternServer by LanternPowered.

the class CodecPlayOutUpdateTileEntity method encode.

@Override
public ByteBuffer encode(CodecContext context, MessagePlayOutUpdateTileEntity message) throws CodecException {
    ByteBuffer buf = context.byteBufAlloc().buffer();
    buf.write(Types.VECTOR_3_I, message.getPosition());
    buf.writeByte((byte) message.getTileType());
    buf.writeDataView(message.getTileData());
    return buf;
}
Also used : ByteBuffer(org.lanternpowered.server.network.buffer.ByteBuffer)

Example 69 with ByteBuffer

use of org.lanternpowered.server.network.buffer.ByteBuffer in project LanternServer by LanternPowered.

the class CodecPlayOutWindowItems method encode.

@Override
public ByteBuffer encode(CodecContext context, MessagePlayOutWindowItems message) throws CodecException {
    ByteBuffer buf = context.byteBufAlloc().buffer();
    buf.writeByte((byte) message.getWindowId());
    ItemStack[] items = message.getItems();
    buf.writeShort((short) items.length);
    for (ItemStack item : items) {
        buf.write(Types.ITEM_STACK, item);
    }
    return buf;
}
Also used : ItemStack(org.spongepowered.api.item.inventory.ItemStack) ByteBuffer(org.lanternpowered.server.network.buffer.ByteBuffer)

Example 70 with ByteBuffer

use of org.lanternpowered.server.network.buffer.ByteBuffer in project LanternServer by LanternPowered.

the class CodecPlayOutWorldBorder method encode.

@Override
public ByteBuffer encode(CodecContext context, MessagePlayOutWorldBorder message) throws CodecException {
    ByteBuffer buf = context.byteBufAlloc().buffer();
    if (message instanceof MessagePlayOutWorldBorder.Initialize) {
        MessagePlayOutWorldBorder.Initialize message1 = (MessagePlayOutWorldBorder.Initialize) message;
        buf.writeVarInt(3);
        buf.writeDouble(message1.getCenterX());
        buf.writeDouble(message1.getCenterZ());
        buf.writeDouble(message1.getOldDiameter());
        buf.writeDouble(message1.getNewDiameter());
        buf.writeVarLong(message1.getLerpTime());
        buf.writeVarInt(message1.getWorldSize());
        buf.writeVarInt(message1.getWarningTime());
        buf.writeVarInt(message1.getWarningDistance());
    } else if (message instanceof MessagePlayOutWorldBorder.UpdateCenter) {
        MessagePlayOutWorldBorder.UpdateCenter message1 = (MessagePlayOutWorldBorder.UpdateCenter) message;
        buf.writeVarInt(2);
        buf.writeDouble(message1.getX());
        buf.writeDouble(message1.getZ());
    } else if (message instanceof MessagePlayOutWorldBorder.UpdateLerpedDiameter) {
        MessagePlayOutWorldBorder.UpdateLerpedDiameter message1 = (MessagePlayOutWorldBorder.UpdateLerpedDiameter) message;
        buf.writeVarInt(1);
        buf.writeDouble(message1.getOldDiameter());
        buf.writeDouble(message1.getNewDiameter());
        buf.writeVarLong(message1.getLerpTime());
    } else if (message instanceof MessagePlayOutWorldBorder.UpdateDiameter) {
        buf.writeVarInt(0);
        buf.writeDouble(((MessagePlayOutWorldBorder.UpdateDiameter) message).getDiameter());
    } else if (message instanceof MessagePlayOutWorldBorder.UpdateWarningDistance) {
        buf.writeVarInt(5);
        buf.writeVarInt(((MessagePlayOutWorldBorder.UpdateWarningDistance) message).getDistance());
    } else if (message instanceof MessagePlayOutWorldBorder.UpdateWarningTime) {
        buf.writeVarInt(4);
        buf.writeVarInt(((MessagePlayOutWorldBorder.UpdateWarningTime) message).getTime());
    } else {
        throw new EncoderException("Unsupported message type: " + message.getClass().getName());
    }
    return buf;
}
Also used : MessagePlayOutWorldBorder(org.lanternpowered.server.network.vanilla.message.type.play.MessagePlayOutWorldBorder) ByteBuffer(org.lanternpowered.server.network.buffer.ByteBuffer) EncoderException(io.netty.handler.codec.EncoderException)

Aggregations

ByteBuffer (org.lanternpowered.server.network.buffer.ByteBuffer)75 EncoderException (io.netty.handler.codec.EncoderException)9 Vector3d (com.flowpowered.math.vector.Vector3d)7 Message (org.lanternpowered.server.network.message.Message)5 Map (java.util.Map)4 MessagePlayInOutChannelPayload (org.lanternpowered.server.network.vanilla.message.type.play.MessagePlayInOutChannelPayload)4 AbstractParameterList (org.lanternpowered.server.network.entity.parameter.AbstractParameterList)3 NullMessage (org.lanternpowered.server.network.message.NullMessage)3 ItemStack (org.spongepowered.api.item.inventory.ItemStack)3 Vector3i (com.flowpowered.math.vector.Vector3i)2 CodecException (io.netty.handler.codec.CodecException)2 LanternPotionEffectType (org.lanternpowered.server.effect.potion.LanternPotionEffectType)2 LanternPlayer (org.lanternpowered.server.entity.living.player.LanternPlayer)2 NetworkSession (org.lanternpowered.server.network.NetworkSession)2 LanternByteBuffer (org.lanternpowered.server.network.buffer.LanternByteBuffer)2 BulkMessage (org.lanternpowered.server.network.message.BulkMessage)2 CodecRegistration (org.lanternpowered.server.network.message.CodecRegistration)2 HandlerMessage (org.lanternpowered.server.network.message.HandlerMessage)2 Codec (org.lanternpowered.server.network.message.codec.Codec)2 RawItemStack (org.lanternpowered.server.network.objects.RawItemStack)2