【问题标题】:Discord.js v12 Ban CommandDiscord.js v12 禁止命令
【发布时间】:2021-01-26 15:09:34
【问题描述】:

我为我的 discord.js v12 机器人发出了禁止命令。但是,每当我运行命令时,都会出现错误。 这是我的代码:

const Discord = require('discord.js');

module.exports = {
    name: "ban",
    description: "Kicks a member from the server",

    async run (client, message, args) {

        if(!message.member.hasPermission("BAN_MEMBERS")) return message.channel.send('You can\'t use that!')
        if(!message.guild.me.hasPermission("BAN_MEMBERS")) return message.channel.send('I don\'t have the right permissions.')

        const member = message.mentions.members.first() || message.guild.members.cache.get(args[0]);

        if(!args[0]) return message.channel.send('Please specify a user');

        if(!member) return message.channel.send('Can\'t seem to find this user. Sorry \'bout that :/');
        if(!member.bannable) return message.channel.send('This user can\'t be banned. It is either because they are a mod/admin, or their highest role is higher than mine');

        if(member.id === message.author.id) return message.channel.send('Bruh, you can\'t ban yourself!');

        let reason = args.slice(1).join(" ");

        if(!reason) reason = 'Unspecified';

        member.ban(`${reason}`).catch(err => { 
          message.channel.send('Something went wrong')
            console.log(err)
        })

        const banembed = new Discord.MessageEmbed()
        .setTitle('Member Banned')
        .setThumbnail(member.user.displayAvatarURL())
        .addField('User Banned', member)
        .addField('Kicked by', message.author)
        .addField('Reason', reason)
        .setFooter('Time kicked', client.user.displayAvatarURL())
        .setTimestamp()

        message.channel.send(banembed);


    }
}

这是我运行命令时遇到的错误

 DiscordAPIError: Invalid Form Body
    DICT_TYPE_CONVERT: Only dictionaries may be used in a DictType
        at RequestHandler.execute (/home/runner/SweatyBeautifulHelpfulWorker/node_modules/discord.js/src/rest/RequestHandler.js:170:25)
        at processTicksAndRejections (internal/process/task_queues.js:97:5) {
      method: 'put',
      path: '/guilds/751424392420130907/bans/155149108183695360',
      code: 50035,
      httpStatus: 400
    }

我不明白如何纠正代码中的问题。我对编码有点陌生。你能帮帮我吗!提前致谢

【问题讨论】:

    标签: javascript node.js discord discord.js


    【解决方案1】:

    这看起来像是我视频中的代码。这是我在代码中犯的一个非常简单的错误。 .ban 部分实际上应该如下所示:

    .ban({ reason: 'your reason here' })
    

    -thesportsstacker

    【讨论】:

      【解决方案2】:

      这很容易解决,您所要做的就是以正确的方式将适量的参数传递给 .ban 函数。

      .ban({ days: 7, reason: 'your reason here' })
      

      https://discord.js.org/#/docs/main/stable/class/GuildMember?scrollTo=ban

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-01-18
        • 1970-01-01
        • 2021-03-26
        • 1970-01-01
        • 2021-01-01
        • 2021-02-18
        • 1970-01-01
        • 2021-07-27
        相关资源
        最近更新 更多