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')