node.js - Discord.js 代码不会禁止人们。我该如何解决?
问题描述
所以我编写了一个小禁令命令这里是代码
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");
}
})
}
当我做了我的前缀禁令然后播放器名称它不会禁止它们并且我在控制台中没有收到任何错误所以我可以请一些帮助
纳克斯
罗宾
解决方案
我的回答是
client.on('message', (message) => {
let args = message.content.split(' ');
let command = args.shift();
if (command === 'ban') {
let member = message.mentions.members.first() || message.guild.members.get(args[0]);
if (!member) return message.reply('pls mention a member or write ID for BAN');
if (!message.member.hasPermission('BAN_MEMBERS')) return message.reply('You has no permission for ban members');
if (message.member.roles.highest.position <= member.roles.highest.position) return message.reply(`You can't ban member with the same or highest role position`);
if (!member.manageable) return message.reply('I cant ban this member');
member.ban();
}
});
推荐阅读
- c - 为什么这个用于计算每个长度的单词数的代码不起作用?
- reactjs - 在我的项目中使用 mobx 时是否有问题,错误是“当前未启用对实验语法 'decorators-legacy' 的支持”
- android - 如何与安卓联系人同步
- javascript - 在 ES6 类语法中为什么 setPrototypeOf() 工作而其他类似方法不工作
- python-3.x - 通过 urllib.request 发送 http 帖子时如何修复“此 QueryDict 实例是不可变的”
- linux - prometheus yml配置文件中如何配置特定IP?
- .net - 在 DateTime 中,仅使用了 64 位中的 62 位。负值不在规范中。我如何表示日期 BC?
- javascript - 使用 Javascript 以外的方式过滤数据
- android - Android Studio Fragment 将上下文传递给自定义 Gridview
- c# - mvc web api身份验证令牌cors问题