--- a/gale-server/build.gradle.kts +++ b/gale-server/build.gradle.kts @@ -9,10 +_,11 @@ } val paperMavenPublicUrl = "https://repo.papermc.io/repository/maven-public/" +val leafMavenPublicUrl = "https://maven.leafmc.one/snapshots/" // Leaf - project setup - Add publish repo dependencies { mache("io.papermc:mache:1.21.4+build.8") - paperclip("io.papermc:paperclip:3.0.3") + paperclip("cn.dreeam:quantumleaper:1.0.0-SNAPSHOT") // Leaf - project setup - Use own paperclip fork testRuntimeOnly("org.junit.platform:junit-platform-launcher") } @@ -31,7 +_,30 @@ } } - activeFork = gale + // Leaf start - project setup + val leaf = forks.register("leaf") { + forks = gale + upstream.patchRepo("paperServer") { + upstreamRepo = gale.patchedRepo("paperServer") + patchesDir = rootDirectory.dir("leaf-server/paper-patches") + outputDir = rootDirectory.dir("paper-server") + } + upstream.patchDir("galeServer") { + upstreamPath = "gale-server" + excludes = setOf( + "src/minecraft", + "paper-patches", + "minecraft-patches", + "build.gradle.kts", + "build.gradle.kts.patch" + ) + patchesDir = rootDirectory.dir("leaf-server/gale-patches") + outputDir = rootDirectory.dir("gale-server") + } + } + + activeFork = leaf + // Leaf end - project setup // Gale end - project setup spigot { @@ -56,6 +_,7 @@ libraryRepositories.addAll( "https://repo.maven.apache.org/maven2/", paperMavenPublicUrl, + leafMavenPublicUrl // Leaf - project setup - Add publish repo ) } @@ -119,10 +_,14 @@ main { java { srcDir("../paper-server/src/main/java") } resources { srcDir("../paper-server/src/main/resources") } + java { srcDir("../gale-server/src/main/java") } // Leaf - project setup + resources { srcDir("../gale-server/src/main/resources") } // Leaf - project setup } test { java { srcDir("../paper-server/src/test/java") } resources { srcDir("../paper-server/src/test/resources") } + java { srcDir("../gale-server/src/test/java") } // Leaf - project setup + resources { srcDir("../gale-server/src/test/resources") } // Leaf - project setup } } @@ -147,10 +_,20 @@ } dependencies { - implementation(project(":gale-api")) // Gale - project setup - Depend on own API + implementation(project(":leaf-api")) // Gale - project setup - Depend on own API // Leaf - project setup + + // Leaf start - Libraries + implementation("com.github.thatsmusic99:ConfigurationMaster-API:v2.0.0-rc.3") { // Leaf config + exclude(group = "org.yaml", module = "snakeyaml") + } + implementation("com.github.luben:zstd-jni:1.5.7-1") // LinearPaper + implementation("org.lz4:lz4-java:1.8.0") // LinearPaper + implementation("com.github.ben-manes.caffeine:caffeine:3.2.0") + // Leaf end - Libraries + implementation("ca.spottedleaf:concurrentutil:0.0.3") - implementation("org.jline:jline-terminal-ffm:3.27.1") // use ffm on java 22+ - implementation("org.jline:jline-terminal-jni:3.27.1") // fall back to jni on java 21 + implementation("org.jline:jline-terminal-ffm:3.29.0") // use ffm on java 22+ // Leaf - Bump Dependencies + implementation("org.jline:jline-terminal-jni:3.29.0") // fall back to jni on java 21 // Leaf - Bump Dependencies implementation("net.minecrell:terminalconsoleappender:1.3.0") implementation("net.kyori:adventure-text-serializer-ansi:4.18.0") // Keep in sync with adventureVersion from Paper-API build file @@ -160,36 +_,53 @@ all its classes to check if they are plugins. Scanning takes about 1-2 seconds so adding this speeds up the server start. */ - implementation("org.apache.logging.log4j:log4j-core:2.19.0") - log4jPlugins.annotationProcessorConfigurationName("org.apache.logging.log4j:log4j-core:2.19.0") // Needed to generate meta for our Log4j plugins + // Leaf start - Bump Dependencies + implementation("org.apache.logging.log4j:log4j-core:2.24.3") + log4jPlugins.annotationProcessorConfigurationName("org.apache.logging.log4j:log4j-core:2.24.3") // Needed to generate meta for our Log4j plugins + // Leaf end - Bump Dependencies runtimeOnly(log4jPlugins.output) alsoShade(log4jPlugins.output) implementation("com.velocitypowered:velocity-native:3.4.0-SNAPSHOT") { isTransitive = false } - implementation("io.netty:netty-codec-haproxy:4.1.115.Final") // Add support for proxy protocol - implementation("org.apache.logging.log4j:log4j-iostreams:2.24.1") + // Leaf start - Bump Dependencies + implementation("io.netty:netty-codec-haproxy:4.1.119.Final") // Add support for proxy protocol + implementation("org.apache.logging.log4j:log4j-iostreams:2.24.3") + // Leaf end - Bump Dependencies implementation("org.ow2.asm:asm-commons:9.7.1") implementation("org.spongepowered:configurate-yaml:4.2.0-20250225.064233-199") implementation("org.spongepowered:configurate-core:4.2.0-20250225.064233-204") // Pinned dependency of above pinned yaml snapshot. implementation("commons-lang:commons-lang:2.6") - runtimeOnly("org.xerial:sqlite-jdbc:3.47.0.0") - runtimeOnly("com.mysql:mysql-connector-j:9.1.0") - runtimeOnly("com.lmax:disruptor:3.4.4") - - runtimeOnly("org.apache.maven:maven-resolver-provider:3.9.6") - runtimeOnly("org.apache.maven.resolver:maven-resolver-connector-basic:1.9.18") - runtimeOnly("org.apache.maven.resolver:maven-resolver-transport-http:1.9.18") - - testImplementation("io.github.classgraph:classgraph:4.8.47") // For mob goal test - testImplementation("org.junit.jupiter:junit-jupiter:5.10.2") - testImplementation("org.junit.platform:junit-platform-suite-engine:1.10.0") - testImplementation("org.hamcrest:hamcrest:2.2") - testImplementation("org.mockito:mockito-core:5.14.1") - mockitoAgent("org.mockito:mockito-core:5.14.1") { isTransitive = false } // Configure mockito agent that is needed in newer java versions + runtimeOnly("org.xerial:sqlite-jdbc:3.49.1.0") // Leaf - Bump Dependencies + runtimeOnly("com.mysql:mysql-connector-j:9.2.0") { + exclude("com.google.protobuf", "protobuf-java") // Leaf - Exclude outdated protobuf version + } + runtimeOnly("com.google.protobuf:protobuf-java:4.30.1") + // Leaf start - Bump Dependencies + runtimeOnly("com.lmax:disruptor:3.4.4") // Dreeam TODO - Waiting Log4j 3.x to support disruptor 4.0.0 + + runtimeOnly("org.apache.maven:maven-resolver-provider:3.9.9") + runtimeOnly("org.apache.maven.resolver:maven-resolver-connector-basic:1.9.22") // Dreeam TODO - Update to 2.0.1 + runtimeOnly("org.apache.maven.resolver:maven-resolver-transport-http:1.9.22") // Dreeam TODO - Update to 2.0.1 + // Leaf end - Bump Dependencies + + // Purpur start + implementation("org.mozilla:rhino-runtime:1.7.15") + implementation("org.mozilla:rhino-engine:1.7.15") + implementation("dev.omega24:upnp4j:1.0") + // Purpur end + + // Leaf start - Bump Dependencies + testImplementation("io.github.classgraph:classgraph:4.8.179") // For mob goal test + testImplementation("org.junit.jupiter:junit-jupiter:5.12.1") + testImplementation("org.junit.platform:junit-platform-suite-engine:1.12.1") + testImplementation("org.hamcrest:hamcrest:3.0") + testImplementation("org.mockito:mockito-core:5.16.1") + mockitoAgent("org.mockito:mockito-core:5.16.1") { isTransitive = false } // Configure mockito agent that is needed in newer java versions testImplementation("org.ow2.asm:asm-tree:9.7.1") - testImplementation("org.junit-pioneer:junit-pioneer:2.2.0") // CartesianTest + testImplementation("org.junit-pioneer:junit-pioneer:2.3.0") // CartesianTest + // Leaf end - Bump Dependencies implementation("net.neoforged:srgutils:1.0.9") // Mappings handling implementation("net.neoforged:AutoRenamingTool:2.0.3") // Remap plugins @@ -200,9 +_,13 @@ implementation("io.papermc:reflection-rewriter-runtime:$reflectionRewriterVersion") implementation("io.papermc:reflection-rewriter-proxy-generator:$reflectionRewriterVersion") + // Leaf start - Bump Dependencies // Spark - implementation("me.lucko:spark-api:0.1-20240720.200737-2") - implementation("me.lucko:spark-paper:1.10.119-20241121.092015-1") + implementation("me.lucko:spark-api:0.1-dev-f0b5206-SNAPSHOT") + implementation("me.lucko:spark-paper:1.10-dev-f0b5206-SNAPSHOT") + + implementation("io.netty:netty-all:4.1.119.Final") // Dreeam TODO - Update to 4.2.0 + // Leaf end - Bump Dependencies } // Gale start - hide irrelevant compilation warnings @@ -227,14 +_,14 @@ val gitBranch = git.exec(providers, "rev-parse", "--abbrev-ref", "HEAD").get().trim() attributes( "Main-Class" to "org.bukkit.craftbukkit.Main", - "Implementation-Title" to "Gale", // Gale - branding changes + "Implementation-Title" to "Leaf", // Gale - branding changes // Leaf - Rebrand "Implementation-Version" to implementationVersion, "Implementation-Vendor" to date, - "Specification-Title" to "Gale", // Gale - branding changes + "Specification-Title" to "Leaf", // Gale - branding changes // Leaf - Rebrand "Specification-Version" to project.version, - "Specification-Vendor" to "GaleMC Team", // Gale - branding changes - "Brand-Id" to "galemc:gale", // Gale - branding changes - "Brand-Name" to "Gale", // Gale - branding changes + "Specification-Vendor" to "Winds Studio", // Gale - branding changes // Leaf - Rebrand + "Brand-Id" to "winds-studio:leaf", // Gale - branding changes // Leaf - Rebrand + "Brand-Name" to "Leaf", // Gale - branding changes // Leaf - Rebrand "Build-Number" to (build ?: ""), "Build-Time" to buildTime.toString(), "Git-Branch" to gitBranch,