我有一个消息收集器,我正在尝试使用在嵌入中收集的数据作为标题、描述和嵌入颜色。到目前为止,我已经让它工作了,所以每个值都返回一个单独的嵌入。
我相信这是由于第 38 行中的 forEach,但是我尝试过的所有其他操作(删除该行,不返回任何内容,更改为 collects.messages(value) 抛出的值未定义,collected.messages 抛出的不是一个函数)不起作用
我不知道将它更改为什么,以获得我想要的结果(这是设置嵌入标题的第一个答案,第二个是嵌入描述,第三个是嵌入颜色)。
代码是
module.exports = {
name: "embed",
description: "Sets up a reaction role message!",
async execute(client, message, args, Discord) {
const questions = [
'What is the message title?',
'What is the message description?',
'What is the embed colour?',
]
let counter = 0
const filter = (m) => !m.author.bot
const collector = new Discord.MessageCollector(message.channel, filter, {
max: questions.length,
time: 60000 * 5, // 5m
})
message.channel.send(questions[counter++])
collector.on('collect', (m) => {
if (counter < questions.length) {
m.channel.send(questions[counter++])
}
})
collector.on('end', (collected) => {
console.log(`Collected ${collected.size} messages`)
if (collected.size < questions.length) {
message.reply('The command has timed out')
return
}
let counter = 0
collected.forEach((value) => {
console.log(value.content)
let embed = new Discord.MessageEmbed()
.setTitle(value.content)
.setDescription(value.content)
.setColor(value.content)
let messageEmbed = message.channel.send(embed);
})
})
}
}```
Any help would be greatly appreciated
答案 0 :(得分:0)
我需要做的就是设置一个变量来查看我在计数中的位置,然后使用该变量来设置字段
let i = 0;
collected.forEach((value) => {
i++;
if (i === 1) embed.setTitle(value.content);
else if (i === 2) embed.setDescription(value.content);
else if (i === 3) embed.setColor(value.content);
})
let messageEmbed = message.channel.send(embed);```