def useMixins = "true"
def useTransformers = false
def name = 'te4_spaceworlds'
buildscript {
repositories {
mavenCentral()
maven { url = "https://plugins.gradle.org/m2" }
maven { url = "https://repo.spongepowered.org/maven" }
maven { url = "https://maven.minecraftforge.net/" }
}
dependencies {
classpath group: 'net.minecraftforge.gradle', name: 'ForgeGradle',
version: '4.1.+', changing: true
classpath "org.spongepowered:mixingradle:0.7+"
classpath 'com.github.gmazzo:gradle-buildconfig-plugin:3.0.0'
}
}
apply plugin: 'net.minecraftforge.gradle'
//плагин с константами, полезная вещь
apply plugin: 'com.github.gmazzo.buildconfig'
if(useMixins != null && useMixins != "false"){
apply plugin: "org.spongepowered.mixin"
}
//константы
buildConfig{
className("Constants")
packageName("plus.space")
buildConfigField('boolean', 'CLIENT', 'false')
}
version = "1.0"
group = "plus"
archivesBaseName = name
sourceCompatibility = targetCompatibility = 1.8
compileJava.options.encoding = compileTestJava.options.encoding = "UTF-8"
minecraft {
mappings channel: 'stable', version: "39-1.12"
if(useTransformers) {
accessTransformer = file('src/main/resources/META-INF/accesstransformer.cfg')
}
runs {
client {
workingDirectory project.file('run')
property 'forge.logging.markers', 'REGISTRIES'
property 'forge.logging.console.level', 'debug'
if(useMixins=="true"){
args '--tweakClass', 'org.spongepowered.asm.launch.MixinTweaker',
'--mixin', 'mixins.'+name+'.json'
}
}
server {
workingDirectory project.file('run')
property 'forge.logging.markers', 'REGISTRIES'
property 'forge.logging.console.level', 'debug'
if(useMixins=="true") {
args '--tweakClass', 'org.spongepowered.asm.launch.MixinTweaker',
'--mixin', 'mixins.' + name + '.json'
}
}
}
}
if(useMixins != null && useMixins != "false"){
mixin {
add sourceSets.main, "mixins."+name+".refmap.json"
}
}
task prepareAssets(type: Copy) {
group = 'build'
from project.file('src/main/resources')
into project.file('build/classes/java/main')
}
repositories {
//тут лежит te4_fserver.jar
flatDir { dirs 'lib' }
}
dependencies {
minecraft "net.minecraftforge:forge:1.12.2-14.23.5.2855"
if(useMixins != null && useMixins != "false") {
implementation "org.spongepowered:mixin:0.8.+"
annotationProcessor 'org.spongepowered:mixin:0.8.+:processor'
}
//твои мод-зависимости
implementation fg.deobf('plus.fs:te4_fserver:1.0')
}
task ClientBuild{
dependsOn build
}
task ServerBuild{
dependsOn build
}
jar {
//разновидности билда, лень переписывать
if(project.gradle.startParameter.taskNames.contains("ClientBuild")){
buildConfig{
buildConfigField('boolean', 'CLIENT', 'true')
}
archiveName 'client-'+name+".jar"
exclude 'plus/space/server/**'
} else {
archiveName 'server-'+name+".jar"
}
//если нужны миксины
if(useMixins) {
manifest {
attributes([
"Implementation-Title" : project.name,
"Implementation-Version" : project.version,
"TweakClass" : "org.spongepowered.asm.launch.MixinTweaker",
"MixinConfigs" : "mixins."+name+".json",
"FMLCorePluginContainsFMLMod": "true",
"ForceLoadAsMod" : "true",
"Implementation-Timestamp" : new Date().format("yyyy-MM-dd'T'HH:mm:ssZ")
])
}
}
}
jar.finalizedBy('reobfJar')
sourceSets {
main {
java {
//локальный код других проектов
srcDir 'C:/Users/%???%/IdeaProjects/TsonConfigurations/src/main/java'
}
}
}