Удаление реакции пользователя discord.py
Мне нужен код, который будет удалять реакции пользователя в определенном канале, то есть если пользователь поставил реакцию под сообщеним, то удалить её. Но я ни как не могу совместить on_raw_reaction_add и remove_reaction. Вот код который я использую
import discord
from discord.ext import commands
bot = commands.Bot(command_prefix='>')
class MyClient(discord.Client):
async def on_raw_reaction_add(self,message):
if message.channel_id == "762253503388450839":
bot.remove_reaction(message.channel_id,message.message_id,message.name,message.user_id)
client = MyClient()
client.run('xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx')
И да, почему-то в строчке bot.remove_reaction, ставится перенос строки, ставится он когда я пишу на форуме, когда я выполняю код, всё нормально Этот код выводит ошибку, как это можно пофиксить, и достичь нужного результата?
Ответы (1 шт):
Автор решения: MrShandy
→ Ссылка
Вот это точно работает, id канала замени на свой. На клиенте никогда не работал, так что только так.
@bot.event
async def on_raw_reaction_add(payload):
channelid = payload.channel_id
user = payload.member
messageid = payload.message_id
if channelid == 676489052584804365:
channel = bot.get_channel(channelid)
message = await channel.fetch_message(messageid)
for reaction in message.reactions:
await reaction.remove(user)
else:
return