像用户一样调用命令

时间:2020-02-02 08:27:54

标签: discord.py-rewrite

我有一个要调用的命令,就好像用户输入的命令不一致时一样,但是我对如何实现它一无所知。

我想作为用户调用它来使用after_invoke装饰器,因为执行await self.first(msg)不允许我使用@first.after_invoke装饰器。有办法吗?


class Bots(commands.Cog):
    def __init__(self,client):
        self.bot=client


    @command()
    async def first(self,msg):
        await msg.send("OK")

    @first.after_invoke
    async def first_after(self,msg):
        return None


    @command()
    async def second(self,msg):
        await self.first(msg)


def setup(bot):
    bot.add_cog(Bots(bot))

1 个答案:

答案 0 :(得分:0)

这是我的sudo命令,可能对您有用。但是,您应该进一步解释您的问题,并提供一些示例说明您尝试过的方法,因为我在这里对您的问题并不完全理解。希望这会有所帮助!

@checks.is_owner()
@commands.command(hidden=True, description="Force a user to run a command")
async def sudo(self, ctx, user: discord.Member, *, command):
    message = ctx.message
    prefix = await self.bot.get_prefix(message)
    message.author = user
    message.content = prefix + command
    await self.bot.invoke(await self.bot.get_context(message))