2021-02-19 01:33:32 +01:00
|
|
|
import com.github.jengelman.gradle.plugins.shadow.tasks.ShadowJar
|
2023-08-10 13:29:03 +02:00
|
|
|
import io.papermc.hangarpublishplugin.model.Platforms
|
2021-02-19 01:33:32 +01:00
|
|
|
|
2021-05-25 06:58:34 +02:00
|
|
|
plugins {
|
|
|
|
id("com.github.johnrengelman.shadow")
|
2023-08-26 12:04:06 +02:00
|
|
|
id("io.papermc.hangar-publish-plugin") version "0.1.0"
|
2023-08-10 13:29:03 +02:00
|
|
|
id("com.modrinth.minotaur") version "2.+"
|
2021-05-25 06:58:34 +02:00
|
|
|
}
|
|
|
|
|
2021-05-25 09:44:57 +02:00
|
|
|
val platforms = setOf(
|
|
|
|
rootProject.projects.viaversionBukkit,
|
|
|
|
rootProject.projects.viaversionBungee,
|
|
|
|
rootProject.projects.viaversionFabric,
|
|
|
|
rootProject.projects.viaversionSponge,
|
|
|
|
rootProject.projects.viaversionVelocity
|
|
|
|
).map { it.dependencyProject }
|
|
|
|
|
2021-02-18 06:32:43 +01:00
|
|
|
tasks {
|
2021-05-25 06:58:34 +02:00
|
|
|
shadowJar {
|
2021-02-19 01:33:32 +01:00
|
|
|
archiveClassifier.set("")
|
2021-02-18 11:31:45 +01:00
|
|
|
archiveFileName.set("ViaVersion-${project.version}.jar")
|
2021-02-18 06:32:43 +01:00
|
|
|
destinationDirectory.set(rootProject.projectDir.resolve("build/libs"))
|
|
|
|
duplicatesStrategy = DuplicatesStrategy.EXCLUDE
|
2021-05-25 09:44:57 +02:00
|
|
|
platforms.forEach { platform ->
|
|
|
|
val shadowJarTask = platform.tasks.named<ShadowJar>("shadowJar").forUseAtConfigurationTime().get()
|
2021-02-18 06:32:43 +01:00
|
|
|
dependsOn(shadowJarTask)
|
2021-05-25 09:44:57 +02:00
|
|
|
dependsOn(platform.tasks.withType<Jar>())
|
2021-04-14 14:16:48 +02:00
|
|
|
from(zipTree(shadowJarTask.archiveFile))
|
2021-02-18 06:32:43 +01:00
|
|
|
}
|
|
|
|
}
|
|
|
|
build {
|
2021-05-25 06:58:34 +02:00
|
|
|
dependsOn(shadowJar)
|
2021-02-19 01:33:32 +01:00
|
|
|
}
|
2021-05-25 09:44:57 +02:00
|
|
|
sourcesJar {
|
|
|
|
rootProject.subprojects.forEach { subproject ->
|
|
|
|
if (subproject == project) return@forEach
|
|
|
|
val platformSourcesJarTask = subproject.tasks.findByName("sourcesJar") as? Jar ?: return@forEach
|
|
|
|
dependsOn(platformSourcesJarTask)
|
|
|
|
from(zipTree(platformSourcesJarTask.archiveFile))
|
|
|
|
}
|
|
|
|
}
|
2021-02-18 06:32:43 +01:00
|
|
|
}
|
2021-05-25 06:58:34 +02:00
|
|
|
|
|
|
|
publishShadowJar()
|
2023-08-10 13:29:03 +02:00
|
|
|
|
|
|
|
val branch = rootProject.branchName()
|
2023-08-11 04:28:38 +02:00
|
|
|
val baseVersion = project.version as String
|
|
|
|
val isRelease = !baseVersion.contains('-')
|
|
|
|
val suffixedVersion = if (isRelease) baseVersion else baseVersion + "+" + System.getenv("GITHUB_RUN_NUMBER")
|
|
|
|
val changelogContent = if (isRelease) {
|
|
|
|
"See [GitHub](https://github.com/ViaVersion/ViaVersion) for release notes."
|
|
|
|
} else {
|
2023-08-11 08:24:27 +02:00
|
|
|
val commitHash = rootProject.latestCommitHash()
|
|
|
|
"[$commitHash](https://github.com/ViaVersion/ViaVersion/commit/$commitHash) ${rootProject.latestCommitMessage()}"
|
2023-08-11 04:28:38 +02:00
|
|
|
}
|
2023-08-10 16:39:45 +02:00
|
|
|
val isMainBranch = branch == "master"
|
2023-08-10 13:29:03 +02:00
|
|
|
modrinth {
|
|
|
|
val mcVersions: List<String> = (property("mcVersions") as String)
|
|
|
|
.split(",")
|
|
|
|
.map { it.trim() }
|
2023-08-10 14:11:14 +02:00
|
|
|
token.set(System.getenv("MODRINTH_TOKEN"))
|
2023-08-10 13:29:03 +02:00
|
|
|
projectId.set("viaversion")
|
2023-08-11 04:28:38 +02:00
|
|
|
versionType.set(if (isRelease) "release" else if (isMainBranch) "beta" else "alpha")
|
|
|
|
versionNumber.set(suffixedVersion)
|
|
|
|
versionName.set(suffixedVersion)
|
2023-08-10 13:29:03 +02:00
|
|
|
changelog.set(changelogContent)
|
|
|
|
uploadFile.set(tasks.shadowJar.flatMap { it.archiveFile })
|
|
|
|
gameVersions.set(mcVersions)
|
|
|
|
loaders.add("fabric")
|
2023-08-11 04:28:38 +02:00
|
|
|
loaders.add("paper")
|
|
|
|
loaders.add("folia")
|
|
|
|
loaders.add("velocity")
|
|
|
|
loaders.add("bungeecord")
|
|
|
|
loaders.add("sponge")
|
2023-08-10 13:29:03 +02:00
|
|
|
autoAddDependsOn.set(false)
|
|
|
|
detectLoaders.set(false)
|
|
|
|
dependencies {
|
|
|
|
optional.project("viafabric")
|
|
|
|
optional.project("viafabricplus")
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2023-08-11 12:33:47 +02:00
|
|
|
hangarPublish {
|
|
|
|
publications.register("plugin") {
|
|
|
|
version.set(suffixedVersion)
|
2023-08-26 12:04:06 +02:00
|
|
|
id.set("ViaVersion")
|
2023-08-11 12:33:47 +02:00
|
|
|
channel.set(if (isRelease) "Release" else if (isMainBranch) "Snapshot" else "Alpha")
|
|
|
|
changelog.set(changelogContent)
|
|
|
|
apiKey.set(System.getenv("HANGAR_TOKEN"))
|
|
|
|
platforms {
|
|
|
|
register(Platforms.PAPER) {
|
|
|
|
jar.set(tasks.shadowJar.flatMap { it.archiveFile })
|
|
|
|
platformVersions.set(listOf(property("mcVersionRange") as String))
|
|
|
|
}
|
|
|
|
register(Platforms.VELOCITY) {
|
|
|
|
jar.set(tasks.shadowJar.flatMap { it.archiveFile })
|
|
|
|
platformVersions.set(listOf(property("velocityVersion") as String))
|
|
|
|
}
|
|
|
|
register(Platforms.WATERFALL) {
|
|
|
|
jar.set(tasks.shadowJar.flatMap { it.archiveFile })
|
|
|
|
platformVersions.set(listOf(property("waterfallVersion") as String))
|
2023-08-10 13:29:03 +02:00
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|