需要声明或声明。 ts(1128)(11,1)

时间:2020-10-12 09:24:30

标签: discord discord.js bots

我对编码很新,我遇到了一个问题,我不确定这个问题是什么。 我一直在执行不和谐的bot kick / ban命令,并给了我错误“预期的声明或声明。ts(1128)(11,1)”

以下是我的代码,非常感谢。

代码:

member.kick().then((member) => {
    message.channel.send(`:wave: ${member.displayName} has been kicked`);
}).catch(() => {
    if (!message.member.hasPermission(['KICK_MEMBERS', 'ADMINISTRATOR'])) {
        message.reply("You cannot kick members");
    } else if (member.hasPermission(['KICK_MEMBERS', 'BAN_MEMBERS', 'ADMINISTRATOR'])) {
        message.reply("You cannont kick this member");
    }
})
}
if (message.content.startsWith(`${prefix}ban`)) {

let member = message.mentions.members.first();
member.ban().then((member) => {
    message.channel.send(`:wave: ${member.displayName} has been kicked`);
}).catch(() => {
    if (!message.member.hasPermission(['BAN_MEMBERS', 'ADMINISTRATOR'])) {
        message.reply("You cannot ban members");
    } else if (member.hasPermission(['KICK_MEMBERS', 'BAN_MEMBERS', 'ADMINISTRATOR'])) {
        message.reply("You cannont ban this member");
    }
})
}

1 个答案:

答案 0 :(得分:0)

代码引发错误的原因是因为您无法检查.catch块中的权限,因为catch块会处理代码引发的错误。相反,应该在执行命令之前 检查权限。此外,您正在检查用户是否具有所有三个权限。您可以使用JavaScript或(||)来检查它们是否具有任何权限,以及管理员权限是否具有ALL PERMISSIONS,从而无需将其添加到列表中。我已经重写了下面的代码

// You never need to check for ADMINISTRATOR, because it has all permissions
if (!message.member.hasPermission('KICK_MEMBERS')) {
  message.reply("you cannot kick members");
} else if (member.hasPermission('KICK_MEMBERS' || 'BAN_MEMBERS')) {
  message.reply("you cannot kick this member");
}

member.kick()
    .then(member => message.channel.send(`:wave: ${member.displayName} has been kicked`))
    .catch(e => console.log(e));
}

if (message.content.startsWith(`${prefix}ban`)) {

let member = message.mentions.members.first();
if (!message.member.hasPermission('BAN_MEMBERS')) {
  message.reply("You cannot ban members")
} else if (member.hasPermission('KICK_MEMBERS' || 'BAN_MEMBERS')) {
  message.reply("You cannont ban this member")
}

member.ban()
  .then(member => message.channel.send(`:wave: ${member.displayName} has been banned`)
  .catch(e => console.log(e));
}