基本信息
我的世界Java版本
1.21.x
1.20.x
1.19.x
1.18.x
1.17.x
1.16.x
1.15.x
1.14.x
1.13.x
平台
Bukkit
运行环境
其他链接
搬运团队
详情信息
许可证 MIT
发布于 a month ago
更新于 14 days ago
一个用于使用 Minecraft 1.13 中引入的命令 UI 的 Bukkit/Spigot API
什么是 CommandAPI?
CommandAPI 为 Minecraft 1.13 更新中实现的新命令 UI 提供了全面支持。
想保持最新状态吗?我们现在有一个 Discord 服务器!
功能简要概述
- 更好的命令 - 防止玩家运行无效命令,使开发者更轻松
- 更好的参数 - 带有内置验证的自动参数解析
- 支持代理命令发送者 - 使用 /execute as...运行命令作为其他实体
- 支持 /execute 命令 - 让你的命令由内置的 /execute 命令执行
- 支持 Minecraft 的函数 - 允许你的命令从 Minecraft 的函数和标签中执行
- 无需 plugin.yml 注册 - 命令不再需要在 plugin.yml 文件中注册
- 无需其他依赖项 - 在项目中使用 CommandAPI 无需导入 Brigadier
- 无追踪 - CommandAPI 不会收集其插件的任何统计信息;你看到的就是你得到的!
参数类型转换
无需像这样在玩家运行命令后检查参数是否为整数:
onCommand(CommandSender sender, Command command, String label, String[] args) {
try {
int i = Integer.parseInt(args[0]);
// 对这个数字做一些事情
catch (NumberFormatException e) {
// 处理这不是一个数字的情况...
}
}
你可以放心,CommandAPI 已经推断出你想要的任何类型,并可以直接跳转到以下代码:
new CommandAPICommand("mycommand")
.withArguments(new IntegerArgument("myint"))
.executes((sender, args) -> {
int i = (int) args.get("myint");
// 对这个数字做一些事情
})
.register();
CommandAPI 提供了超过 40 种不同的参数来满足你的需求!自动转换为附魔、实体类型、位置、物品堆叠、药水效果等!
命令发送者类型检查
再也不必检查你的发送者是否是玩家!CommandAPI 为各种命令发送者提供了自动命令发送者检查:
new CommandAPICommand("mycommand")
.withArguments(arguments)
.executesPlayer((player, args) -> {
player.sendMessage("Hi " + player.getDisplayName());
})
.register();
文档
最新的文档可以在 这里找到。相信我,你以前从未见过这么好的文档。
内置插件转换器
你的插件的命令不能与 /execute 命令一起使用并且不知道如何编写代码?CommandAPI 为你提供了帮助!通过其内置的插件命令转换系统,你可以使任何插件命令与 Minecraft 的 /execute 命令和数据包兼容!
仍然不相信?
以下是它还可以做的其他事情:
- 自动解析具有范围的整数(强制你的命令仅接受范围内的值)
- 处理整数和浮点位置,以及使用 ~ 符号的相对位置
- 解析原始 JSON 并将其直接转换为 BaseComponent[]
- 解析在线玩家,根据在线人员提供建议
- 创建将字符串解析为自定义定义对象的自定义参数
- 对特定参数应用权限 - 你需要权限才能看到建议的参数以及运行它
- 使其他未使用 CommandAPI 编写的插件与 /execute 命令兼容
- 像处理命令块一样处理命令的结果和成功
- 根据用户在命令提示符中已经输入的内容设置上下文感知建议
我还需要说更多吗?