From fb8d5b8c440b705faa80c8758a6c847c7ca3a213 Mon Sep 17 00:00:00 2001 From: 33 Date: Wed, 1 Feb 2023 02:27:03 +0800 Subject: [PATCH] Fix: publish to maven central --- build.gradle.kts | 2 +- .../src/main/kotlin/dev.3-3.jmccc.gradle.kts | 6 ++ jmccc-cli/src/main/java/jmccc/cli/Main.java | 62 +++++++++---------- .../{SimpleCallback.java => CliCallback.java} | 4 +- ...mpleDownloader.java => CliDownloader.java} | 8 +-- .../cli/download/ModLoaderDownloader.java | 12 ++-- .../{SimpleLauncher.java => CliLauncher.java} | 29 ++------- .../java/jmccc/cli/launch/CliListener.java | 24 +++++++ .../forge/InstallProfileProcessor.java | 2 +- 9 files changed, 80 insertions(+), 69 deletions(-) rename jmccc-cli/src/main/java/jmccc/cli/download/{SimpleCallback.java => CliCallback.java} (91%) rename jmccc-cli/src/main/java/jmccc/cli/download/{SimpleDownloader.java => CliDownloader.java} (93%) rename jmccc-cli/src/main/java/jmccc/cli/launch/{SimpleLauncher.java => CliLauncher.java} (62%) create mode 100644 jmccc-cli/src/main/java/jmccc/cli/launch/CliListener.java diff --git a/build.gradle.kts b/build.gradle.kts index 44284fd..e7b4e3c 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -2,7 +2,7 @@ plugins { base } -version = "3.0.1" +version = "3.0.2" subprojects { //Real subproject DSL is located at `buildSrc/src/main/kotlin/dev.3-3.jmccc.gradle.kts` diff --git a/buildSrc/src/main/kotlin/dev.3-3.jmccc.gradle.kts b/buildSrc/src/main/kotlin/dev.3-3.jmccc.gradle.kts index d923431..350d858 100644 --- a/buildSrc/src/main/kotlin/dev.3-3.jmccc.gradle.kts +++ b/buildSrc/src/main/kotlin/dev.3-3.jmccc.gradle.kts @@ -1,6 +1,7 @@ plugins { `java-library` `maven-publish` + signing } dependencies { @@ -40,6 +41,7 @@ publishing { artifact(tasks["shadowJar"]) } pom { + name.set(project.name) description.set("JMCCC is a powerful open-source library for launching and downloading Minecraft.") url.set("https://github.com/xfl03/JMCCC") licenses { @@ -119,4 +121,8 @@ publishing { } } } +} + +signing { + sign(publishing.publications["mavenJava"]) } \ No newline at end of file diff --git a/jmccc-cli/src/main/java/jmccc/cli/Main.java b/jmccc-cli/src/main/java/jmccc/cli/Main.java index 61ad8f5..d190eaa 100644 --- a/jmccc-cli/src/main/java/jmccc/cli/Main.java +++ b/jmccc-cli/src/main/java/jmccc/cli/Main.java @@ -1,14 +1,16 @@ package jmccc.cli; +import jmccc.cli.download.CliDownloader; import jmccc.cli.download.ModLoaderDownloader; -import jmccc.cli.download.SimpleDownloader; -import jmccc.cli.launch.SimpleLauncher; +import jmccc.cli.launch.CliLauncher; import joptsimple.OptionParser; import joptsimple.OptionSet; import joptsimple.OptionSpec; import org.to2mbn.jmccc.option.MinecraftDirectory; import org.to2mbn.jmccc.version.Version; +import java.util.concurrent.ExecutionException; + public class Main { /** @@ -25,49 +27,47 @@ public static void main(String... args) throws Exception { String player = playerOption.value(options); String dir = dirOption.value(options); String version = versionOption.value(options); - if (version == null) { - version = "release"; - } MinecraftDirectory minecraftDirectory = new MinecraftDirectory(dir); //Check special version + version = parseVersion(version); + System.out.println("Version: " + version); + + //Download game if not exist + if (!minecraftDirectory.getVersionJson(version).exists()) { + Version v = CliDownloader.download(minecraftDirectory, version); + version = v.getVersion(); + } + + //Launch game + CliLauncher.launch(minecraftDirectory, version, player); + } + + private static String parseVersion(String version) throws ExecutionException, InterruptedException { + if (version == null) { + version = "release"; + } switch (version) { case "latest": case "stable": case "release": - version = SimpleDownloader.getLatestRelease(); - break; + return CliDownloader.getLatestRelease(); case "snapshot": - version = SimpleDownloader.getLatestSnapshot(); - break; + return CliDownloader.getLatestSnapshot(); case "forge": - version = ModLoaderDownloader.getLatestForge().getVersionName(); - break; + return ModLoaderDownloader.getLatestForge().getVersionName(); case "liteloader": - version = ModLoaderDownloader.getLatestLiteLoader().getVersionName(); - break; + return ModLoaderDownloader.getLatestLiteLoader().getVersionName(); case "fabric": - version = ModLoaderDownloader.getLatestFabric().getVersionName(); - break; + return ModLoaderDownloader.getLatestFabric().getVersionName(); case "fabric-snapshot": - version = ModLoaderDownloader.getLatestFabricSnapshot().getVersionName(); - break; + return ModLoaderDownloader.getLatestFabricSnapshot().getVersionName(); case "quilt": - version = ModLoaderDownloader.getLatestQuilt().getVersionName(); - break; + return ModLoaderDownloader.getLatestQuilt().getVersionName(); case "quilt-snapshot": - version = ModLoaderDownloader.getLatestQuiltSnapshot().getVersionName(); - break; - } - System.out.println("Version: " + version); - - //Download game if not exist - if (!minecraftDirectory.getVersionJson(version).exists()) { - Version v = SimpleDownloader.download(minecraftDirectory, version); - version = v.getVersion(); + return ModLoaderDownloader.getLatestQuiltSnapshot().getVersionName(); + default: + return version; } - - //Launch game - SimpleLauncher.launch(minecraftDirectory, version, player); } } diff --git a/jmccc-cli/src/main/java/jmccc/cli/download/SimpleCallback.java b/jmccc-cli/src/main/java/jmccc/cli/download/CliCallback.java similarity index 91% rename from jmccc-cli/src/main/java/jmccc/cli/download/SimpleCallback.java rename to jmccc-cli/src/main/java/jmccc/cli/download/CliCallback.java index e47550a..e60e0e8 100644 --- a/jmccc-cli/src/main/java/jmccc/cli/download/SimpleCallback.java +++ b/jmccc-cli/src/main/java/jmccc/cli/download/CliCallback.java @@ -4,7 +4,7 @@ import org.to2mbn.jmccc.mcdownloader.download.concurrent.DownloadCallback; import org.to2mbn.jmccc.mcdownloader.download.tasks.DownloadTask; -public class SimpleCallback extends CallbackAdapter { +public class CliCallback extends CallbackAdapter { @Override public void done(T result) { String res = result.toString(); @@ -36,6 +36,6 @@ public void retry(Throwable e, int current, int max) { @Override public DownloadCallback taskStart(DownloadTask task) { System.out.println("Start: " + task.getURI()); - return new SimpleCallback(); + return new CliCallback(); } } \ No newline at end of file diff --git a/jmccc-cli/src/main/java/jmccc/cli/download/SimpleDownloader.java b/jmccc-cli/src/main/java/jmccc/cli/download/CliDownloader.java similarity index 93% rename from jmccc-cli/src/main/java/jmccc/cli/download/SimpleDownloader.java rename to jmccc-cli/src/main/java/jmccc/cli/download/CliDownloader.java index dfb3857..4a6a1c6 100644 --- a/jmccc-cli/src/main/java/jmccc/cli/download/SimpleDownloader.java +++ b/jmccc-cli/src/main/java/jmccc/cli/download/CliDownloader.java @@ -14,7 +14,7 @@ import java.util.concurrent.ExecutionException; -public class SimpleDownloader { +public class CliDownloader { public static BmclApiProvider bmclApiProvider = new BmclApiProvider(); public static ForgeDownloadProvider forgeProvider = new ForgeDownloadProvider(bmclApiProvider); public static LiteloaderDownloadProvider liteloaderProvider = new LiteloaderDownloadProvider(bmclApiProvider); @@ -40,14 +40,14 @@ public static String getLatestSnapshot() throws ExecutionException, InterruptedE } public static Version download(MinecraftDirectory dir, String version) throws ExecutionException, InterruptedException { - return downloader.downloadIncrementally(dir, version, new SimpleCallback<>()).get(); + return downloader.downloadIncrementally(dir, version, new CliCallback<>()).get(); } public static void downloadLibrary(MinecraftDirectory dir, Library lib) throws ExecutionException, InterruptedException { - downloader.download(downloader.getProvider().library(dir, lib), new SimpleCallback<>()).get(); + downloader.download(downloader.getProvider().library(dir, lib), new CliCallback<>()).get(); } public static T get(CombinedDownloadTask task) throws ExecutionException, InterruptedException { - return SimpleDownloader.downloader.download(task, new SimpleCallback<>()).get(); + return CliDownloader.downloader.download(task, new CliCallback<>()).get(); } } diff --git a/jmccc-cli/src/main/java/jmccc/cli/download/ModLoaderDownloader.java b/jmccc-cli/src/main/java/jmccc/cli/download/ModLoaderDownloader.java index 3c3c7f6..9f0a3e5 100644 --- a/jmccc-cli/src/main/java/jmccc/cli/download/ModLoaderDownloader.java +++ b/jmccc-cli/src/main/java/jmccc/cli/download/ModLoaderDownloader.java @@ -8,27 +8,27 @@ public class ModLoaderDownloader { public static ForgeVersion getLatestForge() throws ExecutionException, InterruptedException { - return SimpleDownloader.get(SimpleDownloader.forgeProvider.forgeVersionList()).getLatest(); + return CliDownloader.get(CliDownloader.forgeProvider.forgeVersionList()).getLatest(); } public static LiteloaderVersion getLatestLiteLoader() throws ExecutionException, InterruptedException { - return SimpleDownloader.get(SimpleDownloader.liteloaderProvider.liteloaderVersionList()) + return CliDownloader.get(CliDownloader.liteloaderProvider.liteloaderVersionList()) .getSnapshot("1.12.2"); } public static FabricVersion getLatestFabric() throws ExecutionException, InterruptedException { - return SimpleDownloader.get(SimpleDownloader.fabricProvider.fabricVersionList()).getLatestRelease(); + return CliDownloader.get(CliDownloader.fabricProvider.fabricVersionList()).getLatestRelease(); } public static FabricVersion getLatestFabricSnapshot() throws ExecutionException, InterruptedException { - return SimpleDownloader.get(SimpleDownloader.fabricProvider.fabricVersionList()).getLatestSnapshot(); + return CliDownloader.get(CliDownloader.fabricProvider.fabricVersionList()).getLatestSnapshot(); } public static FabricVersion getLatestQuilt() throws ExecutionException, InterruptedException { - return SimpleDownloader.get(SimpleDownloader.quiltProvider.fabricVersionList()).getLatestRelease(); + return CliDownloader.get(CliDownloader.quiltProvider.fabricVersionList()).getLatestRelease(); } public static FabricVersion getLatestQuiltSnapshot() throws ExecutionException, InterruptedException { - return SimpleDownloader.get(SimpleDownloader.quiltProvider.fabricVersionList()).getLatestSnapshot(); + return CliDownloader.get(CliDownloader.quiltProvider.fabricVersionList()).getLatestSnapshot(); } } diff --git a/jmccc-cli/src/main/java/jmccc/cli/launch/SimpleLauncher.java b/jmccc-cli/src/main/java/jmccc/cli/launch/CliLauncher.java similarity index 62% rename from jmccc-cli/src/main/java/jmccc/cli/launch/SimpleLauncher.java rename to jmccc-cli/src/main/java/jmccc/cli/launch/CliLauncher.java index 964ab33..e7a2729 100644 --- a/jmccc-cli/src/main/java/jmccc/cli/launch/SimpleLauncher.java +++ b/jmccc-cli/src/main/java/jmccc/cli/launch/CliLauncher.java @@ -1,6 +1,6 @@ package jmccc.cli.launch; -import jmccc.cli.download.SimpleDownloader; +import jmccc.cli.download.CliDownloader; import org.to2mbn.jmccc.auth.OfflineAuthenticator; import org.to2mbn.jmccc.launch.Launcher; import org.to2mbn.jmccc.launch.LauncherBuilder; @@ -11,7 +11,7 @@ import org.to2mbn.jmccc.version.Library; -public class SimpleLauncher { +public class CliLauncher { public static void launch(MinecraftDirectory dir, String targetVersion, String player) throws Exception { Launcher launcher = LauncherBuilder.create().printDebugCommandline(true).build(); @@ -20,34 +20,15 @@ public static void launch(MinecraftDirectory dir, String targetVersion, String p option.commandlineVariables().put("version_type", "JMCCC 3.0"); //Set memory to 2048MB option.setMaxMemory(2048); - ProcessListener listener = new ExampleListener(); + ProcessListener listener = new CliListener(); + System.out.println("Launching version: " + targetVersion); try { launcher.launch(option, listener); } catch (MissingDependenciesException e) { for (Library lib : e.getMissingLibraries()) { - SimpleDownloader.downloadLibrary(dir, lib); + CliDownloader.downloadLibrary(dir, lib); } launcher.launch(option, listener); } } - - private static class ExampleListener implements ProcessListener { - - @Override - public void onLog(String log) { - System.out.println(log); - } - - @Override - public void onErrorLog(String log) { - System.err.println(log); - } - - @Override - public void onExit(int code) { - System.out.println("Game exited with " + code); - SimpleDownloader.downloader.shutdown(); - System.exit(0); - } - } } diff --git a/jmccc-cli/src/main/java/jmccc/cli/launch/CliListener.java b/jmccc-cli/src/main/java/jmccc/cli/launch/CliListener.java new file mode 100644 index 0000000..b086bb3 --- /dev/null +++ b/jmccc-cli/src/main/java/jmccc/cli/launch/CliListener.java @@ -0,0 +1,24 @@ +package jmccc.cli.launch; + +import jmccc.cli.download.CliDownloader; +import org.to2mbn.jmccc.launch.ProcessListener; + +public class CliListener implements ProcessListener { + + @Override + public void onLog(String log) { + System.out.println(log); + } + + @Override + public void onErrorLog(String log) { + System.err.println(log); + } + + @Override + public void onExit(int code) { + System.out.println("Game exited with " + code); + CliDownloader.downloader.shutdown(); + System.exit(0); + } +} \ No newline at end of file diff --git a/jmccc-mcdownloader/src/main/java/org/to2mbn/jmccc/mcdownloader/provider/forge/InstallProfileProcessor.java b/jmccc-mcdownloader/src/main/java/org/to2mbn/jmccc/mcdownloader/provider/forge/InstallProfileProcessor.java index c3439ac..46411f4 100644 --- a/jmccc-mcdownloader/src/main/java/org/to2mbn/jmccc/mcdownloader/provider/forge/InstallProfileProcessor.java +++ b/jmccc-mcdownloader/src/main/java/org/to2mbn/jmccc/mcdownloader/provider/forge/InstallProfileProcessor.java @@ -91,7 +91,7 @@ private void runInstaller(Path installerJar) throws Exception { Class installer = cl.loadClass("net.minecraftforge.installer.SimpleInstaller"); Method main = installer.getMethod("main", String[].class); //We have tweaked install server to install client - main.invoke(null, (Object) new String[]{"--installServer", mcdir.getAbsolutePath(),"--mirror",""}); + main.invoke(null, (Object) new String[]{"--installServer", mcdir.getAbsolutePath()}); } } }