This repository was archived by the owner on Jun 30, 2025. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 2
注册指令
Smile Yik edited this page Jul 23, 2022
·
1 revision
最后更新于2022年05月19日 | 历史记录
此页面内容对应于LuaInMinecraftBukkit插件的最新版本(及以上版本)(version: 1.4), 历史文档可以插件此页面的历史记录
这一节是来谈谈如何注册一个指令的.
注册指令的方法为:
luaBukkit.commandRegister:registerCommand(arg1, arg2)其中第一个参数(arg1)为要注册的指令, 第二个参数(arg2)是来告诉插件当输入注册的指令后使用参数2对应的函数去处理. 具体输入的值为一个字符串, 格式为<脚本插件ID>.[模块名.]<函数名>, 这个格式需要对应一个具体的函数.
在指令被触发时, 插件将会传送三个值到所对应的函数中作为形参. 这三个值如下表:
| 形参 | 值 | 说明 |
|---|---|---|
| 形参1 | isPlayer | 是否为玩家发出, 这是一个bool类型 |
| 形参2 | sender | 发送指令的实体, 这里可能是玩家也可能是控制台实例对象的引用(文档) |
| 形参3 | args | 玩家发送的指令, 是一个字符串列表, 第一个元素对应的值代表这个脚本所注册的指令 |
例如我有一个lua脚本插件的id叫luacmd1, 他的脚本内容为
commands = {
onCommand = function ()
-- do something....
end
}我们想用里面的commands模块下的onCommand函数去注册一个名为cmd的指令, 首先, 我们先修改onCommand函数, 让他能够接收到插件传来的三个参数
commands = {
onCommand = function (isPlayer, sender, args)
-- do something....
end
}然后将这个函数注册为能够处理指令cmd的函数, 我们先来分析一下, 这个脚本插件的id为luacmd1, onCommand函数在commands模块下, 所以要注册成指令时, 注册方法的第二个参数应该填入luacmd1.commands.onCommand
commands = {
onCommand = function (isPlayer, sender, args)
-- do something....
end
}
luaBukkit.command:registerCommand(
"cmd", "luacmd1.commands.onCommand"
)之后, 你输入的/luap cmd [arg1] ... [argn]指令都会让onCommand处理.
args形参将会赋予 [cmd, arg1, ..., argn] 的字符串列表