gpt4 book ai didi

python - 在不终止命令行(discord.py)的情况下关闭 Discord bot 连接

转载 作者:行者123 更新时间:2023-12-05 04:51:38 25 4
gpt4 key购买 nike

目的:在不中断其他命令的情况下添加更多命令

我一直在四处寻找一种在不中断我的机器人流程的情况下推出更新的方法,因为它有一些异步函数在函数被调用后执行一段时间

我试过:等待客户端.logout()

以上将注销机器人,但也会关闭命令行。我在 discord.py 文档中找到了这个。

我运行的是 Windows 10,Python 3.9 版

如有任何帮助,我们将不胜感激。提前致谢。

最佳答案

如果您不想终止当前进程,而只想热重载不同的功能,您可能需要查看 discord.py's extensions feature .使用扩展和齿轮将允许您启用/禁用/重新加载机器人中的某些功能而无需停止它(这应该保持任务运行)。它也是热重载的内置方法。

Extensionscogs通常一起使用(尽管它们不一定是)。您可以为每组要一起重新加载的相似命令创建文件。

以下代码示例应集成到您的设置中。您可能还想添加错误处理和输入检查,但它应该让您了解发生了什么。有关详细说明或方法选项,请查看 docs .

# info.py

# ...
# this is just an example
class Info(commands.Cog):
def __init__(self, bot):
self.bot = bot

@commands.command()
async def about(self, ctx):
await ctx.send("something here")

# ...

# extensions need a setup function
def setup(bot):
bot.add_cog(Info(bot))
# main.py

# ...

bot = commands.Bot(
# ...
)
bot.load_extension("info")

bot.run(token)
# reload command
@bot.command()
async def reload(ctx, extension):
# probably want to add a check to make sure
# only you can reload things.
# also handle the input
bot.reload_extension(extension)
to use, you might do something like `prefix!reload info`

关于python - 在不终止命令行(discord.py)的情况下关闭 Discord bot 连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66835504/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com