discord.py,同时使用斜杠命令和前缀

Posted

技术标签:

【中文标题】discord.py,同时使用斜杠命令和前缀【英文标题】:discord.py, using slash command and prefix at the same time 【发布时间】:2021-10-02 04:18:54 【问题描述】:

如何在 Discord 中同时运行带前缀的斜线命令?像 mee6 这样的大型机器人可以同时使用前缀 !/,我认为只有一种方法可以在 discord.py 上使用 slahscommands,那就是使用 discord-py-slash-commands,我尝试了很多方法,但都不起作用,我尝试同时使用两个@,如@cog_ext.cog_slash 和@commands.command,但对我来说这是合乎逻辑的,但这只是因为我是python 的初学者。当我在两个单独的齿轮中运行它们时,它会在斜杠命令This interaction failed 或其他某种错误上显示,所以我的问题是是否可以在一个命令上运行斜杠命令和前缀,例如帮助(所以我!help 和 /help),如果是,我该怎么做?

【问题讨论】:

你的第一个问题已经结束,你不应该转发它。 Stack Overflow 不是代码提供服务,您至少需要显示一些 effort 并阅读 How to ask a good question。你有没有想出任何代码? 【参考方案1】:

您需要编写两次命令,一次使用@commands.command,第二次使用@cog_ext.cog_slash

也许如果命令函数很长,或者你只是不想要它两次,你可以将它分拆成另一个你用两个命令调用的函数

async def cmd(author):
    # do your commands stuff here

@commands.command(name="cmd")
async def command_cmd(ctx):
    await cmd(ctx.author) # call the cmd function

@cog_ext.cog_slash(name="cmd") # I'm not 100% sure if it works like that since i 
async def slash_cmd(ctx):      # 
    await cmd(ctx.author) # call the cmd function


【讨论】:

谢谢,这是我的错误,我想是我的耐心,因为我已经尝试过了,但是当我将命令置于不和谐状态时它又失败了,但我又忘记邀请机器人了(或者我需要等待)。对不起,不必要的帖子。

以上是关于discord.py,同时使用斜杠命令和前缀的主要内容,如果未能解决你的问题,请参考以下文章

discord.py前缀命令[关闭]

如何在 discord.py 中进行更改前缀命令?

是否可以在 discord.py 中为不同的前缀使用不同的命令?

自定义前缀 Discord.py

我的前缀命令不起作用(不和谐机器人) discord.py

在 discord.py 中显示设置前缀的命令(重写)