package com.asteria.net.message.impl; import com.asteria.game.character.Flag; import com.asteria.game.character.player.Player; import com.asteria.net.message.InputMessageListener; import com.asteria.net.message.MessageBuilder; /** * The message sent from the client when the player speaks. * * @author lare96 <http://github.com/lare96> */ public final class ChatMessage implements InputMessageListener { @Override public void handleMessage(Player player, int opcode, int size, MessageBuilder payload) { if (player.isDisabled()) return; int effects = payload.get(false, com.asteria.net.ValueType.S); int color = payload.get(false, com.asteria.net.ValueType.S); int chatLength = (size - 2); byte[] text = payload.getBytesReverse(chatLength, com.asteria.net.ValueType.A); if (effects < 0 || color < 0 || chatLength < 0) return; player.setChatEffects(effects); player.setChatColor(color); player.setChatText(text); player.getFlags().set(Flag.CHAT); } }