@dpushin1

Как узнать айди того, кто добавил реакцию?

У меня есть код:
@client.event
async def on_raw_reaction_add(ctx):
    with open('users.json', 'r') as f:
        captures = json.load(f)

    if not str(ctx.author.id) in captures:
        captures[str(ctx.author.id)] = {}
        captures[str(ctx.author.id)]['Captures'] = 0

вызывая его, мне выскакивает ошибка,
'RawReactionActionEvent' object has no attribute 'author'

Да, мб я вообще не так использую метод, но мне нужно, чтобы при добавлении реакции, у меня работало узнавание айди того, кто добавил реакцию.

Сори за сложное построение предложений, а так же, за такой глупый вопрос, я чайник :)
  • Вопрос задан
  • 83 просмотра
Решения вопроса 1
В событие on_raw_reaction_add первым аргументом передаётся не объект типа commands.Context, а объект типа RawReactionActionEvent:
https://discordpy.readthedocs.io/en/stable/api.htm...
https://discordpy.readthedocs.io/en/stable/api.htm...

@client.event
async def on_raw_reaction_add(raw_reaction):
    print(raw_reaction.user_id) # Выведет ID человека, поставившего реакцию
    print(raw_reaction.member.name) # Выведет имя человека, поставившего реакцию, в случае если реакция проставлена на сервере, в противном случае выпадет в ошибку "AttributeError: 'NoneType' object has no attribute 'name'"
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@kirillinyakin
Попробуй написать
print(ctx.__dict__)
Там тебе выдаст словарь со всеми атрибутами, там то и должен быть, атрибут, отвечающий за автора
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы