JSON API | |
---|---|
|
轻松创建和发送JSON消息。 |
作 者 | Voidev |
发布时间 | 2016年4月1日 |
支持核心 | Spigot | 原生版本 |
支持版本 | 1.8,1.9,1.10,1.11,1.12,1.17 |
插件详细介绍
JsonApi 是一个用于轻松创建和发送 JSON 消息的 API 插件。它支持颜色、粗体/斜体等样式,以及插入和最重要的悬停与点击事件。
/jsonapi
- jsonapi.command.jsonapi
- 显示版本信息更多详细信息,请参考 Javadocs。
JSON 消息的基础类是 JsonMsg
。使用适当的文本和颜色构造它:
JsonMsg msg = new JsonMsg("Hello, ", JsonColor.AQUA);
可以使用 JsonColor
枚举指定颜色。将另一半文本设置为另一种颜色和斜体:
JsonMsg msg2 = new JsonMsg("world!", ChatColor.RED, ChatColor.ITALIC /*, ChatColor.BOLD, etc.*/);
要将另一个 JsonMsg
添加到现有的 JsonMsg
,请使用 JsonMsg#append(JsonMsg)
或 JsonMsg#append(/* arguments from any constructor are valid */)
:
msg.append(msg2);
可以简化为:
msg.append("world!", ChatColor.RED, ChatColor.ITALIC);
可以使用构造函数 JsonMsg(String text, boolean allowStyleFallthrough)
将任何基于颜色代码的消息转换为 JsonMsg
。 allowStyleFallthrough
参数指定样式是否应在文本的每个新“段”重置,其中段由一组连续的颜色代码分隔。
JsonMsg msg = new JsonMsg("§aHello, §o§lworld!", true);
// §a (绿色) 延续到 "§o§lworld!",
// 因为它本身没有指定颜色,并且 allowStyleFallthrough 为 true
要将 JsonMsg
转换回基于颜色代码的消息,请使用方法 JsonMsg.toConsoleMessage(boolean insertResetCodes)
。 insertResetCodes
参数指定消息和每个额外的消息是否应以重置代码 (§r) 作为前缀。
String codeBased = msg.toConsoleMessage(true);
// codeBased 现在是 "§r§r§aHello, §r§a§l§oworld!"
更改 JsonMsg
的颜色和样式也很简单:
msg.color(JsonColor.GREEN); // 更改颜色
msg.underlined(true); // 给文本添加下划线
msg.style(ChatColor.GREEN, ChatColor.UNDERLINE); // 设置文本样式
可以使用相同的方法(除了 #style(ChatColor)
)检索相应的值,而无需参数。所有原本返回 void 的方法都返回 JsonMsg
对象本身,因此可以将它们链接在一起:
msg.color(JsonColor.GREEN).underlined(true);
要在玩家将鼠标悬停在消息上时显示文本,请使用以下任何一种方法:
msg.hoverEvent(JsonHoverEvent.showText(msg2));
msg.hoverEvent(JsonHoverEvent.showText("Hey there!", JsonColor.GRAY));
msg.hoverEvent(JsonHoverEvent.showText("Hey there!", ChatColor.GRAY, ChatColor.BOLD));
还有更多用于显示物品、成就等的方法,还有 JsonClickEvent
类。
msg.send(player1, player2 /* , player3, etc. */);
还可以使用 JsonMsg#send(Iterable<Player>)
和 JsonMsg#sendTitle(int, int, int, Player...)
。
注意:还有更多方法和技巧可以使用,但是太多了,无法在此处全部列出。请自行尝试!
使用此库时,请注明作者 ColoredCarrot 以及 Spigot 上的资源链接。
不要将此代码标记为自己的代码。
Original Thread: https://www.spigotmc.org/threads/api-json-api-with-integrated-send-methods.136140/