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

让它只有具有特定角色的人才能使用命令。在discord.jsv12

华星驰
2023-03-14

我有一个机器人,如果你在非命令通道中使用命令,它会发送一条消息,告诉你只在正确的通道中使用命令,但我希望它不会影响员工角色的人,这是我的代码,我得到了这个错误TypeError:无法读取null的属性角色我的代码:

client.on('message', message => {

if(!message.member.roles.cache.has(784236433975541771)) {

  if (message.content.startsWith("-")) {
  if (message.channel.id === '759066524605612108') return;
  if (message.channel.id === '775035651640918067') return;
  if (message.channel.id === '777287305580511262') return;
    message.channel.send('You have been pinged in the <#759066524605612108> channel with the results to your command. Please only use commands there.');
  }else
  if (message.content.startsWith("!")) {
  if (message.channel.id === '759066524605612108') return;
  if (message.channel.id === '775035651640918067') return;
  if (message.channel.id === '777287305580511262') return;
    message.channel.send('Rank has been disabled in this channel. Please only use commands in the <#759066524605612108> channel.');
  }
}
});

我试图这样做是不和谐的。JSV12

共有2个答案

谈炳
2023-03-14

您可以尝试这样做,以允许具有特定角色的成员使用您的命令:

let allowedRole = message.guild.roles.find("name", "Staff");
if (message.member.roles.has(allowedRole.id) {
    // allowed access to command
} else { //aka members who arent staff 
   // not allowed access
}
方长卿
2023-03-14

如果有人发现了这个,并且正在寻找我使用的答案let allowedRole=message。公会角色。隐藏物查找(r)=

 类似资料:
  • 我搜索了以下内容:,但没有找到任何内容。 JDA版本:

  • 问题内容: 我需要制作一个只能由具有特定角色的人执行的命令。我在google和youtube上搜索以找到答案,但一无所获 问题答案: 您可以在命令上添加装饰器,以将其限制为仅具有特定角色或权限的成员。它的文档在这里。它看起来像这样: 请记住,您传递的字符串区分大小写。

  • 我正在制作一个userinfo命令,我希望它显示用户拥有的所有角色。对于我正在使用的消息发送者,'+r.name+',但是当我将它用于消息作者要提到的用户时()这是代码:'+r.name+'它会让这一切成功的方法?

  • 我需要我的机器人回复一个特定的角色,如果用户没有这个角色,机器人会回复另一条消息说“你不允许执行这个命令”,这是我的代码:

  • 我正在努力为我的服务器做一个discord.js机器人,我为学校里的人做了一个。我试图使一个通道,如果你对某些消息做出反应,它会给你一个角色(它会让你访问该类的文本通道)。 这是我到目前为止所尝试的,但是,它没有给我/其他人对它的角色做出反应,也没有返回错误消息。 另外,如果他们不履行职责,我怎么能做到这一点呢? 编辑:它似乎只从机器人启动后发送的缓存消息/消息中获得反应。此外,第一个if(mes