Package net.glowstone.net.codec.play.game

Source Code of net.glowstone.net.codec.play.game.ChunkBulkCodec

package net.glowstone.net.codec.play.game;

import com.flowpowered.networking.Codec;
import com.flowpowered.networking.util.ByteBufUtils;
import io.netty.buffer.ByteBuf;
import io.netty.handler.codec.DecoderException;
import net.glowstone.net.message.play.game.ChunkBulkMessage;
import net.glowstone.net.message.play.game.ChunkDataMessage;

import java.io.IOException;
import java.util.List;

public final class ChunkBulkCodec implements Codec<ChunkBulkMessage> {
    @Override
    public ChunkBulkMessage decode(ByteBuf buffer) throws IOException {
        throw new DecoderException("Cannot decode ChunkBulkMessage");
    }

    @Override
    public ByteBuf encode(ByteBuf buf, ChunkBulkMessage message) {
        final List<ChunkDataMessage> entries = message.getEntries();

        buf.writeBoolean(message.isSkyLight());
        ByteBufUtils.writeVarInt(buf, entries.size());
        for (ChunkDataMessage entry : entries) {
            buf.writeInt(entry.getX());
            buf.writeInt(entry.getZ());
            buf.writeShort(entry.getPrimaryMask());
        }
        for (ChunkDataMessage entry : entries) {
            buf.writeBytes(entry.getData());
        }

        return buf;
    }
}
TOP

Related Classes of net.glowstone.net.codec.play.game.ChunkBulkCodec

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.