//file:noinspection UnnecessaryQualifiedReference //file:noinspection GroovyAssignabilityCheck //file:noinspection GradlePackageUpdate import com.github.jengelman.gradle.plugins.shadow.tasks.ShadowJar plugins { id "dev.architectury.architectury-pack200" version "0.1.3" id "com.github.johnrengelman.shadow" version "7.1.0" id "cc.woverflow.loom" version "0.10.6" id "net.kyori.blossom" version "1.3.0" id "java" } version = mod_version group = "io.polyfrost" archivesBaseName = mod_name blossom { String className = "src/main/java/io/polyfrost/oneconfig/OneConfig.java" replaceToken("@VER@", project.version, className) replaceToken("@NAME@", mod_name, className) replaceToken("@ID@", mod_id, className) } sourceCompatibility = targetCompatibility = JavaVersion.VERSION_1_8 compileJava.options.encoding = 'UTF-8' loom { launchConfigs { client { property("fml.coreMods.load", "io.polyfrost.oneconfig.lwjgl.plugin.LoadingPlugin") } } runConfigs { client { ideConfigGenerated = true } } forge { pack200Provider = new dev.architectury.pack200.java.Pack200Adapter() } } configurations { include implementation.extendsFrom(include) lwjgl lwjglNative { transitive = false } } sourceSets.main.runtimeClasspath += configurations.lwjglNative repositories { maven { url 'https://repo.woverflow.cc/' } } task lwjglJar(type: ShadowJar) { group = "shadow" archiveClassifier.set("lwjgl") configurations = [project.configurations.lwjgl] exclude "META-INF/versions/**" exclude "**/module-info.class" exclude "**/package-info.class" relocate("org.lwjgl", "org.lwjgl3") { include "org.lwjgl.PointerBuffer" include "org.lwjgl.BufferUtils" } } dependencies { minecraft("com.mojang:minecraft:1.8.9") mappings("de.oceanlabs.mcp:mcp_stable:22-1.8.9") forge("net.minecraftforge:forge:1.8.9-11.15.1.2318-1.8.9") lwjgl "org.lwjgl:lwjgl:3.3.0" lwjgl "org.lwjgl:lwjgl-stb:3.3.0" lwjgl "org.lwjgl:lwjgl-tinyfd:3.3.0" lwjgl "org.lwjgl:lwjgl-nanovg:3.3.0" lwjglNative "org.lwjgl:lwjgl:3.3.0:natives-windows" lwjglNative "org.lwjgl:lwjgl-stb:3.3.0:natives-windows" lwjglNative "org.lwjgl:lwjgl-tinyfd:3.3.0:natives-windows" lwjglNative "org.lwjgl:lwjgl-nanovg:3.3.0:natives-windows" lwjglNative "org.lwjgl:lwjgl:3.3.0:natives-linux" lwjglNative "org.lwjgl:lwjgl-stb:3.3.0:natives-linux" lwjglNative "org.lwjgl:lwjgl-tinyfd:3.3.0:natives-linux" lwjglNative "org.lwjgl:lwjgl-nanovg:3.3.0:natives-linux" lwjglNative "org.lwjgl:lwjgl:3.3.0:natives-macos" lwjglNative "org.lwjgl:lwjgl-stb:3.3.0:natives-macos" lwjglNative "org.lwjgl:lwjgl-tinyfd:3.3.0:natives-macos" lwjglNative "org.lwjgl:lwjgl-nanovg:3.3.0:natives-macos" implementation lwjglJar.outputs.files } processResources { // this will ensure that this task is redone when the versions change. inputs.property "version", version inputs.property "name", mod_name inputs.property "id", mod_id filesMatching("mcmod.info") { expand( "id": mod_id, "name": mod_name, "version": version ) } rename '(.+_at.cfg)', 'META-INF/$1' } sourceSets { main { output.resourcesDir = java.classesDirectory } } shadowJar { archiveClassifier.set('dev') configurations = [project.configurations.include, project.configurations.lwjglNative] duplicatesStrategy DuplicatesStrategy.EXCLUDE } remapJar { archiveClassifier.set('') from(shadowJar.archiveFile) } jar { manifest.attributes( 'ModSide': 'CLIENT', 'ForceLoadAsMod': true, "TweakOrder": "0", "FMLCorePlugin": "io.polyfrost.oneconfig.lwjgl.plugin.LoadingPlugin", "FMLCorePluginContainsFMLMod": "lol" ) enabled = false } jar.dependsOn(shadowJar)