discord.py bład bota

0
import discord

client = discord.Client()

@client.event
async def on_ready():
  print('{0.user} jest gotowy'.format(client))

@client.event
async def on_message(message):
  if message.content.startswith('!xd')
    channel = message.channel
    
    dmgy = []

    async def dmgf():  #--------------------------------------------------------funkcja dmgf()
      await channel.send("Podaj nicki DMG [" + pt.content + "]:")
      dmg = await client.wait_for('message')
    
      dmgy = dmg.content
      dmgy = dmgy.split()
      
      await channel.send(dmgy)
      if dmg == "abc" 
         await channel.send("Nie może być takiego nicku")
         dmgf()
        
    dmgf() #-----------------------------------------------------------------------wywolanie funkcji dmgf()

client.run(os.getenv('TOKEN'))

Chcę zrobić prostego bota na discorda, który będzie pobierał potrzebne informacje od użytkownika i losował drużyny według pewnego schematu. Chcę jednak zrobić, że jak użytkownik poda złe dane to bot będzie chciał ponownie poprosić o dane. Ma się to odbywać za pomocą funkcji lecz gdy mam taki kod jak powyżej to wyskakuje mi tak bład:

main.py RuntimeWarning: coroutine 'on_message.<locals>.dmgf' was never awaited
dmgf()
RuntimeWarning: Enable tracemalloc to get the object allocation traceback

Jak mogę inaczej umieścić tę funkcję? Czy może mogę zrobić to innym sposobem?

1

Co do pythona - nie pomogę Ci, nie znam tego języka na tyle dobrze. Pisałem bot do pythona w Delphi używając TWKEBrowser(mało znany komponent). Jedyny problem jaki z nim miałem to captcha oraz discord w języku chińskim). Bot miał za zadanie informować o nowościach na kanale, poza tym sprawował się dobrze! Na innych komponentach discord nie chciał nawet się załadować - być może gdzieś w tym jest problem.

2

Nie wystarczy po prostu dopisać await przed wywołaniami dmgf()?

1 użytkowników online, w tym zalogowanych: 0, gości: 1