在 Nextcord 中启用和禁用命令

Enable and Disable Command in Nextcord

我正在尝试创建一个可以禁用和启用我当前的任何命令的命令。但它不断返回以下错误:

nextcord.ext.commands.errors.CommandInvokeError: Command raised an exception: AttributeError: module 'nextcord.ext.commands' has no attribute 'get'

这是该命令的当前代码:

@commands.command()
@commands.has_role("HR")
async def toggle(self, ctx, *, command):
    command = commands.get.command(command)
    role = nextcord.utils.get(ctx.guild.roles, name="owner")

    if ctx.command == command:
        await ctx.reply("nice try")
    else:
        command.enabled = not command.enabled
        tf = "enabled" if command.enabled else "disabled"
        await ctx.send(f"I have {tf} {command.qualified_name} for you!")

这只是一个错字。该函数的名称是 get_command。您可能还想使用 @commands.is_owner() 这样只有机器人的所有者才能禁用命令而不是公会角色,但这取决于您。此外,这似乎是一个齿轮,因此您应该根据 __init__().

中的内容使用 self.clientself.bot
@commands.command()
@commands.is_owner()
async def toggle(self, ctx, command):
    command = self.client.get_command(command)
    role = nextcord.utils.get(ctx.guild.roles, name="owner")

    if ctx.command == command:
        await ctx.reply("nice try")
    else:
        command.enabled = not command.enabled
        tf = "enabled" if command.enabled else "disabled"
        await ctx.send(f"I have {tf} {command.qualified_name} for you!")