From e5485cddd019e115ecd4758b2a7dbff963538eb1 Mon Sep 17 00:00:00 2001 From: Rock Chin <1010553892@qq.com> Date: Mon, 3 Apr 2023 14:40:27 +0000 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=9B=B4=E6=94=B9=E4=BD=BF=E7=94=A8!cm?= =?UTF-8?q?d=E6=8C=87=E4=BB=A4=E6=9F=A5=E7=9C=8B=E6=8C=87=E4=BB=A4?= =?UTF-8?q?=E5=88=97=E8=A1=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pkg/qqbot/cmds/system/cmd.py | 39 +++++++++++++++++++++++++++++++++++ pkg/qqbot/cmds/system/cmds.py | 39 +++++++++++++++++++++++++++++++++++ pkg/qqbot/cmds/system/help.py | 33 +++++++---------------------- 3 files changed, 85 insertions(+), 26 deletions(-) create mode 100644 pkg/qqbot/cmds/system/cmd.py create mode 100644 pkg/qqbot/cmds/system/cmds.py diff --git a/pkg/qqbot/cmds/system/cmd.py b/pkg/qqbot/cmds/system/cmd.py new file mode 100644 index 0000000..431d862 --- /dev/null +++ b/pkg/qqbot/cmds/system/cmd.py @@ -0,0 +1,39 @@ +from ..mgr import AbstractCommandNode, Context, __command_list__ + + +@AbstractCommandNode.register( + parent=None, + name="cmd", + description="显示指令列表", + usage="!cmd\n!cmd <指令名称>", + aliases=[], + privilege=1 +) +class CmdCommand(AbstractCommandNode): + @classmethod + def process(cls, ctx: Context) -> tuple[bool, list]: + command_list = __command_list__ + + reply = [] + + if len(ctx.params) == 0: + reply_str = "[bot]当前所有指令:\n\n" + + # 遍历顶级指令 + for key in command_list: + command = command_list[key] + if command['parent'] is None: + reply_str += "!{} - {}\n".format(key, command['description']) + + reply_str += "\n请使用 !cmd <指令名称> 来查看指令的详细信息" + + reply = [reply_str] + else: + command_name = ctx.params[0] + if command_name in command_list: + reply = [command_list[command_name]['cls'].help()] + else: + reply = ["[bot]指令 {} 不存在".format(command_name)] + + return True, reply + \ No newline at end of file diff --git a/pkg/qqbot/cmds/system/cmds.py b/pkg/qqbot/cmds/system/cmds.py new file mode 100644 index 0000000..96da563 --- /dev/null +++ b/pkg/qqbot/cmds/system/cmds.py @@ -0,0 +1,39 @@ +from ..mgr import AbstractCommandNode, Context, __command_list__ + + +@AbstractCommandNode.register( + parent=None, + name="cmd", + description="显示指令列表", + usage="!help\n!help <指令名称>", + aliases=[], + privilege=1 +) +class CmdCommand(AbstractCommandNode): + @classmethod + def process(cls, ctx: Context) -> tuple[bool, list]: + command_list = __command_list__ + + reply = [] + + if len(ctx.params) == 0: + reply_str = "[bot]当前所有指令:\n\n" + + # 遍历顶级指令 + for key in command_list: + command = command_list[key] + if command['parent'] is None: + reply_str += "!{} - {}\n".format(key, command['description']) + + reply_str += "\n请使用 !cmd <指令名称> 来查看指令的详细信息" + + reply = [reply_str] + else: + command_name = ctx.params[0] + if command_name in command_list: + reply = [command_list[command_name]['cls'].help()] + else: + reply = ["[bot]指令 {} 不存在".format(command_name)] + + return True, reply + \ No newline at end of file diff --git a/pkg/qqbot/cmds/system/help.py b/pkg/qqbot/cmds/system/help.py index 08c50b8..427a553 100644 --- a/pkg/qqbot/cmds/system/help.py +++ b/pkg/qqbot/cmds/system/help.py @@ -1,38 +1,19 @@ -from ..mgr import AbstractCommandNode, Context, __command_list__ +from ..mgr import AbstractCommandNode, Context @AbstractCommandNode.register( parent=None, name="help", - description="显示帮助信息", - usage="!help\n!help <指令名称>", + description="显示自定义的帮助信息", + usage="!help", aliases=[], privilege=1 ) class HelpCommand(AbstractCommandNode): @classmethod def process(cls, ctx: Context) -> tuple[bool, list]: - command_list = __command_list__ + import config + reply = [(config.help_message if hasattr(config, 'help_message') else "") + "\n请输入 !cmds 查看指令列表"] - reply = [] - - if len(ctx.params) == 0: - reply_str = "[bot]当前所有指令:\n\n" - - # 遍历顶级指令 - for key in command_list: - command = command_list[key] - if command['parent'] is None: - reply_str += "!{} - {}\n".format(key, command['description']) - - reply_str += "\n请使用 !help <指令名称> 来查看指令的详细信息" - - reply = [reply_str] - else: - command_name = ctx.params[0] - if command_name in command_list: - reply = [command_list[command_name]['cls'].help()] - else: - reply = ["[bot]指令 {} 不存在".format(command_name)] - - return True, reply \ No newline at end of file + return True, reply + \ No newline at end of file