Search in sources :

Example 1 with MessageForgeHandshakeOutReset

use of org.lanternpowered.server.network.forge.message.type.handshake.MessageForgeHandshakeOutReset in project LanternServer by LanternPowered.

the class CodecPlayInOutCustomPayload method encode0.

@Override
protected MessageResult encode0(CodecContext context, Message message) throws CodecException {
    if (message instanceof MessageForgeHandshakeInOutAck) {
        return new MessageResult("FML|HS", context.byteBufAlloc().buffer(2).writeByte((byte) FML_HANDSHAKE_ACK).writeByte((byte) ((ForgeServerHandshakePhase) ((MessageForgeHandshakeInOutAck) message).getPhase()).ordinal()));
    } else if (message instanceof MessageForgeHandshakeInOutHello) {
        return new MessageResult("FML|HS", context.byteBufAlloc().buffer(2).writeByte((byte) FML_HANDSHAKE_SERVER_HELLO).writeByte((byte) FORGE_PROTOCOL));
    } else if (message instanceof MessageForgeHandshakeInOutModList) {
        Map<String, String> entries = ((MessageForgeHandshakeInOutModList) message).getEntries();
        ByteBuffer buf = context.byteBufAlloc().buffer();
        buf.writeByte((byte) FML_HANDSHAKE_MOD_LIST);
        buf.writeVarInt(entries.size());
        for (Map.Entry<String, String> en : entries.entrySet()) {
            buf.writeString(en.getKey());
            buf.writeString(en.getValue());
        }
        return new MessageResult("FML|HS", buf);
    } else if (message instanceof MessageForgeHandshakeOutReset) {
        return new MessageResult("FML|HS", context.byteBufAlloc().buffer(1).writeByte((byte) FML_HANDSHAKE_RESET));
    }
    throw new EncoderException("Unsupported message type: " + message);
}
Also used : MessageForgeHandshakeInOutHello(org.lanternpowered.server.network.forge.message.type.handshake.MessageForgeHandshakeInOutHello) EncoderException(io.netty.handler.codec.EncoderException) MessageForgeHandshakeOutReset(org.lanternpowered.server.network.forge.message.type.handshake.MessageForgeHandshakeOutReset) MessageForgeHandshakeInOutModList(org.lanternpowered.server.network.forge.message.type.handshake.MessageForgeHandshakeInOutModList) ByteBuffer(org.lanternpowered.server.network.buffer.ByteBuffer) Map(java.util.Map) MessageForgeHandshakeInOutAck(org.lanternpowered.server.network.forge.message.type.handshake.MessageForgeHandshakeInOutAck)

Aggregations

EncoderException (io.netty.handler.codec.EncoderException)1 Map (java.util.Map)1 ByteBuffer (org.lanternpowered.server.network.buffer.ByteBuffer)1 MessageForgeHandshakeInOutAck (org.lanternpowered.server.network.forge.message.type.handshake.MessageForgeHandshakeInOutAck)1 MessageForgeHandshakeInOutHello (org.lanternpowered.server.network.forge.message.type.handshake.MessageForgeHandshakeInOutHello)1 MessageForgeHandshakeInOutModList (org.lanternpowered.server.network.forge.message.type.handshake.MessageForgeHandshakeInOutModList)1 MessageForgeHandshakeOutReset (org.lanternpowered.server.network.forge.message.type.handshake.MessageForgeHandshakeOutReset)1