Discord.js ban命令中的无效表单主体

时间:2020-10-10 20:12:20

标签: javascript discord discord.js

因此,我一直在尝试发出禁令。我基本上在kick命令上使用了相同的系统,但是在这里它没有用,只是给了我一个错误。我很困惑,因为在错误中它不会显示一行代码或其他内容。
我的命令/代码:

module.exports = {
    name: 'ban',
    description: "Ban Command.",
    execute(msg, args){
    const Discord = require('discord.js')
    const Embeds = require('./../embed')
    let perms = msg.member.permissions  
    let has_kick = perms.has("BAN_MEMBERS")
    if (has_kick === true) {
        const toban = msg.mentions.members.first()
        delete args[0]
        var string = args.join(' ')
        Embeds.error(toban, `You have been banned from ${msg.guild.name} by the user ${msg.author} with the reason ${string}`)
        setTimeout(function(){ 
            try {
            toban.ban(`was banned by ${msg.author} for: ${string}`)
            Embeds.kicked(msg.channel, `${toban} has been banned by ${msg.author} from the server with the following reason: ${string}`, `Banned User from the server`)
            } catch {
                Embeds.error(msg.channel, `I dont have permissions to ban ${toban} `, "Error")
            }
         }, 1000); 
    } else {
        const toban = msg.mentions.members.first()
        Embeds.error(msg.channel, `You dont have permissions to Ban ${toban} `, "Error")
    }
}
}

错误:

(node:13896) UnhandledPromiseRejectionWarning: DiscordAPIError: Invalid Form Body
DICT_TYPE_CONVERT: Only dictionaries may be used in a DictType

1 个答案:

答案 0 :(得分:0)

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

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

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