Javascript 编码一个不和谐机器人-清除/清除命令突然获胜';行不通

Javascript 编码一个不和谐机器人-清除/清除命令突然获胜';行不通,javascript,discord.js,Javascript,Discord.js,我从编写我的机器人程序中得到了一点休息,我一直在尝试添加模块,使之成为一种经济型的东西。我遇到了一些问题,所以我去检查“清除”命令是否仍然有效。我最初编写的代码没有使用异步函数,但现在我正在使用它,我认为这可能导致了一个问题? 不知道是否有人知道如何修复它,谢谢你检查这个 禁止/踢命令也根本不起作用,所以如果有人可以看看这些命令 对于代码,我使用了互联网上的一些教程和指南,我认为其中一些可能干扰了已经编写的内容 if (command === 'clear') { const dele

我从编写我的机器人程序中得到了一点休息,我一直在尝试添加模块,使之成为一种经济型的东西。我遇到了一些问题,所以我去检查“清除”命令是否仍然有效。我最初编写的代码没有使用异步函数,但现在我正在使用它,我认为这可能导致了一个问题? 不知道是否有人知道如何修复它,谢谢你检查这个

禁止/踢命令也根本不起作用,所以如果有人可以看看这些命令

对于代码,我使用了互联网上的一些教程和指南,我认为其中一些可能干扰了已经编写的内容

if (command === 'clear') {

    const deleteCount = parseInt(args[0], 10);

    if(!deleteCount || deleteCount < 2 || deleteCount > 300)
        return message.reply('Please provide a number between 2 and 300 for the number of messages to delete.')

        const fetched = await message.channel.fetchMessages({deleteCount});
        message.channel.bulkDelete(fetched)
            .catch(error => message.reply(`I couldn't delete the messages because of: ${error}`));
    }

//kick command

if (command === 'kick') {

    const user = message.mentions.users.first();

    if (!message.guild.me.hasPermission(`KICK`)) return message.reply('You have insufficient permissions.')

    if(!member.kickable) return message.reply('I cannot kick this user!');

    if(user){
        const member = message.guild.member(user);

        if(member){
            member.kick('You have been kicked.').then(() =>{
                message.reply(`Successfully kicked ${user.tag}.`);
            }).catch(err =>{
                message.reply('I was unable to kick the specified member.');
                console.log(err);
            });
        } else {
            message.reply("That user is not in this server.")
        }
    } else {
        message.reply('You need to specify a user!')
    }

}
if(命令=='clear'){
constdeleteCount=parseInt(args[0],10);
如果(!deleteCount | | deleteCount<2 | | deleteCount>300)
return message.reply('请为要删除的邮件数提供一个介于2和300之间的数字')
const fetched=wait message.channel.fetchMessages({deleteCount});
message.channel.bulkDelete(已获取)
.catch(error=>message.reply(`I无法删除邮件,因为:${error}`));
}
//踢指令
如果(命令=='kick'){
const user=message.indications.users.first();
如果(!message.guild.me.hasPermission(`KICK`))返回message.reply('您没有足够的权限')
if(!member.kickable)返回message.reply('I cannot kick this user!');
如果(用户){
const member=message.guild.member(用户);
国际单项体育联合会(成员){
member.kick('你被踢了。')。然后(()=>{
message.reply(`Successfully${user.tag}.`);
}).catch(错误=>{
message.reply('我无法踢指定的成员');
控制台日志(err);
});
}否则{
message.reply(“该用户不在此服务器中。”)
}
}否则{
message.reply('您需要指定一个用户!')
}
}
运行命令时,例如,
~clear 3
,它通常会说:

'我无法删除邮件,因为:DiscordAPIError:您只能批量删除14天以下的邮件。'即使以前的邮件只有几分钟/秒

其他时候,当使用
~clear 3
时(通常在上述消息发送后几分钟),它将删除三条以上的消息


当使用
~kick
时,它根本不会响应。

这也发生在我身上,机器人试图删除频道中的所有消息(可能是由于discord.js更新)。但是,有一个解决办法:

exports.run = (client, message, args) => {
     if (!message.member.roles.find("name", "Staff"))
        return;
  const amount = args[0]
if (!amount) return message.reply('Must specify an amount to delete!');
message.channel.fetchMessages({
 limit: amount,
}).then((messages) => {
 message.channel.bulkDelete(messages).catch(error => console.log(error.stack));
});
message.delete().catch(O_o => { });
}```

You may also want to downgrade your discord.js version.

您是否尝试了
message.channel.fetchMessages({limit:deleteCount})?非常感谢!很抱歉回复太晚,但这对我有帮助。到目前为止,降级不再是一种选择。由于Discord的API更改,您将遇到限制和奇怪的问题。