endstone-easycheckupdate 0.1.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,345 @@
1
+ Metadata-Version: 2.4
2
+ Name: endstone-easycheckupdate
3
+ Version: 0.1.0
4
+ Summary: 一个基于 EndStone 的插件更新检查工具 / A plugin update checker based on EndStone.
5
+ Home-page: https://github.com/MengHanLOVE1027
6
+ Author: MengHanLOVE
7
+ Author-email: MengHanLOVE <2193438288@qq.com>
8
+ License-Expression: AGPL-3.0-or-later
9
+ Project-URL: Homepage, https://github.com/MengHanLOVE1027/endstone-easycheckupdate
10
+ Keywords: endstone,plugins,backup
11
+ Classifier: Programming Language :: Python :: 3
12
+ Classifier: Operating System :: OS Independent
13
+ Requires-Python: >=3.8
14
+ Description-Content-Type: text/markdown
15
+ Dynamic: author
16
+ Dynamic: home-page
17
+
18
+ <div align="center">
19
+
20
+ ![EndStone-EasyCheckUpdate](https://socialify.git.ci/MengHanLOVE1027/endstone-easycheckupdate/image?custom_language=Python&description=1&font=Inter&forks=1&issues=1&language=1&logo=https://zh.minecraft.wiki/images/BE_icon_recipe_all.png?8a449&format=original&name=1&owner=1&pattern=Plus&pulls=1&stargazers=1&theme=Auto)
21
+
22
+ <h3>EndStone-EasyCheckUpdate</h3>
23
+
24
+ <p>
25
+ <b>一个基于 EndStone 的插件更新检查工具 / A plugin update checker based on EndStone.</b>
26
+
27
+ Powered by EndStone.<br>
28
+
29
+ </p>
30
+
31
+ [![README](https://img.shields.io/badge/README-中文|Chinese-blue)](README.md) [![README_EN](https://img.shields.io/badge/README-英文|English-blue)](README_EN.md)
32
+
33
+ [![Github Version](https://img.shields.io/github/v/release/MengHanLOVE1027/endstone-easycheckupdate)](https://github.com/MengHanLOVE1027/endstone-easycheckupdate/releases) [![GitHub License](https://img.shields.io/badge/License-AGPL3.0-blue.svg)](https://opensource.org/licenses/AGPL-3.0) [![Python](https://img.shields.io/badge/Python-3.8+-green.svg)](https://www.python.org/) [![Platform](https://img.shields.io/badge/Platform-EndStone-9cf.svg)](https://endstone.io) [![Downloads](https://img.shields.io/github/downloads/MengHanLOVE1027/endstone-easycheckupdate/total.svg)](https://github.com/MengHanLOVE1027/endstone-easycheckupdate/releases)
34
+
35
+ </div>
36
+ <div align="center">
37
+
38
+ [![Github Version](https://img.shields.io/github/v/release/MengHanLOVE1027/endstone-easycheckupdate)](https://github.com/MengHanLOVE1027/endstone-easycheckupdate/releases) [![GitHub License](https://img.shields.io/badge/License-AGPL%203.0-blue.svg)](https://opensource.org/licenses/AGPL-3.0) [![Python](https://img.shields.io/badge/Python-3.8+-green.svg)](https://www.python.org/) [![Platform](https://img.shields.io/badge/Platform-EndStone-9cf.svg)](https://endstone.io)
39
+
40
+ </div>
41
+
42
+ ---
43
+
44
+ ## 📖 简介
45
+
46
+ EndStone-EasyCheckUpdate 是一个专为 EndStone 服务器设计的插件更新检查工具。它可以自动检查服务器上已安装插件是否有可用更新,并支持一键更新功能。插件支持通过自定义的 JSON 文件来获取更新信息,为服务器管理员提供便捷的插件管理体验。
47
+
48
+ ---
49
+
50
+ ## ✨ 核心特性
51
+
52
+ | 特性 | 描述 |
53
+ | ---------------- | ---------------------------- |
54
+ | 🔍**自动检查更新** | 定期检查所有插件的更新状态 |
55
+ | 📝**自定义更新源** | 支持通过 JSON 文件指定更新信息 |
56
+ | 🔄**一键更新** | 支持自动下载并更新插件 |
57
+ | 🕒**定时检查** | 可配置的检查间隔 |
58
+ | 💾**自动备份** | 更新前自动备份旧版本插件 |
59
+ | 📊**版本比较** | 智能比较版本号,支持多种格式 |
60
+
61
+ ---
62
+
63
+ ## 🗂️ 目录结构
64
+
65
+ ```
66
+ 服务器根目录/
67
+ ├── logs/
68
+ │ └── EasyCheckUpdate/ # 日志目录
69
+ │ └── easycheckupdate_YYYYMMDD.log # 主日志文件
70
+ ├── plugins/
71
+ │ ├── endstone_easycheckupdate-x.x.x-py3-none-any.whl # 插件主文件
72
+ │ └── EasyCheckUpdate/ # 插件资源目录
73
+ │ └── config/
74
+ │ └── easycheckupdate.json # 配置文件
75
+ ```
76
+
77
+ ---
78
+
79
+ ## 🚀 快速开始
80
+
81
+ ### 安装步骤
82
+
83
+ 1. **下载插件**
84
+ - 从 [Release页面](https://github.com/MengHanLOVE1027/endstone-easycheckupdate/releases) 下载最新版本
85
+
86
+ 2. **安装插件**
87
+
88
+ ```bash
89
+ # 将插件主文件复制到服务器 plugins 目录
90
+ cp endstone_easycheckupdate-x.x.x-py3-none-any.whl plugins/
91
+ ```
92
+
93
+ 3. **配置插件**
94
+ - 编辑 `plugins/EasyCheckUpdate/config/easycheckupdate.json` 配置文件
95
+ - 根据需要自定义检查间隔和延迟时间
96
+
97
+ 4. **启动服务器**
98
+ - 重启服务器或使用 `/reload` 命令
99
+ - 插件会自动生成默认配置文件
100
+
101
+ ---
102
+
103
+ ## ⚙️ 配置详解
104
+
105
+ 配置文件位于:`plugins/EasyCheckUpdate/config/easycheckupdate.json`
106
+
107
+ ### 📋 主要配置项
108
+
109
+ ```json
110
+ {
111
+ "check_update_on_load": true,
112
+ "check_interval": 1800,
113
+ "check_delay": 10,
114
+ "last_check_time": 0
115
+ }
116
+ ```
117
+
118
+ ### 配置参数说明
119
+
120
+ | 参数 | 类型 | 默认值 | 说明 |
121
+ |------|------|--------|------|
122
+ | check_update_on_load | 布尔值 | true | 服务器启动时是否自动检查更新 |
123
+ | check_interval | 整数 | 1800 | 自动检查更新的间隔时间(秒),默认为30分钟 |
124
+ | check_delay | 整数 | 10 | 服务器启动后延迟检查更新的时间(秒),默认为10秒 |
125
+ | last_check_time | 整数 | 0 | 上次检查更新的时间戳,插件自动维护 |
126
+
127
+ ---
128
+
129
+ ## 🎮 命令手册
130
+
131
+ ### 管理员命令
132
+
133
+ | 命令 | 描述 |
134
+ | --------------------------------- | ------------------ |
135
+ | `/checkupdate` | 检查所有插件的更新 |
136
+ | `/checkupdate <插件名称>` | 检查指定插件的更新 |
137
+ | `/checkupdate <插件名称> update` | 检查并更新指定插件 |
138
+ | `/cu` | `/checkupdate` 的简写形式 |
139
+
140
+ ### 权限说明
141
+
142
+ | 权限节点 | 描述 |
143
+ | -------- | ---- |
144
+ | easycheckupdate.command.use | 允许使用检查更新命令(默认仅OP可用) |
145
+
146
+ ---
147
+
148
+ ## 🔧 开发者指南
149
+
150
+ ### 如何为插件添加更新检查支持
151
+
152
+ 要让您的插件支持 EasyCheckUpdate 的自动更新检查,您需要在插件类中添加 `update_url` 属性,该属性应指向一个包含更新信息的 JSON 文件 URL。
153
+
154
+ #### 1. 添加 update_url 属性
155
+
156
+ 在您的插件类中添加 `update_url` 属性:
157
+
158
+ ```python
159
+ class YourPlugin(Plugin):
160
+ name = "your_plugin_name"
161
+ version = "1.0.0"
162
+ update_url = "https://example.com/your_plugin_version.json" # 添加此行
163
+
164
+ def __init__(self):
165
+ super().__init__()
166
+ # 其他初始化代码
167
+ ```
168
+
169
+ #### 2. 创建更新信息 JSON 文件
170
+
171
+ 创建一个包含插件更新信息的 JSON 文件,并将其上传到可访问的服务器上。JSON 文件应包含以下字段:
172
+
173
+ ```json
174
+ {
175
+ "version": "1.0.1",
176
+ "download_url": "https://example.com/downloads/your_plugin-1.0.1.whl",
177
+ "update_content": "修复了一些bug,添加了新功能",
178
+ "author": "您的名字",
179
+ "update_time": "2023-10-01 12:00:00"
180
+ }
181
+ ```
182
+
183
+ #### 3. JSON 文件字段说明
184
+
185
+ | 字段 | 类型 | 必填 | 说明 |
186
+ |------|------|------|------|
187
+ | version | 字符串 | 是 | 最新版本号 |
188
+ | download_url | 字符串 | 是 | 最新版本的下载链接 |
189
+ | update_content | 字符串 | 否 | 更新内容说明 |
190
+ | author | 字符串 | 否 | 插件作者 |
191
+ | update_time | 字符串 | 否 | 更新发布时间 |
192
+
193
+ #### 4. 版本号格式说明
194
+
195
+ EasyCheckUpdate 支持多种版本号格式,包括但不限于:
196
+ - 标准版本号:`1.0.0`, `2.1.3`
197
+ - 带前缀的版本号:`v1.0.0`, `V2.1.3`
198
+ - 带后缀的版本号:`1.0.0-beta`, `2.1.3-rc1`
199
+
200
+ 版本比较会自动忽略 `v` 或 `V` 前缀,并逐段比较数字部分。如果某一段无法转换为数字,则按字符串比较。
201
+
202
+ #### 5. 完整示例
203
+
204
+ 以下是一个完整的插件示例:
205
+
206
+ ```python
207
+ from endstone.plugin import Plugin
208
+
209
+ class MyAwesomePlugin(Plugin):
210
+ name = "my_awesome_plugin"
211
+ version = "1.0.0"
212
+ update_url = "https://raw.githubusercontent.com/yourusername/my_awesome_plugin/main/version.json"
213
+
214
+ def __init__(self):
215
+ super().__init__()
216
+ # 其他初始化代码
217
+
218
+ def on_enable(self):
219
+ self.logger.info("MyAwesomePlugin 已启用!")
220
+
221
+ def on_disable(self):
222
+ self.logger.info("MyAwesomePlugin 已禁用!")
223
+ ```
224
+
225
+ 对应的 `version.json` 文件内容:
226
+
227
+ ```json
228
+ {
229
+ "version": "1.0.1",
230
+ "download_url": "https://github.com/yourusername/my_awesome_plugin/releases/download/v1.0.1/my_awesome_plugin-1.0.1-py3-none-any.whl",
231
+ "update_content": "修复了玩家掉落物品时的bug,优化了性能",
232
+ "author": "您的名字",
233
+ "update_time": "2023-10-01 12:00:00"
234
+ }
235
+ ```
236
+
237
+ #### 6. 自动更新流程
238
+
239
+ 当用户执行 `/checkupdate <插件名称> update` 命令时,EasyCheckUpdate 会:
240
+ 1. 从 `update_url` 获取最新的版本信息
241
+ 2. 比较当前版本与最新版本
242
+ 3. 如果发现新版本,自动下载并安装
243
+ 4. 更新前会自动备份旧版本插件文件
244
+ 5. 尝试重新加载服务器以应用更新
245
+
246
+ ---
247
+
248
+ ## 📝 常见问题
249
+
250
+ ### Q: 插件检查更新的频率可以调整吗?
251
+ A: 可以,通过修改配置文件中的 `check_interval` 参数来调整检查间隔(单位为秒)。
252
+
253
+ ### Q: 如何禁用服务器启动时的自动检查?
254
+ A: 将配置文件中的 `check_update_on_load` 设置为 `false` 即可。
255
+
256
+ ### Q: 更新插件时会发生什么?
257
+ A: 更新插件时,EasyCheckUpdate 会自动备份旧版本,下载新版本,并尝试重新加载服务器。如果重新加载失败,会提示您需要手动重启服务器。
258
+
259
+ ### Q: 如何手动触发更新检查?
260
+ A: 可以使用命令 `/checkupdate` 检查所有插件,或 `/checkupdate <插件名称>` 检查特定插件。
261
+
262
+ ### Q: 更新失败后如何恢复?
263
+ A: EasyCheckUpdate 在更新前会自动备份旧版本插件文件(.bak 后缀)。如果更新失败,可以手动将备份文件恢复。
264
+
265
+ ---
266
+
267
+ ## 📄 许可证
268
+
269
+ AGPL-3.0 License
270
+
271
+ ---
272
+
273
+ ## 🤝 贡献
274
+
275
+ 欢迎提交 Issue 和 Pull Request 来帮助改进这个插件!
276
+
277
+ ---
278
+
279
+ ## 📞 联系方式
280
+
281
+ 如有问题或建议,请通过以下方式联系:
282
+ - GitHub Issues
283
+ - MineBBS 论坛
284
+ - QQ群:1083195477(Easy系列插件交流群)
285
+
286
+
287
+ ### 📊 日志文件说明
288
+
289
+ | 日志文件 | 位置 | 用途 |
290
+ | -------- | --------------------------------------------------- | -------------------------- |
291
+ | 主日志 | `logs/EasyLuckyPillar/easycheckupdate_YYYYMMDD.log` | 记录游戏运行日志和错误信息 |
292
+
293
+ ---
294
+
295
+ ## 📄 许可证
296
+
297
+ 本项目采用 **AGPL-3.0** 许可证开源。
298
+
299
+ ```
300
+ 版权所有 (c) 2023 梦涵LOVE
301
+
302
+ 本程序是自由软件:您可以自由地重新发布和修改它,
303
+ 但必须遵循AGPL-3.0许可证的条款。
304
+ ```
305
+
306
+ 完整许可证文本请参阅 [LICENSE](LICENSE) 文件。
307
+
308
+ ---
309
+
310
+ ## 👥 贡献指南
311
+
312
+ 欢迎提交 Issue 和 Pull Request!
313
+
314
+ 1. **Fork 项目仓库**
315
+ 2. **创建功能分支**
316
+ ```bash
317
+ git checkout -b feature/AmazingFeature
318
+ ```
319
+ 3. **提交更改**
320
+ ```bash
321
+ git commit -m 'Add some AmazingFeature'
322
+ ```
323
+ 4. **推送分支**
324
+ ```bash
325
+ git push origin feature/AmazingFeature
326
+ ```
327
+ 5. **创建 Pull Request**
328
+
329
+ ---
330
+
331
+ ## 🌟 支持与反馈
332
+
333
+ - **GitHub Issues**: [提交问题](https://github.com/MengHanLOVE1027/endstone-easycheckupdate/issues)
334
+ - **MineBBS**: [讨论帖](https://www.minebbs.com/resources/easycheckupdate-elp-endstone.15496/)
335
+ - **作者**: 梦涵LOVE
336
+
337
+ ---
338
+
339
+ <div align="center">
340
+
341
+ **⭐ 如果这个项目对你有帮助,请给我们一个 Star!**
342
+
343
+ [![Star History Chart](https://api.star-history.com/svg?repos=MengHanLOVE1027/endstone-easycheckupdate&type=Date)](https://star-history.com/#MengHanLOVE1027/endstone-easycheckupdate&Date)
344
+
345
+ </div>
@@ -0,0 +1,328 @@
1
+ <div align="center">
2
+
3
+ ![EndStone-EasyCheckUpdate](https://socialify.git.ci/MengHanLOVE1027/endstone-easycheckupdate/image?custom_language=Python&description=1&font=Inter&forks=1&issues=1&language=1&logo=https://zh.minecraft.wiki/images/BE_icon_recipe_all.png?8a449&format=original&name=1&owner=1&pattern=Plus&pulls=1&stargazers=1&theme=Auto)
4
+
5
+ <h3>EndStone-EasyCheckUpdate</h3>
6
+
7
+ <p>
8
+ <b>一个基于 EndStone 的插件更新检查工具 / A plugin update checker based on EndStone.</b>
9
+
10
+ Powered by EndStone.<br>
11
+
12
+ </p>
13
+
14
+ [![README](https://img.shields.io/badge/README-中文|Chinese-blue)](README.md) [![README_EN](https://img.shields.io/badge/README-英文|English-blue)](README_EN.md)
15
+
16
+ [![Github Version](https://img.shields.io/github/v/release/MengHanLOVE1027/endstone-easycheckupdate)](https://github.com/MengHanLOVE1027/endstone-easycheckupdate/releases) [![GitHub License](https://img.shields.io/badge/License-AGPL3.0-blue.svg)](https://opensource.org/licenses/AGPL-3.0) [![Python](https://img.shields.io/badge/Python-3.8+-green.svg)](https://www.python.org/) [![Platform](https://img.shields.io/badge/Platform-EndStone-9cf.svg)](https://endstone.io) [![Downloads](https://img.shields.io/github/downloads/MengHanLOVE1027/endstone-easycheckupdate/total.svg)](https://github.com/MengHanLOVE1027/endstone-easycheckupdate/releases)
17
+
18
+ </div>
19
+ <div align="center">
20
+
21
+ [![Github Version](https://img.shields.io/github/v/release/MengHanLOVE1027/endstone-easycheckupdate)](https://github.com/MengHanLOVE1027/endstone-easycheckupdate/releases) [![GitHub License](https://img.shields.io/badge/License-AGPL%203.0-blue.svg)](https://opensource.org/licenses/AGPL-3.0) [![Python](https://img.shields.io/badge/Python-3.8+-green.svg)](https://www.python.org/) [![Platform](https://img.shields.io/badge/Platform-EndStone-9cf.svg)](https://endstone.io)
22
+
23
+ </div>
24
+
25
+ ---
26
+
27
+ ## 📖 简介
28
+
29
+ EndStone-EasyCheckUpdate 是一个专为 EndStone 服务器设计的插件更新检查工具。它可以自动检查服务器上已安装插件是否有可用更新,并支持一键更新功能。插件支持通过自定义的 JSON 文件来获取更新信息,为服务器管理员提供便捷的插件管理体验。
30
+
31
+ ---
32
+
33
+ ## ✨ 核心特性
34
+
35
+ | 特性 | 描述 |
36
+ | ---------------- | ---------------------------- |
37
+ | 🔍**自动检查更新** | 定期检查所有插件的更新状态 |
38
+ | 📝**自定义更新源** | 支持通过 JSON 文件指定更新信息 |
39
+ | 🔄**一键更新** | 支持自动下载并更新插件 |
40
+ | 🕒**定时检查** | 可配置的检查间隔 |
41
+ | 💾**自动备份** | 更新前自动备份旧版本插件 |
42
+ | 📊**版本比较** | 智能比较版本号,支持多种格式 |
43
+
44
+ ---
45
+
46
+ ## 🗂️ 目录结构
47
+
48
+ ```
49
+ 服务器根目录/
50
+ ├── logs/
51
+ │ └── EasyCheckUpdate/ # 日志目录
52
+ │ └── easycheckupdate_YYYYMMDD.log # 主日志文件
53
+ ├── plugins/
54
+ │ ├── endstone_easycheckupdate-x.x.x-py3-none-any.whl # 插件主文件
55
+ │ └── EasyCheckUpdate/ # 插件资源目录
56
+ │ └── config/
57
+ │ └── easycheckupdate.json # 配置文件
58
+ ```
59
+
60
+ ---
61
+
62
+ ## 🚀 快速开始
63
+
64
+ ### 安装步骤
65
+
66
+ 1. **下载插件**
67
+ - 从 [Release页面](https://github.com/MengHanLOVE1027/endstone-easycheckupdate/releases) 下载最新版本
68
+
69
+ 2. **安装插件**
70
+
71
+ ```bash
72
+ # 将插件主文件复制到服务器 plugins 目录
73
+ cp endstone_easycheckupdate-x.x.x-py3-none-any.whl plugins/
74
+ ```
75
+
76
+ 3. **配置插件**
77
+ - 编辑 `plugins/EasyCheckUpdate/config/easycheckupdate.json` 配置文件
78
+ - 根据需要自定义检查间隔和延迟时间
79
+
80
+ 4. **启动服务器**
81
+ - 重启服务器或使用 `/reload` 命令
82
+ - 插件会自动生成默认配置文件
83
+
84
+ ---
85
+
86
+ ## ⚙️ 配置详解
87
+
88
+ 配置文件位于:`plugins/EasyCheckUpdate/config/easycheckupdate.json`
89
+
90
+ ### 📋 主要配置项
91
+
92
+ ```json
93
+ {
94
+ "check_update_on_load": true,
95
+ "check_interval": 1800,
96
+ "check_delay": 10,
97
+ "last_check_time": 0
98
+ }
99
+ ```
100
+
101
+ ### 配置参数说明
102
+
103
+ | 参数 | 类型 | 默认值 | 说明 |
104
+ |------|------|--------|------|
105
+ | check_update_on_load | 布尔值 | true | 服务器启动时是否自动检查更新 |
106
+ | check_interval | 整数 | 1800 | 自动检查更新的间隔时间(秒),默认为30分钟 |
107
+ | check_delay | 整数 | 10 | 服务器启动后延迟检查更新的时间(秒),默认为10秒 |
108
+ | last_check_time | 整数 | 0 | 上次检查更新的时间戳,插件自动维护 |
109
+
110
+ ---
111
+
112
+ ## 🎮 命令手册
113
+
114
+ ### 管理员命令
115
+
116
+ | 命令 | 描述 |
117
+ | --------------------------------- | ------------------ |
118
+ | `/checkupdate` | 检查所有插件的更新 |
119
+ | `/checkupdate <插件名称>` | 检查指定插件的更新 |
120
+ | `/checkupdate <插件名称> update` | 检查并更新指定插件 |
121
+ | `/cu` | `/checkupdate` 的简写形式 |
122
+
123
+ ### 权限说明
124
+
125
+ | 权限节点 | 描述 |
126
+ | -------- | ---- |
127
+ | easycheckupdate.command.use | 允许使用检查更新命令(默认仅OP可用) |
128
+
129
+ ---
130
+
131
+ ## 🔧 开发者指南
132
+
133
+ ### 如何为插件添加更新检查支持
134
+
135
+ 要让您的插件支持 EasyCheckUpdate 的自动更新检查,您需要在插件类中添加 `update_url` 属性,该属性应指向一个包含更新信息的 JSON 文件 URL。
136
+
137
+ #### 1. 添加 update_url 属性
138
+
139
+ 在您的插件类中添加 `update_url` 属性:
140
+
141
+ ```python
142
+ class YourPlugin(Plugin):
143
+ name = "your_plugin_name"
144
+ version = "1.0.0"
145
+ update_url = "https://example.com/your_plugin_version.json" # 添加此行
146
+
147
+ def __init__(self):
148
+ super().__init__()
149
+ # 其他初始化代码
150
+ ```
151
+
152
+ #### 2. 创建更新信息 JSON 文件
153
+
154
+ 创建一个包含插件更新信息的 JSON 文件,并将其上传到可访问的服务器上。JSON 文件应包含以下字段:
155
+
156
+ ```json
157
+ {
158
+ "version": "1.0.1",
159
+ "download_url": "https://example.com/downloads/your_plugin-1.0.1.whl",
160
+ "update_content": "修复了一些bug,添加了新功能",
161
+ "author": "您的名字",
162
+ "update_time": "2023-10-01 12:00:00"
163
+ }
164
+ ```
165
+
166
+ #### 3. JSON 文件字段说明
167
+
168
+ | 字段 | 类型 | 必填 | 说明 |
169
+ |------|------|------|------|
170
+ | version | 字符串 | 是 | 最新版本号 |
171
+ | download_url | 字符串 | 是 | 最新版本的下载链接 |
172
+ | update_content | 字符串 | 否 | 更新内容说明 |
173
+ | author | 字符串 | 否 | 插件作者 |
174
+ | update_time | 字符串 | 否 | 更新发布时间 |
175
+
176
+ #### 4. 版本号格式说明
177
+
178
+ EasyCheckUpdate 支持多种版本号格式,包括但不限于:
179
+ - 标准版本号:`1.0.0`, `2.1.3`
180
+ - 带前缀的版本号:`v1.0.0`, `V2.1.3`
181
+ - 带后缀的版本号:`1.0.0-beta`, `2.1.3-rc1`
182
+
183
+ 版本比较会自动忽略 `v` 或 `V` 前缀,并逐段比较数字部分。如果某一段无法转换为数字,则按字符串比较。
184
+
185
+ #### 5. 完整示例
186
+
187
+ 以下是一个完整的插件示例:
188
+
189
+ ```python
190
+ from endstone.plugin import Plugin
191
+
192
+ class MyAwesomePlugin(Plugin):
193
+ name = "my_awesome_plugin"
194
+ version = "1.0.0"
195
+ update_url = "https://raw.githubusercontent.com/yourusername/my_awesome_plugin/main/version.json"
196
+
197
+ def __init__(self):
198
+ super().__init__()
199
+ # 其他初始化代码
200
+
201
+ def on_enable(self):
202
+ self.logger.info("MyAwesomePlugin 已启用!")
203
+
204
+ def on_disable(self):
205
+ self.logger.info("MyAwesomePlugin 已禁用!")
206
+ ```
207
+
208
+ 对应的 `version.json` 文件内容:
209
+
210
+ ```json
211
+ {
212
+ "version": "1.0.1",
213
+ "download_url": "https://github.com/yourusername/my_awesome_plugin/releases/download/v1.0.1/my_awesome_plugin-1.0.1-py3-none-any.whl",
214
+ "update_content": "修复了玩家掉落物品时的bug,优化了性能",
215
+ "author": "您的名字",
216
+ "update_time": "2023-10-01 12:00:00"
217
+ }
218
+ ```
219
+
220
+ #### 6. 自动更新流程
221
+
222
+ 当用户执行 `/checkupdate <插件名称> update` 命令时,EasyCheckUpdate 会:
223
+ 1. 从 `update_url` 获取最新的版本信息
224
+ 2. 比较当前版本与最新版本
225
+ 3. 如果发现新版本,自动下载并安装
226
+ 4. 更新前会自动备份旧版本插件文件
227
+ 5. 尝试重新加载服务器以应用更新
228
+
229
+ ---
230
+
231
+ ## 📝 常见问题
232
+
233
+ ### Q: 插件检查更新的频率可以调整吗?
234
+ A: 可以,通过修改配置文件中的 `check_interval` 参数来调整检查间隔(单位为秒)。
235
+
236
+ ### Q: 如何禁用服务器启动时的自动检查?
237
+ A: 将配置文件中的 `check_update_on_load` 设置为 `false` 即可。
238
+
239
+ ### Q: 更新插件时会发生什么?
240
+ A: 更新插件时,EasyCheckUpdate 会自动备份旧版本,下载新版本,并尝试重新加载服务器。如果重新加载失败,会提示您需要手动重启服务器。
241
+
242
+ ### Q: 如何手动触发更新检查?
243
+ A: 可以使用命令 `/checkupdate` 检查所有插件,或 `/checkupdate <插件名称>` 检查特定插件。
244
+
245
+ ### Q: 更新失败后如何恢复?
246
+ A: EasyCheckUpdate 在更新前会自动备份旧版本插件文件(.bak 后缀)。如果更新失败,可以手动将备份文件恢复。
247
+
248
+ ---
249
+
250
+ ## 📄 许可证
251
+
252
+ AGPL-3.0 License
253
+
254
+ ---
255
+
256
+ ## 🤝 贡献
257
+
258
+ 欢迎提交 Issue 和 Pull Request 来帮助改进这个插件!
259
+
260
+ ---
261
+
262
+ ## 📞 联系方式
263
+
264
+ 如有问题或建议,请通过以下方式联系:
265
+ - GitHub Issues
266
+ - MineBBS 论坛
267
+ - QQ群:1083195477(Easy系列插件交流群)
268
+
269
+
270
+ ### 📊 日志文件说明
271
+
272
+ | 日志文件 | 位置 | 用途 |
273
+ | -------- | --------------------------------------------------- | -------------------------- |
274
+ | 主日志 | `logs/EasyLuckyPillar/easycheckupdate_YYYYMMDD.log` | 记录游戏运行日志和错误信息 |
275
+
276
+ ---
277
+
278
+ ## 📄 许可证
279
+
280
+ 本项目采用 **AGPL-3.0** 许可证开源。
281
+
282
+ ```
283
+ 版权所有 (c) 2023 梦涵LOVE
284
+
285
+ 本程序是自由软件:您可以自由地重新发布和修改它,
286
+ 但必须遵循AGPL-3.0许可证的条款。
287
+ ```
288
+
289
+ 完整许可证文本请参阅 [LICENSE](LICENSE) 文件。
290
+
291
+ ---
292
+
293
+ ## 👥 贡献指南
294
+
295
+ 欢迎提交 Issue 和 Pull Request!
296
+
297
+ 1. **Fork 项目仓库**
298
+ 2. **创建功能分支**
299
+ ```bash
300
+ git checkout -b feature/AmazingFeature
301
+ ```
302
+ 3. **提交更改**
303
+ ```bash
304
+ git commit -m 'Add some AmazingFeature'
305
+ ```
306
+ 4. **推送分支**
307
+ ```bash
308
+ git push origin feature/AmazingFeature
309
+ ```
310
+ 5. **创建 Pull Request**
311
+
312
+ ---
313
+
314
+ ## 🌟 支持与反馈
315
+
316
+ - **GitHub Issues**: [提交问题](https://github.com/MengHanLOVE1027/endstone-easycheckupdate/issues)
317
+ - **MineBBS**: [讨论帖](https://www.minebbs.com/resources/easycheckupdate-elp-endstone.15496/)
318
+ - **作者**: 梦涵LOVE
319
+
320
+ ---
321
+
322
+ <div align="center">
323
+
324
+ **⭐ 如果这个项目对你有帮助,请给我们一个 Star!**
325
+
326
+ [![Star History Chart](https://api.star-history.com/svg?repos=MengHanLOVE1027/endstone-easycheckupdate&type=Date)](https://star-history.com/#MengHanLOVE1027/endstone-easycheckupdate&Date)
327
+
328
+ </div>
@@ -0,0 +1,29 @@
1
+ [build-system]
2
+ requires = ["hatchling"]
3
+ build-backend = "hatchling.build"
4
+
5
+ [project]
6
+ name = "endstone-easycheckupdate"
7
+ version = "0.1.0"
8
+ authors = [
9
+ { name = "MengHanLOVE", email = "2193438288@qq.com" },
10
+ ]
11
+ description = "一个基于 EndStone 的插件更新检查工具 / A plugin update checker based on EndStone."
12
+ readme = "README.md"
13
+ license = "AGPL-3.0-or-later"
14
+ license-files = ["LICENSE"]
15
+ requires-python = ">=3.8"
16
+ keywords = ["endstone", "plugins", "backup"]
17
+ classifiers = [
18
+ "Programming Language :: Python :: 3",
19
+ "Operating System :: OS Independent",
20
+ ]
21
+
22
+ [project.urls]
23
+ Homepage = "https://github.com/MengHanLOVE1027/endstone-easycheckupdate"
24
+
25
+ [project.entry-points."endstone"]
26
+ easycheckupdate = "endstone_easycheckupdate:EasyCheckUpdatePlugin"
27
+
28
+ [tool.hatch.build.targets.wheel]
29
+ packages = ["src/endstone_easycheckupdate"]