fix: 修复检测更新时获取版本号错误的问题

This commit is contained in:
2024-03-19 17:57:27 +08:00
parent 98300804fe
commit 03b0d62b19
4 changed files with 65 additions and 63 deletions

View File

@@ -77,30 +77,9 @@ public class HamsterCorePlugin {
public void onProxyInitialization(ProxyInitializeEvent event) {
long start = System.currentTimeMillis();
slf4jLogger.info("仓鼠核心正在启动");
CoreAPI.getInstance().getExecutorService().submit(this::checkUpdate);
long time = System.currentTimeMillis() - start;
slf4jLogger.info("仓鼠核心启动完成,总计耗时 " + time + " ms");
CoreAPI.getInstance().getExecutorService().submit(() -> {
for (PluginContainer plugin : proxyServer.getPluginManager().getPlugins()) {
String pluginName = plugin.getDescription().getName().orElse(null);
if (pluginName == null) {
continue;
}
Object pluginObject = plugin.getInstance().orElse(null);
if (pluginObject == null) {
continue;
}
try (InputStream stream = pluginObject.getClass().getResourceAsStream("/update.yml")) {
if (stream == null) {
continue;
}
try (InputStreamReader reader = new InputStreamReader(stream, StandardCharsets.UTF_8)) {
YamlConfig config = YamlConfig.load(reader);
UpdateCheckUtils.checkUpdate(pluginName, config);
}
} catch (Exception ignored) {
}
}
});
}
@Subscribe(order = PostOrder.LAST)
@@ -119,4 +98,27 @@ public class HamsterCorePlugin {
long time = System.currentTimeMillis() - start;
slf4jLogger.info("仓鼠核心关闭完成,总计耗时 " + time + " ms");
}
private void checkUpdate() {
for (PluginContainer plugin : proxyServer.getPluginManager().getPlugins()) {
String pluginName = plugin.getDescription().getName().orElse(null);
if (pluginName == null) {
continue;
}
Object pluginObject = plugin.getInstance().orElse(null);
if (pluginObject == null) {
continue;
}
try (InputStream stream = pluginObject.getClass().getResourceAsStream("/update.yml")) {
if (stream == null) {
continue;
}
try (InputStreamReader reader = new InputStreamReader(stream, StandardCharsets.UTF_8)) {
YamlConfig config = YamlConfig.load(reader);
UpdateCheckUtils.checkUpdate(pluginName, config);
}
} catch (Exception ignored) {
}
}
}
}