@Bezola

Как отправить сообщение в цикле on_message в discord.py?

Хочу сделать так, чтобы при получении баллов бот писал в чат, но выдает ошибку
File "C:/Users/User/PycharmProjects/Rank_system/main.py", line 35, in on_message
await ctx.send('Вы успешно зарегистрированы!')
AttributeError: 'Message' object has no attribute 'send'


Вот код:

@bot.event
async def on_message(ctx):
    author = ctx.author
    users_data = list(json_checker.load_stats_data())  # получаем данные со stats.json

    with open("stats.json", "w") as f:  # Проверка на наличие пользователя в базе
        user_is_not_exists = True
        for user in users_data:
            if user['author'] == ctx.author.id:
                user['exp'] += 1
                user_is_not_exists = False
                print('пользователю', author, 'Добавлено xp (+1)')

        if user_is_not_exists:
            users_data.append({'author': ctx.author.id, "exp": 1})
            print('пользователь', author, 'зарегестрирован')
            await ctx.send('Вы успешно зарегистрированы!')
        json.dump(users_data, f)


Как сделать чтобы бот отправлял сообщения? Если возможно, объясните почему не работает?
  • Вопрос задан
  • 642 просмотра
Решения вопроса 1
Vindicar
@Vindicar
RTFM!
Наверно, потому что ctx.author.send(), если нужно написать в приват автору. Или ctx.channel.send(), если сообщение пришло с сервера и нужно ответить там же.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
Событие on_message принимает сообщение, контекст существует только в командах.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы