Discord JS-等待消息-多个问题

时间:2019-07-11 14:09:55

标签: javascript arrays discord.js

我正在使用Discord.js制作我的第一个Discord Bot-我可以使它读取命令client.on('message', message => { if (message.content.toLowerCase().startsWith("!makeraid")) { const filter = m => m.author.id === message.author.id; var raid = {}; var color = ((1 << 24) * Math.random() | 0).toString(16); var raidImages = {'DDS':'https://i.imgur.com/izsm8ri.jpg','GR':'https://i.imgur.com/4S9NKtF.jpg','CR':'https://i.imgur.com/EnYiWka.jpg','OR':'https://i.imgur.com/VOYDUlO.jpg'}; message.reply('Raid Name?').then(r => r.delete(10000)); message.channel.awaitMessages(filter, { max: 1, time: 10000, errors: ['time'], }) .then((collected) => { raid.title = collected.first().content; console.log(raid); collected.first().delete(5000); }) .catch(() => { message.channel.send('Raid Cancelled - Too Slow!').then(r => r.delete(5000)); }); while ( Object.keys(raid).length > 0 ) { message.reply('Do you want to create the raid? Yes or No.').then(r => r.delete(10000)); message.channel.awaitMessages(filter, { max: 1, time: 10000, errors: ['time'], }) .then((collected) => { if (collected.first().content.toLowerCase() === "yes") { collected.first().delete(); var raidEmbed = new Discord.RichEmbed() .setColor('#'+color) .setAuthor('Raid Bot', client.user.avatarURL) .setTitle(':star::star: '+raid.title+' :star::star:') .setThumbnail(client.user.avatarURL) .setDescription('Some description here') .addField('Date', 'Some value here', true) .addField('Time', 'Some value here', true) .setTimestamp() .setFooter('Raid created by: '+ message.member.user.tag, message.member.user.avatarURL); message.channel.send(raidEmbed).then(async embedMessage => { await embedMessage.react('✅'); await embedMessage.react('❓'); await embedMessage.react('?'); }); } else { collected.first().delete(); message.channel.send('Raid Cancelled').then(r => r.delete(5000)); } }) .catch(() => { message.channel.send('Raid Cancelled - Too Slow! (Make)').then(r => r.delete(5000)); }); } message.delete(); } else if (message.content.toLowerCase().startsWith("!help")) { message.reply('You Suck ?').then(r => r.delete(10000)); message.delete(); } }); ,然后机器人会询问第一个问题,并将响应存储到数组中。

我希望能够问多个问题,例如团队名称,描述,日期和时间。在问了第一个问题之后,我还没有走这么远,作为测试,我希望机器人创建嵌入消息。

但是,我无法使其触发/触发下一个问题。

await

终端中不会出现任何错误,在收集到第一个响应并将其推入数组之后,它什么也不做。

0 个答案:

没有答案