मैं क्या करने का प्रयास कर रहा हूं: संदेश लेखक से उनके डीएम में बॉट के साथ प्रतिक्रिया प्राप्त करने के लिए।
मेरी समस्या: जब डीएम में संदेश भेजा जाता है तो बॉट प्रतिक्रिया नहीं देता है जैसा कि मैं उम्मीद कर रहा हूं। कोई त्रुटि संदेश नहीं हैं।
कोड:
@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
छवियां:
(ऊपर की छवि) दी गई शर्तों को पूरा करने के बावजूद कोई प्रतिक्रिया नहीं दी जाती है।
संदर्भ/ अन्य प्रश्न जिनका मैंने उल्लेख किया है:
- Discord.py जांचें कि क्या चैनल एक DM है
- discord.DMChannel API संदर्भ
- Discord.py - एक विशिष्ट संदेश के साथ DM को उत्तर दें
- Discord.py bot: मैं अपने डिसॉर्डर बॉट को एक कमांड के प्रति प्रतिक्रिया कैसे भेजूंगा जो उपयोगकर्ता डीएम में उपयोग करते हैं उदा। एक सर्वेक्षण के लिए?
1 उत्तर
आपके चेक में कोई समस्या है, अगर आप message.channel
प्रिंट करते हैं तो आपको मिलेगा:
Direct Message with username#1234
और अगर आप discord.channel.DMChannel
प्रिंट करते हैं तो आपको मिलेगा:
<class 'discord.channel.DMChannel'>
आप देखेंगे कि वे दो अलग-अलग चीजें हैं, इस पर अपना चेक बदलने से समस्या ठीक होनी चाहिए:
def check(message):
return message.author == ctx.author and str(message.channel.type) == "private"
संबंधित सवाल
जुड़े हुए प्रश्न
नए सवाल
python
पायथन एक बहु-प्रतिमान है, गतिशील रूप से टाइप किया हुआ, बहुउद्देशीय प्रोग्रामिंग भाषा है। यह एक साफ और एक समान वाक्यविन्यास सीखने, समझने और उपयोग करने के लिए त्वरित होने के लिए डिज़ाइन किया गया है। कृपया ध्यान दें कि अजगर 2 आधिकारिक तौर पर 01-01-2020 के समर्थन से बाहर है। फिर भी, संस्करण-विशिष्ट पायथन सवालों के लिए, [अजगर -२.०] या [अजगर -३.x] टैग जोड़ें। पायथन वेरिएंट (जैसे, ज्योथन, PyPy) या लाइब्रेरी (उदा।, पांडस और न्यूमपी) का उपयोग करते समय, कृपया इसे टैग में शामिल करें।
message.channel == discord.channel.DMChannel
ही आपको समस्या का कारण बना रहा है।