Как мне улучшить свою систему выравнивания в discord.py

#python #discord.py

Вопрос:

недавно я пытался создать бота discord в discord.py. и я подошел к этапу, на котором я создаю систему выравнивания. я закодировал это так:

 if message.content.startswith("%level"):
    epicauthorname = message.author
    channel = message.channel
    counter = 0 
    print (message.author)
    async with channel.typing():
      async for message in channel.history(limit=999):
        if message.author == epicauthorname:
          counter  =1
    print (f"{message.author} used %level at {datetime_object}   they have sent {counter} messages")
    if counter in epicnumber:
      await channel.send (F"{message.author} is level 1 in {message.channel}, they have sent {counter} messages")
 

я уже определил переменные и у меня есть discord.py и дата-время импортированы.
но всякий раз, когда я выполняю свою команду, она не получает нужного количества отправленных мной сообщений и не всегда получает нужного пользователя.
Что я делаю не так?
кроме того, это моя первая публикация на stackoverflow, так что извините, если есть какие-либо проблемы.

Комментарии:

1. В вашем цикле вы перезаписываете message , поэтому, когда вы используете его впоследствии, это будет самое последнее сообщение, а не сообщение, которое запустило эту функцию.

2. Здравствуйте, я настоятельно рекомендую вам использовать событие on_message и сохранить уровни в файл JSON. таким образом, вам не нужно заставлять бота каждый раз просматривать сотни сообщений.