2020-05-16 06:22:29 +00:00
|
|
|
buildscript {
|
|
|
|
repositories {
|
|
|
|
maven { url = 'https://files.minecraftforge.net/maven' }
|
|
|
|
maven { url = 'https://repo.spongepowered.org/maven' }
|
|
|
|
jcenter()
|
|
|
|
mavenCentral()
|
|
|
|
}
|
|
|
|
dependencies {
|
|
|
|
classpath group: 'net.minecraftforge.gradle', name: 'ForgeGradle', version: '3.+', changing: true
|
|
|
|
classpath 'org.spongepowered:mixingradle:0.7-SNAPSHOT'
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
apply plugin: 'net.minecraftforge.gradle'
|
|
|
|
apply plugin: 'org.spongepowered.mixin'
|
|
|
|
apply plugin: 'java'
|
2020-05-17 08:04:37 +00:00
|
|
|
apply plugin: 'idea'
|
2020-05-16 06:22:29 +00:00
|
|
|
|
2020-05-21 02:33:47 +00:00
|
|
|
ext {
|
|
|
|
minecraftVersion = '1.14.4'
|
|
|
|
forgeVersion = '28.2.0'
|
|
|
|
installerInfoDir = file("$buildDir/installer-info")
|
|
|
|
installerInfo = file("$installerInfoDir/META-INF/installer.json")
|
|
|
|
}
|
|
|
|
|
2020-05-16 06:22:29 +00:00
|
|
|
sourceCompatibility = targetCompatibility = compileJava.sourceCompatibility = compileJava.targetCompatibility = '1.8'
|
|
|
|
|
|
|
|
configurations {
|
|
|
|
embed
|
|
|
|
embedJar
|
|
|
|
compile.extendsFrom(embed, embedJar)
|
|
|
|
}
|
|
|
|
|
|
|
|
minecraft {
|
2020-05-21 02:33:47 +00:00
|
|
|
mappings channel: 'stable', version: "58-$minecraftVersion"
|
2020-05-16 06:22:29 +00:00
|
|
|
accessTransformer = project.file('src/main/resources/META-INF/accesstransformer.cfg')
|
|
|
|
runs {
|
|
|
|
server {
|
|
|
|
workingDirectory project.file('run')
|
|
|
|
property 'forge.logging.markers', 'SCAN,REGISTRIES,REGISTRYDUMP'
|
|
|
|
property 'forge.logging.console.level', 'debug'
|
|
|
|
mods {
|
|
|
|
arclight {
|
|
|
|
source sourceSets.main
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
repositories {
|
|
|
|
jcenter()
|
|
|
|
maven {
|
|
|
|
name = 'sponge-repo'
|
|
|
|
url = 'https://repo.spongepowered.org/maven'
|
|
|
|
}
|
|
|
|
maven { url = 'https://oss.sonatype.org/content/repositories/snapshots/' }
|
|
|
|
maven { url = 'https://hub.spigotmc.org/nexus/content/repositories/snapshots/' }
|
|
|
|
maven { url = 'https://repo.codemc.io/repository/nms/' }
|
|
|
|
maven { url = 'https://files.minecraftforge.net/maven/' }
|
|
|
|
}
|
|
|
|
|
|
|
|
def embedLibs = ['org.spongepowered:mixin:0.8', 'org.ow2.asm:asm-util:6.2',
|
|
|
|
'org.ow2.asm:asm-analysis:6.2', 'org.yaml:snakeyaml:1.23',
|
2020-05-21 02:33:47 +00:00
|
|
|
'org.xerial:sqlite-jdbc:3.28.0', 'mysql:mysql-connector-java:5.1.47',
|
|
|
|
'commons-lang:commons-lang:2.6', 'jline:jline:2.12.1',
|
|
|
|
'com.googlecode.json-simple:json-simple:1.1.1', 'org.apache.logging.log4j:log4j-jul:2.11.2',
|
|
|
|
'net.md-5:SpecialSource:1.8.6', 'net.minecraftforge:eventbus:2.0.0-milestone.1:service']
|
2020-05-16 06:22:29 +00:00
|
|
|
|
|
|
|
dependencies {
|
2020-05-21 02:33:47 +00:00
|
|
|
minecraft "net.minecraftforge:forge:$minecraftVersion-$forgeVersion"
|
2020-05-16 06:22:29 +00:00
|
|
|
compile group: 'org.jetbrains', name: 'annotations', version: '19.0.0'
|
2020-05-21 02:33:47 +00:00
|
|
|
embed project(':arclight-common')
|
|
|
|
embed project(':forge-installer')
|
2020-05-16 06:22:29 +00:00
|
|
|
for (def lib : embedLibs) {
|
|
|
|
embedJar "$lib@jar"
|
|
|
|
}
|
2020-05-21 02:33:47 +00:00
|
|
|
embed 'net.md-5:bungeecord-chat:1.13-SNAPSHOT@jar'
|
|
|
|
embed "org.spigotmc:spigot-api:$minecraftVersion-R0.1-SNAPSHOT@jar"
|
2020-05-16 06:22:29 +00:00
|
|
|
embed files("$projectDir/libs/spigot-1.14.4-mapped-deobf.jar")
|
|
|
|
}
|
|
|
|
|
|
|
|
def getGitHash = { ->
|
|
|
|
def stdout = new ByteArrayOutputStream()
|
|
|
|
exec {
|
|
|
|
commandLine 'git', 'rev-parse', '--short', 'HEAD'
|
|
|
|
standardOutput = stdout
|
|
|
|
}
|
|
|
|
return stdout.toString().trim()
|
|
|
|
}
|
|
|
|
|
|
|
|
processResources {
|
|
|
|
filesNotMatching("**/accesstransformer.cfg") {
|
2020-05-21 02:33:47 +00:00
|
|
|
expand 'version': "$minecraftVersion-${project.version}-${getGitHash()}"
|
2020-05-16 06:22:29 +00:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
jar {
|
|
|
|
manifest.attributes 'MixinConnector': 'io.izzel.arclight.mod.ArclightConnector'
|
|
|
|
manifest.attributes 'Main-Class': 'io.izzel.arclight.server.Main'
|
|
|
|
manifest.attributes 'Implementation-Title': 'Arclight'
|
|
|
|
manifest.attributes 'Implementation-Version': "arclight-${project.version}-${getGitHash()}"
|
|
|
|
manifest.attributes 'Implementation-Vendor': 'Arclight Team'
|
|
|
|
from(configurations.embed.collect { it.isDirectory() ? it : zipTree(it) }) {
|
|
|
|
exclude "META-INF/MANIFEST.MF"
|
|
|
|
exclude "META-INF/*.SF"
|
|
|
|
exclude "META-INF/*.DSA"
|
|
|
|
exclude "META-INF/*.RSA"
|
|
|
|
exclude "LICENSE.txt"
|
|
|
|
}
|
|
|
|
into('META-INF') {
|
|
|
|
from(files("${project(':scripts').projectDir}/bukkit_srg.srg"))
|
|
|
|
from(files("${project(':scripts').projectDir}/resources/inheritanceMap.txt"))
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2020-05-21 02:33:47 +00:00
|
|
|
task generateInstallerInfo {
|
|
|
|
def output = [installer: [minecraft: minecraftVersion, forge: forgeVersion], libraries: embedLibs]
|
|
|
|
outputs.file(installerInfo)
|
|
|
|
doLast {
|
|
|
|
installerInfo.text = groovy.json.JsonOutput.toJson(output)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
sourceSets.main.output.dir installerInfoDir, builtBy: generateInstallerInfo
|
|
|
|
|
2020-05-16 06:22:29 +00:00
|
|
|
mixin {
|
|
|
|
add sourceSets.main, 'mixins.arclight.refmap.json'
|
|
|
|
}
|
|
|
|
|
|
|
|
compileJava {
|
|
|
|
options.compilerArgs << '-XDignore.symbol.file' << '-XDenableSunApiLintControl'
|
2020-05-16 06:51:43 +00:00
|
|
|
options.encoding = 'UTF-8'
|
2020-05-16 06:22:29 +00:00
|
|
|
}
|