buildscript { repositories { jcenter() maven { name = 'forge' url = 'http://files.minecraftforge.net/maven' } maven { name = 'SpongePowered' url = 'http://repo.spongepowered.org/maven' } } dependencies { classpath 'net.minecraftforge.gradle:ForgeGradle:3.+' classpath 'org.spongepowered:mixingradle:0.7-SNAPSHOT' classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" } } apply plugin: 'idea' apply plugin: 'eclipse' apply plugin: 'kotlin' apply plugin: 'net.minecraftforge.gradle' apply plugin: 'org.spongepowered.mixin' version project.modVersion group project.modGroup sourceSets.main.java { srcDirs += 'src/main/cape-api' srcDirs += 'src/main/command' srcDirs += 'src/main/commons' srcDirs += 'src/main/event' } compileKotlin { kotlinOptions.jvmTarget = "1.8" } compileJava { sourceCompatibility = targetCompatibility = '1.8' options.encoding = 'UTF-8' } repositories { maven { name = 'spongepowered-repo' url = 'http://repo.spongepowered.org/maven/' } maven { name = 'impactdevelopment-repo' url = 'https://impactdevelopment.github.io/maven/' } maven { name = 'swt-repo' url = "http://maven-eclipse.github.io/maven" } maven { name = "jitpack.io" url = "https://jitpack.io" } mavenCentral() jcenter() } minecraft { mappings channel: 'stable', version: '39-1.12' runs { client { workingDirectory project.file('run') property 'fml.coreMods.load', 'me.zeroeightsix.kami.mixin.MixinLoaderForge' property 'mixin.env.disableRefMap', 'true' // Disable refmap so we don't get trolled by Baritone property 'forge.logging.markers', 'SCAN,REGISTRIES,REGISTRYDUMP' property 'forge.logging.console.level', 'debug' } } } configurations { jarLibs } dependencies { // Forge minecraft 'net.minecraftforge:forge:1.12.2-14.23.5.2854' jarLibs('org.spongepowered:mixin:0.7.11-SNAPSHOT') { exclude module: 'commons-io' exclude module: 'gson' exclude module: 'guava' exclude module: 'launchwrapper' exclude module: 'log4j-core' // we want to exclude this as well because 0.7.11 includes it too new for MC } // Hacky way to get mixin work annotationProcessor('org.spongepowered:mixin:0.8.2:processor') { exclude module: 'gson' } jarLibs('org.reflections:reflections:0.9.12') { exclude module: 'gson' exclude module: 'guava' } jarLibs('club.minnced:java-discord-rpc:2.0.2') { exclude module: 'jna' } jarLibs('com.github.MrPowerGamerBR:TemmieWebhook:-SNAPSHOT') { exclude module: 'gson' } jarLibs 'com.github.kevinsawicki:http-request:6.0' // Kotlin libs // kotlin-stdlib-common and annotations aren't required at runtime jarLibs("org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version") { exclude module: 'kotlin-stdlib-common' exclude module: 'annotations' } jarLibs("org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version") { exclude module: 'kotlin-stdlib-common' exclude module: 'annotations' } jarLibs("org.jetbrains.kotlin:kotlin-stdlib-jdk8:$kotlin_version") { exclude module: 'kotlin-stdlib-common' exclude module: 'annotations' } jarLibs("org.jetbrains.kotlin:kotlin-reflect:$kotlin_version") { exclude module: 'kotlin-stdlib-common' exclude module: 'annotations' } jarLibs("org.jetbrains.kotlinx:kotlinx-coroutines-core:$kotlinx_coroutines_version") { exclude module: 'kotlin-stdlib-common' exclude module: 'annotations' } // Add them back to compileOnly (provided) compileOnly "org.jetbrains.kotlin:kotlin-stdlib-common:$kotlin_version" compileOnly 'org.jetbrains:annotations:20.1.0' // This Baritone will NOT be included in the jar implementation 'com.github.cabaletta:baritone:1.2.14' // This Baritone WILL be included in the jar jarLibs 'cabaletta:baritone-api:1.2' // Add everything in jarLibs to implementation (compile) implementation configurations.jarLibs } mixin { defaultObfuscationEnv 'searge' add sourceSets.main, 'mixins.kami.refmap.json' } processResources { inputs.property 'version', project.version exclude '**/rawimagefiles' from(sourceSets.main.resources.srcDirs) { include 'mcmod.info' expand 'version': project.version } } // Don't put baritone mixin here please c: jar { manifest.attributes( 'Manifest-Version': 1.0, 'MixinConfigs': 'mixins.kami.json', 'TweakClass': 'org.spongepowered.asm.launch.MixinTweaker', 'TweakOrder': 0, 'FMLCorePluginContainsFMLMod': 'true', 'FMLCorePlugin': 'me.zeroeightsix.kami.mixin.MixinLoaderForge', 'ForceLoadAsMod': 'true', 'Main-Class': 'me.zeroeightsix.installer.Installer' ) // Copy needed libs to jar from { configurations.jarLibs.collect { it.isDirectory() ? it : zipTree(it) } } }