ViaFabric/build.gradle.kts

180 lines
5.6 KiB
Plaintext
Raw Normal View History

2019-03-20 23:39:34 +01:00
import org.apache.tools.ant.filters.ReplaceTokens
plugins {
2021-03-19 20:23:08 +01:00
`java-library`
2021-03-19 21:07:47 +01:00
id("fabric-loom") version "0.6-SNAPSHOT"
2019-03-20 23:39:34 +01:00
id("com.palantir.git-version") version "0.12.0-rc2"
2020-08-05 12:51:08 +02:00
id("com.matthewprenger.cursegradle") version "1.4.0"
id("maven-publish")
2019-03-20 23:39:34 +01:00
}
group = "com.github.creeper123123321.viafabric"
2020-07-12 21:39:13 +02:00
val gitVersion: groovy.lang.Closure<String> by extra
val versionDetails: groovy.lang.Closure<com.palantir.gradle.gitversion.VersionDetails> by extra
2020-08-05 12:51:08 +02:00
2021-03-31 21:48:12 +02:00
val githubShaInfo: String? = System.getenv("GITHUB_SHA")?.substring(0, 10) // version details doesn't work on gh actions
2021-03-31 22:40:51 +02:00
val branch = try {
2020-08-05 12:51:08 +02:00
versionDetails().branchName
} catch (e: Exception) {
"unknown"
}
2021-01-23 20:20:33 +01:00
version = "0.3.1-SNAPSHOT+" + try {
2021-03-31 22:40:51 +02:00
(githubShaInfo ?: gitVersion()) + "-" + branch
} catch (e: Exception) {
"unknown"
2020-07-12 21:39:13 +02:00
}
2019-03-20 23:39:34 +01:00
extra.set("archivesBaseName", "ViaFabric")
2019-10-27 13:26:40 +01:00
description = "Client-side and server-side ViaVersion implementation for Fabric"
2019-03-20 23:39:34 +01:00
repositories {
mavenLocal()
mavenCentral()
jcenter()
2019-04-08 02:49:15 +02:00
maven(url = "https://repo.viaversion.com/")
maven(url = "https://oss.sonatype.org/content/repositories/snapshots")
maven(url = "https://maven.fabricmc.net/")
2020-03-24 12:29:41 +01:00
maven(url = "https://server.bbkr.space/artifactory/libs-snapshot")
2020-04-13 19:27:30 +02:00
maven(url = "https://server.bbkr.space/artifactory/libs-release")
maven(url = "https://maven.extracraftx.com")
2019-03-20 23:39:34 +01:00
}
tasks.named<ProcessResources>("processResources") {
filesMatching("fabric.mod.json") {
filter<ReplaceTokens>("tokens" to mapOf(
"version" to project.property("version"),
"description" to project.property("description")
))
}
2019-03-20 23:39:34 +01:00
}
dependencies {
// transitive = false because Guava is conflicting on runClient
2021-04-09 19:26:26 +02:00
implementation("us.myles:viaversion:3.3.0-21w14a") { isTransitive = false }
include("us.myles:viaversion:3.3.0-21w14a")
2020-11-14 21:07:23 +01:00
implementation("org.yaml:snakeyaml:1.26")
include("org.yaml:snakeyaml:1.26")
2019-03-20 23:39:34 +01:00
2020-04-14 17:39:09 +02:00
// Use 1.16 snapshot, probably intermediary will make it work on further versions
2020-06-23 17:45:22 +02:00
// https://modmuss50.me/fabric.html?&version=1.16
2021-04-09 20:14:10 +02:00
minecraft("com.mojang:minecraft:21w14a")
mappings("net.fabricmc:yarn:21w14a+build.10:v2")
modImplementation("net.fabricmc:fabric-loader:0.11.2")
2019-03-20 23:39:34 +01:00
2021-04-09 20:14:10 +02:00
modImplementation("net.fabricmc.fabric-api:fabric-api:0.32.7+1.17")
modImplementation("io.github.prospector:modmenu:1.14.5+build.30")
2021-04-09 20:39:21 +02:00
//modImplementation("io.github.cottonmc:cotton-client-commands:1.0.1+1.16-rc1")
//include("io.github.cottonmc:cotton-client-commands:1.0.1+1.16-rc1")
2019-03-20 23:39:34 +01:00
}
if (!System.getenv()["curse_api_key"].isNullOrBlank() && branch.startsWith("mc-")) {
defaultTasks("clean", "build", "curseforge")
} else {
defaultTasks("clean", "build")
}
2021-04-09 22:11:29 +02:00
fun cfJavaVersions() : List<String> {
val ver = mutableListOf("Java 8")
if (branch != "mc-1.8") {
ver.add("Java 9")
ver.add("Java 10")
}
return ver
}
fun cfMcVersions() : List<String> {
return when (branch) {
"mc-1.8" -> listOf("1.8.9")
"mc-1.14" -> listOf("1.14.4")
"mc-1.15" -> listOf("1.15.2")
"mc-1.16" -> listOf("1.16.4", "1.16.5")
"mc-1.17" -> listOf("1.17")
else -> emptyList()
}
}
fun fabricApiId() : String {
return if (branch == "mc-1.8") {
"legacy-fabric-api"
} else {
"fabric-api"
}
}
2020-08-05 12:51:08 +02:00
curseforge {
2020-08-05 13:29:03 +02:00
apiKey = System.getenv()["curse_api_key"] ?: "undefined"
2020-08-05 12:51:08 +02:00
project(closureOf<com.matthewprenger.cursegradle.CurseProject> {
id = "391298"
changelog = "A changelog can be found at https://github.com/ViaVersion/ViaFabric/commits"
releaseType = "alpha"
2021-04-09 22:11:29 +02:00
addGameVersion("Fabric")
(cfMcVersions() + cfJavaVersions()).forEach {
2021-01-03 21:21:58 +01:00
addGameVersion(it)
2020-08-05 12:51:08 +02:00
}
2021-04-09 22:11:29 +02:00
mainArtifact(file("${project.buildDir}/libs/${project.base.archivesBaseName}-${project.version}.jar"),
closureOf<com.matthewprenger.cursegradle.CurseArtifact> {
2020-08-05 12:51:08 +02:00
relations(closureOf<com.matthewprenger.cursegradle.CurseRelation> {
2021-04-09 22:11:29 +02:00
requiredDependency(fabricApiId())
if (branch == "mc-1.14" || branch == "mc-1.15") {
2020-08-05 13:26:16 +02:00
embeddedLibrary("cotton-client-commands")
2020-08-05 12:51:08 +02:00
}
})
displayName = "[$branch] ViaFabric ${project.version}"
})
afterEvaluate {
uploadTask.dependsOn("remapJar")
}
})
options(closureOf<com.matthewprenger.cursegradle.Options> {
forgeGradleIntegration = false
})
}
2019-03-20 23:39:34 +01:00
minecraft {
accessWidener("src/main/resources/viafabric.accesswidener")
2019-05-27 19:46:26 +02:00
}
2019-11-13 00:07:33 +01:00
tasks.jar {
from("LICENSE")
}
2021-01-03 21:21:58 +01:00
tasks.withType<JavaCompile> {
// ensure that the encoding is set to UTF-8, no matter what the system default is
// this fixes some edge cases with special characters not displaying correctly
// see http://yodaconditions.net/blog/fix-for-java-file-encoding-problems-with-gradle.html
// If Javadoc is generated, this must be specified in that task too.
options.encoding = "UTF-8"
}
2021-01-03 21:21:58 +01:00
java {
2021-03-19 20:23:08 +01:00
toolchain {
languageVersion.set(JavaLanguageVersion.of(8))
}
2021-01-03 21:21:58 +01:00
withSourcesJar()
}
// configure the maven publication
publishing {
publications {
create<MavenPublication>("maven") {
// add all the jars that should be included when publishing to maven
artifact(tasks.getByName("remapJar")) {
builtBy(tasks.getByName("remapJar"))
}
artifact(tasks.getByName("sourcesJar")) {
builtBy(tasks.getByName("remapSourcesJar"))
}
}
}
// select the repositories you want to publish to
repositories {
// uncomment to publish to the local maven
// mavenLocal()
}
2020-11-02 00:31:44 +01:00
}