Python бот в дискорде

Как сделать так что-бы при реакции на сообщение выдавалась роль при помощи @bot.event? только пожалуйста не пишите написать код который выдаёт роль при реакции на сообщение при помощи @bot.event или что-то подобное.


Ответы (3 шт):

Автор решения: Corrygan

Вроде так. Можно доп.проверки поставить по типу member.id или message.id, это в кратце. Могу ошибаться, просто в комментарии киньте ошибку, давно не работал с этим эвентом.

@bot.event
async def on_raw_reaction_add(payload):
    if payload.channel_id == ID:
        member = payload.member
        guild = bot.get_guild(guildID)
        role = discord.utils.get(guild.roles, id=roleID)
        emoji=payload.emoji
        if emoji.name == 'reactionName':
            member.add_roles(role)
→ Ссылка
Автор решения: Corrygan

Если используешь emoji.name, то вводи название эмодзи, в таоем случае нужно:

if emoji == ?:

И перед async def on_raw_reaction_add(payload); должна быть строка @bot.event

→ Ссылка
Автор решения: Jagern Jagern
import discord
from discord.ext import commands

bot = commands.Bot(command_prefix='>')

@bot.event
async def on_raw_reaction_add(payload):
    if payload.channel_id == 970677750002221086:
        member = payload.member
        guild = bot.get_guild(901197387077390386)
        role = discord.utils.get(guild.roles, id=902953653168660480)
        emoji=payload.emoji
        print(1)
        if emoji.name == 'video_game':
            member.add_roles(role)
            print(1)
        else:
            print('ошибка')
bot.run('token')
→ Ссылка