From 21a91a84057456772dbd4c6bde1da3c06deadcde Mon Sep 17 00:00:00 2001 From: MiniDay <372403923@qq.com> Date: Sun, 17 Mar 2024 00:32:59 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E8=87=AA=E5=8A=A8=E6=A3=80=E6=B5=8B=20?= =?UTF-8?q?Jenkins=20=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- build.gradle.kts | 12 ++--- .../plugin/core/bukkit/HamsterCorePlugin.java | 42 +---------------- .../listener/JenkinsUpdateListener.java | 45 ++++++++++++++++++- .../plugin/core/bungee/HamsterCorePlugin.java | 13 +++--- 4 files changed, 56 insertions(+), 56 deletions(-) diff --git a/build.gradle.kts b/build.gradle.kts index d0844ba..92520c6 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -45,12 +45,12 @@ subprojects { } processResources { val map = mutableMapOf() - map["BUILD_ID"] = System.getenv().getOrDefault("BUILD_ID", "NONE") - map["BUILD_NUMBER"] = System.getenv().getOrDefault("BUILD_NUMBER", "NONE") - map["BUILD_DISPLAY_NAME"] = System.getenv().getOrDefault("BUILD_DISPLAY_NAME", "NONE") - map["JOB_URL"] = System.getenv().getOrDefault("JOB_URL", "NONE") - map["BUILD_URL"] = System.getenv().getOrDefault("BUILD_URL", "NONE") - map["GIT_COMMIT"] = System.getenv().getOrDefault("GIT_COMMIT", "NONE") + map["BUILD_ID"] = System.getenv().getOrDefault("BUILD_ID", "DEV") + map["BUILD_NUMBER"] = System.getenv().getOrDefault("BUILD_NUMBER", "DEV") + map["BUILD_DISPLAY_NAME"] = System.getenv().getOrDefault("BUILD_DISPLAY_NAME", "DEV") + map["JOB_URL"] = System.getenv().getOrDefault("JOB_URL", "DEV") + map["BUILD_URL"] = System.getenv().getOrDefault("BUILD_URL", "DEV") + map["GIT_COMMIT"] = System.getenv().getOrDefault("GIT_COMMIT", "DEV") filesMatching("jenkins.yml") { expand(map) } diff --git a/core-bukkit/src/main/java/cn/hamster3/mc/plugin/core/bukkit/HamsterCorePlugin.java b/core-bukkit/src/main/java/cn/hamster3/mc/plugin/core/bukkit/HamsterCorePlugin.java index 059f459..bb5bfbd 100644 --- a/core-bukkit/src/main/java/cn/hamster3/mc/plugin/core/bukkit/HamsterCorePlugin.java +++ b/core-bukkit/src/main/java/cn/hamster3/mc/plugin/core/bukkit/HamsterCorePlugin.java @@ -14,25 +14,17 @@ import cn.hamster3.mc.plugin.core.bukkit.page.handler.PageHandler; import cn.hamster3.mc.plugin.core.bukkit.page.listener.PageListener; import cn.hamster3.mc.plugin.core.bukkit.util.MinecraftVersion; import cn.hamster3.mc.plugin.core.common.api.CoreAPI; -import cn.hamster3.mc.plugin.core.common.config.YamlConfig; -import cn.hamster3.mc.plugin.core.common.util.JenkinsUtils; import lombok.Getter; import net.kyori.adventure.platform.bukkit.BukkitAudiences; import org.bukkit.Bukkit; -import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; import org.bukkit.inventory.Inventory; import org.bukkit.inventory.InventoryView; -import org.bukkit.plugin.Plugin; import org.bukkit.plugin.java.JavaPlugin; import org.bukkit.scheduler.BukkitTask; import org.jetbrains.annotations.NotNull; import java.io.File; -import java.io.IOException; -import java.io.InputStream; -import java.io.InputStreamReader; -import java.nio.charset.StandardCharsets; import java.nio.file.Files; import java.nio.file.StandardCopyOption; import java.util.Objects; @@ -67,38 +59,6 @@ public class HamsterCorePlugin extends JavaPlugin { return Bukkit.getScheduler().runTaskAsynchronously(instance, runnable); } - public static void showUpdate(@NotNull CommandSender sender) { - HamsterCorePlugin.async(() -> { - for (Plugin plugin : Bukkit.getPluginManager().getPlugins()) { - InputStream resource = plugin.getResource("jenkins.yml"); - if (resource == null) { - continue; - } - try (InputStreamReader reader = new InputStreamReader(resource, StandardCharsets.UTF_8)) { - YamlConfig jenkinsConfig = YamlConfig.load(reader); - String jobUrl = jenkinsConfig.getString("JOB_URL"); - if (jobUrl == null || jobUrl.equalsIgnoreCase("NONE")) { - continue; - } - String buildNumberString = jenkinsConfig.getString("BUILD_NUMBER"); - if (buildNumberString == null || buildNumberString.equalsIgnoreCase("NONE")) { - continue; - } - int lastStableBuild = JenkinsUtils.getLastStableBuild(jobUrl, null, null); - int buildNumber = Integer.parseInt(buildNumberString); - int version = lastStableBuild - buildNumber; - if (version <= 0) { - continue; - } - String pluginName = plugin.getName(); - sender.sendMessage(String.format("§a检测到服务器内安装的 %s 插件有 %d 个版本更新", pluginName, version)); - sender.sendMessage(String.format("§b下载链接: &b&n&l%s", jobUrl)); - } catch (IOException ignored) { - } - } - }); - } - @Override public void onLoad() { instance = this; @@ -154,7 +114,7 @@ public class HamsterCorePlugin extends JavaPlugin { sync(() -> { PointAPI.reloadPlayerPointAPIHook(); VaultAPI.reloadVaultHook(); - showUpdate(Bukkit.getConsoleSender()); + JenkinsUpdateListener.showUpdate(Bukkit.getConsoleSender()); }); logger.info("仓鼠核心启动完成,总计耗时 " + time + " ms"); } diff --git a/core-bukkit/src/main/java/cn/hamster3/mc/plugin/core/bukkit/listener/JenkinsUpdateListener.java b/core-bukkit/src/main/java/cn/hamster3/mc/plugin/core/bukkit/listener/JenkinsUpdateListener.java index c1ec4e1..7472ab1 100644 --- a/core-bukkit/src/main/java/cn/hamster3/mc/plugin/core/bukkit/listener/JenkinsUpdateListener.java +++ b/core-bukkit/src/main/java/cn/hamster3/mc/plugin/core/bukkit/listener/JenkinsUpdateListener.java @@ -1,11 +1,21 @@ package cn.hamster3.mc.plugin.core.bukkit.listener; import cn.hamster3.mc.plugin.core.bukkit.HamsterCorePlugin; +import cn.hamster3.mc.plugin.core.common.config.YamlConfig; +import cn.hamster3.mc.plugin.core.common.util.JenkinsUtils; +import org.bukkit.Bukkit; +import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; import org.bukkit.event.Listener; import org.bukkit.event.player.PlayerJoinEvent; +import org.bukkit.plugin.Plugin; +import org.jetbrains.annotations.NotNull; +import java.io.IOException; +import java.io.InputStream; +import java.io.InputStreamReader; +import java.nio.charset.StandardCharsets; import java.util.HashSet; import java.util.UUID; @@ -16,6 +26,39 @@ public class JenkinsUpdateListener implements Listener { private JenkinsUpdateListener() { } + public static void showUpdate(@NotNull CommandSender sender) { + HamsterCorePlugin.async(() -> { + for (Plugin plugin : Bukkit.getPluginManager().getPlugins()) { + InputStream resource = plugin.getResource("jenkins.yml"); + if (resource == null) { + continue; + } + try (InputStreamReader reader = new InputStreamReader(resource, StandardCharsets.UTF_8)) { + YamlConfig jenkinsConfig = YamlConfig.load(reader); + String jobUrl = jenkinsConfig.getString("JOB_URL"); + if (jobUrl == null || jobUrl.equalsIgnoreCase("DEV")) { + continue; + } + String buildNumberString = jenkinsConfig.getString("BUILD_NUMBER"); + if (buildNumberString == null || buildNumberString.equalsIgnoreCase("DEV")) { + continue; + } + int lastStableBuild = JenkinsUtils.getLastStableBuild(jobUrl, null, null); + int buildNumber = Integer.parseInt(buildNumberString); + int version = lastStableBuild - buildNumber; + if (version <= 0) { + continue; + } + String pluginName = plugin.getName(); + sender.sendMessage(String.format( + "§a检测到插件 %s 有 %d 个版本更新, 下载链接: §n§l%s", pluginName, version, jobUrl + )); + } catch (IOException ignored) { + } + } + }); + } + @EventHandler(ignoreCancelled = true) public void onPlayerJoin(PlayerJoinEvent event) { Player player = event.getPlayer(); @@ -25,6 +68,6 @@ public class JenkinsUpdateListener implements Listener { if (!SHOWED.add(player.getUniqueId())) { return; } - HamsterCorePlugin.showUpdate(player); + showUpdate(player); } } diff --git a/core-bungee/src/main/java/cn/hamster3/mc/plugin/core/bungee/HamsterCorePlugin.java b/core-bungee/src/main/java/cn/hamster3/mc/plugin/core/bungee/HamsterCorePlugin.java index cbaa6e4..80fd41a 100644 --- a/core-bungee/src/main/java/cn/hamster3/mc/plugin/core/bungee/HamsterCorePlugin.java +++ b/core-bungee/src/main/java/cn/hamster3/mc/plugin/core/bungee/HamsterCorePlugin.java @@ -95,11 +95,11 @@ public class HamsterCorePlugin extends Plugin { try (InputStreamReader reader = new InputStreamReader(resource, StandardCharsets.UTF_8)) { YamlConfig jenkinsConfig = YamlConfig.load(reader); String jobUrl = jenkinsConfig.getString("JOB_URL"); - if (jobUrl == null || jobUrl.equalsIgnoreCase("NONE")) { + if (jobUrl == null || jobUrl.equalsIgnoreCase("DEV")) { continue; } String buildNumberString = jenkinsConfig.getString("BUILD_NUMBER"); - if (buildNumberString == null || buildNumberString.equalsIgnoreCase("NONE")) { + if (buildNumberString == null || buildNumberString.equalsIgnoreCase("DEV")) { continue; } int lastStableBuild = JenkinsUtils.getLastStableBuild(jobUrl, null, null); @@ -109,12 +109,9 @@ public class HamsterCorePlugin extends Plugin { continue; } String pluginName = plugin.getDescription().getName(); - sender.sendMessage(TextComponent.fromLegacyText( - String.format("§a检测到服务器内安装的 %s 插件有 %d 个版本更新", pluginName, version) - )); - sender.sendMessage(TextComponent.fromLegacyText( - String.format("§b下载链接: &b&n&l%s", jobUrl) - )); + sender.sendMessage(TextComponent.fromLegacyText(String.format( + "§a检测到插件 %s 落后 %d 个版本更新, 下载链接: §n§l%s", pluginName, version, jobUrl + ))); } catch (IOException ignored) { } }