From 3aa877db2b892e6969096e5407e02641a9c1c787 Mon Sep 17 00:00:00 2001 From: Sychic <47618543+Sychic@users.noreply.github.com> Date: Mon, 24 Oct 2022 10:18:40 -0400 Subject: [PATCH 1/8] New: Essential Loader Script --- .../gg/essential/essential-loader.gradle.kts | 64 +++++++++++++++++++ 1 file changed, 64 insertions(+) create mode 100644 src/main/kotlin/gg/essential/essential-loader.gradle.kts diff --git a/src/main/kotlin/gg/essential/essential-loader.gradle.kts b/src/main/kotlin/gg/essential/essential-loader.gradle.kts new file mode 100644 index 0000000..828f62d --- /dev/null +++ b/src/main/kotlin/gg/essential/essential-loader.gradle.kts @@ -0,0 +1,64 @@ +package gg.essential + +import gg.essential.gradle.multiversion.Platform +import gg.essential.gradle.util.RelocationTransform.Companion.registerRelocationAttribute + + +plugins { + id("gg.essential.loom") +} + +val platform = Platform.of(project) + +val essentialLoader: Configuration by configurations.creating + +when { + platform.isLegacyForge -> { + dependencies { + "runtimeOnly"(essentialLoader("gg.essential:loader-launchwrapper:1.1.3")!!) + } + tasks.named("jar") { + dependsOn(essentialLoader) + from({ zipTree(essentialLoader.singleFile) }) + } + } + + platform.isFabric -> { + dependencies { + "include"("modRuntimeOnly"("gg.essential:loader-fabric:1.0.0")!!) + } + } + + platform.isModLauncher -> { + dependencies { + val relocatedPackage = findProperty("essential.loader.package")?.toString() ?: throw GradleException(""" + No essential loader package set. + You need to set `essential.loader.package` in the project's `gradle.properties` file to a specific package. + The recommended package is your mod's package. + """.trimIndent()) + val relocationAttribute = + registerRelocationAttribute("essential-loader-relocated") { + relocate("gg.essential.loader.stage0", "$relocatedPackage.stage0") + // preserve stage1 path + rename("gg/essential/loader/stage0/stage1.jar", "gg/essential/loader/stage0/stage1.jar") + } + essentialLoader.attributes { + attribute(relocationAttribute, true) + } + if (platform.mcVersion < 11700) { + "forgeRuntimeLibrary"(essentialLoader("gg.essential:loader-modlauncher8:1.0.0")!!) + } else { + "forgeRuntimeLibrary"(essentialLoader("gg.essential:loader-modlauncher9:1.0.0")!!) + } + } + tasks.named("jar") { + dependsOn(essentialLoader) + from({ zipTree(essentialLoader.singleFile) }) + } + } + + else -> error("No loader available for this platform") +} + +// Unit statement so it doesn't try to get the result from the when block +Unit \ No newline at end of file From fa6dc873438314781456074e3e903cb7834347d4 Mon Sep 17 00:00:00 2001 From: Sychic <47618543+Sychic@users.noreply.github.com> Date: Fri, 13 Jan 2023 12:48:54 -0500 Subject: [PATCH 2/8] essential-loader: use implementation instead of runtimeOnly --- src/main/kotlin/gg/essential/essential-loader.gradle.kts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/kotlin/gg/essential/essential-loader.gradle.kts b/src/main/kotlin/gg/essential/essential-loader.gradle.kts index 828f62d..e898dc8 100644 --- a/src/main/kotlin/gg/essential/essential-loader.gradle.kts +++ b/src/main/kotlin/gg/essential/essential-loader.gradle.kts @@ -15,7 +15,7 @@ val essentialLoader: Configuration by configurations.creating when { platform.isLegacyForge -> { dependencies { - "runtimeOnly"(essentialLoader("gg.essential:loader-launchwrapper:1.1.3")!!) + "implementation"(essentialLoader("gg.essential:loader-launchwrapper:1.1.3")!!) } tasks.named("jar") { dependsOn(essentialLoader) From 361cb245e0fb3c346e14c363e3e571fa3a791d35 Mon Sep 17 00:00:00 2001 From: Sychic <47618543+Sychic@users.noreply.github.com> Date: Fri, 13 Jan 2023 12:52:35 -0500 Subject: [PATCH 3/8] essential-loader: add tweakclass to manifest --- src/main/kotlin/gg/essential/essential-loader.gradle.kts | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/main/kotlin/gg/essential/essential-loader.gradle.kts b/src/main/kotlin/gg/essential/essential-loader.gradle.kts index e898dc8..fb5f130 100644 --- a/src/main/kotlin/gg/essential/essential-loader.gradle.kts +++ b/src/main/kotlin/gg/essential/essential-loader.gradle.kts @@ -19,6 +19,10 @@ when { } tasks.named("jar") { dependsOn(essentialLoader) + manifest.attributes(mapOf( + "FMLCorePluginContainsMod" to "Yes, yes it does", + "TweakClass" to "gg.essential.loader.stage0.EssentialSetupTweaker" + )) from({ zipTree(essentialLoader.singleFile) }) } } From 7fba960b1bbd0f14ef662b89486e5065d36474a8 Mon Sep 17 00:00:00 2001 From: Sychic <47618543+Sychic@users.noreply.github.com> Date: Fri, 13 Jan 2023 13:03:56 -0500 Subject: [PATCH 4/8] essential-loader: improve error message --- src/main/kotlin/gg/essential/essential-loader.gradle.kts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/main/kotlin/gg/essential/essential-loader.gradle.kts b/src/main/kotlin/gg/essential/essential-loader.gradle.kts index fb5f130..73ab603 100644 --- a/src/main/kotlin/gg/essential/essential-loader.gradle.kts +++ b/src/main/kotlin/gg/essential/essential-loader.gradle.kts @@ -36,9 +36,9 @@ when { platform.isModLauncher -> { dependencies { val relocatedPackage = findProperty("essential.loader.package")?.toString() ?: throw GradleException(""" - No essential loader package set. - You need to set `essential.loader.package` in the project's `gradle.properties` file to a specific package. - The recommended package is your mod's package. + A package for the Essential loader to be relocated to has not been set. + You need to set `essential.loader.package` in the project's `gradle.properties` file to a specific package where Essential's loader will be relocated to. + The recommended package is an unused package within your mod's package. """.trimIndent()) val relocationAttribute = registerRelocationAttribute("essential-loader-relocated") { From c95b47bea53c7fa738cb8daea1b91a10222d65ed Mon Sep 17 00:00:00 2001 From: sychic <47618543+Sychic@users.noreply.github.com> Date: Sat, 19 Aug 2023 14:02:03 -0400 Subject: [PATCH 5/8] change: remove unecessary manifest attribute --- src/main/kotlin/gg/essential/essential-loader.gradle.kts | 1 - 1 file changed, 1 deletion(-) diff --git a/src/main/kotlin/gg/essential/essential-loader.gradle.kts b/src/main/kotlin/gg/essential/essential-loader.gradle.kts index 73ab603..f6e583a 100644 --- a/src/main/kotlin/gg/essential/essential-loader.gradle.kts +++ b/src/main/kotlin/gg/essential/essential-loader.gradle.kts @@ -20,7 +20,6 @@ when { tasks.named("jar") { dependsOn(essentialLoader) manifest.attributes(mapOf( - "FMLCorePluginContainsMod" to "Yes, yes it does", "TweakClass" to "gg.essential.loader.stage0.EssentialSetupTweaker" )) from({ zipTree(essentialLoader.singleFile) }) From c4f5045420e8b870a4a660e664a4380c60dbfb7e Mon Sep 17 00:00:00 2001 From: sychic <47618543+Sychic@users.noreply.github.com> Date: Sat, 19 Aug 2023 14:03:31 -0400 Subject: [PATCH 6/8] change: adjust error message --- src/main/kotlin/gg/essential/essential-loader.gradle.kts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/kotlin/gg/essential/essential-loader.gradle.kts b/src/main/kotlin/gg/essential/essential-loader.gradle.kts index f6e583a..630b814 100644 --- a/src/main/kotlin/gg/essential/essential-loader.gradle.kts +++ b/src/main/kotlin/gg/essential/essential-loader.gradle.kts @@ -36,8 +36,8 @@ when { dependencies { val relocatedPackage = findProperty("essential.loader.package")?.toString() ?: throw GradleException(""" A package for the Essential loader to be relocated to has not been set. - You need to set `essential.loader.package` in the project's `gradle.properties` file to a specific package where Essential's loader will be relocated to. - The recommended package is an unused package within your mod's package. + You need to set `essential.loader.package` in the project's `gradle.properties` file to a package where Essential's loader will be relocated to. + For example: `essential.loader.package = org.example.coolmod.relocated.essential` """.trimIndent()) val relocationAttribute = registerRelocationAttribute("essential-loader-relocated") { From ee6914061a954fa0bfd89645907945bb0eb76ef6 Mon Sep 17 00:00:00 2001 From: sychic <47618543+Sychic@users.noreply.github.com> Date: Sun, 29 Oct 2023 22:37:19 -0400 Subject: [PATCH 7/8] build: update loader to 1.2.2 --- src/main/kotlin/gg/essential/essential-loader.gradle.kts | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/main/kotlin/gg/essential/essential-loader.gradle.kts b/src/main/kotlin/gg/essential/essential-loader.gradle.kts index 630b814..15b2e3f 100644 --- a/src/main/kotlin/gg/essential/essential-loader.gradle.kts +++ b/src/main/kotlin/gg/essential/essential-loader.gradle.kts @@ -15,7 +15,7 @@ val essentialLoader: Configuration by configurations.creating when { platform.isLegacyForge -> { dependencies { - "implementation"(essentialLoader("gg.essential:loader-launchwrapper:1.1.3")!!) + "implementation"(essentialLoader("gg.essential:loader-launchwrapper:1.2.2")!!) } tasks.named("jar") { dependsOn(essentialLoader) @@ -28,7 +28,7 @@ when { platform.isFabric -> { dependencies { - "include"("modRuntimeOnly"("gg.essential:loader-fabric:1.0.0")!!) + "include"("modRuntimeOnly"("gg.essential:loader-fabric:1.2.2")!!) } } @@ -49,9 +49,9 @@ when { attribute(relocationAttribute, true) } if (platform.mcVersion < 11700) { - "forgeRuntimeLibrary"(essentialLoader("gg.essential:loader-modlauncher8:1.0.0")!!) + "forgeRuntimeLibrary"(essentialLoader("gg.essential:loader-modlauncher8:1.2.2")!!) } else { - "forgeRuntimeLibrary"(essentialLoader("gg.essential:loader-modlauncher9:1.0.0")!!) + "forgeRuntimeLibrary"(essentialLoader("gg.essential:loader-modlauncher9:1.2.2")!!) } } tasks.named("jar") { From 5163d93a8b80e4b4c9ab8560177cceee9ae72837 Mon Sep 17 00:00:00 2001 From: sychic <47618543+Sychic@users.noreply.github.com> Date: Thu, 23 Nov 2023 11:49:27 -0500 Subject: [PATCH 8/8] loader: error on unsupported versions --- .../gg/essential/essential-loader.gradle.kts | 52 ++++++++++--------- 1 file changed, 27 insertions(+), 25 deletions(-) diff --git a/src/main/kotlin/gg/essential/essential-loader.gradle.kts b/src/main/kotlin/gg/essential/essential-loader.gradle.kts index 15b2e3f..6ee7e55 100644 --- a/src/main/kotlin/gg/essential/essential-loader.gradle.kts +++ b/src/main/kotlin/gg/essential/essential-loader.gradle.kts @@ -32,32 +32,34 @@ when { } } + //FIXME: Fix loader not working on ml platform.isModLauncher -> { - dependencies { - val relocatedPackage = findProperty("essential.loader.package")?.toString() ?: throw GradleException(""" - A package for the Essential loader to be relocated to has not been set. - You need to set `essential.loader.package` in the project's `gradle.properties` file to a package where Essential's loader will be relocated to. - For example: `essential.loader.package = org.example.coolmod.relocated.essential` - """.trimIndent()) - val relocationAttribute = - registerRelocationAttribute("essential-loader-relocated") { - relocate("gg.essential.loader.stage0", "$relocatedPackage.stage0") - // preserve stage1 path - rename("gg/essential/loader/stage0/stage1.jar", "gg/essential/loader/stage0/stage1.jar") - } - essentialLoader.attributes { - attribute(relocationAttribute, true) - } - if (platform.mcVersion < 11700) { - "forgeRuntimeLibrary"(essentialLoader("gg.essential:loader-modlauncher8:1.2.2")!!) - } else { - "forgeRuntimeLibrary"(essentialLoader("gg.essential:loader-modlauncher9:1.2.2")!!) - } - } - tasks.named("jar") { - dependsOn(essentialLoader) - from({ zipTree(essentialLoader.singleFile) }) - } + error("Modlauncher is currently not supported") +// dependencies { +// val relocatedPackage = findProperty("essential.loader.package")?.toString() ?: throw GradleException(""" +// A package for the Essential loader to be relocated to has not been set. +// You need to set `essential.loader.package` in the project's `gradle.properties` file to a package where Essential's loader will be relocated to. +// For example: `essential.loader.package = org.example.coolmod.relocated.essential` +// """.trimIndent()) +// val relocationAttribute = +// registerRelocationAttribute("essential-loader-relocated") { +// relocate("gg.essential.loader.stage0", "$relocatedPackage.stage0") +// // preserve stage1 path +// rename("gg/essential/loader/stage0/stage1.jar", "gg/essential/loader/stage0/stage1.jar") +// } +// essentialLoader.attributes { +// attribute(relocationAttribute, true) +// } +// if (platform.mcVersion < 11700) { +// "forgeRuntimeLibrary"(essentialLoader("gg.essential:loader-modlauncher8:1.2.2")!!) +// } else { +// "forgeRuntimeLibrary"(essentialLoader("gg.essential:loader-modlauncher9:1.2.2")!!) +// } +// } +// tasks.named("jar") { +// dependsOn(essentialLoader) +// from({ zipTree(essentialLoader.singleFile) }) +// } } else -> error("No loader available for this platform")