LSE-EasyCheckUpdate 是一个专为 LeviLamina 服务器设计的插件更新检查工具,旨在简化插件更新流程,提高服务器管理效率。它支持自动检查插件更新、批量更新插件、版本比较和详细的更新日志等功能,为服务器管理员提供便捷的插件更新解决方案。
| 特性 | 描述 |
|---|---|
| 🔄自动检查更新 | 自动检查所有已加载插件的更新 |
| 📦批量更新 | 支持批量更新多个插件 |
| 📢实时通知 | 检查到更新时向管理员发送通知 |
| ⚡快速检查 | 高效的版本比较算法 |
| 🔄版本比较 | 支持复杂的版本号比较 |
| 📝详细日志 | 彩色日志输出,按日期分割存储 |
| 🌍多插件支持 | 支持所有导出CheckUpdate函数的插件 |
| 📊遥测统计 | 集成BStats,收集使用统计 |
服务器根目录/
├── logs/
│ └── EasyCheckUpdate/ # 日志目录
│ └── easycheckupdate_YYYYMMDD.log # 主日志文件
└── plugins/
└── EasyCheckUpdate/ # 插件资源目录
├── EasyCheckUpdate.js # 插件主文件
└── config/
└── EasyCheckUpdate.json # 配置文件
-
下载插件
-
安装插件
# 将插件压缩包解压到服务器 plugins 目录或者使用 lip 命令安装:
lip install github.com/MengHanLOVE1027/lse-easycheckupdate
-
启动服务器
- 重启服务器或使用
/ll reload EasyCheckUpdate命令 - 插件会自动生成默认配置文件
- 重启服务器或使用
配置文件位于:plugins/lse-easycheckupdate/config/EasyCheckUpdate.json
{
// 📊 BStats遥测配置
"Bstats": {
"EnableModule": true, // 启用BStats遥测功能
"logSentData": false, // 记录发送的数据(调试用)
"serverUUID": "自动生成的UUID" // 服务器唯一标识符(自动生成)
},
// 🔄 更新检查配置
"check_update_on_load": true, // 插件加载时自动检查更新
"check_interval": 1800, // 检查更新间隔(秒),默认30分钟
"check_delay": 10, // 首次检查延迟(秒)
"last_check_time": 0 // 上次检查时间戳(自动记录)
}插件支持在加载时自动检查所有插件的更新,此功能可通过配置文件控制。
| 配置项 | 类型 | 默认值 | 描述 |
|---|---|---|---|
check_update_on_load |
Boolean | true |
是否在插件加载时自动检查更新 |
check_delay |
Number | 10 |
首次检查的延迟时间(秒) |
check_interval |
Number | 1800 |
检查更新间隔(秒),默认30分钟 |
last_check_time |
Number | 0 |
上次检查时间戳(自动记录,无需手动修改) |
- 插件加载完成
- 检查
check_update_on_load配置 - 如果启用,输出提示信息:
将在 X 秒后自动检查所有插件的更新... - 等待
check_delay秒 - 自动执行
checkAllPluginsUpdate()检查所有插件更新 - 输出检查结果:
检查完成,共检查了 X 个支持更新检查的插件
{
"check_update_on_load": true, // 启用自动检查
"check_delay": 10, // 10秒后开始检查
"check_interval": 1800, // 检查间隔30分钟
"last_check_time": 0
}- 首次检查延迟时间建议设置为 10-30 秒,给服务器启动留出足够时间
- 检查间隔时间建议设置为 1800-3600 秒(30-60 分钟),避免频繁检查
- 如果不需要自动检查,可将
check_update_on_load设置为false
| 命令 | 权限 | 描述 |
|---|---|---|
/checkupdate 或 /ecu |
OP | 显示帮助信息 |
/checkupdate all |
OP | 检查所有插件的更新 |
/checkupdate reload |
OP | 重载插件配置 |
/checkupdate update <插件名> |
OP | 更新指定插件 |
/checkupdate <插件名> |
OP | 检查指定插件的更新 |
插件开发者可以通过导出 CheckUpdate 函数来让 EasyCheckUpdate 自动检测插件的更新。
在你的插件中导出 CheckUpdate 函数,该函数返回一个包含更新信息的对象。
// 在你的插件中导出 CheckUpdate 函数
ll.export("ecu", "YourPluginName", function() {
return {
plugin_version: "v1.0.0",
update_url: "https://your-update-url.com/update.json"
};
});// 在你的插件中导出 CheckUpdate 函数
ll.export("YourPluginName", "CheckUpdate", function() {
return {
plugin_version: "v1.0.0",
update_url: "https://your-update-url.com/update.json"
};
});你的更新信息文件(如 update.json)需要包含以下信息。
{
"version": "1.0.0",
"download_url": "https://your-download-url.com/plugin.zip",
"update_content": "更新内容描述",
"author": "作者名",
"update_time": "2024-01-01"
}{
"latest_version": "1.0.0",
"versions": {
"1.0.0": {
"download_url": "https://your-download-url.com/plugin-v1.0.0.zip",
"update_content": "更新内容描述",
"author": "作者名",
"update_time": "2024-01-01"
}
}
}// 你的插件代码
const pluginName = "MyPlugin";
const pluginVersion = "v1.0.0";
// 导出 CheckUpdate 函数
ll.export("ecu", pluginName, function() {
return {
plugin_version: pluginVersion,
update_url: `https://raw.githubusercontent.com/YourUsername/${pluginName}/main/update.json`
};
});
// 或者使用第二种方式
ll.export(pluginName, "CheckUpdate", function() {
return {
plugin_version: pluginVersion,
update_url: `https://raw.githubusercontent.com/YourUsername/${pluginName}/main/update.json`
};
});- EasyCheckUpdate 插件会自动检测所有已加载的插件
- 检查插件是否导出了
CheckUpdate函数 - 如果导出了,调用该函数获取更新信息
- 从返回的
update_url下载更新信息 - 比较版本号,如果有新版本则通知管理员
本项目采用 AGPL-3.0 许可证开源。
版权所有 (c) 2023 梦涵LOVE
本程序是自由软件:您可以自由地重新发布和修改它,
但必须遵循AGPL-3.0许可证的条款。
完整许可证文本请参阅 LICENSE 文件。
欢迎提交 Issue 和 Pull Request!
- Fork 项目仓库
- 创建功能分支
git checkout -b feature/AmazingFeature
- 提交更改
git commit -m 'Add some AmazingFeature' - 推送分支
git push origin feature/AmazingFeature
- 创建 Pull Request
