我有一个要调用的命令,就好像用户输入的命令不一致时一样,但是我对如何实现它一无所知。
我想作为用户调用它来使用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))
答案 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))