From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: AlphaKR93 Date: Sun, 14 Jan 2024 19:51:19 +0900 Subject: [PATCH] Build System Changes diff --git a/build.gradle.kts b/build.gradle.kts index 624588207afdc52adae14e5de3d18fe1c330d832..a40dc8b2560b8cd124d961f3dfd5865efd2a3b9e 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -25,73 +25,35 @@ abstract class MockitoAgentProvider : CommandLineArgumentProvider { // Paper end - configure mockito agent that is needed in newer java versions dependencies { - implementation(project(":purpur-api")) // Pufferfish // Paper // Purpur - Rebrand - implementation("ca.spottedleaf:concurrentutil:0.0.2") // Paper - Add ConcurrentUtil dependency - // Paper start - 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("net.minecrell:terminalconsoleappender:1.3.0") - implementation("net.kyori:adventure-text-serializer-ansi:4.17.0") // Keep in sync with adventureVersion from Paper-API build file - /* - Required to add the missing Log4j2Plugins.dat file from log4j-core - which has been removed by Mojang. Without it, log4j has to classload - 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") // Paper - implementation - log4jPlugins.annotationProcessorConfigurationName("org.apache.logging.log4j:log4j-core:2.19.0") // Paper - Needed to generate meta for our Log4j plugins - runtimeOnly(log4jPlugins.output) - alsoShade(log4jPlugins.output) - implementation("io.netty:netty-codec-haproxy:4.1.97.Final") // Paper - Add support for proxy protocol - // Paper end - implementation("org.apache.logging.log4j:log4j-iostreams:2.24.1") // Paper - remove exclusion - implementation("org.ow2.asm:asm-commons:9.7.1") - implementation("org.spongepowered:configurate-yaml:4.2.0-SNAPSHOT") // Paper - config files - 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") // Paper - // Paper start - Use Velocity cipher - implementation("com.velocitypowered:velocity-native:3.3.0-SNAPSHOT") { - isTransitive = false - } - // Paper end - Use Velocity cipher + implementation(project(":${rootProject.providers.gradleProperty("brandName").get().lowercase()}-api")) // Pufferfish // Paper // Purpur // Plazma - Fork-friendly Rebranding + // Plazma start - Use Gradle Version Catalogs + implementation(server.bundles.implementation) + implementation(common.adventure.serializer.ansi) + implementation(common.log4j.stream) - 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") + implementation(common.log4j) + log4jPlugins.annotationProcessorConfigurationName(common.log4j) + runtimeOnly(log4jPlugins.output) // diff on change + alsoShade(log4jPlugins.output) // diff on change - // Pufferfish start - implementation("org.yaml:snakeyaml:1.32") - implementation ("com.github.carleslc.Simple-YAML:Simple-Yaml:1.8.4") { // Purpur - Fix pufferfish issues - exclude(group="org.yaml", module="snakeyaml") - } - // Pufferfish end + runtimeOnly(server.bundles.runtime) + + implementation(common.bundles.asm) + implementation(common.commons.lang2) + implementation(server.velocity.native) { isTransitive = false } + + runtimeOnly(common.mvn) + runtimeOnly(common.bundles.mvn) - implementation("org.mozilla:rhino-runtime:1.7.14") // Purpur - Rebrand - implementation("org.mozilla:rhino-engine:1.7.14") // Purpur - Rebrand - implementation("dev.omega24:upnp4j:1.0") // Purpur - Rebrand + implementation(common.snakeyaml) + implementation(server.simpleyaml) { exclude(group="org.yaml", module="snakeyaml") } - testImplementation("io.github.classgraph:classgraph:4.8.47") // Paper - 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 } // Paper - 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") // Paper - CartesianTest - implementation("net.neoforged:srgutils:1.0.9") // Paper - mappings handling - implementation("net.neoforged:AutoRenamingTool:2.0.3") // Paper - remap plugins - // Paper start - Remap reflection - val reflectionRewriterVersion = "0.0.3" - implementation("io.papermc:reflection-rewriter:$reflectionRewriterVersion") - implementation("io.papermc:reflection-rewriter-runtime:$reflectionRewriterVersion") - implementation("io.papermc:reflection-rewriter-proxy-generator:$reflectionRewriterVersion") - // Paper end - Remap reflection - // Paper start - spark - implementation("me.lucko:spark-api:0.1-20240720.200737-2") - implementation("me.lucko:spark-paper:1.10.119-SNAPSHOT") - // Paper end - spark + testImplementation(server.classgraph) + testImplementation(common.bundles.test) + testImplementation(common.junit) + mockitoAgent(common.mockito) { isTransitive = false } + testImplementation(common.junit.pioneer) + // Plazma end - Use Gradle Version Catalogs } paperweight { @@ -119,14 +81,14 @@ tasks.jar { val gitBranch = git("rev-parse", "--abbrev-ref", "HEAD").getText().trim() // Paper attributes( "Main-Class" to "org.bukkit.craftbukkit.Main", - "Implementation-Title" to "Purpur", // Pufferfish // Purpur - Rebrand + "Implementation-Title" to rootProject.providers.gradleProperty("brandName").get(), // Pufferfish // Purpur - Rebrand // Plazma - Fork-friendly Rebranding "Implementation-Version" to implementationVersion, "Implementation-Vendor" to date, // Paper - "Specification-Title" to "Purpur", // Pufferfish // Purpur - Rebrand + "Specification-Title" to rootProject.providers.gradleProperty("brandName").get(), // Pufferfish // Purpur - Rebrand // Plazma - Fork-friendly Rebranding "Specification-Version" to project.version, - "Specification-Vendor" to "Purpur Team", // Pufferfish // Purpur - Rebrand - "Brand-Id" to "purpurmc:purpur", // Pufferfish // Purpur - Rebrand - "Brand-Name" to "Purpur", // Pufferfish // Purpur - Rebrand + "Specification-Vendor" to rootProject.providers.gradleProperty("providerName").get(), // Purpur - Rebrand // Plazma - Fork-friendly Rebranding + "Brand-Id" to rootProject.providers.gradleProperty("brandKey").get(), // Purpur - Rebrand // Plazma - Fork-friendly Rebranding + "Brand-Name" to rootProject.providers.gradleProperty("brandName").get(), // Pufferfish // Purpur - Rebrand // Plazma - Fork-friendly Rebranding "Build-Number" to (build ?: ""), "Build-Time" to Instant.now().toString(), "Git-Branch" to gitBranch, // Paper