Как создать и исключить событие js для автоматического удаления роли? - PullRequest
1 голос
/ 31 марта 2020

Я хочу сделать так, чтобы, если пользователь получил указанную c роль, другая указанная c роль автоматически удалялась.

Нужно ли использовать guildMemberUpdate?

Ответы [ 2 ]

1 голос
/ 31 марта 2020

Да, вы правы. Вам необходимо использовать событие guildMemberUpdate для отслеживания того, когда пользователь получает / удаляет роль.

client.on('guildMemberUpdate', (oldMember, newMember) => {

  const oldRoles = oldMember.roles;
  const newRoles = newMember.roles;

  // Check roles and execute your code.
});

Так что с помощью oldRoles / newRoles вы можете легко увидеть, получил ли пользователь роль и, как следствие, действовать.

0 голосов
/ 02 апреля 2020
client.on('guildMemberUpdate', (oldMember, newMember) => { 
 const firstRole = newMember.guild.roles.cache.find((r) => r.name == "firstRole");
    const secondRole = newMember.guild.roles.cache.find((r) => r.name == "secondRole" );
    if (newMember.roles.cache.has(firstRole.id) && newMember.roles.cache.has(secondRole.id)) {
        newMember.roles.remove(firstRole.id, "Had the first role");
    }

});
...