Cat_Anchor 发表于 2025-3-28 06:46:24

基岩版自定义命令原生支持!

本帖最后由 Cat_Anchor 于 2025-3-28 06:47 编辑

现在可以通过 SAPI 自定义新的命令了!

---

![](https://pic1.imgdb.cn/item/67e5d1bd0ba3d5a1d7e56dad.jpg)

通过 SAPI 自定义的命令与原版命令大致相同,我们需要定义命令的名称(必须带命名空间)、描述(出现在命令右侧的文本)、权限等级和语法。

语法又分为必需语法和可选语法,分别对应命令语法模式里的 <参数> 和 \[参数\]。每个语法需要指定它是什么类型(字符串、浮点数、坐标值、实体选择器、玩家选择器等等),还需要指定名称,这个名称会在语法模式中出现:<名称: 类型>。

![](https://pic1.imgdb.cn/item/67e5d1bd0ba3d5a1d7e56dac.jpg)

最后还需要指定命令的逻辑,这个需要传入一个函数来实现。我们发送命令,系统解析成功后,会将我们在命令中输入的参数作为参数,调用我们定义的函数。

目前来看,命令的错误提示是编写 SAPI 时自带的错误提示,就是 Error 里的那个。如果命令对应的逻辑函数返回 {status: 0}(表示执行失败),却没有错误,就会在聊天栏产生一个空行。

这个功能也有很多限制,比如只能创建一条语法。不过有这样一个功能总是好的,而且他们还说之后会加入更多接口。

至于万象添补里的自定义命令,我决定把它拆分,简单的如 `m` `d` `b` 这样的单字母命令,本来就是为了简短起见,加上命名空间 `complementary:` 就太长了,所以保留之前的形式。复杂的如 `liftpyramid`,我会重新设计,将它们用他们提供的接口重新实现一次。

现在我已经做好了 `complementary:config` 命令,接下来就是等待加入更多接口,去实现其他更复杂的功能了。

---

还有一件小事,自定义组件的传参功能可能快加入了,这样会方便很多,但同时我估计还得重写现有的自定义组件。

已注销_NBi0H0 发表于 2025-4-3 10:41:01

能否像这样一样?
give me 64 diamonds(效果:给我一组钻石)

Sakarwei 发表于 2025-4-3 13:32:59

为爱发声的少年 发表于 2025-4-3 10:41
能否像这样一样?
give me 64 diamonds(效果:给我一组钻石)

原版有give指令,SAPI应该也改不动,把give换掉或许有希望
页: [1]
查看完整版本: 基岩版自定义命令原生支持!