mirror of
https://github.com/zhenxun-org/zhenxun_bot.git
synced 2025-12-15 14:22:55 +08:00
81 lines
2.1 KiB
Python
81 lines
2.1 KiB
Python
from .models import AdminSetting
|
|
from utils.manager.data_class import StaticData
|
|
from typing import List, Optional, Dict
|
|
|
|
|
|
class AdminManager(StaticData):
|
|
"""
|
|
管理员命令 管理器
|
|
"""
|
|
|
|
def __init__(self):
|
|
super().__init__(None)
|
|
self._data: Dict[str, AdminSetting] = {}
|
|
|
|
def add_admin_plugin_settings(self, plugin: str, cmd: List[str], level: int):
|
|
"""
|
|
说明:
|
|
添加一个管理员命令
|
|
参数:
|
|
:param plugin: 模块
|
|
:param cmd: 别名
|
|
:param level: 等级
|
|
"""
|
|
self._data[plugin] = AdminSetting(level=level, cmd=cmd)
|
|
|
|
def set_admin_level(self, plugin: str, level: int):
|
|
"""
|
|
说明:
|
|
设置管理员命令等级
|
|
参数:
|
|
:param plugin: 模块名
|
|
:param level: 权限等级
|
|
"""
|
|
if plugin in self._data.keys():
|
|
self._data[plugin].level = level
|
|
|
|
def remove_admin_plugin_settings(self, plugin: str):
|
|
"""
|
|
说明:
|
|
删除一个管理员命令
|
|
参数:
|
|
:param plugin: 模块名
|
|
"""
|
|
if plugin in self._data.keys():
|
|
del self._data[plugin]
|
|
|
|
def check(self, plugin: str, level: int) -> bool:
|
|
"""
|
|
说明:
|
|
检查是否满足权限
|
|
参数:
|
|
:param plugin: 模块名
|
|
:param level: 权限等级
|
|
"""
|
|
if plugin in self._data.keys():
|
|
return level >= self._data[plugin].level
|
|
return True
|
|
|
|
def get_plugin_level(self, plugin: str) -> int:
|
|
"""
|
|
说明:
|
|
获取插件等级
|
|
参数:
|
|
:param plugin: 模块名
|
|
"""
|
|
if plugin in self._data.keys():
|
|
return self._data[plugin].level
|
|
return 0
|
|
|
|
def get_plugin_module(self, cmd: str) -> Optional[str]:
|
|
"""
|
|
说明:
|
|
根据 cmd 获取功能 modules
|
|
参数:
|
|
:param cmd: 命令
|
|
"""
|
|
for key in self._data.keys():
|
|
if self._data[key].cmd and cmd in self._data[key].cmd:
|
|
return key
|
|
return None
|