所以我为自己做了一个bot来做事情,我试着做了一个kill命令
if (CMD_NAME == "kill") {
let target = message.mentions.members.first()
message.reply(`${target} is die`)
}
,我得出的结论是,机器人不知道什么是message.mentions.members.first()
一般,我怎么解决这个问题?如果我需要显示更多的代码,告诉我
编辑:我如何在前缀中编码:
if (message.author.bot) return;
if (message.content.startsWith(PREFIX)) {
const [CMD_NAME, ...args] = message.content
.trim()
.substring(PREFIX.length)
.split (//s+/)```
根据你的问题下面的评论,我认为你的问题可能在其他地方。
const PREFIX = "!"
let str = "!a b c"
const [CMD_NAME, ...args] = str.trim().substring(PREFIX.length).split(//s+/)
console.log(CMD_NAME)
console.log(args)
输出:
a b c
[]
所以看起来你的代码把整个msg作为"命令名"这可能会导致名字检查失败,这就是为什么什么都没发生。将分割正则表达式更改为/s+/
以正确检测空白,将输出更改为:
a
[ 'b', 'c' ]
这可能会解决你的问题。