1
mirror of https://github.com/CarmJos/UltraDepository.git synced 2026-06-04 08:38:25 +08:00

[v1.3.4] 版本更新

- [A] 添加版本更新检查。
This commit is contained in:
2022-01-22 06:07:33 +08:00
parent afd62a493d
commit a427db36e9
6 changed files with 99 additions and 1 deletions
@@ -7,6 +7,7 @@ import cc.carm.lib.easyplugin.utils.MessageUtils;
import cc.carm.plugin.ultradepository.command.DepositoryCommand;
import cc.carm.plugin.ultradepository.configuration.PluginConfig;
import cc.carm.plugin.ultradepository.hooker.PAPIExpansion;
import cc.carm.plugin.ultradepository.hooker.UpdateChecker;
import cc.carm.plugin.ultradepository.listener.CollectListener;
import cc.carm.plugin.ultradepository.listener.UserListener;
import cc.carm.plugin.ultradepository.manager.ConfigManager;
@@ -109,6 +110,13 @@ public class UltraDepository extends EasyPlugin {
}));
}
if (PluginConfig.CHECK_UPDATE.get()) {
log("开始检查更新...");
UpdateChecker.checkUpdate(this);
} else {
log("已禁用检查更新,跳过。");
}
getUserManager().loadPlayersData();
return true;
@@ -21,6 +21,10 @@ public class PluginConfig {
"metrics", Boolean.class, true
);
public static final ConfigValue<Boolean> CHECK_UPDATE = new ConfigValue<>(
"check-update", Boolean.class, true
);
public static final ConfigStringCast<StorageMethod> STORAGE_METHOD = new ConfigStringCast<>(
"storage.method", StorageMethod::read, StorageMethod.YAML
);
@@ -0,0 +1,46 @@
package cc.carm.plugin.ultradepository.hooker;
import cc.carm.lib.githubreleases4j.GithubRelease;
import cc.carm.lib.githubreleases4j.GithubReleases4J;
import cc.carm.plugin.ultradepository.UltraDepository;
import java.util.List;
public class UpdateChecker {
public static void checkUpdate(UltraDepository plugin) {
plugin.getScheduler().runAsync(() -> {
try {
List<GithubRelease> releases = GithubReleases4J.listReleases("CarmJos", "UltraDepository");
if (releases.isEmpty()) throw new NullPointerException(); // 无法获取更新
String currentVersion = plugin.getDescription().getVersion();
int i = 0;
for (GithubRelease release : releases) {
if (release.getTagName().equalsIgnoreCase(currentVersion)) {
break;
}
i++;
}
if (i > 0) {
GithubRelease latestRelease = releases.get(0);
plugin.log("检查更新完成,当前已落后 " + i + " 个版本,最新版本为 &6&l" + latestRelease.getTagName() + " &r。");
plugin.log("最新版本下载地址&e " + latestRelease.getHTMLUrl());
} else {
plugin.log("检查更新完成,当前已是最新版本。");
}
} catch (Exception exception) {
plugin.error("检查更新失败,请您定期查看插件是否更新,避免安全问题。");
plugin.error("插件下载地址&e https://github.com/CarmJos/UltraDepository/releases");
}
});
}
}
+5
View File
@@ -11,6 +11,11 @@ debug: false
# 当然,您也可以选择在这里关闭,或在plugins/bStats下的配置文件中关闭。
metrics: true
# 检查更新设定
# 该选项用于插件判断是否要检查更新,若您不希望插件检查更新并提示您,可以选择关闭。
# 检查更新为异步操作,绝不会影响性能与使用体验。
check-update: true
# 存储相关配置
# 注意:存储配置不会通过重载指令生效,如有修改请重新启动服务器。
storage:
+20
View File
@@ -0,0 +1,20 @@
import cc.carm.lib.githubreleases4j.GithubRelease;
import cc.carm.lib.githubreleases4j.GithubReleases4J;
import org.junit.Test;
import java.util.List;
public class ReleasesTest {
@Test
public void onTest() {
List<GithubRelease> releases = GithubReleases4J.listReleases("CarmJos", "UltraDepository");
for (GithubRelease release : releases) {
System.out.println("#" + release.getID() + " (:" + release.getTagName() + ")" + " " + release.getName());
System.out.println("- " + release.getHTMLUrl());
}
}
}