是一种对命令使用前缀和 ping 的方法吗?

2022-01-15 00:00:00 python discord.py discord.py-rewrite

问题描述

我决定创建一个更有帮助的机器人,并且我想允许以两种方式激活命令:x. 是默认前缀和 @xubot,也就是 ping 机器人.

I've decided to create a much more helpful bot, and I would like to allow the commands to be activated in two ways: x. which is the default prefix and @xubot, aka pinging the bot.

我的命令是这样设置的:

My commands are set out like this:


# sidenote: this is not an actual command ;)

pref = 'x.'
client = Bot(command_prefix=pref)

@client.command(name="example",
               pass_ctx=True)
async def example(ctx, type=""):
    # the "type" parameter is used so i can check if it is "help" and display an embed
    await ctx.send("Test!")


但是,我只能激活带有前缀 x.

However, I can only activate the commands with my prefix, x.

我希望 @xubot example 以及 x.example 运行命令.有没有办法做到这一点?

I would like for @xubot example to run the command, as well as x.example. Is there a way to achieve this?


解决方案

通过commands.when_提到_or 用作您的前缀:

Pass the commands.when_mentioned_or function as your prefix:

from discord.ext.commands import Bot, when_mentioned_or

bot = Bot(command_prefix=when_mentioned_or("x."))

...

相关文章