是否可以为每个齿轮设置前缀?
例如,具有管理命令的 Cog 具有前缀pa!和一些有趣命令的 cog pf!。
不使用on_message.
编辑:我想我必须更详细:
pa!pf!到目前为止我唯一的想法是将默认前缀设置为p!然后调用命令astats。但我想有更好的方法。
为了扩展 Maxsc 的答案,您可以定义一个cog_check方法,该方法将在 cog 的每个命令之前调用:
class FunCommands(commands.Cog):
def __init__(self, bot):
self.bot = bot
self.prefix = "pf!"
async def cog_check(self, ctx):
return ctx.prefix == self.prefix
Run Code Online (Sandbox Code Playgroud)
在主代码中,您可以使用可调用函数来消耗 cogs 中的前缀来确定要注意哪些前缀。这将被传递为你的command_prefix
def get_prefixes(bot, message):
cog_prefixes = (cog.prefix for cog in bot.cogs.values() if hasattr(cog, 'prefix'))
default_prefixes = ("!")
return (*cog_prefixes, *default_prefixes)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
968 次 |
| 最近记录: |