Задать вопрос
@Arrian

Как сделать выдачу ролей по реакциям?

Пишу своего бота для дискорда, нашлась проблема не получается сделать авто выдачу ролей по реакциям. Реакции у меня загружени на канал в дискорде. Вот код как я пытался сделать по документации. Помогите, где надо исправте. Заранее спасибо!
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')
  • Вопрос задан
  • 2269 просмотров
Подписаться 2 Средний Комментировать
Пригласить эксперта
Ответы на вопрос 1
Alexandre888
@Alexandre888 Куратор тега Боты
Javascript-разработчик
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы