Javascript Discord.js检查角色

Javascript Discord.js检查角色,javascript,discord,Javascript,Discord,如何检查某个服务器/公会的角色 情景: 我有两个discord服务器,一个旧的3k+人,另一个新的:只有被选中的人才能加入,我的机器人在两个服务器上。 我一直通过PM发送邀请,但我想公开邀请链接 但只有某些人可以加入新服务器,只有那些拥有“OG”角色的人,如果他们在服务器1中没有该角色,他们将在尝试加入服务器2时被踢/禁止 到目前为止,我有: bot.on("guildMemberAdd", member => { let guild = member.guild; let use

如何检查某个服务器/公会的角色

情景: 我有两个discord服务器,一个旧的3k+人,另一个新的:只有被选中的人才能加入,我的机器人在两个服务器上。 我一直通过PM发送邀请,但我想公开邀请链接 但只有某些人可以加入新服务器,只有那些拥有“OG”角色的人,如果他们在服务器1中没有该角色,他们将在尝试加入服务器2时被踢/禁止

到目前为止,我有:

bot.on("guildMemberAdd", member => {
  let guild = member.guild;
  let user = member.user;
  // log [join] from each server 
  console.log(user.username + " (" + user.id + ") joined " + guild.name + " (" + guild.id + ")");

});

只要你有服务器的
Guild
对象,你就可以在你客户的行会列表中查看它的角色,这并不难做到。你所需要做的就是找出你想要检查权限的公会的id字符串。然后,您需要从其他公会获取用户的
GuildMember
,并检查其角色。如果他们不在其他公会,或者他们没有这个角色,踢/禁止他们

bot.on("guildMemberAdd", member => {
  let guild = member.guild;
  let user = member.user;
  let oldGuild = bot.guilds.filter(x.id => x === /* put the id string here */);
  let oldGuildMember = oldGuild.member(user);
  if (oldGuildMember == undefined || !oldGuildMember.roles.has('OG')) {
    member.kick().then((kicked) => {
      if (kicked) {
        console.log('Kicked ' + user.name);
      } else {
        console.log('Failed to kick user.');
      }
    });
  }
});

我还没有理解你的实际问题。我修正了我认为更好的问题:)