mirror of
https://github.com/zhenxun-org/zhenxun_bot.git
synced 2025-12-14 21:52:56 +08:00
68 lines
2.3 KiB
Python
68 lines
2.3 KiB
Python
from nonebot import on_notice
|
|
from nonebot.adapters.onebot.v11 import GroupAdminNoticeEvent
|
|
from nonebot.plugin import PluginMetadata
|
|
|
|
from zhenxun.configs.config import Config
|
|
from zhenxun.configs.utils import PluginExtraData, RegisterConfig
|
|
from zhenxun.models.level_user import LevelUser
|
|
from zhenxun.services.log import logger
|
|
from zhenxun.utils.enum import PluginType
|
|
from zhenxun.utils.rules import notice_rule
|
|
|
|
__plugin_meta__ = PluginMetadata(
|
|
name="群管理员变动监测",
|
|
description="""检测群管理员变动, 添加与删除管理员默认权限,
|
|
当配置项 ADMIN_DEFAULT_AUTH 为空时, 不会添加管理员权限""",
|
|
usage="",
|
|
extra=PluginExtraData(
|
|
author="HibiKier",
|
|
version="0.1",
|
|
plugin_type=PluginType.HIDDEN,
|
|
configs=[
|
|
RegisterConfig(
|
|
module="admin_bot_manage",
|
|
key="ADMIN_DEFAULT_AUTH",
|
|
value=5,
|
|
help="设置群欢迎消息所需要的管理员权限等级",
|
|
default_value=5,
|
|
)
|
|
],
|
|
).to_dict(),
|
|
)
|
|
|
|
|
|
admin_notice = on_notice(priority=5, rule=notice_rule(GroupAdminNoticeEvent))
|
|
|
|
base_config = Config.get("admin_bot_manage")
|
|
|
|
|
|
@admin_notice.handle()
|
|
async def _(event: GroupAdminNoticeEvent):
|
|
if event.sub_type == "set":
|
|
admin_default_auth = base_config.get("ADMIN_DEFAULT_AUTH")
|
|
if admin_default_auth is not None:
|
|
await LevelUser.set_level(
|
|
str(event.user_id),
|
|
str(event.group_id),
|
|
admin_default_auth,
|
|
)
|
|
logger.info(
|
|
f"成为管理员,添加权限: {admin_default_auth}",
|
|
"群管理员变动监测",
|
|
session=event.user_id,
|
|
group_id=event.group_id,
|
|
)
|
|
else:
|
|
logger.warning(
|
|
"配置项 MODULE: [<u><y>admin_bot_manage</y></u>] |"
|
|
" KEY: [<u><y>ADMIN_DEFAULT_AUTH</y></u>] 为空"
|
|
)
|
|
elif event.sub_type == "unset":
|
|
await LevelUser.delete_level(str(event.user_id), str(event.group_id))
|
|
logger.info(
|
|
"撤销群管理员, 取消权限等级",
|
|
"群管理员变动监测",
|
|
session=event.user_id,
|
|
group_id=event.group_id,
|
|
)
|