Discord.js-awaitMessages中的条件

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Discord.js-awaitMessages中的条件相关的知识,希望对你有一定的参考价值。

我正在为不和谐的bot创建一个awaitMessages,以便在bot的虚拟商店中添加商品。在此awaitMessages中,我想指出文章的价格。所以答案必须是数字,但是问题是当我写的不是数字的答案时,awaitMessages被取消。我想当我发送的不是数字的消息时,它发送一条错误消息,但awaitMessages并没有取消,我再次写了一个响应。

const filter = m => m.author.id === message.author.id;

message.channel.send('Price').then(msg => 
                message.channel.awaitMessages(filter,  
                    max: 1, 
                    time: 10000, 
                    errors: ['time'] )

                    .then(collected => 

                     if(isNaN(collected)) return message.channel.send('not a number'))

                    .catch(collected => msg.delete());
            );
答案

您需要向过滤器添加条件。

const filter = m => m.author.id === message.author.id && !isNaN(parseInt(m.content));

message.channel.send('Enter a price\nHas to be a number.').then(msg => 
  message.channel.awaitMessages(filter, 
    max: 1,
    time: 10000,
    errors: ['time']
  )

    .then(collected => 
      // Do something
    )
    .catch(collected => msg.delete());
);

这不会发送错误消息,但是它不会触发您的收集器,因此在发送一个号码或时间用完之前不会停止尝试收集一个号码。

以上是关于Discord.js-awaitMessages中的条件的主要内容,如果未能解决你的问题,请参考以下文章

新版测试中

初一下期中试卷

c++理解协程05

Access中VBA中excel文件中的VLookup

Groovy闭包 Closure ( 闭包中调用 Groovy 脚本中的方法 | owner 与 delegate 区别 | 闭包中调用对象中的方法 )

在 Django 中,根据模型中其他字段中选择的值删除选择字段下拉列表中的选项