package net.glowstone.net.codec.play.game; import com.flowpowered.networking.Codec; import com.flowpowered.networking.util.ByteBufUtils; import io.netty.buffer.ByteBuf; import net.glowstone.net.message.play.game.JoinGameMessage; import java.io.IOException; public final class JoinGameCodec implements Codec<JoinGameMessage> { @Override public JoinGameMessage decode(ByteBuf buffer) throws IOException { int id = buffer.readInt(); byte gameMode = buffer.readByte(); byte dimension = buffer.readByte(); byte difficulty = buffer.readByte(); byte maxPlayers = buffer.readByte(); String levelType = ByteBufUtils.readUTF8(buffer); boolean reducedDebug = buffer.readBoolean(); return new JoinGameMessage(id, gameMode, dimension, difficulty, maxPlayers, levelType, reducedDebug); } @Override public ByteBuf encode(ByteBuf buf, JoinGameMessage message) throws IOException { buf.writeInt(message.getId()); buf.writeByte(message.getMode()); buf.writeByte(message.getDimension()); buf.writeByte(message.getDifficulty()); buf.writeByte(message.getMaxPlayers()); ByteBufUtils.writeUTF8(buf, message.getLevelType()); buf.writeBoolean(message.isReducedDebugInfo()); return buf; } }