From f4527487ff8b42999c43770df25285a8d8283eaa Mon Sep 17 00:00:00 2001 From: Oliver Date: Fri, 27 Jun 2025 15:59:29 +0200 Subject: [PATCH] common, fancynpcs, fancyholograms-v2, fancyholograms-v3, ci: Add channel and platform to version config --- .../workflows/deploy-snapshot-fancynpcs.yml | 3 ++ .../de/oliver/fancylib/VersionConfig.java | 32 ++++++++++++------- plugins/fancyholograms-v2/build.gradle.kts | 5 +-- .../oliver/fancyholograms/FancyHolograms.java | 10 +++--- .../src/main/resources/version.yml | 5 +-- plugins/fancyholograms/build.gradle.kts | 4 ++- .../fancyholograms/metrics/FHMetrics.java | 2 +- .../src/main/resources/version.yml | 4 ++- plugins/fancynpcs/build.gradle.kts | 5 +-- .../java/de/oliver/fancynpcs/FancyNpcs.java | 8 ++--- .../fancynpcs/src/main/resources/version.yml | 5 +-- 11 files changed, 49 insertions(+), 34 deletions(-) diff --git a/.github/workflows/deploy-snapshot-fancynpcs.yml b/.github/workflows/deploy-snapshot-fancynpcs.yml index 09da625c..dc1d681a 100644 --- a/.github/workflows/deploy-snapshot-fancynpcs.yml +++ b/.github/workflows/deploy-snapshot-fancynpcs.yml @@ -28,6 +28,9 @@ jobs: run: chmod +x ./gradlew - name: Build FancyNpcs + env: + RELEASE_CHANNEL: 'snapshot' + RELEASE_PLATFORM: 'modrinth' run: ./gradlew :plugins:fancynpcs:shadowJar - name: Build deployment tool diff --git a/libraries/common/src/main/java/de/oliver/fancylib/VersionConfig.java b/libraries/common/src/main/java/de/oliver/fancylib/VersionConfig.java index 5bcaaf66..990d1b1c 100644 --- a/libraries/common/src/main/java/de/oliver/fancylib/VersionConfig.java +++ b/libraries/common/src/main/java/de/oliver/fancylib/VersionConfig.java @@ -12,8 +12,9 @@ public class VersionConfig { private final Plugin plugin; private final VersionFetcher fetcher; private String version; - private String build; - private String hash; + private String commitHash; + private String channel; + private String platform; public VersionConfig(Plugin plugin, VersionFetcher fetcher) { this.plugin = plugin; @@ -29,8 +30,13 @@ public class VersionConfig { } version = config.getString("version", "undefined"); - build = config.getString("build", "undefined"); - hash = config.getString("hash", "undefined"); + commitHash = config.getString("commit_hash", "undefined"); + channel = config.getString("channel", "undefined"); + platform = config.getString("platform", "undefined"); + } + + public boolean isDevelopmentBuild() { + return !channel.equalsIgnoreCase("release"); } public void checkVersionAndDisplay(CommandSender sender, boolean displayOnlyIfOutdated) { @@ -70,13 +76,11 @@ public class VersionConfig { private String latestVersion() { String result = "This server is using the latest version of {plugin}!\n" + - "Version: {version} (Git: {hash})" + - "{build}"; + "Version: {version} (Git: {hash})"; result = result.replace("{plugin}", plugin.getName()) .replace("{version}", version) - .replace("{hash}", hash.substring(0, 7)) - .replace("{build}", build.equalsIgnoreCase("undefined") ? "" : "\nBuild: " + build); + .replace("{hash}", commitHash.substring(0, 7)); return result; } @@ -99,11 +103,15 @@ public class VersionConfig { return version; } - public String getBuild() { - return build; + public String getCommitHash() { + return commitHash; } - public String getHash() { - return hash; + public String getChannel() { + return channel; + } + + public String getPlatform() { + return platform; } } diff --git a/plugins/fancyholograms-v2/build.gradle.kts b/plugins/fancyholograms-v2/build.gradle.kts index 96497a3a..ff682ddd 100644 --- a/plugins/fancyholograms-v2/build.gradle.kts +++ b/plugins/fancyholograms-v2/build.gradle.kts @@ -146,8 +146,9 @@ tasks { val props = mapOf( "description" to project.description, "version" to getFHVersion(), - "hash" to gitCommitHash.get(), - "build" to (System.getenv("BUILD_ID") ?: "").ifEmpty { "undefined" } + "commit_hash" to gitCommitHash.get(), + "channel" to (System.getenv("RELEASE_CHANNEL") ?: "").ifEmpty { "undefined" }, + "platform" to (System.getenv("RELEASE_PLATFORM") ?: "").ifEmpty { "undefined" } ) inputs.properties(props) diff --git a/plugins/fancyholograms-v2/src/main/java/de/oliver/fancyholograms/FancyHolograms.java b/plugins/fancyholograms-v2/src/main/java/de/oliver/fancyholograms/FancyHolograms.java index f41ab5c1..04f0fa02 100644 --- a/plugins/fancyholograms-v2/src/main/java/de/oliver/fancyholograms/FancyHolograms.java +++ b/plugins/fancyholograms-v2/src/main/java/de/oliver/fancyholograms/FancyHolograms.java @@ -319,17 +319,15 @@ public final class FancyHolograms extends JavaPlugin implements FancyHologramsPl } private void registerMetrics() { - boolean isDevelopmentBuild = !versionConfig.getBuild().equalsIgnoreCase("undefined"); - Metrics metrics = new Metrics(this, 17990); metrics.addCustomChart(new Metrics.SingleLineChart("total_holograms", () -> hologramsManager.getHolograms().size())); metrics.addCustomChart(new Metrics.SimplePie("update_notifications", () -> configuration.areVersionNotificationsEnabled() ? "Yes" : "No")); - metrics.addCustomChart(new Metrics.SimplePie("using_development_build", () -> isDevelopmentBuild ? "Yes" : "No")); + metrics.addCustomChart(new Metrics.SimplePie("using_development_build", () -> versionConfig.isDevelopmentBuild() ? "Yes" : "No")); fancyAnalytics = new FancyAnalyticsAPI("3b77bd59-2b01-46f2-b3aa-a9584401797f", "E2gW5zc2ZTk1OGFkNGY2ZDQ0ODlM6San"); fancyAnalytics.getConfig().setDisableLogging(true); - if (!isDevelopmentBuild) { + if (!versionConfig.isDevelopmentBuild()) { return; } @@ -338,7 +336,7 @@ public final class FancyHolograms extends JavaPlugin implements FancyHologramsPl fancyAnalytics.getExceptionHandler().registerLogger(Bukkit.getLogger()); fancyAnalytics.getExceptionHandler().registerLogger(fancyLogger); - fancyAnalytics.registerStringMetric(new MetricSupplier<>("commit_hash", () -> versionConfig.getHash().substring(0, 7))); + fancyAnalytics.registerStringMetric(new MetricSupplier<>("commit_hash", () -> versionConfig.getCommitHash().substring(0, 7))); fancyAnalytics.registerStringMetric(new MetricSupplier<>("server_size", () -> { long onlinePlayers = Bukkit.getOnlinePlayers().size(); @@ -365,7 +363,7 @@ public final class FancyHolograms extends JavaPlugin implements FancyHologramsPl fancyAnalytics.registerNumberMetric(new MetricSupplier<>("amount_holograms", () -> (double) hologramsManager.getHolograms().size())); fancyAnalytics.registerStringMetric(new MetricSupplier<>("enabled_update_notifications", () -> configuration.areVersionNotificationsEnabled() ? "true" : "false")); fancyAnalytics.registerStringMetric(new MetricSupplier<>("fflag_disable_holograms_for_bedrock_players", () -> FHFeatureFlags.DISABLE_HOLOGRAMS_FOR_BEDROCK_PLAYERS.isEnabled() ? "true" : "false")); - fancyAnalytics.registerStringMetric(new MetricSupplier<>("using_development_build", () -> isDevelopmentBuild ? "true" : "false")); + fancyAnalytics.registerStringMetric(new MetricSupplier<>("using_development_build", () -> versionConfig.isDevelopmentBuild() ? "true" : "false")); fancyAnalytics.registerStringArrayMetric(new MetricSupplier<>("hologram_type", () -> { if (hologramsManager == null) { diff --git a/plugins/fancyholograms-v2/src/main/resources/version.yml b/plugins/fancyholograms-v2/src/main/resources/version.yml index 2de69789..a67fb296 100644 --- a/plugins/fancyholograms-v2/src/main/resources/version.yml +++ b/plugins/fancyholograms-v2/src/main/resources/version.yml @@ -1,3 +1,4 @@ version: $version -build: $build -hash: $hash \ No newline at end of file +commit_hash: $commit_hash +platform: $platform +channel: $channel \ No newline at end of file diff --git a/plugins/fancyholograms/build.gradle.kts b/plugins/fancyholograms/build.gradle.kts index ec3f33d0..98d8d251 100644 --- a/plugins/fancyholograms/build.gradle.kts +++ b/plugins/fancyholograms/build.gradle.kts @@ -150,7 +150,9 @@ tasks { val props = mapOf( "description" to project.description, "version" to getFHVersion(), - "hash" to getCurrentCommitHash(), + "commit_hash" to getCurrentCommitHash(), + "channel" to (System.getenv("RELEASE_CHANNEL") ?: "").ifEmpty { "undefined" }, + "platform" to (System.getenv("RELEASE_PLATFORM") ?: "").ifEmpty { "undefined" } ) inputs.properties(props) diff --git a/plugins/fancyholograms/src/main/java/de/oliver/fancyholograms/metrics/FHMetrics.java b/plugins/fancyholograms/src/main/java/de/oliver/fancyholograms/metrics/FHMetrics.java index c148265d..c5dccc44 100644 --- a/plugins/fancyholograms/src/main/java/de/oliver/fancyholograms/metrics/FHMetrics.java +++ b/plugins/fancyholograms/src/main/java/de/oliver/fancyholograms/metrics/FHMetrics.java @@ -32,7 +32,7 @@ public class FHMetrics { HologramRegistry registry = FancyHologramsPlugin.get().getRegistry(); - fancyAnalytics.registerStringMetric(new MetricSupplier<>("commit_hash", () -> FancyHologramsPlugin.get().getVersionConfig().getHash().substring(0, 7))); + fancyAnalytics.registerStringMetric(new MetricSupplier<>("commit_hash", () -> FancyHologramsPlugin.get().getVersionConfig().getCommitHash().substring(0, 7))); fancyAnalytics.registerStringMetric(new MetricSupplier<>("server_size", () -> { long onlinePlayers = Bukkit.getOnlinePlayers().size(); diff --git a/plugins/fancyholograms/src/main/resources/version.yml b/plugins/fancyholograms/src/main/resources/version.yml index 5a012bd4..a67fb296 100644 --- a/plugins/fancyholograms/src/main/resources/version.yml +++ b/plugins/fancyholograms/src/main/resources/version.yml @@ -1,2 +1,4 @@ version: $version -hash: $hash \ No newline at end of file +commit_hash: $commit_hash +platform: $platform +channel: $channel \ No newline at end of file diff --git a/plugins/fancynpcs/build.gradle.kts b/plugins/fancynpcs/build.gradle.kts index 568cba98..e4acef3c 100644 --- a/plugins/fancynpcs/build.gradle.kts +++ b/plugins/fancynpcs/build.gradle.kts @@ -178,8 +178,9 @@ tasks { val props = mapOf( "description" to project.description, "version" to getFNVersion(), - "hash" to gitCommitHash.get(), - "build" to (System.getenv("BUILD_ID") ?: "").ifEmpty { "undefined" } + "commit_hash" to gitCommitHash.get(), + "channel" to (System.getenv("RELEASE_CHANNEL") ?: "").ifEmpty { "undefined" }, + "platform" to (System.getenv("RELEASE_PLATFORM") ?: "").ifEmpty { "undefined" } ) inputs.properties(props) diff --git a/plugins/fancynpcs/src/main/java/de/oliver/fancynpcs/FancyNpcs.java b/plugins/fancynpcs/src/main/java/de/oliver/fancynpcs/FancyNpcs.java index d7866144..e163b6a2 100644 --- a/plugins/fancynpcs/src/main/java/de/oliver/fancynpcs/FancyNpcs.java +++ b/plugins/fancynpcs/src/main/java/de/oliver/fancynpcs/FancyNpcs.java @@ -353,19 +353,17 @@ public class FancyNpcs extends JavaPlugin implements FancyNpcsPlugin { } private void registerMetrics() { - boolean isDevelopmentBuild = !versionConfig.getBuild().equalsIgnoreCase("undefined"); - Metrics metrics = new Metrics(this, 17543); metrics.addCustomChart(new Metrics.SingleLineChart("total_npcs", () -> npcManager.getAllNpcs().size())); metrics.addCustomChart(new Metrics.SimplePie("update_notifications", () -> config.isMuteVersionNotification() ? "No" : "Yes")); - metrics.addCustomChart(new Metrics.SimplePie("using_development_build", () -> isDevelopmentBuild ? "Yes" : "No")); + metrics.addCustomChart(new Metrics.SimplePie("using_development_build", () -> versionConfig.isDevelopmentBuild() ? "Yes" : "No")); fancyAnalytics.registerMinecraftPluginMetrics(instance); fancyAnalytics.getExceptionHandler().registerLogger(getLogger()); fancyAnalytics.getExceptionHandler().registerLogger(Bukkit.getLogger()); fancyAnalytics.getExceptionHandler().registerLogger(fancyLogger); - fancyAnalytics.registerStringMetric(new MetricSupplier<>("commit_hash", () -> versionConfig.getHash().substring(0, 7))); + fancyAnalytics.registerStringMetric(new MetricSupplier<>("commit_hash", () -> versionConfig.getCommitHash().substring(0, 7))); fancyAnalytics.registerStringMetric(new MetricSupplier<>("server_size", () -> { @@ -393,7 +391,7 @@ public class FancyNpcs extends JavaPlugin implements FancyNpcsPlugin { fancyAnalytics.registerNumberMetric(new MetricSupplier<>("amount_npcs", () -> (double) npcManager.getAllNpcs().size())); fancyAnalytics.registerStringMetric(new MetricSupplier<>("enabled_update_notifications", () -> config.isMuteVersionNotification() ? "false" : "true")); fancyAnalytics.registerStringMetric(new MetricSupplier<>("enabled_player_npcs_fflag", () -> PLAYER_NPCS_FEATURE_FLAG.isEnabled() ? "true" : "false")); - fancyAnalytics.registerStringMetric(new MetricSupplier<>("using_development_build", () -> isDevelopmentBuild ? "true" : "false")); + fancyAnalytics.registerStringMetric(new MetricSupplier<>("using_development_build", () -> versionConfig.isDevelopmentBuild() ? "true" : "false")); fancyAnalytics.registerStringMetric(new MetricSupplier<>("language", () -> translator.getSelectedLanguage().getLanguageCode())); fancyAnalytics.registerNumberMetric(new MetricSupplier<>("avg_interaction_cooldown", () -> { diff --git a/plugins/fancynpcs/src/main/resources/version.yml b/plugins/fancynpcs/src/main/resources/version.yml index 2de69789..a67fb296 100644 --- a/plugins/fancynpcs/src/main/resources/version.yml +++ b/plugins/fancynpcs/src/main/resources/version.yml @@ -1,3 +1,4 @@ version: $version -build: $build -hash: $hash \ No newline at end of file +commit_hash: $commit_hash +platform: $platform +channel: $channel \ No newline at end of file