Да, вы правы. Вам необходимо использовать событие guildMemberUpdate
для отслеживания того, когда пользователь получает / удаляет роль.
client.on('guildMemberUpdate', (oldMember, newMember) => {
const oldRoles = oldMember.roles;
const newRoles = newMember.roles;
// Check roles and execute your code.
});
Так что с помощью oldRoles / newRoles вы можете легко увидеть, получил ли пользователь роль и, как следствие, действовать.