Настраиваемая выдача ролей за реакции discord.py
Хочу добавить в своего бота настраиваемую выдачу ролей за реакцию по команде. Вводишь команду, вводишь необходимую информацию, бот ставит под этим сообщением реакцию, а при нажатии на реакцию выдаёт роль. Функция выдачи ролей работает безупречно, если вручную ввести цифры в сам код, но при получении этих данных извне, из сообщений, уже ничего не работает. Я пытался многими способами, но ничего не вышло. Бот ставит реакцию под сообщение, но вот при нажатии на реакцию, он не проходит проверку и, соответственно, не выдаёт роль. Вот код:
import discord
from discord import channel
from discord.ext import commands
import random
from copy import *
from Novirbot.autharisation import token #delete this becouse this is function from other file
from Novirbot.image import Draw
import time
client = commands.Bot( command_prefix = '#') #you can choose other prefix
language = 'ru'
#reacting role
message_id = [1011221913936351352]
emoji = ['?']
role_id = [976819294623109140]
#creating reaction role
@client.command(Pass_context = True)
async def reactroll(ctx):
if language == 'ru':
await ctx.send('Отправьте id сообщения')
else:
await ctx.send('Send id of message')
mess = await client.wait_for('message')
message_id_ = int(mess.content)
if language == 'ru':
await ctx.send('Отправьте эмодзи')
else:
await ctx.send('Send emoji')
mess2 = await client.wait_for('message')
emoji_ = mess2.content
if language == 'ru':
await ctx.send('Отправьте id роли')
else:
await ctx.send('Send id of role')
mess3 = await client.wait_for('message')
role_id_ = int(mess3.content)
message = await ctx.fetch_message(message_id_)
await message.add_reaction(emoji_)
message_id.append(message_id_)
emoji.append(emoji_)
role_id.append(role_id_)
#role
@client.event
async def on_raw_reaction_add(payload):
if payload.message_id in message_id and payload.emoji in emoji:
member = payload.member
guild = payload.guild
role = guild.get_role(role_id)
await member.add_roles(role)