Как сделать проверку на снятие роли пользователю
@client.event
async def on_member_update(remove_roles):
await ctx.channel.send(f'Тест')```
Как сделать проверку на снятие роли участнику. После снятия роли бот отправлял сообщение в чат к примеру: **Пользователю {members.mention} снята роль {role.mentions}
К примеру есть несколько ролей на которые он будет трегерриться
vagos_zam = discord.utils.get(ctx.message.guild.roles, id = 942397028804206615)
ballas_zam = discord.utils.get(ctx.message.guild.roles, id = 942397028804206617)
aztec_zam = discord.utils.get(ctx.message.guild.roles, id = 942397028804206616)
rifa_zam = discord.utils.get(ctx.message.guild.roles, id = 942397028804206614)
Ответы (2 шт):
Автор решения: Максудов Эмиль
→ Ссылка
Ну во первых
discord.on_member_update(before, after)
принимает параметры before & after Во вторых
@bot.event
async def on_member_update(before, after):
a = ['role1','role2','role3'] # сюда пихаем имена ваших ролей
if len(before.roles) < len(after.roles):
for i in after.roles:
if not i in before.roles:
print(type(i.name))
if i.name in a:
print(f"К участнику {before.display_name} добавлена роль {i}")
#Ваше действие
elif len(before.roles) > len(after.roles):
for i in before.roles:
if not i in after.roles:
if i.name in a:
print(f"У участника {before.display_name} снята роль {i}")
#ваше действие
Автор решения: Максудов Эмиль
→ Ссылка
Также, чтобы отправить сообщение в определенный канал используйте
bot.get_channel(id).send("Ваше сообщение")