BlocklyNukkit WIKI

这里是BN百科

章节导览


命令补全器

适用bn版本

  • 自blocklynukkit 1.2.8.4 版本开始可用
  • 可用于JavaScript、Python、Lua或php

函数原型

manager基对象

函数名 参数列表 返回值 描述
addCommandCompleter String cmd,String id,String completer void 创建命令补全器,将被发送给玩家用作命令提示和tab补全,cmd为要添加给的命令的名称,id为补全器标识符,随意只要不重复即可,completer是补全器内容

参数解读

  • String cmd : 要被添加补全器的命令(你也可以用bn向其他插件的命令添加补全器)
  • String id : 这是你要添加的补全器的id,此id用于区分不同的补全器,所以您可以为一个命令添加很多不同的补全器,默认的[args:text]补全器的id为”default”,您可以将新添加的补全器的id也设为”default”来修改默认补全器
  • String completer : 这是新的补全器的补全规则字符串,用于定义补全提示的内容,bn会自动解析这个字符串生成数据包,无需您手动构建数据

补全规则编写

补全规则是一个字符串,用空格连接可选单元和必选单元组成

可选单元格式

  • 使用默认补全提示:[单元名:@类型]
  • 使用自定义补全提示:[单元名:@类型=提示1;提示2;提示3…….]

必选单元格式

  • 使用默认补全提示:<单元名:@类型>
  • 使用自定义补全提示:<单元名:@类型=提示1;提示2;提示3…….>

单元格式解析

  • 单元名:是每个补全单元的显示名
  • 类型:标记每个补全单元提示的类型,bn会根据类型确认默认补全提示和补全内容
  • 自选提示:用英文分号,即;,连接各个字符串而成,可以用来自定义自动补全的内容

类型列表

类型 功能
target 补充一个目标对象,如玩家,生物
blockpos 补充一个方块坐标,即xyz均为int整数提示,tab会自动补充准星所指方块坐标
pos 补充一个坐标,xyz为float小数提示
int 补充一个整数
float 补充一个小数
string 补充一个字符串,一般用于固定字符串补充
text 补充一个文本,一般用于长的无颜色符号文本
message 补充一条可用颜色符号文本
command 补充一个命令名,bn会自动将该玩家所有可用的命令提示出来
json 补充一个json字符串
filepath 补充一个文件路径
operator 补充一个操作符,bn会自动将所有的js操作符提示出来
sub 补充一个子命令

示例

//pragma JS  
manager.createCommand("testcmd","测试命令","testCall");  
function testCall(sender,args){  
    //TODO: 完成此命令  
}  
manager.addCommandCompleter("testcmd","default","<player:@target> <sentence:@message=BNNB!;blocklynukkit> [color:@text=red;green]");  
#pragma python  
manager.createCommand(u"testcmd",u"测试命令",u"testCall")  
def testCall(sender,args):  
    #TODO: 完成此命令  
manager.addCommandCompleter(u"testcmd",u"default",u"<player:@target> <sentence:@message=BNNB!;blocklynukkit> [color:@text=red;green]")  
--pragma Lua  
manager:createCommand("testcmd","测试命令","testCall")  
function testCall(sender,args)  
    --TODO: 完成此命令  
end  
manager:addCommandCompleter("testcmd","default","<player:@target> <sentence:@message=BNNB!;blocklynukkit> [color:@text=red;green]")  
//pragma php  
$manager->createCommand("testcmd","测试命令","testCall");
function testCall($sender,$args){
    //TODO: 完成此命令  
}
$manager->addCommandCompleter("testcmd","default","<player:@target> <sentence:@message=BNNB!;blocklynukkit> [color:@text=red;green]");

不满意?前往编辑此页面

导航