首页 > 解决方案 > Discord.js 无效的表单正文限制:int 值应小于或等于 100。使用 bulkDelete() 时出错

问题描述

所以我得到了这个作为命令代码:

    if(!args[0]){
        message.channel.send(client.cmdlines.wrongUsage);
    }else if(args[1]){
        message.channel.send(client.cmdlines.wrongUsage);
    }else{
        if(message.member.hasPermission('ADMINISTRATOR')){
            if(!isNaN(args[0])){
                message.channel.bulkDelete(args[0]+1).then(msg => {
                    message.channel.send(`Deleted ${args[0]} messages.`).then(msg => msg.delete({ timeout: 3000 })).catch(e => console.log(e));
                });
            }else{
                message.channel.send(client.cmdlines.wrongUsage);
            }
        }else{
            message.channel.send(client.cmdlines.missingPerms);
        }
    }
}

由于某种原因,我得到了:无效的表单正文限制:int 值应小于或等于 100。错误。有人知道问题可能是什么吗

标签: javascriptnode.jsdiscord.js

解决方案


它在错误中.. discord.js 不允许您一次批量删除超过 100 条消息。运行一个函数来确定您需要循环多少次才能删除所有所需的消息 ( Math.floor(args[0]/100)。然后,您需要从 100 条消息中删除剩余的消息数。 ( args[0] - Math.floor(args[0])*100)

循环删除第一个值的 100 条消息,然后在删除消息后的第二个值。

哦,请确保首先解析args[0]为 int


推荐阅读