-
Notifications
You must be signed in to change notification settings - Fork 0
命令系统
cmd1152 edited this page Aug 12, 2024
·
4 revisions
你可以设置 client.cmdstart 这个字符串来指定一个命令前缀(长度不限,你甚至可以设置为空),这将是调用机器人命令的起始
client.cmdstart = ":!";一般来说本来的 client._COMMAND 是不应该被用户更改的,这个函数储存了默认的命令执行判断,但是你可以修改他来实现更多功能
client._COMMAND 是一个函数,会传入命令名称、命令参数、用户信息、返回数据(给用户)的函数,用户是否是私信`
client._COMMAND = function(cmd, args, info, back, whisper) {
if (this.command[cmd]) {
try {
this.command[cmd].run(args,info,back,whisper);
} catch (e) {
back(`命令执行出错:${e.message}`);
}
}
}back函数支持2个值,一个是要返回的文本,和是否修复>和#漏洞(如果是私信,那么换行保证这2字符正常渲染,如果是公屏,删除开头的 @用户名)
你需要在client.comamnd按上面的格式创建一个obj,比如下面这个简单的help和test命令
client.command = {
help: {
run: function(args, info, back, whisper) {
if (args[0]) {
if (client.command[args[0]]) {
back(`\n### ${args[0]}\n${client.command[args[0]].help}\n用法:\`${client.cmdstart}${args[0]} ${client.command[args[0]].useage}\``, true)
} else {
back("没有这个命令")
}
} else {
let sortedCommands = Object.keys(client.command).sort()
back(`\n### 命令列表\n \`${sortedCommands.join("`, `")}\``, true)
}
},
help: '显示帮助',
useage: '<命令名称>'
},
test: {
run: function(args, info, back, whisper) {
back("默认反馈,不带`>`和`#`修复");
back("带`>`和`#`修复",true);
back(`你是私信调用的:${whisper}\n你的信息:${JSON.stringify(info)}`);
},
help: '测试',
useage: ''
}
}