只有在我不向整个命令添加空格时,我的前缀才有效,例如:
{
"token": "",
"prefix": "<@453463055741747200>"
}
const Discord = require("discord.js");
module.exports.run = async (bot, message, args) => {
let something = args.join(" ");
message.delete().catch();
message.channel.send(something);
}
module.exports.help = {
name: "say"
}
假设我的机器人名称是MyBot
,上面的代码只适用于@MyBot
这样说,当命令为@MyBot
时,我怎么能让它工作?
答案 0 :(得分:0)
也许这行不通,因为我没有使用命令处理程序,所以我使用了不同的代码样式,但是您可以尝试使用我的机器人允许其使用多个全局前缀的方法:
var prefixes = require('./prefixes.json')
//in your case can only be var prefixes = ["<@453463055741747200>", "<@!453463055741747200>"]
let prefix = false;
for (const thisPrefix of prefixes) {
if (message.content.toLowerCase().startsWith(thisPrefix)) prefix = thisPrefix;
}
因此消息只需要以所需的前缀开头。另外,我添加了两个提及前缀,因为不和谐是愚蠢的,并且有两种类型的用户提及:昵称提及和普通提及。因此,在您的代码中,如果机器人有缺口,它将无法正常工作。因此,我还添加了 <@!453463055741747200> 。希望这对您有帮助