4.8 KiB
4.8 KiB
HeXi 插件类型分类(library / application)
依据 NoneBot 发布规范:
type是插件类别,发布必填。当前有效类别:
library:为其他插件编写提供功能(核心库/框架),不参与热拔插/热重载。application:向机器人用户提供功能,可热拔插/热重载。本仓库自定义插件统一在
hexi/plugins/(经nonebot.load_plugins("hexi")加载); pip 社区插件由其自带元数据决定类别,本仓库不改动,但热拔插管理器会按类别保护。变动:原
nonebot_plugin_hexi_core/nonebot_plugin_web_hub已从hexi/plugins/移出,现为机器人核心模块hexi/core、hexi/web_hub(非插件),不再参与插件类型分类与热拔插,故下表不列出。
自定义插件(hexi/plugins/)
| 插件(模块名) | type | 说明 |
|---|---|---|
hexi.plugins.nonebot_plugin_bf_bot |
application |
战地系列战绩查询(BF3/4/1/5/2042/6)。 |
hexi.plugins.nonebot_plugin_steam_info |
application |
Steam 信息播报/查询。 |
hexi.plugins.nonebot_plugin_mc_server_status |
application |
Minecraft 服务器状态查询。 |
hexi.plugins.nonebot_plugin_ncm_saying |
application |
网易云热评。 |
hexi.plugins.nonebot_plugin_helldivers_tools |
application |
绝地潜兵 2 前线战况/战备。 |
hexi.plugins.nonebot_plugin_learning_chat |
application |
马尔可夫链群聊学习/复读。 |
hexi.plugins.nonebot_plugin_galgame_card |
application |
群聊人设卡生成/展示。 |
hexi.plugins.nonebot_plugin_group_tools |
application |
群管理工具集。 |
hexi.plugins.nonebot_plugin_group_daily_analysis |
application |
群聊行为分析报告。 |
hexi.plugins.nonebot_plugin_dailywife |
application |
每日随机抽取群友。 |
hexi.plugins.nonebot_plugin_deer_pipe |
application |
每日打卡(鹿)。 |
hexi.plugins.nonebot_plugin_dice |
application |
掷骰子/结婚判定。 |
hexi.plugins.nonebot_plugin_makeaquote |
application |
名人/语录图生成。 |
hexi.plugins.nonebot_plugin_random_jm_code |
application |
随机 JM 码。 |
hexi.plugins.nonebot_plugin_video_analysis |
application |
视频链接解析。 |
hexi.plugins.nonebot_plugin_regif |
application |
GIF 倒放/处理。 |
hexi.plugins.nonebot_plugin_picfinder_take |
application |
二次元搜图。 |
hexi.plugins.nonebot_plugin_picstatus |
application |
设备状态图。 |
hexi.plugins.nonebot_plugin_huoziyinshua |
application |
otto 活字印刷(语音合成)。 |
hexi.plugins.memes_ops |
application |
给 nonebot_plugin_memes 追加裸词选项(用户侧语法)。 |
hexi.plugins.nonebot_plugin_deadlock |
- | 停用:整文件被注释,不注册任何功能(历史遗留)。 |
hexi.plugins.nonebot_plugin_brash_general_supercredits_tools |
- | 空壳:未完成占位,__init__.py 仅注释,无功能。 |
pip 社区插件(pyproject.toml 声明)
这些插件由安装包自带的 __plugin_meta__ 决定类别,本仓库不改动;其中的 library 型插件同样受热拔插保护。
| 插件 | 常见类别 | 说明 |
|---|---|---|
nonebot_plugin_apscheduler |
library | 定时任务框架。 |
nonebot_plugin_alconna |
library | 命令解析/消息框架。 |
nonebot_plugin_saa |
library | 跨平台发送辅助。 |
nonebot_plugin_session |
library | 会话/状态管理。 |
nonebot_plugin_userinfo |
library | 用户信息接口。 |
nonebot_plugin_user |
application | 用户数据接口(含绑定/查看命令)。 |
nonebot_plugin_datastore |
library | 数据存储底座。 |
nonebot_plugin_orm |
library | ORM 底座。 |
nonebot_plugin_fix_qq_img_ssl |
library | 图片 SSL 修复补丁。 |
nonebot_plugin_wordcloud |
application | 词云生成。 |
nonebot_plugin_memes |
application | 表情包。 |
nonebot_plugin_multincm |
application | 多源网抑云点歌。 |
nonebot_plugin_random_stereotypes |
application | 随机刻板印象。 |
nonebot_plugin_rollpig |
application | 滚猪。 |
说明:社区插件类别以其安装包
PluginMetadata.type为准,若与本表不符请以包内元数据为准。
热拔插保护
../../hexi/core/plugin_manager.py 中的 hot_load / hot_unload / hot_reload 会先判断目标插件类别:
- 目标为
application→ 正常热拔插。 - 其余(
library/ 未声明类别,含根包无 meta 但被依赖的核心/框架,如 alconna)→ 拒绝并记录 warning(热拔插会使依赖它的插件运行混乱)。
hexi/web_hub/web_config.py 保存配置触发的 hot_reload 同样受此保护:非 application 插件若未提供 apply 回调,将不会执行热重载。