package net.scapeemulator.game.msg.encoder;
import io.netty.buffer.ByteBufAllocator;
import net.scapeemulator.game.msg.MessageEncoder;
import net.scapeemulator.game.msg.impl.PrivateChatReceivedMessage;
import net.scapeemulator.game.net.game.DataType;
import net.scapeemulator.game.net.game.GameFrame;
import net.scapeemulator.game.net.game.GameFrame.Type;
import net.scapeemulator.game.net.game.GameFrameBuilder;
public final class PrivateChatReceivedMessageEncoder extends MessageEncoder<PrivateChatReceivedMessage> {
public PrivateChatReceivedMessageEncoder() {
super(PrivateChatReceivedMessage.class);
}
@Override
public GameFrame encode(ByteBufAllocator alloc, PrivateChatReceivedMessage message) {
GameFrameBuilder builder = new GameFrameBuilder(alloc, 0, Type.VARIABLE_BYTE);
builder.put(DataType.LONG, message.getName());
builder.put(DataType.SHORT, 0);
int id = message.getMessageCounter();
builder.putBytes(new byte[] { (byte) ((id << 16) & 0xFF), (byte) ((id << 8) & 0xFF), (byte) (id & 0xFF) });
builder.put(DataType.BYTE, message.getRights());
builder.putBytes(message.getPacked());
return builder.toGameFrame();
}
}