mirror of
https://github.com/GeyserMC/Geyser.git
synced 2024-11-27 01:06:39 +01:00
97fc2de42f
* Initial work on Forge platform * Rework modded platforms to use a common module * Add support for integrated worlds on modded platforms * Fix classload errors and move mixins to shared module * Fix Fabric mixins and check min height in mod world manager * Add Forge command support * Add back modrinth publishing * Don't apply application plugin to shared mod sources * Fix docs * Delete unused class * Clean up repositories * - Update to 1.20.2 - set custom refmap name - fixed console commands crashing the server (hasPermission now accepts CommandSourceStack instead of Player) - Forge wants fastutil relocated, so be it Current issues: - ClassNotFound exceptions with classes that are clearly present * - Fix ClassNotFound errors on Forge due to weird Classloader - Dont relocate gson * merge upstream * oh no * Bump lombok, architectury-loom * init: neoforge 1.20.4 support * NeoForge builds Signed-off-by: Joshua Castle <26531652+Kas-tle@users.noreply.github.com> * Archive neoforge artifacts * transformForge -> transformNeoForge * Neoforge boots! * Fix mixins on neoforge * Update build/pr file names * Update mods.toml to new neoforge standard * Fix refmap naming * more fixes - no need to include gson - cleanup nullable/nonnull annotations - add more info to geyser dumps on neoforge * yeet platform executor * yet another temp branch to figure out the runServer task * yeet transitive dependency, that cant be right * Attempt at getting the runServer task to work, part two * Revert the changes for the runServer task, try and shut down the injector * Remove spigot weird bug workaround, shut down properly Also add a compileOnly dependency for the mod module to get rid of spammy false warnings * Update to latest restart changes - fix duplicate nodes crashing neoforge - connector -> geyser in GeyserModCommandExecutor - create command manager early to fix issues with permission gather event * Consistent NeoForge spelling, move some dependencies to the version toml * Add lombok to version catalogue * Add plugins to version catalogue * revert move to buildSrc * Create `assets/geyser/icon.png` to reference icon from a single file on standalone/neoforge/fabric * add fabric permissions api to libs.versions.toml --------- Signed-off-by: Joshua Castle <26531652+Kas-tle@users.noreply.github.com> Co-authored-by: onebeastchris <github@onechris.mozmail.com> Co-authored-by: Joshua Castle <26531652+Kas-tle@users.noreply.github.com>
134 lines
4.1 KiB
Text
134 lines
4.1 KiB
Text
import net.kyori.blossom.BlossomExtension
|
|
|
|
plugins {
|
|
alias(libs.plugins.blossom)
|
|
id("geyser.publish-conventions")
|
|
}
|
|
|
|
dependencies {
|
|
api(projects.common)
|
|
api(projects.api)
|
|
|
|
// Jackson JSON and YAML serialization
|
|
api(libs.bundles.jackson)
|
|
api(libs.guava)
|
|
|
|
// Fastutil Maps
|
|
implementation(libs.bundles.fastutil)
|
|
|
|
// Network libraries
|
|
implementation(libs.websocket)
|
|
|
|
api(libs.bundles.protocol)
|
|
implementation(libs.blockstateupdater)
|
|
|
|
api(libs.mcauthlib)
|
|
api(libs.mcprotocollib) {
|
|
exclude("io.netty", "netty-all")
|
|
exclude("com.github.GeyserMC", "packetlib")
|
|
exclude("com.github.GeyserMC", "mcauthlib")
|
|
}
|
|
|
|
implementation(libs.raknet) {
|
|
exclude("io.netty", "*")
|
|
}
|
|
|
|
implementation(libs.netty.resolver.dns)
|
|
implementation(libs.netty.resolver.dns.native.macos) { artifact { classifier = "osx-x86_64" } }
|
|
implementation(libs.netty.codec.haproxy)
|
|
|
|
// Network dependencies we are updating ourselves
|
|
api(libs.netty.handler)
|
|
|
|
implementation(libs.netty.transport.native.epoll) { artifact { classifier = "linux-x86_64" } }
|
|
implementation(libs.netty.transport.native.epoll) { artifact { classifier = "linux-aarch_64" } }
|
|
implementation(libs.netty.transport.native.kqueue) { artifact { classifier = "osx-x86_64" } }
|
|
|
|
// Adventure text serialization
|
|
api(libs.bundles.adventure)
|
|
|
|
api(libs.erosion.common) {
|
|
isTransitive = false
|
|
}
|
|
|
|
// Test
|
|
testImplementation(libs.junit)
|
|
|
|
// Annotation Processors
|
|
compileOnly(projects.ap)
|
|
|
|
annotationProcessor(projects.ap)
|
|
|
|
api(libs.events)
|
|
}
|
|
|
|
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")
|
|
}
|
|
|
|
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
|
|
)
|
|
}
|
|
}
|
|
|
|
configure<BlossomExtension> {
|
|
val mainFile = "src/main/java/org/geysermc/geyser/GeyserImpl.java"
|
|
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)
|
|
}
|
|
|
|
fun Project.buildNumber(): Int =
|
|
(System.getenv("GITHUB_RUN_NUMBER") ?: jenkinsBuildNumber())?.let { Integer.parseInt(it) } ?: -1
|
|
|
|
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") ?: ""
|
|
}
|
|
}
|
|
|
|
// todo remove this when we're not using Jenkins anymore
|
|
fun jenkinsBuildNumber(): String? = System.getenv("BUILD_NUMBER")
|