discord.py Bot, DM'lerdeki girdilere yanıt vermiyor

Dec 23 2020

Yapmaya çalıştığım şey : Mesaj yazarından botla DM'lerinde bir yanıt almak.

Benim sorunum : Bot DM'lerde kendisine mesaj gönderildiğinde beklediğim gibi yanıt vermiyor. Hata mesajı yok.

Kod :

@client.command()
async def test(ctx):
    await ctx.send("Sending a dm now")
    def check(message):
        return message.author == ctx.author and message.channel == discord.channel.DMChannel
    try:
        await ctx.author.send("Say test: ")
        response = await client.wait_for('message', check=check)
        if response.content.lower() == 'test':
            await ctx.send("Test successful")
        elif response.content.lower() == 'banana':
            await ctx.author.send("That works too")
    except:
        # do things here

Görseller :

(Yukarıdaki resim) Verilen koşullar yerine getirilmesine rağmen yanıt verilmez.

Başvurduğum Referanslar / Diğer Sorular :

  • Discord.py Kanalın bir DM olup olmadığını kontrol edin
  • discord.DMChannel API Başvurusu
  • Discord.py - DM'yi belirli bir mesajla yanıtla
  • Discord.py bot: Discord botumun, kullanıcıların DM'lerde örneğin bir anket için kullandıkları bir komuta yanıt göndermesini nasıl sağlayabilirim?

Yanıtlar

1 NuKeFluffy Dec 23 2020 at 09:49

Çekinizle ilgili bir sorun var, yazdırırsanız message.channelşunları alacaksınız:

Direct Message with username#1234

Ve yazdırırsanız discord.channel.DMChannelşunları alırsınız:

<class 'discord.channel.DMChannel'>

Bunların iki farklı şey olduğunu fark edeceksiniz, çekinizi buna göre değiştirmeniz sorunu çözecektir:

def check(message):
    return message.author == ctx.author and str(message.channel.type) == "private"