我想提出一个删除消息我不和机器人指挥,我想,以确保用户的需求,以删除邮件中的“管理服务器”权限。在我拥有服务器的主帐户上,我能够使用该命令,但在我创建的测试帐户上,没有任何反应,并且在终端中出现错误:UnhandledPromiseRejectionWarning: RangeError [BITFIELD_INVALID]: 无效的位域标志或数字
module.exports = {
name: 'clear',
description: 'clears messages',
async execute(message, args){
if (message.member.hasPermission('MANAGE_SERVER')){
if (!args[0]){
message.reply('Please enter a valid amount of messages');
}
if (isNaN(args[0])){
message.reply('Please enter a valid amount of messages');
}
if (args[0] > 100){
message.reply('Please do not clear over 100 messages at once');
}
if (args[0] < 1){
message.reply('Please enter a valid amount of messages');
}
await message.channel.messages.fetch({limit: args[0]}).then (messages => {
message.channel.bulkDelete(messages);
});
}else{
message.channel.reply("You don't have the required roles to use the command.");
}
}
}```
答案 0 :(得分:0)
您的代码中有两个非常简单的错误:
MANAGE_SERVER
,它不是属性。message.channel.reply
,它不是函数。这是您的固定代码:
if (message.member.hasPermission('MANAGE_MESSAGES')){
if (!args[0]){
message.reply('Please enter a valid amount of messages');
}
if (isNaN(args[0])){
message.reply('Please enter a valid amount of messages');
}
if (args[0] > 100){
message.reply('Please do not clear over 100 messages at once');
}
if (args[0] < 1){
message.reply('Please enter a valid amount of messages');
}
await message.channel.messages.fetch({limit: args[0]}).then (messages => {
message.channel.bulkDelete(messages);
});
}else{
message.reply("You don't have the required roles to use the command.");
}
我使用了 MANAGE_MESSAGES
,但您可以使用任何您想使用的东西,但它必须是 these 属性之一。您的第二个错误只需使用:message.reply
即可修复。