【发布时间】:2022-01-24 20:48:58
【问题描述】:
我为我的 discord 机器人 (v13) 创建了排行榜命令,但它单独发送了多个嵌入每个用户的信息,而不是一个完整的消息。我不确定如何构造它,因此感谢您的帮助。
const profileModel = require("../models/profileSchema");
module.exports = {
name: "leaderboard",
description: "Checks the leaderboard",
aliases: ['lb'],
async execute(client, message, args, cmd, Discord, profileData){
const lbData = await profileModel.find({}).sort({
reputation: -1,
}).limit(5);
for (let counter = 0; counter < lbData.length; ++counter) {
const { userID, health = 0 } = lbData[counter]
const Embed = new Discord.MessageEmbed()
.setColor('#fffffa')
.setTitle('Challenge Leaderboard')
.addFields(
{ name: '\u200b', value: `**${counter + 1}.** <@${userID}> - ${reputation} reputation\n` })
message.channel.send({ embeds: [Embed] });
}
}
}
【问题讨论】:
-
您在循环的每次迭代中调用
send(),因此会出现这种行为。您需要在循环之前初始化嵌入,在每次迭代时连接到它,然后在循环完成后发送它
标签: node.js discord discord.js bots