我在discord.js中的某个命令有一点问题



所以我为自己做了一个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' ]

这可能会解决你的问题。

相关内容

最新更新