package com.w67clement.mineapi.message;
import com.google.gson.JsonParser;
import com.w67clement.mineapi.enums.PacketType;
import com.w67clement.mineapi.nms.PacketSender;
/**
* Packet for chat message, used by ActionBarMessage and FancyMessage.
*
* @author w67clement
* @version MineAPI v2.2.0 (Event system v2)
*/
public abstract class PacketChat<T> extends PacketSender<T>
{
protected static final JsonParser parser = new JsonParser();
protected String json;
protected byte data;
public PacketChat(T packet)
{
super(packet);
}
/**
* Gets the content text in Json.
*
* @return Text in Json.
*/
public abstract String getContent();
/**
* Gets the data of the message, default is 1. <br>
* The data have <b>2 possible</b> values: <br>
* <ul>
* <li>1: Display content in chat.</li>
* <li>2: Display content in ActionBar.</li>
* </ul>
*
* @return Data
*/
public abstract byte getData();
/**
* Sets the data of the message, default is 1. <br>
* The data have <b>2 possible</b> values: <br>
* <ul>
* <li>1: Display content in chat.</li>
* <li>2: Display content in ActionBar.</li>
* </ul>
* <p>
* <b>If you give too big value, it set to 2.</b> <br>
* <b>If you give too small value, it set to 1.</b> <br>
*
* @param data Data of the message and it is 1 or 2.
*
* @return Instance of working object.
*/
public abstract PacketChat setData(byte data);
/**
* Sets the content of the message.
*
* @param json Content as Json.
*
* @return Json is valid or not.
*/
public abstract boolean setContent(String json);
@Override
public PacketType getPacketType()
{
return PacketType.PACKETPLAYOUT;
}
}