如何让 discord bot 等待回复 5 分钟然后发送消息?使用不和谐的 js
Posted
技术标签:
【中文标题】如何让 discord bot 等待回复 5 分钟然后发送消息?使用不和谐的 js【英文标题】:How to make discord bot wait for reply for 5 minutes and then send a message? Using discord js 【发布时间】:2021-05-22 04:39:41 【问题描述】:我正在使用 Discord js 制作一个 Discord 机器人。 bot 的作用是在个人消息中向用户发送消息,然后等待用户响应 5 分钟。如果用户没有向成员发送任何内容,那么机器人会发送一条消息,表明请求已被拒绝,因为他们没有发送任何电子邮件 ID。我正在使用 discord.js 收集器 npm 包来获取消息并将其发送给用户。我遇到的问题是,如果用户没有输入任何内容,机器人会在 30 秒后向用户发送回复。我不想要那个。我希望机器人在发送请求被拒绝消息之前等待 5 分钟。这是我的代码的样子。
message.reply("Please check your DM to verify your email id");
const filter = (m) => m.author.id === message.author.id;
const botMessage = await message.author.send("Enter your registered email Id please?");
const userMessage = await MessageCollector.asyncQuestion(
botMessage,
user: message.author.id,
time:300000 // milliseconds
).catch(()=>
message.author.send("Request Denied because you did not responded with a registerd email ID. You can request again!");
return 0;
);
我还使用了不和谐的 js 库来实现自己的参数,例如空闲,但我仍然收到错误。这是我的代码在那里的样子。
message.reply("Please check your DM to verify your email id");
const filter = (m) => m.author.id === message.author.id;
const botMessage = await message.author.send("Enter your registered email Id please?");
const userMessage = await MessageCollector.asyncQuestion(
botMessage,
user: message.author.id,
idle:300000 // milliseconds
).catch(()=>
message.author.send("Request Denied because you did not responded with a registerd email ID. You can request again!");
return 0;
);
如果有人能告诉我我在哪里犯了错误,那就太好了。
【问题讨论】:
【参考方案1】:您正在使用的asyncQuestion 函数没有时间或空闲属性。 相反,它具有类型为MessageCollectorOptions 的collectorOptions。
所以你应该做的是使用 asyncQuestion 定义的 collectorOptions 并使用你的时间选项传入一个对象,然后你的计时器应该按预期工作。
const userMessage = await MessageCollector.asyncQuestion(
botMessage,
user: message.author.id,
collectorOptions: time: 300000
).catch(() =>
// catch code here...
);
【讨论】:
以上是关于如何让 discord bot 等待回复 5 分钟然后发送消息?使用不和谐的 js的主要内容,如果未能解决你的问题,请参考以下文章
如何让 Discord bot 使用用户选择的号码名称发送图像? (Python 3.5.x)