Удалить реакцию на наши собственные сообщения - PullRequest
0 голосов
/ 09 ноября 2019

Я бы хотел, чтобы мой бот убрал реакцию на наши собственные сообщения

@client.event
async def on_raw_reaction_add(payload):
    if payload.channel_id == 614467771866021944 or 469197781308014593:
        if payload.emoji.name == "dev":
            if payload.channel_id == 614467771866021944:
                channel = client.get_channel(614467771866021944)
            if payload.channel_id == 469197781308014593:
                channel = client.get_channel(469197781308014593)
            message = await channel.fetch_message(payload.message_id)
            emoji = get(channel.guild.emojis, name=payload.emoji.name)
            reaction = get(message.reactions, emoji=emoji)
            async for user in reaction.users():
                if user == message.author:
                    # delete the reaction

1 Ответ

0 голосов
/ 14 ноября 2019
if payload.channel_id == 614467771866021944 or 469197781308014593:

эта строка всегда будет оцениваться как True, потому что 469197781308014593 всегда True, как сказано в комментарии, в этих случаях следует использовать ключевое слово in.

        if payload.channel_id == 614467771866021944:
            channel = client.get_channel(614467771866021944)
        if payload.channel_id == 469197781308014593:
            channel = client.get_channel(469197781308014593)

canбыть закороченным до

        channel = client.get_channel(payload.channel_id)

Финальный код:

@client.event
async def on_raw_reaction_add(payload):
    if payload.channel_id in [614467771866021944, 469197781308014593]:
        if payload.emoji.name == "dev":
            channel = client.get_channel(payload.channel_id)
            message = await channel.fetch_message(payload.message_id)
            emoji = get(channel.guild.emojis, name=payload.emoji.name)
            reaction = get(message.reactions, emoji=emoji)
            async for user in reaction.users():
                if user == message.author:
                    await reaction.remove(user)
...