Discord.js检查角色

时间:2017-03-31 02:55:49

标签: javascript discord

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

方案: 我有两个不和谐的服务器,一个旧的3k​​ +人,另一个新的:只有选定的人可以加入,我的机器人都在。 我一直在通过PM发出邀请,但我想公开邀请链接 但只有某些人可以加入新服务器,只有那些拥有" OG"角色,如果他们在服务器1中没有这个角色,那么每当他们尝试加入时,他们就会被服务器二踢出/禁止

到目前为止,我有这个:

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 + ")");

});

1 个答案:

答案 0 :(得分:1)

只要您拥有服务器的Guild对象,就要检查客户端公会列表中的角色,这并不难。您需要做的就是找出要检查权限的Guild的id字符串。然后,您需要从另一个Guild获取用户的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.');
      }
    });
  }
});