如何用 2 个问题为 await 消息收集器打点
Posted
技术标签:
【中文标题】如何用 2 个问题为 await 消息收集器打点【英文标题】:How to dot a await message collector with 2 question 【发布时间】:2021-04-08 07:33:49 【问题描述】:我想在禁止用户后提出 2 个问题
-
!bann @user
原因
多少时间。
我想我可以通过等待消息来做到这一点。在这段代码中,我只能做 2 个收集器,请问如何添加另一个?
message.channel.send('Why you want to bann this user ?')
.then(async() =>
message.channel.awaitMessages(response => message.content,
max: 1,
time: 30000,
errors: ['time'],
)
.then(async(collected) =>
message.channel.send(`The collected message was: $collected.first().content`);
)
.catch(() =>
message.channel.send('There was no collected message that passed the filter within the time limit!');
);
);
【问题讨论】:
【参考方案1】:最简单的方法是让你的消息处理程序成为一个异步函数,然后使用 async/await:
await message.channel.send("Why do you want to ban this user?");
const reason = (await message.channel.awaitMessages(res => message.content,
max: 1,
time: 30000,
errors: ["time"]
)).first().content;
await message.channel.send("For how long do you want to ban them?");
const time = (await message.channel.awaitMessages(res => message.content,
max: 1,
time: 30000,
errors: ["time"]
)).first().content;
然后,您可以访问 reason
和 time
变量中的响应。
【讨论】:
各位大佬,我想知道如何删除等待消息的时间和原因?提前谢谢你。 @RjjfjfkFkkfkf 去掉.content
,这样reason
和time
包含消息,那么你可以只使用await reason.delete()
和await time.delete()
,但是你需要访问它们reason.content
和 time.content
的内容以上是关于如何用 2 个问题为 await 消息收集器打点的主要内容,如果未能解决你的问题,请参考以下文章
如何用 Promise.all 替换多个 async/await 调用?