Search in sources :

Example 1 with MessagePlayOutWorldBorder

use of org.lanternpowered.server.network.vanilla.message.type.play.MessagePlayOutWorldBorder 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

EncoderException (io.netty.handler.codec.EncoderException)1 ByteBuffer (org.lanternpowered.server.network.buffer.ByteBuffer)1 MessagePlayOutWorldBorder (org.lanternpowered.server.network.vanilla.message.type.play.MessagePlayOutWorldBorder)1