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中的条件的主要内容,如果未能解决你的问题,请参考以下文章
Groovy闭包 Closure ( 闭包中调用 Groovy 脚本中的方法 | owner 与 delegate 区别 | 闭包中调用对象中的方法 )