我正在尝试执行神奇宝贝命令,但是由于某种原因,它返回的是UnhandledPromiseRejectionWarning: DiscordAPIError: Cannot send an empty message
。这是代码,我希望这个平台可以帮助我解决问题。
const rand = Math.floor(Math.random() * 802);
const poke = rand > 0 ? rand : Math.floor(Math.random() * 802);
const pokem = pokemon[poke];
const embed = new Discord.MessageEmbed()
.setTitle("?️ Time is ticking! You have 15 seconds to answer | WHO'S THAT POKEMON?!")
.setColor(colored[~~(Math.random() * colored.length)])
.setAuthor(message.member.displayName, message.author.displayAvatarURL())
.setImage(pokem.imageURL);
const msg = await message.channel.send(embed);
const filter = m => m.author.id === message.author.id;
const attempts = await msg.channel.awaitMessages(filter, { time: 15000, max: 1 });
if (!attempts || !attempts.size) {
msg.delete();
const embed = new Discord.MessageEmbed()
.setTitle("?️ Time is up!")
.setColor(colored[~~(Math.random() * colored.length)])
.setDescription(`Ba-Baka! Your 15 seconds is over. It was \`${pokem.name}\`.`);
return message.channel.send(embed);
}
const answer = attempts.first().content.toLowerCase();
if (answer === pokem.name.toLowerCase()) {
await msg.edit({ embed: null });
let embed = new Discord.MessageEmbed()
.setTitle("<a:done:707045670661652481> Correct")
.setColor(colored[~~(Math.random() * colored.length)])
.setDescription(`Yatta! Well done, \`${pokem.name}\` was correct.`);
return message.channel.send(embed);
}
await msg.edit({ embed: null });
embed = new Discord.MessageEmbed()
.setTitle("<a:error:707045703003668521> Incorrect")
.setColor(colored[~~(Math.random() * colored.length)])
.setDescription(`Ba-Baka! You answered incorrectly, It was \`${pokem.name}\`.**`);
return message.channel.send(embed);
答案 0 :(得分:1)
您正在使用{embed: null}
编辑消息。由于邮件仅具有嵌入,因此将删除嵌入,因此没有内容可用于编辑邮件。
如果我正确解释了代码,则要更新嵌入,请使用以下代码:
// Using let here so that embed can be reassigned later
let embed = new Discord.MessageEmbed()
.setTitle("?️ Time is ticking! You have 15 seconds to answer | WHO'S THAT POKEMON?!")
.setColor(colored[~~(Math.random() * colored.length)])
.setAuthor(message.member.displayName, message.author.displayAvatarURL())
.setImage(pokem.imageURL)
// rest of code...
if (answer === pokem.name.toLowerCase()) {
let embed = new Discord.MessageEmbed()
.setTitle("<a:done:707045670661652481> Correct")
.setColor(colored[~~(Math.random() * colored.length)])
.setDescription(`Yatta! Well done, \`${pokem.name}\` was correct.`);
// {embed} is shorthand for {embed: embed}
await msg.edit({embed});
return message.channel.send(embed);
}
// Instead of reassigning to embed, you could also create a new variable
embed = new Discord.MessageEmbed()
.setTitle("<a:error:707045703003668521> Incorrect")
.setColor(colored[~~(Math.random() * colored.length)])
.setDescription(`Ba-Baka! You answered incorrectly, It was \`${pokem.name}\`.**`);
await msg.edit({embed});