From c15e77233640b42d48eb14ce7cb7066886e2eb86 Mon Sep 17 00:00:00 2001 From: powercas_gamer Date: Mon, 12 Jun 2023 10:14:56 +0200 Subject: [PATCH 1/9] chore: update gradle --- .vscode/settings.json | 3 +++ settings.gradle.kts | 2 +- 2 files changed, 4 insertions(+), 1 deletion(-) create mode 100644 .vscode/settings.json diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000..c5f3f6b --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,3 @@ +{ + "java.configuration.updateBuildConfiguration": "interactive" +} \ No newline at end of file diff --git a/settings.gradle.kts b/settings.gradle.kts index cec4074..f4b2915 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -3,4 +3,4 @@ plugins { } rootProject.name = "paperclip" -include("java6", "java17") +include("java6", "java17") \ No newline at end of file From bf5985809ae5397df62887fe72a72b88a4af2561 Mon Sep 17 00:00:00 2001 From: powercas_gamer Date: Mon, 12 Jun 2023 10:15:36 +0200 Subject: [PATCH 2/9] update repo --- .vscode/settings.json | 3 --- 1 file changed, 3 deletions(-) delete mode 100644 .vscode/settings.json diff --git a/.vscode/settings.json b/.vscode/settings.json deleted file mode 100644 index c5f3f6b..0000000 --- a/.vscode/settings.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "java.configuration.updateBuildConfiguration": "interactive" -} \ No newline at end of file From 7168053f4f63180cc617a4831d62d940a80c72ca Mon Sep 17 00:00:00 2001 From: powercas_gamer Date: Mon, 12 Jun 2023 13:40:23 +0200 Subject: [PATCH 3/9] feat: read mc & java version from version.json --- build.gradle.kts | 8 +++- gradle.properties | 2 +- java6/build.gradle.kts | 20 ++++++++- .../main/java/io/papermc/paperclip/Main.java | 42 +++++++++++++++++-- 4 files changed, 66 insertions(+), 6 deletions(-) diff --git a/build.gradle.kts b/build.gradle.kts index 6e70848..1b16b40 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -4,6 +4,12 @@ plugins { `maven-publish` } +allprojects { + repositories { + mavenCentral() + } +} + subprojects { apply(plugin = "java") @@ -15,7 +21,7 @@ subprojects { val mainClass = "io.papermc.paperclip.Main" tasks.jar { - val java6Jar = project(":java6").tasks.named("jar") + val java6Jar = project(":java6").tasks.named("shadowJar") val java17Jar = project(":java17").tasks.named("shadowJar") dependsOn(java6Jar, java17Jar) diff --git a/gradle.properties b/gradle.properties index da314ac..c7a0d06 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,3 +1,3 @@ group = io.papermc -version = 3.0.4-SNAPSHOT +version = 3.0.4-BOOP-SNAPSHOT description = Launcher for the Paper Minecraft server diff --git a/java6/build.gradle.kts b/java6/build.gradle.kts index df69ef6..9b7a490 100644 --- a/java6/build.gradle.kts +++ b/java6/build.gradle.kts @@ -1,5 +1,10 @@ plugins { java + id("com.github.johnrengelman.shadow") version "8.1.1" +} + +dependencies { + implementation("com.eclipsesource.minimal-json:minimal-json:0.9.5") } java { @@ -7,10 +12,23 @@ java { languageVersion.set(JavaLanguageVersion.of(11)) } + targetCompatibility = JavaVersion.VERSION_1_6 + sourceCompatibility = JavaVersion.VERSION_1_6 + withSourcesJar() } tasks.withType().configureEach { - options.release.set(6) options.compilerArgs = listOf("-Xlint:-options") } + + +tasks.shadowJar { + val prefix = "paperclip.libs" + listOf("com.eclipsesource").forEach { pack -> + relocate(pack, "$prefix.$pack") + } + + exclude("META-INF/LICENSE.txt") + exclude("META-INF/NOTICE.txt") +} \ No newline at end of file diff --git a/java6/src/main/java/io/papermc/paperclip/Main.java b/java6/src/main/java/io/papermc/paperclip/Main.java index 0a06a68..3307e57 100644 --- a/java6/src/main/java/io/papermc/paperclip/Main.java +++ b/java6/src/main/java/io/papermc/paperclip/Main.java @@ -9,14 +9,50 @@ package io.papermc.paperclip; +import com.eclipsesource.json.Json; +import com.eclipsesource.json.JsonObject; + +import java.io.File; +import java.io.IOException; +import java.io.InputStreamReader; import java.lang.reflect.Method; +import java.nio.charset.StandardCharsets; +import java.nio.file.Files; +import java.nio.file.Paths; public final class Main { + private static final JsonObject VERSION = readJsonFile(); + + private static JsonObject readJsonFile() { + final JsonObject object; + + InputStreamReader reader = null; + + try { + reader = new InputStreamReader(Main.class.getClassLoader().getResourceAsStream("version.json"), StandardCharsets.UTF_8); + object = Json.parse(reader).asObject(); + } catch (final IOException exc) { + throw new RuntimeException("Failed to read version.json", exc); + } finally { + if (reader != null) { + try { + reader.close(); + } catch (IOException e) { + throw new RuntimeException(e); + } + } + } + + return object; + } + public static void main(final String[] args) { - if (getJavaVersion() < 17) { - System.err.println("Minecraft 1.19 requires running the server with Java 17 or above. " + - "Download Java 17 (or above) from https://adoptium.net/"); + final int javaVersion = VERSION.getInt("java_version", 17); + final String minecraftVersion = VERSION.getString("name", "Unknown"); + if (getJavaVersion() < javaVersion) { + System.err.printf("Minecraft %s requires running the server with Java %s or above. " + + "Download Java %s (or above) from https://adoptium.net/%n", minecraftVersion, javaVersion, javaVersion); System.exit(1); } From b4a53c41ff843ffa1c1f57d0e45cd4cc66e4e8fb Mon Sep 17 00:00:00 2001 From: powercas_gamer Date: Mon, 12 Jun 2023 14:28:34 +0200 Subject: [PATCH 4/9] small changes --- .vscode/settings.json | 3 +++ java6/build.gradle.kts | 6 +++--- java6/src/main/java/io/papermc/paperclip/Main.java | 8 ++------ 3 files changed, 8 insertions(+), 9 deletions(-) create mode 100644 .vscode/settings.json diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000..c5f3f6b --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,3 @@ +{ + "java.configuration.updateBuildConfiguration": "interactive" +} \ No newline at end of file diff --git a/java6/build.gradle.kts b/java6/build.gradle.kts index 9b7a490..c1099d2 100644 --- a/java6/build.gradle.kts +++ b/java6/build.gradle.kts @@ -12,13 +12,11 @@ java { languageVersion.set(JavaLanguageVersion.of(11)) } - targetCompatibility = JavaVersion.VERSION_1_6 - sourceCompatibility = JavaVersion.VERSION_1_6 - withSourcesJar() } tasks.withType().configureEach { + options.release.set(6) options.compilerArgs = listOf("-Xlint:-options") } @@ -29,6 +27,8 @@ tasks.shadowJar { relocate(pack, "$prefix.$pack") } + minimize() + exclude("META-INF/LICENSE.txt") exclude("META-INF/NOTICE.txt") } \ No newline at end of file diff --git a/java6/src/main/java/io/papermc/paperclip/Main.java b/java6/src/main/java/io/papermc/paperclip/Main.java index 3307e57..f4d3adf 100644 --- a/java6/src/main/java/io/papermc/paperclip/Main.java +++ b/java6/src/main/java/io/papermc/paperclip/Main.java @@ -12,13 +12,9 @@ import com.eclipsesource.json.Json; import com.eclipsesource.json.JsonObject; -import java.io.File; import java.io.IOException; import java.io.InputStreamReader; import java.lang.reflect.Method; -import java.nio.charset.StandardCharsets; -import java.nio.file.Files; -import java.nio.file.Paths; public final class Main { @@ -30,7 +26,7 @@ private static JsonObject readJsonFile() { InputStreamReader reader = null; try { - reader = new InputStreamReader(Main.class.getClassLoader().getResourceAsStream("version.json"), StandardCharsets.UTF_8); + reader = new InputStreamReader(Main.class.getClassLoader().getResourceAsStream("version.json"), "UTF_8"); object = Json.parse(reader).asObject(); } catch (final IOException exc) { throw new RuntimeException("Failed to read version.json", exc); @@ -52,7 +48,7 @@ public static void main(final String[] args) { final String minecraftVersion = VERSION.getString("name", "Unknown"); if (getJavaVersion() < javaVersion) { System.err.printf("Minecraft %s requires running the server with Java %s or above. " + - "Download Java %s (or above) from https://adoptium.net/%n", minecraftVersion, javaVersion, javaVersion); + "Download Java %s (or above) from https://adoptium.net/", minecraftVersion, javaVersion, javaVersion); System.exit(1); } From 5754113e1cb8c030df0a4b9a05cdb07d0b107ded Mon Sep 17 00:00:00 2001 From: powercas_gamer Date: Mon, 12 Jun 2023 14:28:48 +0200 Subject: [PATCH 5/9] oops --- .vscode/settings.json | 3 --- 1 file changed, 3 deletions(-) delete mode 100644 .vscode/settings.json diff --git a/.vscode/settings.json b/.vscode/settings.json deleted file mode 100644 index c5f3f6b..0000000 --- a/.vscode/settings.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "java.configuration.updateBuildConfiguration": "interactive" -} \ No newline at end of file From e68393cdcc64ac8c2543c0a064da89dc66463ae9 Mon Sep 17 00:00:00 2001 From: powercas_gamer Date: Mon, 12 Jun 2023 18:52:26 +0200 Subject: [PATCH 6/9] ? --- .vscode/settings.json | 3 +++ java6/build.gradle.kts | 2 -- 2 files changed, 3 insertions(+), 2 deletions(-) create mode 100644 .vscode/settings.json diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000..c5f3f6b --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,3 @@ +{ + "java.configuration.updateBuildConfiguration": "interactive" +} \ No newline at end of file diff --git a/java6/build.gradle.kts b/java6/build.gradle.kts index c1099d2..5bf7c5d 100644 --- a/java6/build.gradle.kts +++ b/java6/build.gradle.kts @@ -27,8 +27,6 @@ tasks.shadowJar { relocate(pack, "$prefix.$pack") } - minimize() - exclude("META-INF/LICENSE.txt") exclude("META-INF/NOTICE.txt") } \ No newline at end of file From d9d0feb3f76becc5ab230e4b687d2f88faa393b8 Mon Sep 17 00:00:00 2001 From: powercas_gamer Date: Wed, 14 Jun 2023 10:48:55 +0200 Subject: [PATCH 7/9] Rebase and add vscode to gitignore --- .gitignore | 6 +++++- .vscode/settings.json | 3 --- 2 files changed, 5 insertions(+), 4 deletions(-) delete mode 100644 .vscode/settings.json diff --git a/.gitignore b/.gitignore index aafef55..532b6a7 100644 --- a/.gitignore +++ b/.gitignore @@ -24,6 +24,10 @@ local.properties .factorypath .apt_generated/ +# VSCode stuff +.vscode/ +.classpath + # macOS .DS_Store @@ -42,4 +46,4 @@ ehthumbs_vista.db .gradletasknamecache # Avoid ignoring Gradle wrapper jar file (.jar files are usually ignored) -!gradle-wrapper.ja +!gradle-wrapper.jar diff --git a/.vscode/settings.json b/.vscode/settings.json deleted file mode 100644 index c5f3f6b..0000000 --- a/.vscode/settings.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "java.configuration.updateBuildConfiguration": "interactive" -} \ No newline at end of file From 3382cd2d3cb1f67e2195ca86d2db2cb17b8f25fc Mon Sep 17 00:00:00 2001 From: powercas_gamer Date: Wed, 14 Jun 2023 10:49:44 +0200 Subject: [PATCH 8/9] whitespace and version --- gradle.properties | 2 +- java6/build.gradle.kts | 1 - 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/gradle.properties b/gradle.properties index c7a0d06..da314ac 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,3 +1,3 @@ group = io.papermc -version = 3.0.4-BOOP-SNAPSHOT +version = 3.0.4-SNAPSHOT description = Launcher for the Paper Minecraft server diff --git a/java6/build.gradle.kts b/java6/build.gradle.kts index 5bf7c5d..1b08e79 100644 --- a/java6/build.gradle.kts +++ b/java6/build.gradle.kts @@ -20,7 +20,6 @@ tasks.withType().configureEach { options.compilerArgs = listOf("-Xlint:-options") } - tasks.shadowJar { val prefix = "paperclip.libs" listOf("com.eclipsesource").forEach { pack -> From a92efb5c0079a93c4304c4fe3b9902e51a13cbc1 Mon Sep 17 00:00:00 2001 From: powercas_gamer Date: Wed, 14 Jun 2023 10:51:28 +0200 Subject: [PATCH 9/9] dupe --- build.gradle.kts | 6 ------ java6/build.gradle.kts | 4 ++++ 2 files changed, 4 insertions(+), 6 deletions(-) diff --git a/build.gradle.kts b/build.gradle.kts index 1b16b40..40ae42b 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -4,12 +4,6 @@ plugins { `maven-publish` } -allprojects { - repositories { - mavenCentral() - } -} - subprojects { apply(plugin = "java") diff --git a/java6/build.gradle.kts b/java6/build.gradle.kts index 1b08e79..dfad228 100644 --- a/java6/build.gradle.kts +++ b/java6/build.gradle.kts @@ -3,6 +3,10 @@ plugins { id("com.github.johnrengelman.shadow") version "8.1.1" } +repositories { + mavenCentral() +} + dependencies { implementation("com.eclipsesource.minimal-json:minimal-json:0.9.5") }