ban 命令没有做它应该做的事

The ban command doesn't do what it's supposed to do

当我尝试 运行 我的命令时,我从控制台得到错误而不是我指定的错误,结果是:Failed to ban the user 并且控制台显示 DiscordAPIError: Interaction has already been acknowledged. and/or missing permissions。但是,如果我试图用一个没有权限的帐户来禁止自己,我自己也会被禁止。因此,如果我使用我的 acc(没有权限的帐户)执行 tryfyfu /ban user: @tryfyfu,我仍然可以禁止自己,但机器人实际上应该说:“❌ | 你不能禁止公会的用户!” answer 等其他功能如 invalid member❌ | You can't ban yourself 等等 这是代码。如果有人能帮助我就好了。

const {
    Client,
    CommandInteraction,
    Message,
    MessageEmbed,
    MessageActionRow,
    MessageButton
} = require('discord.js');

module.exports = {
    name: 'ban',
    description: 'Ban a user',
    options: [
        {
            name: "user",
            description: "Choose the user to ban.",
            type: "USER",
            required: true
        },
        {
            name: "reason",
            description: "reason for punishment",
            type: "STRING",
            required: false
        }
    ],
    run: async (client, interaction, options) => {
        const member = interaction.options.getMember("user")
        const reason = interaction.options.getString("reason") || "No reason given"


        if(!interaction.member.permissions.has("BAN_MEMBERS")) {
        const buttons = new MessageActionRow()
        .addComponents(new MessageButton()
        .setLabel("Permissions")
        .setEmoji("⚙️")
        .setStyle("LINK")
        .setURL("https://discord.com/developers/docs/topics/permissions"))

        const embed = new MessageEmbed()
        .setColor("RED")
        .setDescription("❌ | You can't ban a user from the guild!")

        interaction.reply({
            embeds: [embed],
            components: [buttons],
            ephemeral: true
        })
    }
     if(member === interaction.member) {
            const embed = new MessageEmbed()
            .setColor("RED")
            .setDescription("❌ | You can't ban yourself")

            interaction.reply({
                embeds: [embed]
            })
        }
     if (!member) {
        
        const embed = new MessageEmbed()
        .setColor("RED")
        .setDescription("❌ | Invalid Member")

        interaction.reply({
            embeds: [embed],
            ephemeral: true
        })
        }
    
        try {
            await interaction.guild.bans.create(member, {
                reason
            })
            const embed = new MessageEmbed()
            .setColor("GREEN")
            .setDescription(`✅ | ${member.user.tag} was banned for: ${reason}`)
            
            return interaction.reply({
                embeds: [embed]
            })
        }
        catch(err){
            if (err){
                console.error(err)
                const embed = new MessageEmbed()
                .setColor("RED")
                .setDescription(`❌ | Failed to ban ${member.user.tag}`)

                return interaction.reply({
                    embeds: [embed]
                })
            }
        }
}
}

更改了以下两点(不同的禁止方法并纠正了一个错误)。它们在下面注明。

const {
    MessageEmbed,
    MessageActionRow,
    MessageButton
} = require('discord.js');

module.exports = {
    name: 'ban',
    description: 'Ban a user',
    options: [{
            name: "user",
            description: "Choose the user to ban.",
            type: "USER",
            required: true
        },
        {
            name: "reason",
            description: "reason for punishment",
            type: "STRING",
            required: false
        }
    ],
    run: async (client, interaction, options) => {
        const member = interaction.options.getUser("user")
        // .getMember is not a valid function as the type specified above is "USER"
        const reason = interaction.options.getString("reason") || "No reason given"


        if (!interaction.member.permissions.has("BAN_MEMBERS")) {
            const buttons = new MessageActionRow()
                .addComponents(new MessageButton()
                    .setLabel("Permissions")
                    .setEmoji("⚙️")
                    .setStyle("LINK")
                    .setURL("https://discord.com/developers/docs/topics/permissions"))

            const embed = new MessageEmbed()
                .setColor("RED")
                .setDescription("❌ | You can't ban a user from the guild!")

            return interaction.reply({
                embeds: [embed],
                components: [buttons],
                ephemeral: true
            })
        }
        if (member === interaction.member) {
            const embed = new MessageEmbed()
                .setColor("RED")
                .setDescription("❌ | You can't ban yourself")

            return interaction.reply({
                embeds: [embed]
            })
        }
        if (!member) {
            const embed = new MessageEmbed()
                .setColor("RED")
                .setDescription("❌ | Invalid Member")

            return interaction.reply({
                embeds: [embed],
                ephemeral: true
            })
        }
// changed up the part below
        try {
            const embed = new MessageEmbed()
                .setColor("GREEN")
                .setDescription(`✅ | ${member.user.tag} was banned for: ${reason}`)

            interaction.reply({
                embeds: [embed]
            })
            return member.ban({
                reason: reason
            })
        } catch (err) {
            if (err) {
                console.error(err)
                const embed = new MessageEmbed()
                    .setColor("RED")
                    .setDescription(`❌ | Failed to ban ${member.user.tag}`)

                return interaction.reply({
                    embeds: [embed]
                })
            }
        }
    }
}