Я делаю бот для проверки и хочу выполнить команду, в которой, если кто-то отключит свою учетную запись Roblox, он удалит у него проверенную роль на всех серверах, на которых они находятся. Я знаю, как это сделать на одном сервере, например:
role1 = discord.utils.get(ctx.guild.roles, name='Verified')
await ctx.author.remove_roles(role1)
Но как мне сделать это на всех серверах, на которых участник находится с ботом. Спасибо!!!
Роль уникальна для каждой гильдии, вам нужно перебрать каждую гильдию, получить участника и роль и удалить ее.
for guild in bot.guilds:
member = guild.get_member(member_id) # Change the ID accordingly
if member is not None:
role = discord.utils.get(guild.roles, name='Verified')
await member.remove_roles(role)
Этот код перебирает каждую гильдию, в которой состоит бот, пытается получить члена, если он не является нетипом (поскольку член не должен делиться этой конкретной гильдией с ботом), он получает роль obj и удаляет ее.
Ссылка:
Также вам нужны intents.guilds
и intents.members