Пишу своего бота для дискорда, нашлась проблема не получается сделать авто выдачу ролей по реакциям. Реакции у меня загружени на канал в дискорде. Вот код как я пытался сделать по документации. Помогите, где надо исправте. Заранее спасибо!
import discord
client = discord.Client()
@client.event
async def on_ready():
print('BOT connected')
@client.event
async def on_raw_reaction_add(payload):
message_id = payload.message_id
if message_id == 727436421866192907:
guild_id = payload.guild_id
guild = discord.utils.find(lambda g : g.id == guild_id, client.guilds)
if payload.emoji.name == 'Inst':
role = discord.utils.get(guild.roles, name = 'Instagram')
else:
role = discord.utils.get(guild.roles, name = payload.emoji.name)
if role is None:
member = discord.utils.find(lambda m : m.id == payload.user_id, guild.members)
if member is not None:
await member.add_roles(role)
print("Done")
else:
print("Member not found.")
else:
print("Role not")
@client.event
async def on_raw_reaction_remove(payload):
message_id = payload.message_id
if message_id == 727436421866192907:
guild_id = payload.guild_id
guild = discord.utils.find(lambda g : g.id == guild_id, client.guilds)
if payload.emoji.name == 'Inst':
role = discord.utils.get(guild.roles, name = 'Instagram')
else:
role = discord.utils.get(guild.roles, name = payload.emoji.name)
if role is None:
member = discord.utils.find(lambda m : m.id == payload.user_id, guild.members)
if member is not None:
await member.remove_roles(role)
print("Done")
else:
print("Member not found.")
else:
print("Role not")
client.run('TOKEN')