From dda7481217fcb0a4935d95b7bc9744a5fa2ee000 Mon Sep 17 00:00:00 2001 From: sychic <47618543+Sychic@users.noreply.github.com> Date: Thu, 2 May 2024 12:42:46 -0400 Subject: [PATCH] fix: inline value during compile rather than at runtime --- mod/build.gradle.kts | 14 ++++++++++++- .../java/gg/skytils/skytilsmod/Reference.java | 20 +------------------ .../kotlin/gg/skytils/skytilsmod/Skytils.kt | 9 ++++----- 3 files changed, 18 insertions(+), 25 deletions(-) diff --git a/mod/build.gradle.kts b/mod/build.gradle.kts index 4fefaaab7..4dc051220 100644 --- a/mod/build.gradle.kts +++ b/mod/build.gradle.kts @@ -17,6 +17,7 @@ */ import com.github.jengelman.gradle.plugins.shadow.tasks.ShadowJar import net.fabricmc.loom.task.RemapJarTask +import org.apache.tools.ant.filters.ReplaceTokens import org.jetbrains.kotlin.gradle.tasks.KotlinCompile import java.security.MessageDigest @@ -239,8 +240,19 @@ tasks { isPreserveFileTimestamps = false isReproducibleFileOrder = true } - withType { + register("processSource") { + from(sourceSets.main.get().java) + inputs.property("version", rootProject.version) + filter( + "tokens" to mapOf( + "version" to version + ) + ) + into("${layout.buildDirectory.get()}/src") + } + compileJava { options.encoding = "UTF-8" + source = named("processSource").get().outputs.files.asFileTree } withType { kotlinOptions { diff --git a/mod/src/main/java/gg/skytils/skytilsmod/Reference.java b/mod/src/main/java/gg/skytils/skytilsmod/Reference.java index 477d79459..0d3a8a932 100644 --- a/mod/src/main/java/gg/skytils/skytilsmod/Reference.java +++ b/mod/src/main/java/gg/skytils/skytilsmod/Reference.java @@ -31,25 +31,7 @@ public class Reference { public static String dataUrl = "https://data.skytils.gg/"; public static final String MOD_ID = "skytils"; public static final String MOD_NAME = "Skytils"; - @NotNull - public static final String VERSION = getVersion(); - public static final String UNKNOWN_VERSION = "unknown"; - - private static String getVersion() { - URL url = Skytils.class.getResource("mcmod.info"); - if (url == null) return UNKNOWN_VERSION; - try (InputStream input = url.openStream()) { - MetadataCollection metadataCollection = MetadataCollection.from(input, "skytils"); - ModMetadata metadata = metadataCollection.getMetadataForId("skytils", - new HashMap() {{ - put("name", "Skytils"); - put("version", UNKNOWN_VERSION); - }}); - return metadata.version; - } catch (IOException e) { - return UNKNOWN_VERSION; - } - } + public static final String VERSION = "@version@"; public static final int apiVersion = 5; } diff --git a/mod/src/main/kotlin/gg/skytils/skytilsmod/Skytils.kt b/mod/src/main/kotlin/gg/skytils/skytilsmod/Skytils.kt index ea573c895..04afcf73d 100644 --- a/mod/src/main/kotlin/gg/skytils/skytilsmod/Skytils.kt +++ b/mod/src/main/kotlin/gg/skytils/skytilsmod/Skytils.kt @@ -134,8 +134,7 @@ class Skytils { companion object : CoroutineScope { const val MOD_ID = Reference.MOD_ID const val MOD_NAME = Reference.MOD_NAME - @JvmField - val VERSION = Reference.VERSION + const val VERSION = Reference.VERSION @JvmStatic val mc: Minecraft by lazy { @@ -260,9 +259,9 @@ class Skytils { var domain = "api.skytils.gg" - val prefix = "§9§lSkytils §8»" - val successPrefix = "§a§lSkytils §8»" - val failPrefix = "§c§lSkytils (${Reference.VERSION}) §8»" + const val prefix = "§9§lSkytils §8»" + const val successPrefix = "§a§lSkytils §8»" + const val failPrefix = "§c§lSkytils (${Reference.VERSION}) §8»" var trustClientTime = false }