2022-02-27 23:38:55 +01:00
|
|
|
import net.kyori.blossom.BlossomExtension
|
|
|
|
|
|
|
|
plugins {
|
|
|
|
id("net.kyori.blossom")
|
2022-02-28 05:43:06 +01:00
|
|
|
id("net.kyori.indra.git")
|
2022-04-24 20:35:49 +02:00
|
|
|
id("geyser.publish-conventions")
|
2022-02-27 23:38:55 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
dependencies {
|
|
|
|
api(projects.geyserApi)
|
|
|
|
api(projects.common)
|
|
|
|
|
|
|
|
// Jackson JSON and YAML serialization
|
|
|
|
api("com.fasterxml.jackson.core", "jackson-annotations", Versions.jacksonVersion)
|
2022-04-08 01:22:46 +02:00
|
|
|
api("com.fasterxml.jackson.core", "jackson-databind", Versions.jacksonVersion + ".1") // Extra .1 as databind is a slightly different version
|
2022-02-27 23:38:55 +01:00
|
|
|
api("com.fasterxml.jackson.dataformat", "jackson-dataformat-yaml", Versions.jacksonVersion)
|
|
|
|
api("com.google.guava", "guava", Versions.guavaVersion)
|
|
|
|
|
|
|
|
api("com.nukkitx", "nbt", Versions.nbtVersion)
|
|
|
|
|
|
|
|
// Fastutil Maps
|
|
|
|
implementation("com.nukkitx.fastutil", "fastutil-int-int-maps", Versions.fastutilVersion)
|
|
|
|
implementation("com.nukkitx.fastutil", "fastutil-int-long-maps", Versions.fastutilVersion)
|
|
|
|
implementation("com.nukkitx.fastutil", "fastutil-int-byte-maps", Versions.fastutilVersion)
|
|
|
|
implementation("com.nukkitx.fastutil", "fastutil-int-boolean-maps", Versions.fastutilVersion)
|
|
|
|
implementation("com.nukkitx.fastutil", "fastutil-object-int-maps", Versions.fastutilVersion)
|
|
|
|
implementation("com.nukkitx.fastutil", "fastutil-object-object-maps", Versions.fastutilVersion)
|
|
|
|
|
|
|
|
// Network libraries
|
|
|
|
implementation("org.java-websocket", "Java-WebSocket", Versions.websocketVersion)
|
|
|
|
|
2022-09-17 22:37:30 +02:00
|
|
|
api("com.github.CloudburstMC.Protocol", "bedrock-v554", Versions.protocolVersion) {
|
2022-02-27 23:38:55 +01:00
|
|
|
exclude("com.nukkitx.network", "raknet")
|
|
|
|
}
|
|
|
|
|
2022-03-20 02:46:30 +01:00
|
|
|
api("com.github.GeyserMC", "MCAuthLib", Versions.mcauthlibVersion)
|
2022-02-27 23:38:55 +01:00
|
|
|
api("com.github.GeyserMC", "MCProtocolLib", Versions.mcprotocollibversion) {
|
2022-09-20 20:25:39 +02:00
|
|
|
exclude("io.netty", "netty-all")
|
2022-03-20 02:46:30 +01:00
|
|
|
exclude("com.github.GeyserMC", "packetlib")
|
|
|
|
exclude("com.github.GeyserMC", "mcauthlib")
|
2022-02-27 23:38:55 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
api("com.github.steveice10", "packetlib", Versions.packetlibVersion) {
|
|
|
|
exclude("io.netty", "netty-all")
|
|
|
|
}
|
|
|
|
|
|
|
|
implementation("com.nukkitx.network", "raknet", Versions.raknetVersion) {
|
|
|
|
exclude("io.netty", "*");
|
|
|
|
}
|
|
|
|
|
|
|
|
implementation("io.netty", "netty-resolver-dns", Versions.nettyVersion)
|
|
|
|
implementation("io.netty", "netty-resolver-dns-native-macos", Versions.nettyVersion, null, "osx-x86_64")
|
|
|
|
implementation("io.netty", "netty-codec-haproxy", Versions.nettyVersion)
|
|
|
|
|
|
|
|
// Network dependencies we are updating ourselves
|
|
|
|
api("io.netty", "netty-handler", Versions.nettyVersion)
|
|
|
|
|
|
|
|
implementation("io.netty", "netty-transport-native-epoll", Versions.nettyVersion, null, "linux-x86_64")
|
|
|
|
implementation("io.netty", "netty-transport-native-epoll", Versions.nettyVersion, null, "linux-aarch_64")
|
|
|
|
implementation("io.netty", "netty-transport-native-kqueue", Versions.nettyVersion, null, "osx-x86_64")
|
|
|
|
|
|
|
|
// Adventure text serialization
|
2022-09-18 21:11:18 +02:00
|
|
|
implementation("net.kyori", "adventure-text-serializer-gson", Versions.adventureVersion) // Remove when we remove our Adventure bump
|
2022-02-27 23:38:55 +01:00
|
|
|
implementation("net.kyori", "adventure-text-serializer-legacy", Versions.adventureVersion)
|
|
|
|
implementation("net.kyori", "adventure-text-serializer-plain", Versions.adventureVersion)
|
|
|
|
|
|
|
|
// Test
|
|
|
|
testImplementation("junit", "junit", Versions.junitVersion)
|
|
|
|
|
|
|
|
// Annotation Processors
|
2022-03-20 03:13:37 +01:00
|
|
|
compileOnly(projects.ap)
|
2022-02-28 00:26:50 +01:00
|
|
|
|
2022-02-27 23:38:55 +01:00
|
|
|
annotationProcessor(projects.ap)
|
|
|
|
}
|
|
|
|
|
2022-09-18 21:11:18 +02:00
|
|
|
configurations.api {
|
|
|
|
// This is still experimental - additionally, it could only really benefit standalone
|
|
|
|
exclude(group = "io.netty.incubator", module = "netty-incubator-transport-native-io_uring")
|
|
|
|
}
|
|
|
|
|
2022-09-19 17:22:09 +02:00
|
|
|
tasks.processResources {
|
|
|
|
// This is solely for backwards compatibility for other programs that used this file before the switch to gradle.
|
|
|
|
// It used to be generated by the maven Git-Commit-Id-Plugin
|
|
|
|
filesMatching("git.properties") {
|
|
|
|
val info = GitInfo()
|
|
|
|
expand(
|
|
|
|
"branch" to info.branch,
|
|
|
|
"buildNumber" to info.buildNumber,
|
|
|
|
"projectVersion" to project.version,
|
|
|
|
"commit" to info.commit,
|
|
|
|
"commitAbbrev" to info.commitAbbrev,
|
|
|
|
"commitMessage" to info.commitMessage,
|
|
|
|
"repository" to info.repository
|
|
|
|
)
|
|
|
|
}
|
|
|
|
}
|
2022-02-28 05:43:06 +01:00
|
|
|
|
2022-09-19 17:22:09 +02:00
|
|
|
configure<BlossomExtension> {
|
2022-02-27 23:38:55 +01:00
|
|
|
val mainFile = "src/main/java/org/geysermc/geyser/GeyserImpl.java"
|
2022-09-19 17:22:09 +02:00
|
|
|
val info = GitInfo()
|
|
|
|
|
|
|
|
replaceToken("\${version}", "${project.version} (${info.gitVersion})", mainFile)
|
|
|
|
replaceToken("\${gitVersion}", info.gitVersion, mainFile)
|
|
|
|
replaceToken("\${buildNumber}", info.buildNumber, mainFile)
|
|
|
|
replaceToken("\${branch}", info.branch, mainFile)
|
|
|
|
replaceToken("\${commit}", info.commit, mainFile)
|
|
|
|
replaceToken("\${repository}", info.repository, mainFile)
|
2022-02-28 06:01:24 +01:00
|
|
|
}
|
|
|
|
|
2022-02-28 06:11:27 +01:00
|
|
|
fun Project.buildNumber(): Int =
|
2022-09-19 17:26:47 +02:00
|
|
|
System.getenv("BUILD_NUMBER")?.let { Integer.parseInt(it) } ?: -1
|
2022-09-19 17:22:09 +02:00
|
|
|
|
|
|
|
inner class GitInfo {
|
|
|
|
val branch: String
|
|
|
|
val commit: String
|
|
|
|
val commitAbbrev: String
|
|
|
|
|
|
|
|
val gitVersion: String
|
|
|
|
val version: String
|
|
|
|
val buildNumber: Int
|
|
|
|
|
|
|
|
val commitMessage: String
|
|
|
|
val repository: String
|
|
|
|
|
|
|
|
init {
|
|
|
|
// On Jenkins, a detached head is checked out, so indra cannot determine the branch.
|
|
|
|
// Fortunately, this environment variable is available.
|
|
|
|
branch = indraGit.branchName() ?: System.getenv("BRANCH_NAME") ?: "DEV"
|
|
|
|
|
|
|
|
val commit = indraGit.commit()
|
|
|
|
this.commit = commit?.name ?: "0".repeat(40)
|
|
|
|
commitAbbrev = commit?.name?.substring(0, 7) ?: "0".repeat(7)
|
|
|
|
|
|
|
|
gitVersion = "git-${branch}-${commitAbbrev}"
|
|
|
|
version = "${project.version} ($gitVersion)"
|
|
|
|
buildNumber = buildNumber()
|
|
|
|
|
|
|
|
val git = indraGit.git()
|
|
|
|
commitMessage = git?.commit()?.message ?: ""
|
|
|
|
repository = git?.repository?.config?.getString("remote", "origin", "url") ?: ""
|
|
|
|
}
|
|
|
|
}
|