Python 3.8.1 Discord.py Переписать реакции - PullRequest
1 голос
/ 30 апреля 2020

В настоящее время я занимаюсь разработкой специального диска для моего сервера. Я (пытаюсь) создать систему голосования. Таким образом, пользователь делает -poll yn poll question. часть yn описывает тип вопроса, такой как да / нет. это то, что я до сих пор:

@client.command()
async def poll(ctx, typee, *, msgg):
    if typee=='yn':
        msg = await ctx.channel.send("@everyone " + msgg)
        reactions = ['a']
        for emoji in reactions: 
            await client.add_reaction(msg, emoji)
        await ctx.message.delete()

при запуске этого я получаю ошибку:

discord.ext.commands.errors.CommandInvokeError: Command raised an exception: AttributeError: 'Bot' object has no attribute 'add_reaction'

Я использую переписать и python 3.8.1

Ответы [ 2 ]

3 голосов
/ 30 апреля 2020

Метод add_reaction является частью объекта сообщения, а не объекта клиента. Вам нужно await msg.add_reaction(emoji) вместо await client.add_reaction(msg, emoji)

Еще одна вещь, если вы не знали, 'a' не является действительным смайликом.

0 голосов
/ 30 апреля 2020

Вы хотите сделать await msg.add_reaction(emoji) вместо await client.add... Я верю.

Я предполагаю, что вы знаете, "a" не является действительным смайликом, вы можете найти словарь имен против Unicode для них здесь

Также, возможно, лучше избегать включения @everyone, если это может быть использовано кем-либо! Вы можете ограничить это для людей с определенными разрешениями, или вы сами как владелец. Вы можете сделать это с декораторами, вы можете найти большой список этих здесь .

...