From e7bae73c8f9f124e6732b5e53ae89c925957d063 Mon Sep 17 00:00:00 2001 From: HibiKier <45528451+HibiKier@users.noreply.github.com> Date: Mon, 9 Jun 2025 14:40:19 +0800 Subject: [PATCH] =?UTF-8?q?:sparkles:=20ban=E6=94=AF=E6=8C=81ai=E8=B0=83?= =?UTF-8?q?=E7=94=A8=20(#1880)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- zhenxun/builtin_plugins/admin/ban/__init__.py | 26 +++++++++++++++++-- .../builtin_plugins/admin/ban/_data_source.py | 11 ++++++++ 2 files changed, 35 insertions(+), 2 deletions(-) diff --git a/zhenxun/builtin_plugins/admin/ban/__init__.py b/zhenxun/builtin_plugins/admin/ban/__init__.py index 91bbf2ba..32e97f2d 100644 --- a/zhenxun/builtin_plugins/admin/ban/__init__.py +++ b/zhenxun/builtin_plugins/admin/ban/__init__.py @@ -14,13 +14,19 @@ from nonebot_plugin_alconna import ( from nonebot_plugin_session import EventSession from zhenxun.configs.config import BotConfig, Config -from zhenxun.configs.utils import PluginExtraData, RegisterConfig +from zhenxun.configs.utils import ( + AICallableParam, + AICallableProperties, + AICallableTag, + PluginExtraData, + RegisterConfig, +) from zhenxun.services.log import logger from zhenxun.utils.enum import PluginType from zhenxun.utils.message import MessageUtils from zhenxun.utils.rules import admin_check -from ._data_source import BanManage +from ._data_source import BanManage, call_ban base_config = Config.get("ban") @@ -78,6 +84,22 @@ __plugin_meta__ = PluginMetadata( type=int, ) ], + smart_tools=[ + AICallableTag( + name="call_ban", + description="某人多次(至少三次)辱骂你,调用此方法进行封禁", + parameters=AICallableParam( + type="object", + properties={ + "user_id": AICallableProperties( + type="string", description="用户的id" + ), + }, + required=["user_id"], + ), + func=call_ban, + ) + ], ).to_dict(), ) diff --git a/zhenxun/builtin_plugins/admin/ban/_data_source.py b/zhenxun/builtin_plugins/admin/ban/_data_source.py index f38d2440..ae465bdf 100644 --- a/zhenxun/builtin_plugins/admin/ban/_data_source.py +++ b/zhenxun/builtin_plugins/admin/ban/_data_source.py @@ -5,9 +5,20 @@ from nonebot_plugin_session import EventSession from zhenxun.models.ban_console import BanConsole from zhenxun.models.level_user import LevelUser +from zhenxun.services.log import logger from zhenxun.utils.image_utils import BuildImage, ImageTemplate +async def call_ban(user_id: str): + """调用ban + + 参数: + user_id: 用户id + """ + await BanConsole.ban(user_id, None, 9, 60 * 12) + logger.info("辱骂次数过多,已将用户加入黑名单...", "ban", session=user_id) + + class BanManage: @classmethod async def build_ban_image(