931
收录服务器
1200
注册
94 211
玩家
JSON API
轻松创建和发送JSON消息。
作 者 Voidev
发布时间 2016年4月1日
支持核心 Spigot
原生版本
支持版本 1.8,1.9,1.10,1.11,1.12,1.17
点此下载

✨JsonApi v3.1.0

JsonApi 是一个用于轻松创建和发送 JSON 消息的 API 插件。它支持颜色、粗体/斜体等样式,以及插入和最重要的悬停与点击事件。

⚙️安装

  • 下载最新版本的 JsonApi
  • 将其放置在服务器的 plugins 文件夹中
  • 重启服务器

📜命令

  • /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) 将任何基于颜色代码的消息转换为 JsonMsgallowStyleFallthrough 参数指定样式是否应在文本的每个新“段”重置,其中段由一组连续的颜色代码分隔。

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...)

注意:还有更多方法和技巧可以使用,但是太多了,无法在此处全部列出。请自行尝试!

==> Go to the Wiki Page

==> Go to the Javadoc

使用此库时,请注明作者 ColoredCarrot 以及 Spigot 上的资源链接。

不要将此代码标记为自己的代码。

Original Thread: https://www.spigotmc.org/threads/api-json-api-with-integrated-send-methods.136140/