如何修改或移除Discord机器人help命令的"No Category"板块
解决Discord Bot Help命令出现"No Category"的问题
针对你遇到的添加!join和!leave命令后,help输出出现"No Category"板块的问题,有几种简单的解决方式,你可以根据需求选择:
方法一:给命令添加分类,归入"Commands"板块
如果想保留默认的help命令格式,只是把"No Category"替换成"Commands",最简单的方式是给新命令指定分类。定义命令时直接添加category属性即可:
@bot.command(name="join", category="Commands") async def join_command(ctx): # 你的命令逻辑 await ctx.send("已加入语音频道!") @bot.command(name="leave", category="Commands") async def leave_command(ctx): # 你的命令逻辑 await ctx.send("已离开语音频道!")
这样默认help就会把这两个命令放在"Commands"分类下,不会再显示"No Category"。
方法二:直接修改默认help的无分类名称
如果不想给每个命令手动加分类,也可以重写默认HelpCommand的分类名称,一次性把"No Category"改成"Commands":
from discord.ext import commands class CustomHelpCommand(commands.HelpCommand): def get_no_category(self, command): # 替换默认的无分类名称 return "Commands" # 给机器人设置自定义help命令 bot = commands.Bot(command_prefix="!", help_command=CustomHelpCommand())
之后所有未指定分类的命令都会自动归入"Commands"板块。
方法三:完全自定义Help命令,移除默认分类
如果你想回到之前只显示自定义嵌入消息的状态,完全控制help的输出,可以直接重写!help命令,覆盖默认逻辑:
import discord @bot.command(name="help") async def custom_help(ctx): # 构建你之前的自定义嵌入消息 embed = discord.Embed( title="How to use the ImposterBot", description="这里是你的机器人使用说明内容...", color=discord.Color.blue() ) # 可选:把新命令的说明添加到嵌入里 embed.add_field(name="!join", value="让机器人加入你的语音频道", inline=False) embed.add_field(name="!leave", value="让机器人离开语音频道", inline=False) await ctx.send(embed=embed) # 若之前默认help还在,可手动禁用 # bot.remove_command("help")
这样无论后续添加多少命令,!help都会只显示你自定义的嵌入内容,不会出现任何默认分类板块。
内容的提问来源于stack exchange,提问作者prayer_in_c
相关产品推荐
相关产品推荐

