如何检查某个服务器/公会的角色?
方案: 我有两个不和谐的服务器,一个旧的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 + ")");
});
答案 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.');
}
});
}
});