我想禁用命令,但是我不知道它是如何工作的
这是我要禁用的命令
@client.command(description="Sends an random gif", aliases=['gifje', 'GIF', 'Gif'], brief="Sends an random gif (NO NSFW)")
discord.ext.commands.Command(name="gif", cls=None, enabled=False)
#@commands.cooldown(1, 10, commands.BucketType.user)
async def gif(ctx):
links = ["https://gph.is/1N1s5AR",
"https://gph.is/2nmNhuw",
"https://gph.is/g/ajWp6mj",
"https://gph.is/g/apbGw0O",
"https://gph.is/g/Z5YMP9Q",
"https://gph.is/g/aQOvqQ5",
"https://gph.is/g/ajW9Nx8",
"https://gph.is/2CF8W7r",
"http://gph.is/17GL4ua",
"https://gph.is/12kQg0y"]
await ctx.send(random.choice(links))
我相信我必须使用discord.ext.commands来做,但是我不知道该怎么做(我不想使用齿轮)
答案 0 :(得分:1)
.update(enabled=False)
您可以通过 Command
找到您要查找的命令来获取 Bot.commands
对象。找到正确的命令对象后,您可以使用其 update
方法来编辑 enabled
属性。
将此属性设置为 False
将导致在调用命令时引发 DisabledCommand
错误,您可以根据需要进行处理。
答案 1 :(得分:0)
client.remove_command(name)
您可以创建一个运行该命令的命令,直到添加回该命令或重新启动机器人后,该命令才可用。
答案 2 :(得分:0)
@commands.command(name="toggle", description="Enable or disable a command!")
@commands.is_owner()
async def toggle(self, ctx, *, command):
command = self.client.get_command(command)
if command is None:
embed = discord.Embed(title="ERROR", description="I can't find a command with that name!", color=0xff0000)
await ctx.send(embed=embed)
elif ctx.command == command:
embed = discord.Embed(title="ERROR", description="You cannot disable this command.", color=0xff0000)
await ctx.send(embed=embed)
else:
command.enabled = not command.enabled
ternary = "enabled" if command.enabled else "disabled"
embed = discord.Embed(title="Toggle", description=f"I have {ternary} {command.qualified_name} for you!", color=0xff00c8)
await ctx.send(embed=embed)
这是我用来禁用/启用命令的最简单方法