邀请命令机器人回复多次发送消息

Invites command bot reply sending message multiple times

我正在使用 WOK 教程中的邀请跟踪器,即使代码工作得很好,而且我使用的命令处理程序有 0 个问题,出于某种原因,机器人会回复多条消息而不是 1 条消息在此图片中看到:

这是我用于邀请命令的代码:

const Discord = require("discord.js")

module.exports = {
    commands: 'invites',
    callback: (message) => {
        const { guild } = message
        guild.fetchInvites().then((invites) => {
            const inviteCounter = {}

            invites.forEach((invite) => {
                const { uses, inviter } = invite
                const { username, discriminator } = inviter

                const name = `${username}#${discriminator}`

                inviteCounter[name] = (inviteCounter[name] || 0) + uses
            })

            let replyText = ''

            const sortedInvites = Object.keys(inviteCounter).sort((a, b) => inviteCounter[b] - inviteCounter[a])

            for (const invite of sortedInvites) {
                const count = inviteCounter[invite]
                replyText += `\n${invite} has invited ${count} member(s)!`

                const embed = new Discord.MessageEmbed()
                embed.setTitle('Invites: ')
                embed.setDescription(replyText)
                message.reply(embed)
            }
        })
    }
}

Fyi 上次我 post 编辑这个我忘了 post 代码所以是的,那是愚蠢的我的错。

这是因为您在 for...of 循环中有 message.reply

for (const invite of sortedInvites) {
                const count = inviteCounter[invite]
                replyText += `\n${invite} has invited ${count} member(s)!`

                const embed = new Discord.MessageEmbed()
                embed.setTitle('Invites: ')
                embed.setDescription(replyText)
                message.reply(embed) //here
            }

您可能打算将它放在循环之外,以便它在所有迭代后发送生成的嵌入。