gpt4 book ai didi

python - 我如何在 Python 中为 discord 机器人创建重新加载命令?

转载 作者:行者123 更新时间:2023-12-05 01:45:41 25 4
gpt4 key购买 nike

我正在尝试弄清楚如何制作一个命令来“重新加载”Discord Bot 的命令,并允许我在添加新命令时让机器人保持运行。

这只会让我的生活更轻松,所以我不必重新启动机器人。

我正在使用 discord.py 库与 discord API 交互。

我怎样才能做到这一点?

最佳答案

这个问题可能迟到了,但无论如何我都会发布

您应该查看 Discord.py 中所谓的“Cogs”是如何工作的。 The bot from Rapptz (主要维护 Discord.py 的人)有一些很好的例子,如何将你的 bot 组织成 Cogs 以及如何加载/卸载/重新加载它们(参见 cogs/admin.py)。

@commands.command(hidden=True)
@checks.is_owner()
async def load(self, *, module : str):
"""Loads a module."""
try:
self.bot.load_extension(module)
except Exception as e:
await self.bot.say('\N{PISTOL}')
await self.bot.say('{}: {}'.format(type(e).__name__, e))
else:
await self.bot.say('\N{OK HAND SIGN}')

@commands.command(hidden=True)
@checks.is_owner()
async def unload(self, *, module : str):
"""Unloads a module."""
try:
self.bot.unload_extension(module)
except Exception as e:
await self.bot.say('\N{PISTOL}')
await self.bot.say('{}: {}'.format(type(e).__name__, e))
else:
await self.bot.say('\N{OK HAND SIGN}')

@commands.command(name='reload', hidden=True)
@checks.is_owner()
async def _reload(self, *, module : str):
"""Reloads a module."""
try:
self.bot.unload_extension(module)
self.bot.load_extension(module)
except Exception as e:
await self.bot.say('\N{PISTOL}')
await self.bot.say('{}: {}'.format(type(e).__name__, e))
else:
await self.bot.say('\N{OK HAND SIGN}')

( Snippet from cogs/admin.py )

关于python - 我如何在 Python 中为 discord 机器人创建重新加载命令?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40667445/

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