Python 如何使我的discord机器人按顺序提问和回答?

Python 如何使我的discord机器人按顺序提问和回答?,python,discord,bots,Python,Discord,Bots,我对编码非常陌生,正在努力理解如何让我的discord机器人(我通过python创建)响应不同的代码行 我已经做了一个初步的问题和答案,但是在那之后我无法让机器人做出任何反应 例如,我的机器人将正确响应,直到它被要求检查/返回时间表区域 def setup(): return "Hello! Welcome to the timetable bot. What service would you like? (Timetable / Subjects / Homew

我对编码非常陌生,正在努力理解如何让我的discord机器人(我通过python创建)响应不同的代码行

我已经做了一个初步的问题和答案,但是在那之后我无法让机器人做出任何反应

例如,我的机器人将正确响应,直到它被要求检查/返回时间表区域


def setup():
    return "Hello! Welcome to the timetable bot. What service would you like? (Timetable / Subjects / 
    Homework)"
#End of setup

global userState

def overheard(message, user):
    if "Timetable" in message:
        return timetableenquiry()
    elif "Homework" in message:
        return homeworkenquiry()
    elif "Subjects" in message:
        return subjectsenquiry()
    return "I'm sorry I don't understand that."

def timetableenquiry():
    return ("Okay. What would you like to do with your timetable? (Check / Back)")

def timetablecheck():
    if "Check" in message:
        print("Okay. You can check your timetable at: www.timetableaccess.com")


def homeworkenquiry():
    return ("Okay. What would you like to know about your homework?")

def subjectsenquiry():
    return ("Okay. What would you like to do with your subjects?")


如果不清楚我在问什么,我感谢您的帮助并表示歉意。

您应该使用Message.Content来检测它,您还希望Bot实际键入Discord频道。还要尝试添加前缀,这样机器人就不会随机键入

看看这个:

import discord
import os

client = discord.Client()

@client.event
async def on_message(message): #Defines Message
  
  #If You Type TimeTable, And Role Requirement to Do So

  if message.content.startswith('-timetable'):
     await message.channel.send("Okay. What would you like to do with your timetable? (Check / Back)")
   
  elif message.content.startswith('-homework'):
     await message.channel.send("Okay. What would you like to know about your homework?")

  
  elif message.content.startswith('-subject'):
     await message.channel.send("Okay. What would you like to know about your subject?")

client.run(os.getenv('TOKEN')) 
#Reminder: Put Your Token in a .env File and Write TOKEN=YOUR TOKEN.

编辑:我忘了定义客户端,尝试使用更新后的客户端

对您正在执行的操作有点困惑,很多时候您返回字符串时,它看起来需要像timetablecheck中那样打印语句?调用函数的是什么?如果我使用print而不是返回字符串,那么我如何编写更多代码并继续对话?我的印象是,对我来说,返回一个字符串并在其上创建代码会更容易,但是我也无法让它工作。因此,您将有“用户输入”,然后是一些潜在的“输出”。每个字符串除非打印到控制台,否则不会显示给用户,除非有一些不一致的功能正在处理这个问题?通过快速浏览互联网,我可以看到这篇关于如何创建discord机器人的教程。你有没有学过类似的东西?似乎不仅仅是编写一个控制台应用程序。是的,我很抱歉,我有一组客户端事件来处理代码和discord本身之间的所有交互。我的问题是我对如何编写代码知之甚少。尽管如此,我还是很感谢你的帮助,我想我对如何处理我的报税表和印刷品等有了更好的了解。这是否允许我在“等待”声明之后添加更多选项和进一步的对话?我希望添加更多选项,具体取决于用户的决定。请使用较新的代码,我没有为第一个定义客户端。但是,是的,您可以在等待语句中添加更多选项。但是如果你输入时间表,就给他们链接。这会容易得多,你不需要再加一张支票。