# 真寻Bot插件基本标准
# 简介
统一插件标准,可以自动生成对应的数据和帮助图片以及功能对应的开关
普通插件 应该包含:
__zx_plugin_name__:插件名__plugin_usage:用法__plugin_des__:简介__plugin_cmd__:命令__plugin_settings__:插件通用设置
被动插件(不需要命令调用的插件,如定时任务,hook等) 应该包含:
__plugin_task__:为你提供一个或多个开关
以下作为额外添加选项:
__plugin_type__:插件帮助分类(被动类插件不需要)__plugin_version__:插件版本__plugin_author__:插件作者
# __zx_plugin_name__
- 类型:str
- 说明:
+插件名称,为插件普通帮助的展示内容,基本所有模块都必须有__zx_plugin_name__
+通过在__zx_plugin_name__中添加 [Admin] [Superuser] [Hidden] 控制初始化帮助时插件的分类
+基本为以下四类: +:默认,即没有以下三种分类,作为普通插件[Admin]: 纯管理员插件[Superuser]: 纯超级用户插件[Hidden]: 隐藏的插件,一般是不需要命令调用的插件
# __plugin_usage__
- 类型:str
- 说明:
+插件帮助说明 +示例:
"""
+usage:
+ 有什么用处?
+ 指令:
+ ...
+ 示例:...
+""".strip()
+# __plugin_super_usage__
- 类型:str
- 说明:
+当非[Superuser]插件含有超级用户的功能时,在该属性中编写超级用户的额外帮助
+帮助写法与__plugin_usage__一致
# __plugin_des__
- 类型:str
- 说明:
+插件简介,不建议太长,详细介绍可以写在usage中,主要在详细帮助中显示
# __plugin_cmd__
- 类型:List[str]
- 说明:
+插件指令,相同功能的插件指令请使用/分离,如果是超级用户的功能,请在命令后添加[_superuser]
+示例:
# 发送 ‘我的签到’ 和 ‘好感度’ 效果相同
+__plugin_cmd__ = ["我的签到/好感度", "好感度排行", "清空好感度 [_superuser]"]
+# __plugin_settings__
- 类型:Dict[str, Union[str, int]]
- 说明:
+插件的通用设置,普通插件与纯管理员插件会有所不同
+示例:
# 普通插件
+__plugin_settings__ = {
+ "level": 5, # 群权限等级,请不要设置为1或9,若无特殊情况请设置为5
+ "default_status": True, # 进群时的默认开关状态
+ "limit_superuser": False, # 开关插件的限制是否限制超级用户
+ "cmd": ["b封面", 'B封面'], # 命令别名,主要用于帮助和开关
+}
+#"cmd"第一个值会被作为功能调用统计的显示选项,开关方面:开启b封面=开关B封面=开启cover
+#"__zx_plugin_name__"不需要额外写入,在bot启动时会自动将"__zx_plugin_name__"导入对应的"cmd"
+
+# 管理员插件
+__plugin_settings__ = {
+ "admin_level": 1, # 管理员等级,建议设置在5及以下,敏感操作设置在5以上
+}
+# __plugin_task__
- 类型:Dict[str, Union[str, str]]
- 说明:
+为你提供一个或多个开关,主要用于被动类插件的开关
+示例:
# 定义开关
+__plugin_task__ = {
+ "名称": "开关中文名",
+ "abcd": "统计开关",
+ "...": "..."
+}
+# 导入管理器
+from utils.manager import group_manager
+
+# 在插件中设置
+async def _(...):
+ if await group_manager.check_group_task_status(event.group_id, "名称"):
+ ...
+ if await group_manager.check_group_task_status(event.group_id, "abcd"):
+ ...
+# __plugin_type__
- 类型:Tuple[Union[str, int]]
- 说明:
+为普通插件分类,当没有__plugin_type__时,将统一放置普通功能分类中
+相同分类的插件在帮助图片中将会统合在一起
+示例:
# 定义格式:
+# 排列:无或0时:横向排列,1:列项排序(当你的__plugin_cmd__指令很多,建议使用 1)
+__plugin_type__ = (分类名称, 详细帮助中的排列)
+# 创建一个`工具`的分类
+__plugin_type__ = ('工具',)
+# 创建一个`原神相关`的分类,并在详细功能中命令以列向排列显示
+__plugin_type__ = ('原神相关', 1)
+# __plugin_version__
- 类型:Union[float, int]
- 说明:
+插件版本,将作为插件自动更新的依照
# __plugin_author__
- 类型:str
- 说明:
+插件作者
# 普通插件的一个示例
__zx_plugin_name__ = 'b封面'
+__plugin_usage__ = """
+usage:
+ b封面 [链接/av/bv/cv/直播id]
+ 示例:b封面 av86863038
+""".strip()
+__plugin_des__ = '快捷的b站视频封面获取方式'
+__plugin_cmd__ = ['b封面/B封面']
+__plugin_type__ = ('一些工具',)
+__plugin_version__ = 0.1
+__plugin_author__ = 'HibiKier'
+__plugin_settings__ = {
+ "level": 5,
+ "default_status": True,
+ "limit_superuser": False,
+ "cmd": ["b封面", 'B封面'],
+}
+# 管理员插件的一个示例
__zx_plugin_name__ = "更新群组成员列表 [Admin]"
+__plugin_usage__ = """
+usage:
+ 更新群组成员的基本信息
+ 指令:
+ 更新群组成员列表/更新群组成员信息
+""".strip()
+__plugin_des__ = '更新群组成员列表'
+__plugin_cmd__ = ['更新群组成员列表']
+__plugin_version__ = 0.1
+__plugin_author__ = 'HibiKier'
+__plugin_settings__ = {
+ "admin_level": 1,
+}
+# 超级用户插件的一个示例
__zx_plugin_name__ = "超级用户指令 [Superuser]"
+__plugin_usage__ = """
+usage:
+ 超级用户集成指令
+ 指令:
+ 清理临时数据
+ 重载插件配置
+""".strip()
+__plugin_des__ = "超级用户集成指令"
+__plugin_cmd__ = [
+ "清理临时数据",
+ "重载插件配置"
+]
+__plugin_version__ = 0.1
+__plugin_author__ = "HibiKier"
+# 带有超级用户命令的管理插件示例
__zx_plugin_name__ = "封禁Ban用户 [Admin]"
+__plugin_usage__ = """
+usage:
+ 将用户拉入或拉出黑名单
+ 指令:
+ .ban [at] ?[小时] ?[分钟]
+ .unban
+ 示例:.ban @user
+ 示例:.ban @user 6
+ 示例:.ban @user 3 10
+ 示例:.unban @user
+""".strip()
+__plugin_superuser_usage__ = """
+usage:
+ 屏蔽用户消息,相当于最上级.ban
+ 指令:
+ b了 [at]
+ 示例:b了 @user
+""".strip()
+__plugin_des__ = '你被逮捕了!丢进小黑屋!'
+__plugin_cmd__ = ['.ban [at] ?[小时] ?[分钟]', '.unban [at]', 'b了 [at] [_superuser]']
+__plugin_version__ = 0.1
+__plugin_author__ = 'HibiKier'
+__plugin_settings__ = {
+ "admin_level": BAN_LEVEL,
+}
++ ← + + /help/ +