import org.gradle.internal.jvm.Jvm buildscript { ext.kotlin_version = '1.8.21' repositories { //new forge repository maven { url "https://maven.minecraftforge.net" } maven { url 'https://jitpack.io/' } mavenCentral() mavenLocal() } dependencies { classpath 'com.github.thefightagainstmalware:ForgeGradle:5a1fcb9' classpath 'com.github.thefightagainstmalware:MixinGradle:92e66fe' classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" } } plugins { id "java" id 'cpp' } apply plugin: 'net.minecraftforge.gradle.forge' apply plugin: 'kotlin' apply plugin: 'org.spongepowered.mixin' project.version = "1.2.0" group = "gq.malwarefight.nosession" archivesBaseName = "nosession" compileJava.sourceCompatibility = compileJava.targetCompatibility = 1.8 compileJava.options.encoding = "UTF-8" minecraft { version = "1.8.9-11.15.1.2318-1.8.9" runDir = "run" mappings = "stable_22" //mappings for 1.8.9 makeObfSourceJar = false //disable creation of sources jar } configurations { shade compile.extendsFrom(shade) } repositories { maven { url 'https://repo.spongepowered.org/maven/' } maven { url 'https://maven.minecraftforge.net/' } mavenCentral() } dependencies { compileOnly "net.minecraftforge:forge:1.8.9-11.15.1.2318-1.8.9:universal" shade('org.spongepowered:mixin:0.7.11-SNAPSHOT') { exclude module: 'launchwrapper' exclude module: 'guava' exclude module: 'gson' exclude module: 'commons-io' exclude module: 'log4j-core' } compileOnly 'org.spongepowered:mixin:0.7.11-SNAPSHOT' // why gradle why why why annotationProcessor 'org.spongepowered:mixin:0.8.5:processor' implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk8:$kotlin_version" } processResources { duplicatesStrategy = DuplicatesStrategy.WARN //replace stuff in mcmod.info, nothing else from(sourceSets.main.resources.srcDirs) { include "mcmod.info" //replace version and mcversion expand "version":project.version, "mcversion":project.minecraft.version } //copy everything else, that"s not the mcmod.info from(sourceSets.main.resources.srcDirs) { exclude "mcmod.info" } rename '(.+_at.cfg)', 'META-INF/$1' } sourceSets { main { ext.refMap = "mixins.nosession.refmap.json" } } model { components { linux(NativeLibrarySpec) { sources { cpp { source { srcDir 'src/main/cpp' include "libc.cpp" } } } buildTypes { release } binaries.all { def jvmHome = Jvm.current().javaHome if (targetPlatform.operatingSystem.macOsX) { cppCompiler.args '-I', "${jvmHome}/include" cppCompiler.args '-I', "${jvmHome}/include/darwin" cppCompiler.args '-mmacosx-version-min=10.4' linker.args '-mmacosx-version-min=10.4' } else if (targetPlatform.operatingSystem.linux) { cppCompiler.args '-I', "${jvmHome}/include" cppCompiler.args '-I', "${jvmHome}/include/linux" cppCompiler.args '-D_FILE_OFFSET_BITS=64' } else if (targetPlatform.operatingSystem.windows) { cppCompiler.args "-I${jvmHome}/include" cppCompiler.args "-I${jvmHome}/include/win32" } else if (targetPlatform.operatingSystem.freeBSD) { cppCompiler.args '-I', "${jvmHome}/include" cppCompiler.args '-I', "${jvmHome}/include/freebsd" } } } } } jar { dependsOn project.configurations.compile inputs.files {linuxSharedLibrary} from("build/libs/linux/shared/" + System.mapLibraryName("linux")) { into("native/" + System.getProperty("os.arch") + "/" + System.getProperty("os.name")) } from { project.configurations.compile.collect { it.isDirectory() ? it : zipTree(it) } } exclude 'META-INF/*.RSA', 'META-INF/*.SF', 'META-INF/*.DSA', 'dummyThing' manifest { attributes "ForceLoadAsMod": true, "TweakOrder": 0, "ModSide": "CLIENT", 'FMLCorePluginContainsFMLMod': true, 'MixinConfigs': 'mixins.nosession.json', "FMLCorePlugin": "gq.malwarefight.nosession.NoSessionLoadingPlugin" } } kotlin { jvmToolchain(11) }