当前位置: 首页 > 知识库问答 >
问题:

最近我建立了discord机器人,主要的问题是,我不知道如何设置权限,所以我的服务器的每个成员都可以踢和禁止其他人

韶镜
2023-03-14

module.exports={name:'ban',description:“此命令禁止成员!”,execute(消息,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');
    }
}

}

共有1个答案

姬魁
2023-03-14

我们可以简单地使用Guild成员对象的. hasPersion()函数检查用户的权限。我们可以简单地将它与一个简单的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.
 类似资料:
  • 我有一个不和谐机器人,定期检查数据库中的一些数据,如果有更新,它会向通道输出一些内容。所以我设置了一个每小时运行一次的函数。 当机器人被添加到多个服务器时,问题就出现了,在这些服务器中,消息只被发送到特定的,因此消息只被发送到我的服务器通道。本质上,我只向我的渠道发送通知,我怎么能向每个拥有我的机器人的渠道发送通知,这可能吗?

  • 我有一本安装了Android Studio的 Macbook。由于我有使用格拉德的项目(而Android Studio也使用格拉德),我会假设我在机器的某个地方安装了格拉德。但是,如果我在终端中键入,我得到。那么,我是因为我有Android Studio而自动安装了渐变,还是必须运行? 我知道这是一个糟糕/愚蠢的问题,但我只想确保我不会安装 Gradle 两次。

  • 问题内容: 每次我运行使用Flask-SQLAlchemy的应用程序时,都会收到以下警告,提示该SQLALCHEMY_TRACK_MODIFICATIONS选项将被禁用。 我试图找出此选项的作用,但是Flask-SQLAlchemy文档尚不清楚该跟踪的用途。 · 如果设置为True(默认值),Flask-SQLAlchemy将跟踪对象的修改并发出信号。这需要额外的内存,如果不需要,可以将其禁用。

  • 我在努力制造一个不和谐的机器人。基本上,我想做的是为服务器中的每个人分配一个“pts”变量。我的bot中有一个事件处理程序和命令处理程序。 这是我的事件处理程序。js: 这是我的命令处理程序。js: 我还有一个guildMemberAdd事件,它有一个guildMember变量,向guildMember添加一个成员角色,并发出欢迎消息。在这里(它被称为guildMemberAdd.js): 我在想

  • 因此,我的discord机器人有一个数组,字符串形式的对象可以通过我发出的discord命令推送到该数组中,然后将该数组导出到另一个事件文件中,该文件将检查数组中的这些单词是否存在于消息中。 但是我遇到了一个问题,如果我添加一个单词,让我们从服务器1说“a”,然后从服务器2说“b”,然后对机器人所在的每一台服务器都检查单词a和b,这绝对不是我所说的通缉。 我尝试使用maps(),但由于某些原因,我

  • 下面是代码: 出于某种原因,即使我使用用户id,bot也总是输出“未找到用户”。机器人有权这么做,有人知道解决办法吗?