编码不一致的漫游器-清除/清除命令突然不起作用

时间:2019-10-06 06:06:49

标签: javascript discord.js

我在编写机器人程序时花了一点时间,而且我一直在尝试添加一些模块来制作经济型的东西。我当时遇到了一些问题,所以我去检查了“清除”命令是否仍然有效。我最初编写的代码没有异步功能,但是现在我正在使用它,我认为这可能引起了问题? 想知道是否有人知道如何修复它,谢谢您检查出来。

ban / kick命令也根本不起作用,所以如果有人可以看一下吗?

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

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!')
    }

}

在运行命令(例如~clear 3)时,它通常会显示:

  

“由于以下原因,我无法删除邮件:DiscordAPIError:您只能批量删除14天以内的邮件。”即使先前的消息仅几分钟/秒。

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

使用~kick时完全不会响应。

1 个答案:

答案 0 :(得分:0)

这也发生在我身上,机器人试图删除通道中的所有消息(可能是由于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.