This would previously result in command registration silently failing, since commands are registered before the server starts.
103 lines
3.5 KiB
Kotlin
103 lines
3.5 KiB
Kotlin
import net.fabricmc.loom.task.AbstractRunTask
|
|
import net.ltgt.gradle.errorprone.errorprone
|
|
|
|
plugins {
|
|
id("fabric-loom") version "0.6-SNAPSHOT"
|
|
}
|
|
|
|
/* set up a testmod source set */
|
|
val testmod by sourceSets.creating {
|
|
val main = sourceSets.main.get()
|
|
compileClasspath += main.compileClasspath
|
|
runtimeClasspath += main.runtimeClasspath
|
|
dependencies.add(implementationConfigurationName, main.output)
|
|
}
|
|
|
|
val testmodJar by tasks.creating(Jar::class) {
|
|
archiveClassifier.set("testmod-dev")
|
|
group = LifecycleBasePlugin.BUILD_GROUP
|
|
from(testmod.output)
|
|
}
|
|
|
|
loom.unmappedModCollection.from(testmodJar)
|
|
|
|
/* end of testmod setup */
|
|
|
|
tasks {
|
|
compileJava {
|
|
options.errorprone {
|
|
excludedPaths.set(".*[/\\\\]mixin[/\\\\].*")
|
|
}
|
|
}
|
|
|
|
withType(ProcessResources::class).configureEach {
|
|
inputs.property("version", project.version)
|
|
filesMatching("fabric.mod.json") {
|
|
expand("version" to project.version)
|
|
}
|
|
}
|
|
|
|
withType(Javadoc::class).configureEach {
|
|
(options as? StandardJavadocDocletOptions)?.apply {
|
|
links("https://maven.fabricmc.net/docs/yarn-${Versions.fabricMc}+build.${Versions.fabricYarn}/")
|
|
}
|
|
}
|
|
|
|
withType(AbstractRunTask::class).configureEach {
|
|
standardInput = System.`in`
|
|
jvmArgumentProviders += CommandLineArgumentProvider {
|
|
if (System.getProperty("idea.active")?.toBoolean() == true || // IntelliJ
|
|
System.getenv("TERM") != null || // linux terminals
|
|
System.getenv("WT_SESSION") != null) { // Windows terminal
|
|
listOf("-Dfabric.log.disableAnsi=false")
|
|
} else {
|
|
listOf()
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
dependencies {
|
|
minecraft("com.mojang", "minecraft", Versions.fabricMc)
|
|
mappings("net.fabricmc", "yarn", "${Versions.fabricMc}+build.${Versions.fabricYarn}", classifier = "v2")
|
|
modImplementation("net.fabricmc", "fabric-loader", Versions.fabricLoader)
|
|
modImplementation(fabricApi.module("fabric-command-api-v1", Versions.fabricApi))
|
|
modImplementation(fabricApi.module("fabric-lifecycle-events-v1", Versions.fabricApi))
|
|
|
|
modApi(include("me.lucko", "fabric-permissions-api", "0.1-SNAPSHOT"))
|
|
|
|
api(include(project(":cloud-core"))!!)
|
|
api(include(project(":cloud-brigadier"))!!)
|
|
api(include(project(":cloud-services"))!!)
|
|
|
|
api(include("io.leangen.geantyref", "geantyref", Versions.geantyref))
|
|
}
|
|
|
|
indra {
|
|
includeJavaSoftwareComponentInPublications.set(false)
|
|
configurePublications {
|
|
// add all the jars that should be included when publishing to maven
|
|
artifact(tasks.remapJar) {
|
|
builtBy(tasks.remapJar)
|
|
}
|
|
artifact(tasks.sourcesJar) {
|
|
builtBy(tasks.remapSourcesJar)
|
|
}
|
|
|
|
// Loom is broken with project dependencies in the same build (because it resolves dependencies during configuration)
|
|
// Please look away
|
|
pom {
|
|
withXml {
|
|
val dependencies = asNode().appendNode("dependencies")
|
|
sequenceOf("brigadier", "core", "services").forEach {
|
|
val depNode = dependencies.appendNode("dependency")
|
|
depNode.appendNode("groupId", project.group)
|
|
depNode.appendNode("artifactId", "cloud-$it")
|
|
depNode.appendNode("version", project.version)
|
|
depNode.appendNode("scope", "compile")
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|