discord.py Bot tidak menanggapi masukan dalam DM
Apa yang saya coba lakukan : Untuk menerima tanggapan dari penulis pesan di DM mereka dengan bot.
Masalah saya : Bot tidak merespons ketika pesan dikirim ke sana di DM seperti yang saya harapkan. Tidak ada pesan kesalahan.
Kode :
@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
Gambar :
(Gambar di atas) Tidak ada respons yang diberikan meskipun kondisi yang diberikan terpenuhi.
Referensi / Pertanyaan Lain yang saya rujuk :
- Discord.py Periksa apakah Channel adalah DM
- discord.DMChannel API Reference
- Discord.py - Balas ke DM dengan pesan khusus
- Discord.py bot: bagaimana cara membuat bot perselisihan saya mengirimkan tanggapan kepada saya atas perintah yang digunakan pengguna di DM, misalnya untuk survei?
Jawaban
1 NuKeFluffy
Ada masalah dengan cek Anda, jika Anda mencetak message.channel
Anda akan mendapatkan:
Direct Message with username#1234
Dan jika Anda mencetak, discord.channel.DMChannel
Anda akan mendapatkan:
<class 'discord.channel.DMChannel'>
Anda akan melihat ada dua hal yang berbeda, mengubah cek Anda menjadi ini seharusnya memperbaiki masalah:
def check(message):
return message.author == ctx.author and str(message.channel.type) == "private"
Selalu Menjadi Ancaman: Mengapa Orang Berkulit Coklat dan Hitam Tidak Bisa Nyaman di Amerika Serikat
Taylor Sheridan Baru Menambahkan 1 Bintang 'Yellowstone' Favoritnya ke Pemeran 'Lawmen: Bass Reeves'