【发布时间】:2021-04-27 06:43:28
【问题描述】:
我有一个 discord 机器人,我用它来学习如何使用 API 和练习我的 Python 知识。我正在尝试创建一个随机选择状态并应用它的系统,然后等待很短的时间,目前为 10 分钟,然后无限继续,直到机器人关闭。目前,我的on_ready() 函数中有循环,但机器人在短时间内(不到 10 分钟,大约 2-3 分钟)后关闭,我不知道为什么。目前的代码是这样的:
@client.event
async def on_ready():
print("We have logged in as {0.user}".format(client))
infiniteTime = 1
while infiniteTime != 20:
statusType = random.randint(0, 1)
if statusType == 0:
statusNum = random.randint(0, 10)
await client.change_presence(status=discord.Status.online, activity=discord.Activity(type=discord.ActivityType.playing, name=playingStatus[statusNum]))
else:
statusNum = random.randint(0, 10)
await client.change_presence(status=discord.Status.online, activity=discord.Activity(type=discord.ActivityType.watching, name=watchingStatus[statusNum]))
time.sleep(600)
watchingStatus 和 listeningStatus 是包含 11 个字符串的一维数组。感谢任何帮助/反馈,因为我是 API 新手。干杯!
ETA:应该澄清一下,我已经意识到在on_ready() 函数中包含代码意味着它永远不会结束,因此不能做任何其他事情。我之所以问,是因为我不知道为什么机器人会在不停止代码的情况下在 Discord 结束时关闭,而且我不知道我应该把这个循环放在哪里,因为我是这个 async/await 系统的新手,并且API 功能的方式。
【问题讨论】:
标签: python python-3.x discord discord.py