【问题标题】:Switching a prefix for a command in discord.js在 discord.js 中切换命令的前缀
【发布时间】:2020-03-02 23:29:56
【问题描述】:

第一次在这个网站上发帖,如果我的格式不正确,那就太糟糕了。我一直在尝试更改前缀命令,但我不知道如何检查下一条消息内容以查找要使用的变量而不是旧前缀。

msg.reply("Which prefix do you want?");
        const collector = new Discord.MessageCollector(msg.channel, m => m.author.id === msg.author.id, { time: 5000 });
        console.log(collector)
        collector.on('collect', msg => {
            newprefix=collector.content();
          msg.reply('Prefix succesfully changed!');
        });

【问题讨论】:

    标签: discord.js


    【解决方案1】:

    我强烈建议使用 awaitMessages 方法。首先,您需要定义一个过滤器,一个委托函数,如果反应是您想要的,则返回 true。通常在命令/响应设置中,您需要一个过滤器来指示原始命令调用程序已回复。

    const filter = (reaction, user) => {
        return user.id === msg.author.id;
    };
    

    然后您可以为您的 awaitMessages 定义选项。 (在 awaitMessages 方法中执行此操作很常见,如果您更清楚,那很好)

    const options = { 
        max: 1, 
        time: 30000,
        errors: ['time'] 
    }
    

    上面的例子接受1条消息,如果在30秒内给出,否则抛出异常。

    终于可以开始了……

    msg.reply("Which prefix do you want?").then(() => {
        msg.channel.awaitMessages(filter, options)
            .then(collected => {
                newprefix = collected.first();
                // Record newprefix to a persistent config here
                msg.reply('Prefix successfully changed!');
            })
            .catch(collected => {
                msg.reply("You didn't respond fast enough.");
            });
    }
    

    请记住,这是异步发生的,因此如果您需要在某处编写 newprefix,例如 JSON 配置文件,您应该在 .then 的范围内进行操作

    【讨论】:

      猜你喜欢
      • 2018-01-03
      • 2021-09-10
      • 1970-01-01
      • 2018-05-06
      • 1970-01-01
      • 2020-03-27
      • 2020-12-26
      • 2020-08-26
      • 1970-01-01
      相关资源
      最近更新 更多