package net.glowstone.net.codec.play.player; import com.flowpowered.networking.Codec; import io.netty.buffer.ByteBuf; import net.glowstone.net.message.play.player.SteerVehicleMessage; import java.io.IOException; public final class SteerVehicleCodec implements Codec<SteerVehicleMessage> { @Override public SteerVehicleMessage decode(ByteBuf buf) throws IOException { float sideways = buf.readFloat(); float forward = buf.readFloat(); int flags = buf.readUnsignedByte(); boolean jump = (flags & 0x1) != 0; boolean unmount = (flags & 0x2) != 0; return new SteerVehicleMessage(sideways, forward, jump, unmount); } @Override public ByteBuf encode(ByteBuf buf, SteerVehicleMessage message) throws IOException { buf.writeFloat(message.getSideways()); buf.writeFloat(message.getForward()); buf.writeByte((message.isJump() ? 1 : 0) | (message.isUnmount() ? 2 : 0)); return buf; } }