首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Discord.js - awaitMessages中的条件

Discord.js - awaitMessages中的条件
EN

Stack Overflow用户
提问于 2020-05-18 08:05:46
回答 1查看 107关注 0票数 1

我正在为我的discord机器人创建一个awaitMessages,以便将项目添加到我的机器人上的虚拟商店。在这篇awaitMessages中,我想指出文章的价格。所以答案必须是一个数字,但问题是,当我写一个不是数字的答案时,awaitMessages就被取消了。我希望,当我发送一个不是数字的消息时,它会发送一个错误消息,但是awaitMessages不会取消,并且我会再次写一个响应。

代码语言:javascript
复制
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());
            });
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-05-18 08:10:05

您需要向筛选器添加条件。

代码语言:javascript
复制
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());
});

这不会发送错误消息,但是它不会触发您的收集器,因此不会停止尝试收集号码,直到发送一个号码或直到超时。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61860434

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档