package net.scapeemulator.game.update;
import java.util.Arrays;
import net.scapeemulator.game.model.player.Player;
import net.scapeemulator.game.msg.impl.ChatMessage;
import net.scapeemulator.game.msg.impl.PlayerUpdateMessage;
import net.scapeemulator.game.net.game.DataOrder;
import net.scapeemulator.game.net.game.DataType;
import net.scapeemulator.game.net.game.GameFrameBuilder;
import net.scapeemulator.util.ChatUtils;
public final class ChatPlayerBlock extends PlayerBlock {
private final ChatMessage chatMessage;
private final int rights;
public ChatPlayerBlock(Player player) {
super(0x80);
this.chatMessage = player.getChatMessage();
this.rights = player.getRights();
}
@Override
public void encode(PlayerUpdateMessage message, GameFrameBuilder builder) {
byte[] bytes = new byte[256];
int size = ChatUtils.pack(chatMessage.getText(), bytes);
builder.put(DataType.SHORT, DataOrder.LITTLE, (chatMessage.getColor() << 8) | chatMessage.getEffects());
builder.put(DataType.BYTE, rights);
builder.put(DataType.BYTE, size);
builder.putBytesReverse(Arrays.copyOf(bytes, size));
}
}