【问题标题】:Bot mention as a prefix in Discord.jsBot 在 Discord.js 中作为前缀提及
【发布时间】:2018-11-14 19:38:25
【问题描述】:

我的前缀只有在我不给整个命令添加空格的情况下才有效,例如:

{
    "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 说这个时,我怎样才能让它工作?

【问题讨论】:

  • 如果给前缀加一个空格呢?所以像这样:"prefix": "&lt;@453463055741747200&gt; "
  • 不幸的是,这不起作用
  • 您能告诉我们您是如何创建参数的吗?也许编辑问题并包含另一个带有参数函数的代码部分

标签: discord.js


【解决方案1】:

也许这行不通,因为我不使用命令处理程序,所以我有不同的代码风格,但你可以尝试我使用的方法来允许我的机器人与多个全局前缀一起使用:

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;
}

所以消息只需要以所需的前缀开头。另外,我添加了两个提及前缀,因为不和谐是愚蠢的,并且有两种类型的用户提及:昵称提及和正常提及。因此,在您的代码中,如果机器人有昵称,它将无法工作。这就是我添加 的原因。希望对你有帮助

【讨论】:

    猜你喜欢
    • 2020-11-25
    • 1970-01-01
    • 2018-01-03
    • 2021-09-26
    • 1970-01-01
    • 2018-11-17
    • 1970-01-01
    • 2020-12-26
    • 1970-01-01
    相关资源
    最近更新 更多