• Как определить кол-во различный реакций, которые находятся на последнем сообщении бота?

    Всё что в данном коде неверно:
    1. @Bot.event только у события добавления реакции. Декоратор события должен быть у всех событий.
    2. Аргумент self у событий есть только в модулях (cogs). И представляет собой сам модуль
    3. if Y > N: ... выполняется только один раз - при запуске файла. Необходимо сделать чтобы оно либо менялось при обновлении (получении/удалении реакции), либо непосредственно перед выводом результата
    4. Ключевой (kwarg) аргумент pass_context не существует в текущей версии discord.py. Контекст передаётся в функцию команды первым аргументом всегда (за исключением момента с нахождением команды в вышеупомянутом "модуле")
    5. Объект "сообщение" не итерируемый
    6. PEP8 Naming Conventions: "CamelCase" названия переменных обозначают classы.


    Один из вариантов решения:
    voting_message = None
    @Bot.command()
    @commands.has_permissions(administrator=True)
    async def startvote(ctx):
        embed = discord.Embed(...)  # embed goes here
        voting_message = await ctx.send(embed=embed)
    
    @Bot.command()
    @commands.has_permissions(administrator=True)
    async def endvote(ctx):
        msg = await bot.get_channel(voting_message.channel.id).fetch_message(voting_message.id)
        y = discord.utils.get(msg.reactions, emoji="\N{WHITE HEAVY CHECK MARK}").count
        n = discord.utils.get(msg.reactions, emoji="\N{CROSS MARK}").count
        if y>n:
            result = "Принято"
        elif y==n:
            result = "Отказано (да = нет)"
        else:
            result = "Отказано"
        emb = discord.Embed(title=f'Окончено голосование.', description = 'Результат: ' + result, colour=discord.Color.purple())
        return await ctx.send(embed=emb) # **Возвращаем** сообщение после отправки.
        y, n = 0, 0
    Ответ написан
    Комментировать