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