From 20c0997b1015160505e930b3d73dff2a92882a87 Mon Sep 17 00:00:00 2001 From: Timo Ley Date: Fri, 14 Aug 2020 19:32:38 +0200 Subject: [PATCH] Added getForgeUniversal to the relation and prepared for a more generic way to get modloaders in the future. --- build.gradle | 4 ++-- .../java/ley/anvil/addonscript/util/Upcoming.java | 4 ++++ .../ley/anvil/addonscript/v1/AddonscriptJSON.java | 11 ++++++++++- .../ley/anvil/addonscript/wrapper/ASWrapper.java | 13 +++++++++++++ 4 files changed, 29 insertions(+), 3 deletions(-) create mode 100644 src/main/java/ley/anvil/addonscript/util/Upcoming.java diff --git a/build.gradle b/build.gradle index 047ae7b..bd2cab4 100644 --- a/build.gradle +++ b/build.gradle @@ -1,3 +1,4 @@ + plugins { id 'java' id 'maven-publish' @@ -32,7 +33,7 @@ task sourceJar(type: Jar) { publishing { publications { mavenJava(MavenPublication) { - artifactId "addonscript-java" + artifactId "addonscript" from components.java artifact tasks.sourceJar } @@ -52,6 +53,5 @@ publishing { } url = "https://maven.pkg.github.com/Anvilcraft/addonscript-java" } - mavenLocal() } } diff --git a/src/main/java/ley/anvil/addonscript/util/Upcoming.java b/src/main/java/ley/anvil/addonscript/util/Upcoming.java new file mode 100644 index 0000000..25de991 --- /dev/null +++ b/src/main/java/ley/anvil/addonscript/util/Upcoming.java @@ -0,0 +1,4 @@ +package ley.anvil.addonscript.util; + +public @interface Upcoming { +} diff --git a/src/main/java/ley/anvil/addonscript/v1/AddonscriptJSON.java b/src/main/java/ley/anvil/addonscript/v1/AddonscriptJSON.java index 9dd9aa2..5281696 100644 --- a/src/main/java/ley/anvil/addonscript/v1/AddonscriptJSON.java +++ b/src/main/java/ley/anvil/addonscript/v1/AddonscriptJSON.java @@ -2,6 +2,7 @@ package ley.anvil.addonscript.v1; import com.google.gson.annotations.Expose; import ley.anvil.addonscript.util.ASBase; +import ley.anvil.addonscript.util.Upcoming; import java.io.Reader; import java.util.List; @@ -196,7 +197,14 @@ public class AddonscriptJSON extends ASBase { * Installer ID can be internal.<some internal installer> */ @Expose - public String installer = "internal.dir:mods"; + public String installer = "internal.dir"; + /** + * This are the arguments for the installer + * Each installer needs other arguments and others need none. + */ + @Upcoming + @Expose + public List arguments; /** * Optional: Use this or artifact * A link to this file. Can also point to a relative file or directory by using file://<relative path>. @@ -237,6 +245,7 @@ public class AddonscriptJSON extends ASBase { @Expose public String id; + @Deprecated @Expose public String loaderfile; diff --git a/src/main/java/ley/anvil/addonscript/wrapper/ASWrapper.java b/src/main/java/ley/anvil/addonscript/wrapper/ASWrapper.java index 047ab48..b5ec7b3 100644 --- a/src/main/java/ley/anvil/addonscript/wrapper/ASWrapper.java +++ b/src/main/java/ley/anvil/addonscript/wrapper/ASWrapper.java @@ -329,6 +329,19 @@ public class ASWrapper { return defaultOptions(); } + @Deprecated + public FileOrLink getForgeUniversal() { + Versions v = getVersions(); + String lat = v.latest; + if (!lat.contains("-")) + throw new RuntimeException("Invalid Forge version: " + lat + " must include the Minecraft version at the beginning seperated with a - from the forge version."); + if (Utils.notEmpty(lat)) { + String link = new ArtifactDestination("net.minecraftforge:forge:" + lat + ":universal", "https://files.minecraftforge.net/maven/").getPath(); + return new FileOrLink(link); + } + throw new RuntimeException("No version specified for forge"); + } + } public static Map getMetaData(ArtifactDestination[] artifacts) {