From 56479a3476685f0db6312403c948a2c6d5260c25 Mon Sep 17 00:00:00 2001 From: Cat Core Date: Sun, 11 Feb 2024 18:53:11 +0100 Subject: [PATCH] Don't use gradle internal dependencies --- build.gradle | 1 + gradle.properties | 2 +- .../MultiFilamentGradlePlugin.java | 4 +++ .../provider/IntermediaryProvider.java | 34 ++++++------------- .../util/FabricMetaMCVersion.java | 4 +++ 5 files changed, 20 insertions(+), 25 deletions(-) create mode 100644 src/main/java/net/legacyfabric/multifilament/util/FabricMetaMCVersion.java diff --git a/build.gradle b/build.gradle index 2e32224..eeecf08 100644 --- a/build.gradle +++ b/build.gradle @@ -28,6 +28,7 @@ dependencies { implementation "net.fabricmc:mapping-io:0.4.2" implementation "net.fabricmc:fabric-filament:0.6.2" implementation("net.fabricmc:fabric-loader:0.15.6") + implementation 'com.fasterxml.jackson.core:jackson-databind:2.13.4.2' } tasks.withType(JavaCompile) { diff --git a/gradle.properties b/gradle.properties index c9dfc63..00aaf52 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,4 +1,4 @@ -multi_filament_version=0.2.2 +multi_filament_version=0.2.3 asm_version=9.5 unpick_version=2.3.0 \ No newline at end of file diff --git a/src/main/java/net/legacyfabric/multifilament/MultiFilamentGradlePlugin.java b/src/main/java/net/legacyfabric/multifilament/MultiFilamentGradlePlugin.java index 7e3830e..f6a171f 100644 --- a/src/main/java/net/legacyfabric/multifilament/MultiFilamentGradlePlugin.java +++ b/src/main/java/net/legacyfabric/multifilament/MultiFilamentGradlePlugin.java @@ -1,5 +1,7 @@ package net.legacyfabric.multifilament; +import com.fasterxml.jackson.databind.DeserializationFeature; +import com.fasterxml.jackson.databind.ObjectMapper; import net.fabricmc.filament.FilamentGradlePlugin; import net.fabricmc.filament.task.CombineUnpickDefinitionsTask; @@ -10,6 +12,8 @@ import org.gradle.api.tasks.TaskContainer; public class MultiFilamentGradlePlugin implements Plugin { + public static final ObjectMapper OBJECT_MAPPER = new ObjectMapper().configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false); + @Override public void apply(Project project) { project.getPlugins().apply(FilamentGradlePlugin.class); diff --git a/src/main/java/net/legacyfabric/multifilament/provider/IntermediaryProvider.java b/src/main/java/net/legacyfabric/multifilament/provider/IntermediaryProvider.java index 593ec6c..a6202c6 100644 --- a/src/main/java/net/legacyfabric/multifilament/provider/IntermediaryProvider.java +++ b/src/main/java/net/legacyfabric/multifilament/provider/IntermediaryProvider.java @@ -1,16 +1,10 @@ package net.legacyfabric.multifilament.provider; -import org.gradle.internal.impldep.com.google.gson.Gson; -import org.gradle.internal.impldep.com.google.gson.JsonArray; -import org.gradle.internal.impldep.com.google.gson.JsonElement; -import org.gradle.internal.impldep.com.google.gson.JsonObject; +import com.fasterxml.jackson.core.type.TypeReference; +import net.legacyfabric.multifilament.MultiFilamentGradlePlugin; +import net.legacyfabric.multifilament.util.FabricMetaMCVersion; import java.io.IOException; -import java.io.InputStream; -import java.io.InputStreamReader; -import java.io.Reader; -import java.net.URL; -import java.nio.charset.StandardCharsets; import java.util.ArrayList; import java.util.List; @@ -24,7 +18,6 @@ default boolean revisionMatch(int revision) { class FabricLikeMetadata { private final String url; private final List versions = new ArrayList<>(); - private static final Gson gson = new Gson(); public FabricLikeMetadata(String url) { this.url = url; @@ -32,22 +25,15 @@ public FabricLikeMetadata(String url) { private void computeData() { try { - URL url1 = new URL(url); + TypeReference> metaType = new TypeReference>() {}; + List versions = MultiFilamentGradlePlugin.OBJECT_MAPPER.readValue(url, metaType); - try (InputStream stream = url1.openStream()) { - try (Reader reader = new InputStreamReader(stream, StandardCharsets.UTF_8)) { - JsonArray array = gson.fromJson(reader, JsonArray.class); - - for (JsonElement element : array) { - if (element instanceof JsonObject object) { - if (object.has("version")) { - String version = object.get("version").getAsString(); - - if (!versions.contains(version)) versions.add(version); - } - } + if (versions != null) { + versions.forEach(v -> { + if (!this.versions.contains(v.version())) { + this.versions.add(v.version()); } - } + }); } } catch (IOException e) { e.printStackTrace(); diff --git a/src/main/java/net/legacyfabric/multifilament/util/FabricMetaMCVersion.java b/src/main/java/net/legacyfabric/multifilament/util/FabricMetaMCVersion.java new file mode 100644 index 0000000..f6839a6 --- /dev/null +++ b/src/main/java/net/legacyfabric/multifilament/util/FabricMetaMCVersion.java @@ -0,0 +1,4 @@ +package net.legacyfabric.multifilament.util; + +public record FabricMetaMCVersion(String version, boolean stable) { +}