मैं वर्तमान में एक बॉट पर काम कर रहा हूं जो कंसोल पर किसी को बॉट के माध्यम से लोगों के साथ संवाद करने की अनुमति देता है। हालांकि मुझे एक समस्या आई है। इनपुट कमांड काम नहीं करता है। मुझे वास्तव में परवाह नहीं है कि यह अपने ट्रैक में कोड को रोकता है, क्योंकि मैं वैसे भी स्वयं होस्टिंग करूँगा, और वास्तव में बॉट का उपयोग करने के लिए टर्मिनल पर होना होगा। मेरी समस्या यह है कि इनपुट काम नहीं कर रहा है। इनपुट के संदेश के लिए टर्मिनल में कुछ भी प्रदर्शित नहीं होता है। यहाँ मेरा कोड है अगर यह मदद करता है:

enable = True

@client.event
async def on_message(ctx):
    global previousGld
    if previousGld != ctx.guild:
        print(f"{ctx.author}- {ctx.content} \n From- {ctx.guild} \n")
    else:
        print(f"{ctx.author}- {ctx.content} \n")
    if enable == True:
        res = input("Enter response:")
        if res != "n":
            await ctx.send(f"I say: {res}")
            
    previousGld = ctx.guild
0
Fireye 17 मार्च 2021, 19:43

2 जवाब

सबसे बढ़िया उत्तर

एक समाधान मिला! मैंने aioconsole के बारे में @ सेरेस की टिप दोनों का उपयोग किया, साथ ही इसे रोकने के लिए एक प्रयास कथन का भी उपयोग किया। मदद करने वाले सभी लोगों को धन्यवाद! यहाँ निश्चित कोड है।

import discord
import aioconsole

from discord.ext import commands    
client = commands.Bot(command_prefix=".")
client.remove_command('help')

@client.event
async def on_message(message):
    try:
        if message.author == client.user:
            print(f"\nSent- '{message.content}'\n")
        else:
            print(f"\n\n{message.author}- {message.content}\n")
        res = await aioconsole.ainput('Enter response: ')
        if res == "pass":
            pass
        else:
            await message.channel.send(f"I say: {res}")
    except RuntimeError:
        pass

आपका दिन शुभ हो! :)

0
Fireye 19 मार्च 2021, 04:40

ऐसा इसलिए है क्योंकि आप अपने on_message इवेंट के लिए ctx में पास नहीं होते हैं। इसके बजाय, message में पास करें। साथ ही, जैसा कि @ सेरेस ने बताया, आपको अपनी इनपुट विधि बदलनी चाहिए। सुनिश्चित करें कि आपने अपने टर्मिनल में aioconsole को pip install aioconsole के साथ डाउनलोड किया है।

import aioconsole

@client.event
async def on_message(message):
    global previousGld
    if previousGld != message.guild:
        print(f"{message.author}- {message.content} \n From- {message.guild} \n")
    else:
        print(f"{message.author}- {message.content} \n")
    res = await aioconsole.ainput("Enter response:")
    if res != "n":
        await message.channel.send(f"I say: {res}")
            
    previousGld = message.guild
-2
Aditya Tomar 17 मार्च 2021, 17:47