import ru.justagod.plugin.CutterPlugin
buildscript {
repositories {
jcenter()
maven { url = "http://files.minecraftforge.net/maven" }
}
dependencies {
classpath 'net.minecraftforge.gradle:ForgeGradle:2.3-SNAPSHOT'
}
}
plugins {
id "com.github.johnrengelman.shadow" version "4.0.2"
}
apply plugin: 'net.minecraftforge.gradle.forge'
apply plugin: CutterPlugin
version = "1.8.9"
group = "ru.will0376.MODID"
archivesBaseName = "MODID"
sourceCompatibility = targetCompatibility = '1.8'
compileJava {
sourceCompatibility = targetCompatibility = '1.8'
}
minecraft {
version = "1.12.2-14.23.5.2784"
runDir = "run"
mappings = "snapshot_20180814"
}
repositories {
jcenter()
}
dependencies {
compile "net.dv8tion:JDA:3.8.3_464"
compile group: 'org.apache.commons', name: 'commons-collections4', version: '4.1' //Зачем их копировать дополнительно в libraries,когда скачиваем отдельно для ShadowJar?
compile group: 'org.slf4j', name: 'slf4j-api', version: '1.7.26'
//compile files(fileTree(dir: 'lib', includes: ['*.jar']))
}
shadowJar{//Тут релокатим все org пакеты(ибо фордж писали ...)
dependencies {
include(dependency('org.apache.commons:commons-collections4:.*'))
include(dependency('org.slf4j:slf4j-api:.*'))
}
relocate "org.apache.commons.collections4", "ru.will0376.repack.org.apache.commons.collections4"
relocate "org.slf4j", "ru.will0376.repack.org.slf4j"
}
reobf {
shadowJar {} // Reobfuscate the shadowed JAR
}
processResources {
inputs.property "version", project.version
inputs.property "mcversion", project.minecraft.version
from(sourceSets.main.resources.srcDirs) {
include 'mcmod.info'
expand 'version':project.version, 'mcversion':project.minecraft.version
}
jar {
manifest {
attributes 'FMLAT': 'forge_at.cfg'
attributes 'Implementation-Title': 'Gradle'
attributes 'Implementation-Version': version
// attributes 'ContainedDeps': 'JDA-3.8.3_464.jar json-20180813.jar kotlin-stdlib-1.3.41.jar nv-websocket-client-2.9.jar okhttp-4.0.1.jar okio-2.2.2.jar slf4j-api-1.7.26.jar trove4j-3.0.3.jar'
}
}
from(sourceSets.main.resources.srcDirs) {
exclude 'mcmod.info'
}
}
//mineplugin
cutter {
annotation = 'ru.justagod.mineplugin.GradleSideOnly'
classesCache = file('cutter-cache')
classesDirs = [compileJava.destinationDir]
def clientSide = side('CLIENT')
def serverSide = side('SERVER')
builds {
client {
targetSides = [clientSide]
primalSides = [clientSide, serverSide]
}
server {
targetSides = [serverSide]
primalSides = [clientSide, serverSide]
}
}
}