discord.js - 读取命令启动后发送的消息
问题描述
我正在尝试制作一种琐事机器人,但问题是我无法让它工作。我有它,所以当你输入“-quiz”时,它会发送一个随机问题的嵌入。现在你可能会说我需要创建一个单独的 JSON 文件并将问题和答案放在那里,问题是我需要这些字符串中的变量,当我尝试它时,它不起作用,因为顺序或类似的东西那。我试图解决这个问题,但无论如何这似乎是一个糟糕的解决方案。我对其进行了设置,因此它会在初始命令之后查找一条消息,问题是它读取了它自己的嵌入,老实说,我不知道如何让它跳过机器人消息
client.on('message', message =>{
if(!message.content.startsWith(prefix) || message.author.bot) return;
const args = message.content.slice(prefix.length).split(/ +/);
const command = args.shift().toLowerCase();
if(command === 'quiz'){
var TypeID = (Math.floor(Math.random() * 11))
var toLog = (Math.floor(Math.random() * 2))
{ //there is something here that is used for the variables above but it is super long
}
var question = [`Question one`, `Question two`]
var answers = [[Answer1_1, Answer1_2],[Answer1_1]]
if(toLog === 0){
const quizEmbed1 = new Discord.MessageEmbed()
.setColor('#0099ff')
.setTitle('quiz')
.setDescription(`${question[0]}`)
message.channel.send(quizEmbed1)
if(!message.content || message.author.bot) return;
if(message.content === [answers[0], answers[1], answers[2], answers[3], answers[4], answers[5]]){
message.channel.send('Good Job! That is right!')
}else{
message.channel.send('Oops! that is wrong.')
}
}else if(toLog == 1){
const quizEmbed2 = new Discord.MessageEmbed()
.setColor('#0099ff')
.setTitle('quiz')
.setDescription(`${question[1]}`)
message.channel.send(quizEmbed2)
if(!message.content || message.author.bot) return;
if(message.content === [answers[6]]){
message.channel.send('Good Job! That is right!')
}else{
message.channel.send('Oops! That is wrong.')
}
}
}
});
如果出现问题,很可能是因为我将其更改为更小,我对 JavaScript 编码还比较陌生
解决方案
尝试使用MessageCollector。discord.js 指南上有一个很好的指南
或使用awaitMessages。discord.js 指南上也有一个指南
这是使用 awaitMessages 的示例
const filter = response => {
return item.answers.some(answer => answer.toLowerCase() === response.content.toLowerCase());
};
message.channel.send(item.question).then(() => {
message.channel.awaitMessages(filter, { max: 1, time: 30000, errors: ['time'] })
.then(collected => {
message.channel.send(`${collected.first().author} got the correct answer!`);
})
.catch(collected => {
message.channel.send('Looks like nobody got the answer this time.');
});
});
推荐阅读
- php - How do you download secured image
- azure - 无法与 Azure IoT 中心建立 Kafka 源连接
- filemaker - Filemaker WebDirect
- javascript - 在画布上绘图时禁用移动设备上的滚动?
- sharepoint - SharePoint 上的表单
- python - Pydrive:防止 Google Drive 授权过期。
- git - How to show the latest commit time of the each branch when they are diverged in git?
- mysql - Mysql count of values on pivoting or transposing
- java - Java: Converting Class member variables/values into Map - Reflection
- android - 带有 NavigationDrawer 的导航组件