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; } }