javascript - discord.js awaitmessage 不收集数据
问题描述
所以由于某种原因,当我使用awaitMessage()
它时,它不会为我收集数据。我正在使用 glitch.com 和 discord.js 12.4.0。
这是我的代码:
const Discord = require("discord.js");
const Bot = new Discord.Client();
const ms = require("ms");
const filter = response => {
return response.author.id === response.author.id;
}
const token = "a-token";
Bot.on("ready", () => {
console.log("This bot is ready!");
});
Bot.login(token);
Bot.on("message", msg => {
if (msg.content.includes("!suggest")) {
var Title;
var Description;
console.log("thing");
//host function
let sender = msg.member;
if (sender.roles.cache.some(role => role.name === "Verified")) {
let splitmessage = msg.content.split(" ");
console.log("1");
msg.channel.send("What is your suggestion title?").then(() => {
console.log("2");
msg.channel
.awaitMessages(() => true, {
time: 30000,
errors: ["time"]
}).then(collected => {
//the issue is here
console.log("3");
Title = collected.first().content;
msg.channel.send("What is your suggestion description?").then(() => {
msg.channel
.awaitMessages(() => true, {
time: 30000,
errors: ["time"]
})
.then(collected2 => {
Description = collected2.first().content;
let Embed = new Discord.MessageEmbed()
.setTitle(Title)
.setDescription(Description)
.setColor("#0099ff")
.setTimestamp();
Bot.channels.cache
.get("748562622915412018")
.send(Embed)
.then(function(message) {
message.react("");
message.react("");
});
//Bot.channels.cache.get("771467173922078720").send("@everyone");
msg.channel.send("Suggested!");
});
});
})
.catch(collected => {
msg.channel.send("Looks like nobody got the answer this time.");
});
});
//the format is correct
} else {
msg.channel.send("You don't have the permission to suggest, tuff.");
}
}
});
我正在尝试做的是制作一个机器人,它会提出多个问题,然后它基本上会在另一个频道中发布建议。
解决方案
这可能是因为没有使用等待。在收集器之前使用 await 。
await msg.channel.awaitMessages({ time: 30000, errors: ['time'] }).then(collected=>{
let result = collected.first().content
})
确保将其保存在异步函数中。
推荐阅读
- linux - 上传到 Hbase 时数据大小减小
- image - 如何填充图像中的像素间隙
- angular - 如何以角度减少图像的模糊或增加亮度
- r - 如何在 R 中重新组合列
- reactjs - reactjs中的词法范围是什么
- angular - 使用 Angular 11 将我的 REST API(Spring boot)中的事件读入我的完整日历
- json - 角材料未对表中的数字进行排序
- c# - 通过 Windows 服务 C# .net 中的 zkemkeeper.dll 连接到设备
- javascript - 突出显示焦点上的文本 - 剑道组合框
- sql-server - 在 Microsoft SQL 中是否有一个现有的存储过程来列出架构的所有表?