package net.scapeemulator.game.msg.decoder;
import java.io.IOException;
import net.scapeemulator.game.msg.MessageDecoder;
import net.scapeemulator.game.msg.impl.ChatMessage;
import net.scapeemulator.game.net.game.DataType;
import net.scapeemulator.game.net.game.GameFrame;
import net.scapeemulator.game.net.game.GameFrameReader;
import net.scapeemulator.util.ChatUtils;
public final class ChatMessageDecoder extends MessageDecoder<ChatMessage> {
public ChatMessageDecoder() {
super(237);
}
@Override
public ChatMessage decode(GameFrame frame) throws IOException {
GameFrameReader reader = new GameFrameReader(frame);
int size = reader.getLength() - 2;
int color = (int) reader.getUnsigned(DataType.BYTE);
int effects = (int) reader.getUnsigned(DataType.BYTE);
byte[] bytes = new byte[size];
reader.getBytes(bytes);
String text = ChatUtils.unpack(bytes);
return new ChatMessage(color, effects, text);
}
}