package cn.citycraft.TellRaw.manual; import org.bukkit.Achievement; import org.bukkit.Bukkit; import org.bukkit.Material; import org.bukkit.Statistic; import org.bukkit.command.CommandSender; import org.bukkit.entity.EntityType; import org.bukkit.entity.Player; import org.bukkit.inventory.ItemStack; import cn.citycraft.TellRaw.FancyMessage; import cn.citycraft.TellRaw.common.TextualComponent; /** * Represents a formattable message. Such messages can use elements such as * colors, formatting codes, hover and click data, and other features provided * by the vanilla Minecraft JSON message * formatter. * This class allows plugins to emulate the functionality of the vanilla * Minecraft tellraw * command. *

* This class follows the builder pattern, allowing for method chaining. It is * set up such that invocations of property-setting methods will affect the * current editing component, and a call to {@link #then()} or * {@link #then(Object)} will append a new editing component to the end of the * message, optionally initializing it with text. Further property-setting * method calls will affect that editing component. *

*/ public class FancyMessageManual extends FancyMessage { /** * 新建手动序列化类 */ public FancyMessageManual() { this(""); } /** * 新建手动序列化类 * * @param firstPartText * 第一个文本串 */ public FancyMessageManual(final String firstPartText) { super(TextualComponent.rawText(firstPartText)); } @Override public FancyMessage achievementTooltip(final Achievement which) { throw new UnsupportedOperationException("暂时不支持当前操作."); // To change body of generated methods, choose Tools | Templates. } @Override public FancyMessage itemTooltip(final ItemStack itemStack) { this.itemTooltip(new GItemStack(itemStack).toString()); return this; } @Override public void send(final CommandSender sender, final String jsonString) { if (sender instanceof Player) { Bukkit.dispatchCommand(Bukkit.getConsoleSender(), "tellraw " + sender.getName() + " " + jsonString); } else { sender.sendMessage(toOldMessageFormat()); } } @Override public FancyMessage statisticTooltip(final Statistic which) { throw new UnsupportedOperationException("暂时不支持当前操作."); } @Override public FancyMessage statisticTooltip(final Statistic which, final EntityType entity) { throw new UnsupportedOperationException("暂时不支持当前操作."); } @Override public FancyMessage statisticTooltip(final Statistic which, final Material item) { throw new UnsupportedOperationException("暂时不支持当前操作."); } }