Вызвать команду как пользователь - PullRequest
0 голосов
/ 02 февраля 2020

У меня есть команда, которую я хотел бы вызвать, как если бы пользователь ввел команду с разногласиями, но я заблудился, как ее достичь.

Я хочу вызвать ее как пользователя, чтобы используйте декоратор 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 голосов
/ 01 марта 2020

Вот моя команда 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))
...