From bc26952723082be4006c9cdab33f4de455736a40 Mon Sep 17 00:00:00 2001 From: onebeastchris Date: Wed, 19 Nov 2025 14:18:01 +0100 Subject: [PATCH] Fix: Configurate conflicts on Geyser-Fabric / Geyser-NeoForge --- bootstrap/mod/fabric/build.gradle.kts | 10 ++++++++++ bootstrap/mod/neoforge/build.gradle.kts | 10 +++++++++- gradle/libs.versions.toml | 2 ++ 3 files changed, 21 insertions(+), 1 deletion(-) diff --git a/bootstrap/mod/fabric/build.gradle.kts b/bootstrap/mod/fabric/build.gradle.kts index ddf492e93..17192e1db 100644 --- a/bootstrap/mod/fabric/build.gradle.kts +++ b/bootstrap/mod/fabric/build.gradle.kts @@ -25,6 +25,11 @@ dependencies { shadowBundle(libs.raknet) shadowBundle(libs.mcprotocollib) + // Shade + relocate configurate as we're using a fork + shadowBundle(libs.configurate.`interface`) + shadowBundle(libs.configurate.yaml) + shadowBundle(libs.configurate.core) + // Since we also relocate cloudburst protocol: shade erosion common shadowBundle(libs.erosion.common) @@ -43,6 +48,7 @@ tasks.withType { relocate("org.cloudburstmc.netty") relocate("org.cloudburstmc.protocol") +relocate("org.spongepowered.configurate") tasks { remapJar { @@ -52,6 +58,10 @@ tasks { remapModrinthJar { archiveBaseName.set("geyser-fabric") } + + shadowJar { + mergeServiceFiles() + } } modrinth { diff --git a/bootstrap/mod/neoforge/build.gradle.kts b/bootstrap/mod/neoforge/build.gradle.kts index 0c7fa3765..dc2d96813 100644 --- a/bootstrap/mod/neoforge/build.gradle.kts +++ b/bootstrap/mod/neoforge/build.gradle.kts @@ -30,8 +30,10 @@ dependencies { // Let's shade in our own api shadowBundle(projects.api) - // this one is particularly dumb + // shade + relocate these to avoid conflicts shadowBundle(libs.configurate.`interface`) + shadowBundle(libs.configurate.yaml) + shadowBundle(libs.configurate.core) // cannot be shaded, since neoforge will complain if floodgate-neoforge tries to provide this include(projects.common) @@ -43,6 +45,8 @@ dependencies { include(libs.cloud.neoforge) } +relocate("org.spongepowered.configurate") + tasks.withType { manifest.attributes["Main-Class"] = "org.geysermc.geyser.platform.neoforge.GeyserNeoForgeMain" } @@ -55,6 +59,10 @@ tasks { remapModrinthJar { archiveBaseName.set("geyser-neoforge") } + + shadowJar { + mergeServiceFiles() + } } modrinth { diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index aff6c0967..f95fd6f73 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -3,6 +3,7 @@ base-api = "1.0.2" bstats = "3.1.0" cumulus = "1.1.2" configurate = "4.2.0-GeyserMC-20251111.004649-11" +configurate-core = "4.2.0-GeyserMC-20251111.004649-12" erosion = "1.1-20240521.000109-3" events = "1.1-SNAPSHOT" yaml = "2.2" @@ -68,6 +69,7 @@ erosion-common = { group = "org.geysermc.erosion", name = "common", version.ref yaml = { module = "org.yaml:snakeyaml", version.ref = "yaml" } +configurate-core = { module = "org.spongepowered:configurate-core", version.ref = "configurate-core" } configurate-interface-ap = { module = "org.spongepowered:configurate-extra-interface-ap", version.ref = "configurate" } configurate-interface = { module = "org.spongepowered:configurate-extra-interface", version.ref = "configurate" } configurate-yaml = { module = "org.spongepowered:configurate-yaml", version.ref = "configurate" }