package net.scapeemulator.game.msg.encoder; import io.netty.buffer.ByteBufAllocator; import java.io.IOException; import net.scapeemulator.game.msg.MessageEncoder; import net.scapeemulator.game.msg.impl.ScriptStringMessage; import net.scapeemulator.game.net.game.DataOrder; import net.scapeemulator.game.net.game.DataTransformation; import net.scapeemulator.game.net.game.DataType; import net.scapeemulator.game.net.game.GameFrame; import net.scapeemulator.game.net.game.GameFrameBuilder; public final class ScriptStringMessageEncoder extends MessageEncoder<ScriptStringMessage> { public ScriptStringMessageEncoder() { super(ScriptStringMessage.class); } @Override public GameFrame encode(ByteBufAllocator alloc, ScriptStringMessage message) throws IOException { GameFrameBuilder builder = new GameFrameBuilder(alloc, 123); builder.put(DataType.SHORT, DataOrder.LITTLE, message.getId()); builder.put(DataType.SHORT, DataTransformation.ADD, 0); builder.putString(message.getValue()); return builder.toGameFrame(); /* TODO what is the difference between these two packets? they seem identical GameFrameBuilder builder = new GameFrameBuilder(alloc, 48); builder.put(DataType.SHORT, 0); builder.putString(message.getValue()); builder.put(DataType.SHORT, DataOrder.LITTLE, message.getId()); return builder.toGameFrame(); */ } }