javascript - 最近我建立了discord bot,主要问题是,我不知道如何设置权限,所以我服务器的每个成员都可以踢和禁止其他人
问题描述
module.exports = { name: 'ban', description: "这个命令禁止一个成员!", execute(message, args){
const member = message.mentions.users.first();
if(member){
const memberTarget = message.guild.members.cache.get(member.id)
memberTarget.ban();
message.channel.send("User has been banned");
}else{
message.channel.send('you couldnt ban that member');
}
}
}
module.exports = { name: 'kick', description: "This command kicks a member!", execute(message, args){
const member = message.mentions.users.first();
if(member){
const memberTarget = message.guild.members.cache.get(member.id)
memberTarget.kick();
message.channel.send("User has been kicked");
}else{
message.channel.send('you couldnt kick that member');
}
}
}
解决方案
.hasPermission()
我们可以简单地使用对象的功能检查用户的权限GuildMember
。我们可以简单地将它与一个简单的 if 语句集成,其中包括您要检查的权限:
if (!message.member.hasPermission('BAN_MEMBERS') return; // Would return if the message author does not have permission to Ban Members
if (!message.member.hasPermission('KICK_MEMBERS') return; // Same thing for the Kick Members permission.
推荐阅读
- php - 从 laravel 7 升级到 laravel 8
- ios - Xib 文件 UITableViewCell 出口为零
- mongodb - MongoDB Ops Manager 备份失败
- python - 根据行分组修改数据框并根据条件更新列
- apache-spark - 我可以在 PARTITION BY 中使用正则表达式吗?
- python - 什么是虚拟环境和目录,为什么要使用它们以及如何在我的系统中实现?
- spring-boot - 不使用 Spring boot 2.4.x RELEASE 加载 data.sql
- r - 如何从列表的子元素创建矩阵?(在 R 中)
- bash - 如何获取具有未知特定模式的目录的名称,然后 cd 到它(在 bash 中,在 macOS 上)
- java - ClassPathXmlApplicationContext 未正确解析 spring 配置