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(