From d8e437dbb75daa9d091f922b4b03c569cd8e9d9d Mon Sep 17 00:00:00 2001 From: HibiKier <775757368@qq.com> Date: Sun, 2 Mar 2025 14:33:53 +0800 Subject: [PATCH] =?UTF-8?q?:art:=20=E7=AC=A8=E8=9B=8B=E6=A3=80=E6=B5=8B?= =?UTF-8?q?=E6=9B=B4=E5=A4=9A=E8=A7=84=E5=88=99=E7=A7=BB=E5=85=A5rule?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- zhenxun/builtin_plugins/help_help.py | 73 ++++++++++++++-------------- 1 file changed, 36 insertions(+), 37 deletions(-) diff --git a/zhenxun/builtin_plugins/help_help.py b/zhenxun/builtin_plugins/help_help.py index e6342b4a..d6706bcb 100644 --- a/zhenxun/builtin_plugins/help_help.py +++ b/zhenxun/builtin_plugins/help_help.py @@ -7,6 +7,7 @@ from nonebot.matcher import Matcher from nonebot.plugin import PluginMetadata from nonebot_plugin_alconna import UniMsg from nonebot_plugin_session import EventSession +from nonebot_plugin_uninfo import Uninfo from zhenxun.configs.path_config import IMAGE_PATH from zhenxun.configs.utils import PluginExtraData @@ -30,8 +31,17 @@ __plugin_meta__ = PluginMetadata( ) -async def rule(event: Event, message: UniMsg) -> bool: +async def rule(event: Event, message: UniMsg, session: Uninfo) -> bool: + group_id = session.group.id if session.group else None text = message.extract_plain_text().strip() + if await BanConsole.is_ban(session.user.id, group_id): + return False + if group_id: + if await BanConsole.is_ban(None, group_id): + return False + if g := await GroupConsole.get_group(group_id): + if g.level < 0: + return False return event.is_tome() and bool(text and len(text) < 20) @@ -43,39 +53,28 @@ _path = IMAGE_PATH / "_base" / "laugh" @_matcher.handle() async def _(matcher: Matcher, message: UniMsg, session: EventSession): - gid = session.id3 or session.id2 - if await BanConsole.is_ban(session.id1, gid): - return - if gid: - if await BanConsole.is_ban(None, gid): - return - if g := await GroupConsole.get_group(gid): - if g.level < 0: - return - if text := message.extract_plain_text().strip(): - if len(text) > 100: - return - if plugin := await PluginInfo.get_or_none( - name=text, - load_status=True, - plugin_type=PluginType.NORMAL, - block_type__isnull=True, - status=True, - ): - image = None - if _path.exists(): - if files := os.listdir(_path): - image = _path / random.choice(files) - message_list = [] - if image: - message_list.append(image) - message_list.append( - "桀桀桀,预判到会有 '笨蛋' 把功能名称当命令用,特地前来嘲笑!" - f"但还是好心来帮帮你啦!\n请at我发送 '帮助{plugin.name}' 或者" - f" '帮助{plugin.id}' 来获取该功能帮助!" - ) - logger.info( - "检测到功能名称当命令使用,已发送帮助信息", "功能帮助", session=session - ) - await MessageUtils.build_message(message_list).send(reply_to=True) - matcher.stop_propagation() + text = message.extract_plain_text().strip() + if plugin := await PluginInfo.get_or_none( + name=text, + load_status=True, + plugin_type=PluginType.NORMAL, + block_type__isnull=True, + status=True, + ): + image = None + if _path.exists(): + if files := os.listdir(_path): + image = _path / random.choice(files) + message_list = [] + if image: + message_list.append(image) + message_list.append( + "桀桀桀,预判到会有 '笨蛋' 把功能名称当命令用,特地前来嘲笑!" + f"但还是好心来帮帮你啦!\n请at我发送 '帮助{plugin.name}' 或者" + f" '帮助{plugin.id}' 来获取该功能帮助!" + ) + logger.info( + "检测到功能名称当命令使用,已发送帮助信息", "功能帮助", session=session + ) + await MessageUtils.build_message(message_list).send(reply_to=True) + matcher.stop_propagation()