diff --git a/divinemc-api/build.gradle.kts.patch b/divinemc-api/build.gradle.kts.patch index 0bcaf20..d6e6b80 100644 --- a/divinemc-api/build.gradle.kts.patch +++ b/divinemc-api/build.gradle.kts.patch @@ -1,8 +1,19 @@ --- a/purpur-api/build.gradle.kts +++ b/purpur-api/build.gradle.kts -@@ -41,9 +_,9 @@ - dependencies { +@@ -14,8 +_,8 @@ + val adventureVersion = "4.21.0-mc1215-SNAPSHOT" // FIXME move to release asap + val adventureJavadocVersion = "4.20.0" // Fixme remove me + val bungeeCordChatVersion = "1.21-R0.2-deprecated+build.21" +-val slf4jVersion = "2.0.16" +-val log4jVersion = "2.24.1" ++val slf4jVersion = "2.0.17" // DivineMC - Bump dependencies ++val log4jVersion = "2.24.3" // DivineMC - Bump dependencies + val apiAndDocs: Configuration by configurations.creating { + attributes { +@@ -42,9 +_,9 @@ + + dependencies { // api dependencies are listed transitively to API consumers - api("com.google.guava:guava:33.3.1-jre") - api("com.google.code.gson:gson:2.11.0") @@ -13,61 +24,63 @@ api("org.joml:joml:1.10.8") { isTransitive = false // https://github.com/JOML-CI/JOML/issues/352 } -@@ -54,6 +_,7 @@ +@@ -52,6 +_,7 @@ api("org.apache.logging.log4j:log4j-api:$log4jVersion") api("org.slf4j:slf4j-api:$slf4jVersion") api("com.mojang:brigadier:1.3.10") + api("io.sentry:sentry:8.4.0") // DivineMC - Pufferfish: Sentry // Deprecate bungeecord-chat in favor of adventure - api("net.md-5:bungeecord-chat:$bungeeCordChatVersion-deprecated+build.19") { -@@ -77,19 +_,21 @@ - compileOnly(annotations) - testCompileOnly(annotations) + api("net.md-5:bungeecord-chat:$bungeeCordChatVersion") { +@@ -68,9 +_,9 @@ + apiAndDocs("$adventureGroup:adventure-text-serializer-plain") + apiAndDocs("$adventureGroup:adventure-text-logger-slf4j") -- val checkerQual = "org.checkerframework:checker-qual:3.33.0" -+ val checkerQual = "org.checkerframework:checker-qual:3.49.1" // DivineMC - Bump dependencies - compileOnlyApi(checkerQual) - testCompileOnly(checkerQual) - - api("org.jspecify:jspecify:1.0.0") +- api("org.apache.maven:maven-resolver-provider:3.9.6") // make API dependency for Paper Plugins +- compileOnly("org.apache.maven.resolver:maven-resolver-connector-basic:1.9.18") +- compileOnly("org.apache.maven.resolver:maven-resolver-transport-http:1.9.18") ++ api("org.apache.maven:maven-resolver-provider:3.9.9") // make API dependency for Paper Plugins // DivineMC - Bump dependencies ++ compileOnly("org.apache.maven.resolver:maven-resolver-connector-basic:1.9.22") // DivineMC - Bump dependencies ++ compileOnly("org.apache.maven.resolver:maven-resolver-transport-http:1.9.22") // DivineMC - Bump dependencies + // Annotations - Slowly migrate to jspecify + val annotations = "org.jetbrains:annotations:$annotationsVersion" +@@ -86,11 +_,13 @@ // Test dependencies -- testImplementation("org.apache.commons:commons-lang3:3.12.0") -- testImplementation("org.junit.jupiter:junit-jupiter:5.10.2") + testImplementation("org.apache.commons:commons-lang3:3.17.0") + testImplementation("org.junit.jupiter:junit-jupiter:5.12.2") - testImplementation("org.hamcrest:hamcrest:2.2") - testImplementation("org.mockito:mockito-core:5.14.1") -+ // DivineMC start - Bump dependencies -+ testImplementation("org.apache.commons:commons-lang3:3.17.0") -+ testImplementation("org.junit.jupiter:junit-jupiter:5.12.1") -+ testImplementation("org.hamcrest:hamcrest:3.0") -+ testImplementation("org.mockito:mockito-core:5.16.1") -+ // DivineMC end - Bump dependencies - testImplementation("org.ow2.asm:asm-tree:9.7.1") ++ testImplementation("org.hamcrest:hamcrest:3.0") // DivineMC - Bump dependencies ++ testImplementation("org.mockito:mockito-core:5.16.1") // DivineMC - Bump dependencies + testImplementation("org.ow2.asm:asm-tree:9.8") - mockitoAgent("org.mockito:mockito-core:5.14.1") { isTransitive = false } // configure mockito agent that is needed in newer java versions + mockitoAgent("org.mockito:mockito-core:5.16.1") { isTransitive = false } // configure mockito agent that is needed in newer java versions // DivineMC - Bump dependencies testRuntimeOnly("org.junit.platform:junit-platform-launcher") ++ ++ compileOnly("org.apache.commons:commons-lang3:3.17.0") // DivineMC - Required for Bukkit } + val generatedDir: java.nio.file.Path = rootProject.layout.projectDirectory.dir("paper-api/src/generated/java").asFile.toPath() @@ -104,17 +_,21 @@ java { - srcDir(generatedApiPath) + srcDir(generatedDir) srcDir(file("../paper-api/src/main/java")) -+ srcDir(file("../purpur-api/src/main/java")) ++ srcDir(file("../purpur-api/src/main/java")) // DivineMC - Rebrand } resources { srcDir(file("../paper-api/src/main/resources")) -+ srcDir(file("../purpur-api/src/main/resources")) ++ srcDir(file("../purpur-api/src/main/resources")) // DivineMC - Rebrand } } test { java { srcDir(file("../paper-api/src/test/java")) -+ srcDir(file("../purpur-api/src/test/java")) ++ srcDir(file("../purpur-api/src/test/java")) // DivineMC - Rebrand } resources { srcDir(file("../paper-api/src/test/resources")) -+ srcDir(file("../purpur-api/src/test/resources")) ++ srcDir(file("../purpur-api/src/test/resources")) // DivineMC - Rebrand } } } @@ -98,14 +111,21 @@ "https://javadoc.io/doc/org.jetbrains/annotations/$annotationsVersion/", "https://javadoc.io/doc/org.joml/joml/1.10.8/", "https://www.javadoc.io/doc/com.google.code.gson/gson/2.11.0", -@@ -201,8 +_,8 @@ - "https://jd.advntr.dev/text-serializer-plain/$adventureVersion/", - "https://jd.advntr.dev/text-logger-slf4j/$adventureVersion/", +@@ -202,7 +_,7 @@ + "https://jd.advntr.dev/text-logger-slf4j/$adventureJavadocVersion/", "https://javadoc.io/doc/org.slf4j/slf4j-api/$slf4jVersion/", -- "https://javadoc.io/doc/org.apache.logging.log4j/log4j-api/$log4jVersion/", + "https://logging.apache.org/log4j/2.x/javadoc/log4j-api/", - "https://javadoc.io/doc/org.apache.maven.resolver/maven-resolver-api/1.7.3", -+ "https://javadoc.io/doc/org.apache.logging.log4j/log4j-api/2.20.0/", // DivineMC - Bump dependencies + "https://javadoc.io/doc/org.apache.maven.resolver/maven-resolver-api/1.9.22", // DivineMC - Bump dependencies ) options.tags("apiNote:a:API Note:") +@@ -226,6 +_,8 @@ + into("build/docs/javadoc") + } + } ++ ++ options.addStringOption("Xdoclint:none", "-quiet") // DivineMC - Hide unnecessary javadoc warnings + } + + tasks.test { diff --git a/divinemc-api/paper-patches/features/0002-Delete-Timings.patch b/divinemc-api/paper-patches/features/0002-Delete-Timings.patch index 09a4a5d..d8b9985 100644 --- a/divinemc-api/paper-patches/features/0002-Delete-Timings.patch +++ b/divinemc-api/paper-patches/features/0002-Delete-Timings.patch @@ -2151,10 +2151,10 @@ index dae84243804b4b076cafb3e1b29bdcf614efc93f..00000000000000000000000000000000 -} diff --git a/src/main/java/co/aikar/util/JSONUtil.java b/src/main/java/co/aikar/util/JSONUtil.java deleted file mode 100644 -index c105a1429ca58b37be265708ec345e00f0d43ed8..0000000000000000000000000000000000000000 +index 232bf09e1a7bc176bfd34b1acb5326a06a92fe79..0000000000000000000000000000000000000000 --- a/src/main/java/co/aikar/util/JSONUtil.java +++ /dev/null -@@ -1,141 +0,0 @@ +@@ -1,138 +0,0 @@ -package co.aikar.util; - -import com.google.common.base.Function; @@ -2162,10 +2162,7 @@ index c105a1429ca58b37be265708ec345e00f0d43ed8..00000000000000000000000000000000 -import com.google.common.collect.Maps; -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; --import org.json.simple.JSONArray; --import org.json.simple.JSONObject; - --import java.util.ArrayList; -import java.util.LinkedHashMap; -import java.util.List; -import java.util.Map; diff --git a/divinemc-api/paper-patches/features/0006-Extend-Sound-API.patch b/divinemc-api/paper-patches/features/0006-Extend-Sound-API.patch index 6514c35..6decfda 100644 --- a/divinemc-api/paper-patches/features/0006-Extend-Sound-API.patch +++ b/divinemc-api/paper-patches/features/0006-Extend-Sound-API.patch @@ -39,10 +39,10 @@ index d309e28d7e6756afed82390fd2a99a6131e29140..468e2fa5e059e19c14d095c840723f10 + // DivineMC end - Extend Sound API } diff --git a/src/main/java/org/bukkit/entity/Entity.java b/src/main/java/org/bukkit/entity/Entity.java -index 97ba2c698da6820eae7d254008579bb64052f474..5a8635890b83b5eab24a3c155b98b50d07e9d7e4 100644 +index bee034fd48b567a64a152196a0b80f2f1a9661e4..1eaae9a9e2d73535ddfea355878c61db0f9aa342 100644 --- a/src/main/java/org/bukkit/entity/Entity.java +++ b/src/main/java/org/bukkit/entity/Entity.java -@@ -1269,4 +1269,35 @@ public interface Entity extends Metadatable, CommandSender, Nameable, Persistent +@@ -1279,4 +1279,35 @@ public interface Entity extends Metadatable, CommandSender, Nameable, Persistent */ void setImmuneToFire(@Nullable Boolean fireImmune); // Purpur end - Fire Immunity API diff --git a/divinemc-api/paper-patches/features/0008-Paper-PR-Player-standing-on-position-API.patch b/divinemc-api/paper-patches/features/0008-Paper-PR-Player-standing-on-position-API.patch index 271db30..58cafd0 100644 --- a/divinemc-api/paper-patches/features/0008-Paper-PR-Player-standing-on-position-API.patch +++ b/divinemc-api/paper-patches/features/0008-Paper-PR-Player-standing-on-position-API.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Paper PR: Player standing on position API diff --git a/src/main/java/org/bukkit/entity/Entity.java b/src/main/java/org/bukkit/entity/Entity.java -index 5a8635890b83b5eab24a3c155b98b50d07e9d7e4..8f89484db54209dfe55dab5fce62fd82d04deb6f 100644 +index 1eaae9a9e2d73535ddfea355878c61db0f9aa342..0cb9d99f628a9a8b6bd53b5603bd80b176fbc4f4 100644 --- a/src/main/java/org/bukkit/entity/Entity.java +++ b/src/main/java/org/bukkit/entity/Entity.java -@@ -1215,6 +1215,33 @@ public interface Entity extends Metadatable, CommandSender, Nameable, Persistent +@@ -1225,6 +1225,33 @@ public interface Entity extends Metadatable, CommandSender, Nameable, Persistent void broadcastHurtAnimation(@NotNull java.util.Collection players); // Paper end - broadcast hurt animation diff --git a/divinemc-server/build.gradle.kts.patch b/divinemc-server/build.gradle.kts.patch index 0be32d9..0cabc82 100644 --- a/divinemc-server/build.gradle.kts.patch +++ b/divinemc-server/build.gradle.kts.patch @@ -1,19 +1,13 @@ --- a/purpur-server/build.gradle.kts +++ b/purpur-server/build.gradle.kts -@@ -25,6 +_,7 @@ - //} - - val purpur = forks.register("purpur") { -+ rootDirectory = upstreamsDirectory().map { it.dir("purpur") } - upstream.patchDir("paperServer") { - upstreamPath = "paper-server" - excludes = setOf("src/minecraft", "patches", "build.gradle.kts") -@@ -32,7 +_,23 @@ +@@ -37,9 +_,27 @@ outputDir = rootDirectory.dir("paper-server") } } - activeFork = purpur -+ + // Purpur end - Rebrand + ++ // DivineMC start - Rebrand + val divinemc = forks.register("divinemc") { + forks = purpur + upstream.patchRepo("paperServer") { @@ -30,32 +24,38 @@ + } + + activeFork = divinemc - ++ // DivineMC end - Rebrand ++ spigot { buildDataRef = "702e1a0a5072b2c4082371d5228cb30525687efc" -@@ -119,10 +_,14 @@ + packageVersion = "v1_21_R4" // also needs to be updated in MappingEnvironment +@@ -125,10 +_,18 @@ main { java { srcDir("../paper-server/src/main/java") } resources { srcDir("../paper-server/src/main/resources") } ++ // DivineMC start - Rebrand + java { srcDir("../purpur-server/src/main/java") } + resources { srcDir("../purpur-server/src/main/resources") } ++ // DivineMC end - Rebrand } test { java { srcDir("../paper-server/src/test/java") } resources { srcDir("../paper-server/src/test/resources") } ++ // DivineMC start - Rebrand + java { srcDir("../purpur-server/src/test/java") } + resources { srcDir("../purpur-server/src/test/resources") } ++ // DivineMC end - Rebrand } } - -@@ -146,10 +_,22 @@ + val log4jPlugins = sourceSets.create("log4jPlugins") { +@@ -156,10 +_,22 @@ } dependencies { -- implementation(project(":purpur-api")) -+ implementation(project(":divinemc-api")) // DivineMC +- implementation(project(":purpur-api")) // Purpur ++ implementation(project(":divinemc-api")) // DivineMC - Rebrand + -+ // DivineMC start ++ // DivineMC start - Dependencies + implementation("org.yaml:snakeyaml:2.3") + implementation ("me.carleslc.Simple-YAML:Simple-Yaml:1.8.4") { + exclude(group="org.yaml", module="snakeyaml") @@ -64,7 +64,7 @@ + implementation("org.agrona:agrona:2.0.1") + implementation("com.github.luben:zstd-jni:1.5.6-9") + implementation("org.lz4:lz4-java:1.8.0") -+ // DivineMC end ++ // DivineMC end - Dependencies + implementation("ca.spottedleaf:concurrentutil:0.0.3") - implementation("org.jline:jline-terminal-ffm:3.27.1") // use ffm on java 22+ @@ -72,14 +72,14 @@ + implementation("org.jline:jline-terminal-ffm:3.29.0") // use ffm on java 22+ // DivineMC - Bump dependencies + implementation("org.jline:jline-terminal-jni:3.29.0") // fall back to jni on java 21 // DivineMC - 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 - -@@ -159,16 +_,16 @@ + implementation("io.papermc.adventure:adventure-text-serializer-ansi:4.21.0-mc1215-SNAPSHOT") // Keep in sync with adventureVersion from Paper-API build file // FIXME back to release + runtimeConfiguration(sourceSets.main.map { it.runtimeClasspath }) +@@ -170,16 +_,16 @@ 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 +- implementation("org.apache.logging.log4j:log4j-core:2.24.1") +- log4jPlugins.annotationProcessorConfigurationName("org.apache.logging.log4j:log4j-core:2.24.1") // Needed to generate meta for our Log4j plugins + implementation("org.apache.logging.log4j:log4j-core:2.24.3") // DivineMC - Bump dependencies + log4jPlugins.annotationProcessorConfigurationName("org.apache.logging.log4j:log4j-core:2.24.3") // Needed to generate meta for our Log4j plugins // DivineMC - Bump dependencies runtimeOnly(log4jPlugins.output) @@ -88,59 +88,65 @@ 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("io.netty:netty-codec-haproxy:4.1.118.Final") // Add support for proxy protocol - implementation("org.apache.logging.log4j:log4j-iostreams:2.24.1") + implementation("io.netty:netty-codec-haproxy:4.1.119.Final") // Add support for proxy protocol // DivineMC - Bump dependencies + implementation("org.apache.logging.log4j:log4j-iostreams:2.24.3") // DivineMC - Bump dependencies - implementation("org.ow2.asm:asm-commons:9.7.1") + implementation("org.ow2.asm:asm-commons:9.8") 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. -@@ -177,22 +_,24 @@ - runtimeOnly("com.mysql:mysql-connector-j:9.1.0") +@@ -191,24 +_,31 @@ + // Deps that were previously in the API but have now been moved here for backwards compat, eventually to be removed + runtimeOnly("commons-lang:commons-lang:2.6") + runtimeOnly("org.xerial:sqlite-jdbc:3.49.1.0") +- runtimeOnly("com.mysql:mysql-connector-j:9.2.0") ++ // DivineMC start - Bump dependencies ++ runtimeOnly("com.mysql:mysql-connector-j:9.2.0") { ++ exclude("com.google.protobuf", "protobuf-java") // exclude outdated version ++ } ++ runtimeOnly("com.google.protobuf:protobuf-java:4.30.1") ++ // DivineMC end - Bump dependencies runtimeOnly("com.lmax:disruptor:3.4.4") + implementation("com.googlecode.json-simple:json-simple:1.1.1") { // change to runtimeOnly once Timings is removed + isTransitive = false // includes junit + } -- implementation("org.mozilla:rhino-runtime:1.7.14") // Purpur -- implementation("org.mozilla:rhino-engine:1.7.14") // Purpur -+ implementation("org.mozilla:rhino-runtime:1.7.15") // Purpur // DivineMC - Bump dependencies -+ implementation("org.mozilla:rhino-engine:1.7.15") // Purpur // DivineMC - Bump dependencies - implementation("dev.omega24:upnp4j:1.0") // Purpur +- 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") ++ // DivineMC start - Bump dependencies ++ runtimeOnly("org.apache.maven:maven-resolver-provider:3.9.9") ++ runtimeOnly("org.apache.maven.resolver:maven-resolver-connector-basic:1.9.22") ++ runtimeOnly("org.apache.maven.resolver:maven-resolver-transport-http:1.9.22") ++ // DivineMC end - Bump dependencies - 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("io.github.classgraph:classgraph:4.8.179") // For mob goal test + testImplementation("org.junit.jupiter:junit-jupiter:5.12.2") + testImplementation("org.junit.platform:junit-platform-suite-engine:1.12.2") - 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 -+ // DivineMC 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 -+ // DivineMC end - Bump dependencies - testImplementation("org.ow2.asm:asm-tree:9.7.1") ++ testImplementation("org.hamcrest:hamcrest:3.0") // DivineMC - Bump dependencies ++ testImplementation("org.mockito:mockito-core:5.16.1") // DivineMC - Bump dependencies ++ mockitoAgent("org.mockito:mockito-core:5.16.1") { isTransitive = false } // Configure mockito agent that is needed in newer java versions // DivineMC - Bump dependencies + testImplementation("org.ow2.asm:asm-tree:9.8") - testImplementation("org.junit-pioneer:junit-pioneer:2.2.0") // CartesianTest + testImplementation("org.junit-pioneer:junit-pioneer:2.3.0") // CartesianTest // DivineMC - Bump dependencies implementation("net.neoforged:srgutils:1.0.9") // Mappings handling implementation("net.neoforged:AutoRenamingTool:2.0.3") // Remap plugins -@@ -208,30 +_,41 @@ - implementation("me.lucko:spark-paper:1.10.119-20241121.092015-1") +@@ -224,30 +_,41 @@ + implementation("me.lucko:spark-paper:1.10.133-20250413.112336-1") } -+// DivineMC start - hide irrelevant compilation warnings ++// DivineMC start - Hide irrelevant compilation warnings +tasks.withType { + val compilerArgs = options.compilerArgs + compilerArgs.add("-Xlint:-module") + compilerArgs.add("-Xlint:-removal") + compilerArgs.add("-Xlint:-dep-ann") +} -+// DivineMC end - hide irrelevant compilation warnings ++// DivineMC end - Hide irrelevant compilation warnings + tasks.jar { manifest { @@ -153,22 +159,22 @@ val implementationVersion = "$mcVersion-${build ?: "DEV"}-$gitHash" val date = git.exec(providers, "show", "-s", "--format=%ci", gitHash).get().trim() val gitBranch = git.exec(providers, "rev-parse", "--abbrev-ref", "HEAD").get().trim() -+ val experimental = rootProject.providers.gradleProperty("experimental").get() ++ val experimental = rootProject.providers.gradleProperty("experimental").get() // DivineMC - Experimental flag attributes( "Main-Class" to "org.bukkit.craftbukkit.Main", -- "Implementation-Title" to "Purpur", -+ "Implementation-Title" to "DivineMC", // DivineMC +- "Implementation-Title" to "Purpur", // Purpur ++ "Implementation-Title" to "DivineMC", // DivineMC - Rebrand "Implementation-Version" to implementationVersion, "Implementation-Vendor" to date, -- "Specification-Title" to "Purpur", -+ "Specification-Title" to "DivineMC", // DivineMC +- "Specification-Title" to "Purpur", // Purpur ++ "Specification-Title" to "DivineMC", // DivineMC - Rebrand "Specification-Version" to project.version, -- "Specification-Vendor" to "Purpur Team", -- "Brand-Id" to "purpurmc:purpur", -- "Brand-Name" to "Purpur", -+ "Specification-Vendor" to "BX Team", // DivineMC -+ "Brand-Id" to "bxteam:divinemc", // DivineMC -+ "Brand-Name" to "DivineMC", // DivineMC +- "Specification-Vendor" to "Purpur Team", // Purpur +- "Brand-Id" to "purpurmc:purpur", // Purpur +- "Brand-Name" to "Purpur", // Purpur ++ "Specification-Vendor" to "BX Team", // DivineMC - Rebrand ++ "Brand-Id" to "bxteam:divinemc", // DivineMC - Rebrand ++ "Brand-Name" to "DivineMC", // DivineMC - Rebrand "Build-Number" to (build ?: ""), "Build-Time" to buildTime.toString(), "Git-Branch" to gitBranch, diff --git a/divinemc-server/paper-patches/features/0001-Rebrand.patch b/divinemc-server/paper-patches/features/0001-Rebrand.patch index cf01468..4b2f8d1 100644 --- a/divinemc-server/paper-patches/features/0001-Rebrand.patch +++ b/divinemc-server/paper-patches/features/0001-Rebrand.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Rebrand diff --git a/src/main/java/com/destroystokyo/paper/Metrics.java b/src/main/java/com/destroystokyo/paper/Metrics.java -index be1bb14dca9367b9685841985b6198376986c496..a3f08edec9d5bc60839688df8579fde3f5c927d8 100644 +index 212e0df38ae3ed0b06d147fb5e7e93ef556a0bdd..5736b550ad3f1e7dd9fd1a1f985be2974278e7a9 100644 --- a/src/main/java/com/destroystokyo/paper/Metrics.java +++ b/src/main/java/com/destroystokyo/paper/Metrics.java -@@ -592,7 +592,7 @@ public class Metrics { +@@ -593,7 +593,7 @@ public class Metrics { boolean logFailedRequests = config.getBoolean("logFailedRequests", false); // Only start Metrics, if it's enabled in the config if (config.getBoolean("enabled", true)) { @@ -17,7 +17,7 @@ index be1bb14dca9367b9685841985b6198376986c496..a3f08edec9d5bc60839688df8579fde3 metrics.addCustomChart(new Metrics.SimplePie("minecraft_version", () -> { String minecraftVersion = Bukkit.getVersion(); -@@ -602,7 +602,7 @@ public class Metrics { +@@ -603,7 +603,7 @@ public class Metrics { metrics.addCustomChart(new Metrics.SingleLineChart("players", () -> Bukkit.getOnlinePlayers().size())); metrics.addCustomChart(new Metrics.SimplePie("online_mode", () -> Bukkit.getOnlineMode() ? "online" : (io.papermc.paper.configuration.GlobalConfiguration.get().proxies.isProxyOnlineMode() ? "bungee" : "offline"))); // Purpur - Purpur config files @@ -27,7 +27,7 @@ index be1bb14dca9367b9685841985b6198376986c496..a3f08edec9d5bc60839688df8579fde3 metrics.addCustomChart(new Metrics.DrilldownPie("java_version", () -> { Map> map = new HashMap<>(); diff --git a/src/main/java/com/destroystokyo/paper/PaperVersionFetcher.java b/src/main/java/com/destroystokyo/paper/PaperVersionFetcher.java -index fe66e43c27e0798770e102d1385bacbaa90bda07..5aef1f7aa8c614e50b34747456e7d5a3f0045aff 100644 +index 6ac291288f1e71f56a45e50b650dea4b4adeb763..785c6f744d67592e7b22d9fff7655ee43dd99696 100644 --- a/src/main/java/com/destroystokyo/paper/PaperVersionFetcher.java +++ b/src/main/java/com/destroystokyo/paper/PaperVersionFetcher.java @@ -36,7 +36,7 @@ public class PaperVersionFetcher implements VersionFetcher { @@ -81,7 +81,7 @@ index fe66e43c27e0798770e102d1385bacbaa90bda07..5aef1f7aa8c614e50b34747456e7d5a3 - try { - try (final BufferedReader reader = Resources.asCharSource( - URI.create("https://api.purpurmc.org/v2/purpur/" + build.minecraftVersionId()).toURL(), // Purpur - Rebrand -- Charsets.UTF_8 +- StandardCharsets.UTF_8 - ).openBufferedStream()) { - final JsonObject json = new Gson().fromJson(reader, JsonObject.class); - //final JsonArray builds = json.getAsJsonArray("builds"); // Purpur - Rebrand @@ -231,13 +231,13 @@ index 62e2d5704c348955bc8284dc2d54c933b7bcdd06..341f13e57896f03058ea3ec68e69b7cb public void executeAsync(final Runnable runnable) { MCUtil.scheduleAsyncTask(this.catching(runnable, "asynchronous")); diff --git a/src/main/java/org/bukkit/craftbukkit/Main.java b/src/main/java/org/bukkit/craftbukkit/Main.java -index 2e1b7f613de8876095ef39bb0341a3f9520c8d5d..bab0d25e82f85c7b9524ae42e0bb41e6233d71cf 100644 +index 7091dcb86cad81ed4429f11bf5876b4e192a93f5..81a8076b9bbe94788a682d9ec52dc1a8b779fb83 100644 --- a/src/main/java/org/bukkit/craftbukkit/Main.java +++ b/src/main/java/org/bukkit/craftbukkit/Main.java -@@ -285,7 +285,7 @@ public class Main { +@@ -248,7 +248,7 @@ public class Main { + System.setProperty("library.jansi.version", "Paper"); // Paper - set meaningless jansi version to prevent git builds from crashing on Windows System.setProperty("jdk.console", "java.base"); // Paper - revert default console provider back to java.base so we can have our own jline - //System.out.println("Loading libraries, please wait..."); - //net.minecraft.server.Main.main(options); + - io.papermc.paper.PaperBootstrap.boot(options); + org.bxteam.divinemc.DivineBootstrap.boot(options); // DivineMC - Replace with DivineBootstrap } catch (Throwable t) { @@ -270,12 +270,12 @@ index 99eb04643fce44c37fd96c99756837ccafe7b559..4aef151bd162c4c99a3eaec1854b5463 if (stream != null) { diff --git a/src/main/java/org/spigotmc/WatchdogThread.java b/src/main/java/org/spigotmc/WatchdogThread.java -index 776bc01784b53e3f1d9a35046109c3b9ee4f0882..3731ca80ed58cd385cd66ffbe67f2eeaae642d0f 100644 +index b8b5c2da54a4875d0d23ae6f3efb6052ef25463a..0df159b65ade979c15992aaec51ea1dbc988085b 100644 --- a/src/main/java/org/spigotmc/WatchdogThread.java +++ b/src/main/java/org/spigotmc/WatchdogThread.java -@@ -77,14 +77,14 @@ public class WatchdogThread extends ca.spottedleaf.moonrise.common.util.TickThre +@@ -75,14 +75,14 @@ public class WatchdogThread extends ca.spottedleaf.moonrise.common.util.TickThre + this.lastEarlyWarning = currentTime; if (isLongTimeout) { - // Paper end logger.log(Level.SEVERE, "------------------------------"); - logger.log(Level.SEVERE, "The server has stopped responding! This is (probably) not a Purpur bug."); // Paper // Purpur - Rebrand + logger.log(Level.SEVERE, "The server has stopped responding! This is (probably) not a DivineMC bug."); // DivineMC - Rebrand @@ -291,7 +291,7 @@ index 776bc01784b53e3f1d9a35046109c3b9ee4f0882..3731ca80ed58cd385cd66ffbe67f2eea if (net.minecraft.world.level.Level.lastPhysicsProblem != null) { logger.log(Level.SEVERE, "------------------------------"); -@@ -104,12 +104,12 @@ public class WatchdogThread extends ca.spottedleaf.moonrise.common.util.TickThre +@@ -102,12 +102,12 @@ public class WatchdogThread extends ca.spottedleaf.moonrise.common.util.TickThre } // Paper end } else { @@ -306,7 +306,7 @@ index 776bc01784b53e3f1d9a35046109c3b9ee4f0882..3731ca80ed58cd385cd66ffbe67f2eea FeatureHooks.dumpAllChunkLoadInfo(MinecraftServer.getServer(), isLongTimeout); // Paper - log detailed tick information WatchdogThread.dumpThread(ManagementFactory.getThreadMXBean().getThreadInfo(MinecraftServer.getServer().serverThread.getId(), Integer.MAX_VALUE), logger); logger.log(Level.SEVERE, "------------------------------"); -@@ -122,7 +122,7 @@ public class WatchdogThread extends ca.spottedleaf.moonrise.common.util.TickThre +@@ -120,7 +120,7 @@ public class WatchdogThread extends ca.spottedleaf.moonrise.common.util.TickThre WatchdogThread.dumpThread(thread, logger); } } else { diff --git a/divinemc-server/paper-patches/features/0002-Configuration.patch b/divinemc-server/paper-patches/features/0002-Configuration.patch index e5221ba..a950e2e 100644 --- a/divinemc-server/paper-patches/features/0002-Configuration.patch +++ b/divinemc-server/paper-patches/features/0002-Configuration.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Configuration diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index 362ab47d0cdba42d7174e9558dd9b926538136d1..d0adbe6fc8ed89ece59226905608cdceb04a6752 100644 +index ae131ec269a4c5c551e4fdcbaefde278e57d69f1..17fb0b603fb79f2368129f284d1211e8a0ce3dc0 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -@@ -1103,6 +1103,13 @@ public final class CraftServer implements Server { +@@ -1079,6 +1079,13 @@ public final class CraftServer implements Server { org.spigotmc.SpigotConfig.init((File) this.console.options.valueOf("spigot-settings")); // Spigot this.console.paperConfigurations.reloadConfigs(this.console); org.purpurmc.purpur.PurpurConfig.init((File) console.options.valueOf("purpur-settings")); // Purpur - Purpur config files @@ -22,7 +22,7 @@ index 362ab47d0cdba42d7174e9558dd9b926538136d1..d0adbe6fc8ed89ece59226905608cdce for (ServerLevel world : this.console.getAllLevels()) { // world.serverLevelData.setDifficulty(config.difficulty); // Paper - per level difficulty world.setSpawnSettings(world.serverLevelData.getDifficulty() != Difficulty.PEACEFUL && config.spawnMonsters); // Paper - per level difficulty (from MinecraftServer#setDifficulty(ServerLevel, Difficulty, boolean)) -@@ -1119,6 +1126,13 @@ public final class CraftServer implements Server { +@@ -1095,6 +1102,13 @@ public final class CraftServer implements Server { } world.spigotConfig.init(); // Spigot world.purpurConfig.init(); // Purpur - Purpur config files @@ -37,22 +37,21 @@ index 362ab47d0cdba42d7174e9558dd9b926538136d1..d0adbe6fc8ed89ece59226905608cdce Plugin[] pluginClone = pluginManager.getPlugins().clone(); // Paper diff --git a/src/main/java/org/bukkit/craftbukkit/Main.java b/src/main/java/org/bukkit/craftbukkit/Main.java -index bab0d25e82f85c7b9524ae42e0bb41e6233d71cf..f367efa0afae9792f87a842dfe7ba098a3ce7f2d 100644 +index 81a8076b9bbe94788a682d9ec52dc1a8b779fb83..d7f9da2e624d3e27aff36d8818adaf735d78a2d9 100644 --- a/src/main/java/org/bukkit/craftbukkit/Main.java +++ b/src/main/java/org/bukkit/craftbukkit/Main.java -@@ -183,6 +183,15 @@ public class Main { - .defaultsTo(new File("purpur.yml")) +@@ -173,6 +173,14 @@ public class Main { .describedAs("Yml file"); // Purpur end - Purpur config files -+ + + // DivineMC start - Configuration + acceptsAll(asList("divinemc", "divinemc-settings"), "File for DivineMC settings") -+ .withRequiredArg() -+ .ofType(File.class) -+ .defaultsTo(new File("divinemc.yml")) -+ .describedAs("Yml file"); ++ .withRequiredArg() ++ .ofType(File.class) ++ .defaultsTo(new File("divinemc.yml")) ++ .describedAs("Yml file"); + // DivineMC end - Configuration + - // Paper start acceptsAll(asList("server-name"), "Name of the server") .withRequiredArg() + .ofType(String.class) diff --git a/divinemc-server/paper-patches/features/0003-Delete-timings.patch b/divinemc-server/paper-patches/features/0003-Delete-timings.patch index a9d16f9..95875e7 100644 --- a/divinemc-server/paper-patches/features/0003-Delete-timings.patch +++ b/divinemc-server/paper-patches/features/0003-Delete-timings.patch @@ -45,18 +45,3 @@ index 097500a59336db1bbfffcd1aa4cff7a8586e46ec..69341cb3b11409e41b9ff756b11d9bd1 } @Override -diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index 037ca6ea2edb3c4ff9bf9f7856360cd2c19b7628..d38061eb738a17368e08750c9297894778b27c84 100644 ---- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java -+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -@@ -1048,10 +1048,8 @@ public final class CraftServer implements Server { - commands.performCommand(results, commandLine, commandLine, true); - } catch (CommandException ex) { - this.pluginManager.callEvent(new com.destroystokyo.paper.event.server.ServerExceptionEvent(new com.destroystokyo.paper.exception.ServerCommandException(ex, target, sender, args))); // Paper -- //target.timings.stopTiming(); // Spigot // Paper - throw ex; - } catch (Throwable ex) { -- //target.timings.stopTiming(); // Spigot // Paper - String msg = "Unhandled exception executing '" + commandLine + "' in " + target; - this.pluginManager.callEvent(new com.destroystokyo.paper.event.server.ServerExceptionEvent(new com.destroystokyo.paper.exception.ServerCommandException(ex, target, sender, args))); // Paper - throw new CommandException(msg, ex); diff --git a/divinemc-server/paper-patches/features/0004-Implement-Secure-Seed.patch b/divinemc-server/paper-patches/features/0004-Implement-Secure-Seed.patch index cc5e8f6..c94c3a5 100644 --- a/divinemc-server/paper-patches/features/0004-Implement-Secure-Seed.patch +++ b/divinemc-server/paper-patches/features/0004-Implement-Secure-Seed.patch @@ -7,32 +7,32 @@ Original license: GPLv3 Original project: https://github.com/plasmoapp/matter diff --git a/src/main/java/org/bukkit/craftbukkit/CraftChunk.java b/src/main/java/org/bukkit/craftbukkit/CraftChunk.java -index de8b9048c8395c05b8688bc9d984b8ad680f15b3..98bd60111797225f3be5e2a19e25d654379ca30d 100644 +index 400e632208d133a3f49fc7f14bceb48a1026769b..4954625e4f1af358ca7c70a57be30dee92ace0e6 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftChunk.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftChunk.java -@@ -206,7 +206,12 @@ public class CraftChunk implements Chunk { +@@ -196,7 +196,12 @@ public class CraftChunk implements Chunk { @Override public boolean isSlimeChunk() { - // 987234911L is deterimined in EntitySlime when seeing if a slime can spawn in a chunk -- return this.worldServer.paperConfig().entities.spawning.allChunksAreSlimeChunks || WorldgenRandom.seedSlimeChunk(this.getX(), this.getZ(), this.getWorld().getSeed(), worldServer.spigotConfig.slimeSeed).nextInt(10) == 0; // Paper + // 987234911L is taken from Slime when seeing if a slime can spawn in a chunk +- return this.level.paperConfig().entities.spawning.allChunksAreSlimeChunks || WorldgenRandom.seedSlimeChunk(this.getX(), this.getZ(), this.getWorld().getSeed(), level.spigotConfig.slimeSeed).nextInt(10) == 0; // Paper + // DivineMC start - Implement Secure Seed + boolean isSlimeChunk = org.bxteam.divinemc.DivineConfig.enableSecureSeed -+ ? worldServer.getChunk(this.getX(), this.getZ()).isSlimeChunk() -+ : WorldgenRandom.seedSlimeChunk(this.getX(), this.getZ(), this.getWorld().getSeed(), worldServer.spigotConfig.slimeSeed).nextInt(10) == 0; // Paper -+ return this.worldServer.paperConfig().entities.spawning.allChunksAreSlimeChunks || isSlimeChunk; ++ ? this.level.getChunk(this.getX(), this.getZ()).isSlimeChunk() ++ : WorldgenRandom.seedSlimeChunk(this.getX(), this.getZ(), this.getWorld().getSeed(), this.level.spigotConfig.slimeSeed).nextInt(10) == 0; // Paper ++ return this.level.paperConfig().entities.spawning.allChunksAreSlimeChunks || isSlimeChunk; + // DivineMC end - Implement Secure Seed } @Override diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index 384ffd0d306cf01ce58864e9d2fcf7def6afca0f..12cfe2abd84f7ba63d935f91ce907bf3f52832da 100644 +index 17fb0b603fb79f2368129f284d1211e8a0ce3dc0..f92eb3e390b49007c056797f74130cb4c2f9e216 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -@@ -1414,7 +1414,11 @@ public final class CraftServer implements Server { +@@ -1376,7 +1376,11 @@ public final class CraftServer implements Server { registryAccess = levelDataAndDimensions.dimensions().dimensionsRegistryAccess(); } else { LevelSettings levelSettings; -- WorldOptions worldOptions = new WorldOptions(creator.seed(), creator.generateStructures(), false); +- WorldOptions worldOptions = new WorldOptions(creator.seed(), creator.generateStructures(), creator.bonusChest()); + // DivineMC start - Implement Secure Seed + WorldOptions worldOptions = org.bxteam.divinemc.DivineConfig.enableSecureSeed + ? new WorldOptions(creator.seed(), su.plo.matter.Globals.createRandomWorldSeed(), creator.generateStructures(), false) diff --git a/divinemc-server/paper-patches/features/0006-Chunk-System-Optimizations.patch b/divinemc-server/paper-patches/features/0005-Chunk-System-Optimizations.patch similarity index 99% rename from divinemc-server/paper-patches/features/0006-Chunk-System-Optimizations.patch rename to divinemc-server/paper-patches/features/0005-Chunk-System-Optimizations.patch index e044381..887c95b 100644 --- a/divinemc-server/paper-patches/features/0006-Chunk-System-Optimizations.patch +++ b/divinemc-server/paper-patches/features/0005-Chunk-System-Optimizations.patch @@ -664,7 +664,7 @@ index 559c959aff3c9deef867b9e425fba3e2e669cac6..a5b0585b56d71d21c9da3b129d213def private MoonriseConstants() {} diff --git a/src/main/java/io/papermc/paper/configuration/GlobalConfiguration.java b/src/main/java/io/papermc/paper/configuration/GlobalConfiguration.java -index 8b70a8e9b0aacbe7964b0441b5bbbaab228962d8..f0c420f4a1b282fb976825c33cb7a118e45de36d 100644 +index 6e9bfd986674c26240700c788987028be4ec32e7..4fd8c2f6fdefe518b5cea0ae81901c44be0ff021 100644 --- a/src/main/java/io/papermc/paper/configuration/GlobalConfiguration.java +++ b/src/main/java/io/papermc/paper/configuration/GlobalConfiguration.java @@ -229,7 +229,7 @@ public class GlobalConfiguration extends ConfigurationPart { diff --git a/divinemc-server/paper-patches/features/0007-Skip-EntityScheduler-s-executeTick-checks-if-there-i.patch b/divinemc-server/paper-patches/features/0006-Skip-EntityScheduler-s-executeTick-checks-if-there-i.patch similarity index 96% rename from divinemc-server/paper-patches/features/0007-Skip-EntityScheduler-s-executeTick-checks-if-there-i.patch rename to divinemc-server/paper-patches/features/0006-Skip-EntityScheduler-s-executeTick-checks-if-there-i.patch index 346e7cf..282e420 100644 --- a/divinemc-server/paper-patches/features/0007-Skip-EntityScheduler-s-executeTick-checks-if-there-i.patch +++ b/divinemc-server/paper-patches/features/0006-Skip-EntityScheduler-s-executeTick-checks-if-there-i.patch @@ -68,10 +68,10 @@ index c03608fec96b51e1867f43d8f42e5aefb1520e46..eda35b81c36ca8ebe4f9487cb41e2b0c throw new IllegalStateException("Ticking retired scheduler"); } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java -index 8635cd772c5c2ae0ba326812ff2a1a179285a86f..614e407814fe47dab58fbcbc49d8e9dd54b4245e 100644 +index 8feb78c4d7fa793f01991756b618fc49de023db6..a138a364c73bc0b325391c9f30943769e54e4cda 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java -@@ -75,7 +75,7 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity { +@@ -83,7 +83,7 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity { private final CraftPersistentDataContainer persistentDataContainer = new CraftPersistentDataContainer(CraftEntity.DATA_TYPE_REGISTRY); protected net.kyori.adventure.pointer.Pointers adventure$pointers; // Paper - implement pointers // Paper start - Folia shedulers @@ -80,7 +80,7 @@ index 8635cd772c5c2ae0ba326812ff2a1a179285a86f..614e407814fe47dab58fbcbc49d8e9dd private final io.papermc.paper.threadedregions.scheduler.FoliaEntityScheduler apiScheduler = new io.papermc.paper.threadedregions.scheduler.FoliaEntityScheduler(this); @Override -@@ -88,6 +88,7 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity { +@@ -96,6 +96,7 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity { this.server = server; this.entity = entity; this.entityType = CraftEntityType.minecraftToBukkit(entity.getType()); diff --git a/divinemc-server/paper-patches/features/0008-Optimize-canSee-checks.patch b/divinemc-server/paper-patches/features/0007-Optimize-canSee-checks.patch similarity index 91% rename from divinemc-server/paper-patches/features/0008-Optimize-canSee-checks.patch rename to divinemc-server/paper-patches/features/0007-Optimize-canSee-checks.patch index b311a4b..18bc110 100644 --- a/divinemc-server/paper-patches/features/0008-Optimize-canSee-checks.patch +++ b/divinemc-server/paper-patches/features/0007-Optimize-canSee-checks.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Optimize canSee checks diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index d2010fc46215c37c3ef1d8a75cc39bce655d2c3f..3cb2cd294874ece5fbefd0618b4db27701ef118a 100644 +index a5cf4e4b9cc35bd81b530bc3eac31b0af3d72b7c..24d72cc726ed238101ccc4f097be784ad9470247 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -@@ -210,7 +210,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -212,7 +212,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player { private boolean hasPlayedBefore = false; private final ConversationTracker conversationTracker = new ConversationTracker(); private final Set channels = new HashSet(); @@ -17,7 +17,7 @@ index d2010fc46215c37c3ef1d8a75cc39bce655d2c3f..3cb2cd294874ece5fbefd0618b4db277 private final Set unlistedEntities = new HashSet<>(); // Paper - Add Listing API for Player private static final WeakHashMap> pluginWeakReferences = new WeakHashMap<>(); private int hash = 0; -@@ -2267,9 +2267,15 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -2254,9 +2254,15 @@ public class CraftPlayer extends CraftHumanEntity implements Player { @Override public boolean canSee(org.bukkit.entity.Entity entity) { diff --git a/divinemc-server/paper-patches/features/0009-Configurable-thread-pool-priority.patch b/divinemc-server/paper-patches/features/0008-Configurable-thread-pool-priority.patch similarity index 100% rename from divinemc-server/paper-patches/features/0009-Configurable-thread-pool-priority.patch rename to divinemc-server/paper-patches/features/0008-Configurable-thread-pool-priority.patch diff --git a/divinemc-server/paper-patches/features/0010-Virtual-Threads.patch b/divinemc-server/paper-patches/features/0009-Virtual-Threads.patch similarity index 97% rename from divinemc-server/paper-patches/features/0010-Virtual-Threads.patch rename to divinemc-server/paper-patches/features/0009-Virtual-Threads.patch index 2ed537c..48ca51d 100644 --- a/divinemc-server/paper-patches/features/0010-Virtual-Threads.patch +++ b/divinemc-server/paper-patches/features/0009-Virtual-Threads.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Virtual Threads diff --git a/src/main/java/io/papermc/paper/util/MCUtil.java b/src/main/java/io/papermc/paper/util/MCUtil.java -index a4ac34ebb58a404f4fca7e763e61d4ab05ee3af4..3c7f66571ca346e9776ba6044bbb0f0263f34157 100644 +index 8756aedc6943f80a64e89be36f4cce0fd0348a0f..2ebaed19ced1901d2d849cbd2351a75ca854e1c8 100644 --- a/src/main/java/io/papermc/paper/util/MCUtil.java +++ b/src/main/java/io/papermc/paper/util/MCUtil.java @@ -37,7 +37,7 @@ public final class MCUtil { diff --git a/divinemc-server/paper-patches/features/0011-Multithreaded-Tracker.patch b/divinemc-server/paper-patches/features/0010-Multithreaded-Tracker.patch similarity index 66% rename from divinemc-server/paper-patches/features/0011-Multithreaded-Tracker.patch rename to divinemc-server/paper-patches/features/0010-Multithreaded-Tracker.patch index 075937c..a94aa86 100644 --- a/divinemc-server/paper-patches/features/0011-Multithreaded-Tracker.patch +++ b/divinemc-server/paper-patches/features/0010-Multithreaded-Tracker.patch @@ -5,11 +5,11 @@ Subject: [PATCH] Multithreaded Tracker diff --git a/src/main/java/io/papermc/paper/plugin/manager/PaperEventManager.java b/src/main/java/io/papermc/paper/plugin/manager/PaperEventManager.java -index 124715b53090085fc0a9f50bb2df196d31d89bed..adf526bcb5b4df3b798a8b80ad11b7b2c30775d7 100644 +index d7398b1ecf2660c29fb7d106b48fe02d3736603e..a9ec83b5bcb329bf3d2f3fb0e502685a37f9dcbc 100644 --- a/src/main/java/io/papermc/paper/plugin/manager/PaperEventManager.java +++ b/src/main/java/io/papermc/paper/plugin/manager/PaperEventManager.java -@@ -49,6 +49,12 @@ class PaperEventManager { - // DivineMC end - Parallel world ticking +@@ -42,6 +42,12 @@ class PaperEventManager { + if (event.isAsynchronous() && this.server.isPrimaryThread()) { throw new IllegalStateException(event.getEventName() + " may only be triggered asynchronously."); } else if (!event.isAsynchronous() && !this.server.isPrimaryThread() && !this.server.isStopping()) { + // DivineMC start - Multithreaded Tracker @@ -22,33 +22,33 @@ index 124715b53090085fc0a9f50bb2df196d31d89bed..adf526bcb5b4df3b798a8b80ad11b7b2 } diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -index 59ee059f8d2d96b5e5ae507f209d267da24c9fa1..68c529473e9ce24cb6c6108cb65100757d1d8759 100644 +index f32316b0357f1cb0501a052361a0221f8e9d1438..2e28891cb4c058c022b06040c0283aacf4c2445e 100644 --- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java +++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -@@ -1996,6 +1996,26 @@ public class CraftEventFactory { +@@ -1751,6 +1751,26 @@ public class CraftEventFactory { } - public static boolean handleBlockFormEvent(Level world, BlockPos pos, net.minecraft.world.level.block.state.BlockState block, int flag, @Nullable Entity entity) { + public static boolean handleBlockFormEvent(Level world, BlockPos pos, net.minecraft.world.level.block.state.BlockState state, int flags, @Nullable Entity entity, boolean checkSetResult) { + // DivineMC start - Multithreaded Tracker + if (org.bxteam.divinemc.DivineConfig.multithreadedEnabled && Thread.currentThread() instanceof org.bxteam.divinemc.entity.tracking.MultithreadedTracker.MultithreadedTrackerThread) { + java.util.concurrent.CompletableFuture future = new java.util.concurrent.CompletableFuture<>(); + net.minecraft.server.MinecraftServer.getServer().scheduleOnMain(() -> { -+ CraftBlockState blockState = CraftBlockStates.getBlockState(world, pos, flag); -+ blockState.setData(block); ++ boolean resultFlag = false; ++ CraftBlockState snapshot = CraftBlockStates.getBlockState(world, pos); ++ snapshot.setData(state); + -+ BlockFormEvent event = (entity == null) ? new BlockFormEvent(blockState.getBlock(), blockState) : new EntityBlockFormEvent(entity.getBukkitEntity(), blockState.getBlock(), blockState); -+ world.getCraftServer().getPluginManager().callEvent(event); -+ -+ if (!event.isCancelled()) { -+ blockState.update(true); ++ BlockFormEvent event = (entity == null) ? new BlockFormEvent(snapshot.getBlock(), snapshot) : new EntityBlockFormEvent(entity.getBukkitEntity(), snapshot.getBlock(), snapshot); ++ if (event.callEvent()) { ++ boolean result = snapshot.place(flags); ++ resultFlag = !checkSetResult || result; + } + -+ future.complete(!event.isCancelled()); ++ future.complete(resultFlag); + }); + + return future.join(); + } + // DivineMC end - Multithreaded Tracker - CraftBlockState blockState = CraftBlockStates.getBlockState(world, pos, flag); - blockState.setData(block); + CraftBlockState snapshot = CraftBlockStates.getBlockState(world, pos); + snapshot.setData(state); diff --git a/divinemc-server/paper-patches/features/0012-Paper-PR-Add-FillBottleEvents-for-player-and-dispens.patch b/divinemc-server/paper-patches/features/0011-Paper-PR-Add-FillBottleEvents-for-player-and-dispens.patch similarity index 90% rename from divinemc-server/paper-patches/features/0012-Paper-PR-Add-FillBottleEvents-for-player-and-dispens.patch rename to divinemc-server/paper-patches/features/0011-Paper-PR-Add-FillBottleEvents-for-player-and-dispens.patch index 59136d6..b8fcd74 100644 --- a/divinemc-server/paper-patches/features/0012-Paper-PR-Add-FillBottleEvents-for-player-and-dispens.patch +++ b/divinemc-server/paper-patches/features/0011-Paper-PR-Add-FillBottleEvents-for-player-and-dispens.patch @@ -5,13 +5,13 @@ Subject: [PATCH] Paper PR: Add FillBottleEvents for player and dispenser diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -index 68c529473e9ce24cb6c6108cb65100757d1d8759..ba5adea7a791a9539ae485ef1c1641a56ca19236 100644 +index 2e28891cb4c058c022b06040c0283aacf4c2445e..e3ba9a423ca15d611196400e394a637c85669087 100644 --- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java +++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -@@ -2330,4 +2330,18 @@ public class CraftEventFactory { +@@ -2065,4 +2065,18 @@ public class CraftEventFactory { + return event; } - // Paper end - add EntityFertilizeEggEvent + + // DivineMC start - Paper PR: Add FillBottleEvents for player and dispenser + public static io.papermc.paper.event.player.PlayerFillBottleEvent callPlayerFillBottleEvent(net.minecraft.world.entity.player.Player player, InteractionHand hand, ItemStack glassBottle, ItemStack resultItem) { diff --git a/divinemc-server/paper-patches/features/0013-Paper-PR-Player-standing-on-position-API.patch b/divinemc-server/paper-patches/features/0012-Paper-PR-Player-standing-on-position-API.patch similarity index 81% rename from divinemc-server/paper-patches/features/0013-Paper-PR-Player-standing-on-position-API.patch rename to divinemc-server/paper-patches/features/0012-Paper-PR-Player-standing-on-position-API.patch index 574cf0c..a047a7a 100644 --- a/divinemc-server/paper-patches/features/0013-Paper-PR-Player-standing-on-position-API.patch +++ b/divinemc-server/paper-patches/features/0012-Paper-PR-Player-standing-on-position-API.patch @@ -5,12 +5,12 @@ Subject: [PATCH] Paper PR: Player standing on position API diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java -index 614e407814fe47dab58fbcbc49d8e9dd54b4245e..c0f25f97519d59919d965f53ea87dada537f3f00 100644 +index a138a364c73bc0b325391c9f30943769e54e4cda..e84408d1a64dbaba1500ee4d31df964d258f058f 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java -@@ -1355,6 +1355,20 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity { +@@ -1314,6 +1314,20 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity { + return this.entity.get(io.papermc.paper.datacomponent.PaperDataComponentType.bukkitToMinecraft(type)) != null; } - // Paper end - broadcast hurt animation + // Paper start - Player standing on position API + @Override diff --git a/divinemc-server/paper-patches/features/0014-Paper-PR-Throttle-failed-spawn-attempts.patch b/divinemc-server/paper-patches/features/0013-Paper-PR-Throttle-failed-spawn-attempts.patch similarity index 93% rename from divinemc-server/paper-patches/features/0014-Paper-PR-Throttle-failed-spawn-attempts.patch rename to divinemc-server/paper-patches/features/0013-Paper-PR-Throttle-failed-spawn-attempts.patch index 3c66bce..3d489d3 100644 --- a/divinemc-server/paper-patches/features/0014-Paper-PR-Throttle-failed-spawn-attempts.patch +++ b/divinemc-server/paper-patches/features/0013-Paper-PR-Throttle-failed-spawn-attempts.patch @@ -22,10 +22,10 @@ Example config in paper-world-defaults.yml: ``` diff --git a/src/main/java/io/papermc/paper/configuration/WorldConfiguration.java b/src/main/java/io/papermc/paper/configuration/WorldConfiguration.java -index 7bfa7aa30c1181587c7632f920f48348d2493ea4..d838c90f98c6593404c77d0aab8655c0d15905c4 100644 +index 65f6839fe75340a4b58894ad50c6eda7b59128c0..f7610c709bd6f9e30ec7b1295d58dfbe98fc8661 100644 --- a/src/main/java/io/papermc/paper/configuration/WorldConfiguration.java +++ b/src/main/java/io/papermc/paper/configuration/WorldConfiguration.java -@@ -181,6 +181,17 @@ public class WorldConfiguration extends ConfigurationPart { +@@ -182,6 +182,17 @@ public class WorldConfiguration extends ConfigurationPart { @MergeMap public Reference2IntMap ticksPerSpawn = Util.make(new Reference2IntOpenHashMap<>(NaturalSpawner.SPAWNING_CATEGORIES.length), map -> Arrays.stream(NaturalSpawner.SPAWNING_CATEGORIES).forEach(mobCategory -> map.put(mobCategory, -1))); diff --git a/divinemc-server/paper-patches/files/src/main/java/org/bukkit/craftbukkit/CraftServer.java.patch b/divinemc-server/paper-patches/files/src/main/java/org/bukkit/craftbukkit/CraftServer.java.patch index 6a7636e..8686bbe 100644 --- a/divinemc-server/paper-patches/files/src/main/java/org/bukkit/craftbukkit/CraftServer.java.patch +++ b/divinemc-server/paper-patches/files/src/main/java/org/bukkit/craftbukkit/CraftServer.java.patch @@ -1,6 +1,6 @@ --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -@@ -989,7 +_,7 @@ +@@ -967,7 +_,7 @@ @Override public List getWorlds() { diff --git a/divinemc-server/paper-patches/files/src/main/java/org/bukkit/craftbukkit/CraftWorld.java.patch b/divinemc-server/paper-patches/files/src/main/java/org/bukkit/craftbukkit/CraftWorld.java.patch index 8a2d54d..e3d8893 100644 --- a/divinemc-server/paper-patches/files/src/main/java/org/bukkit/craftbukkit/CraftWorld.java.patch +++ b/divinemc-server/paper-patches/files/src/main/java/org/bukkit/craftbukkit/CraftWorld.java.patch @@ -1,6 +1,6 @@ --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -@@ -466,7 +_,6 @@ +@@ -467,7 +_,6 @@ } this.unloadChunkRequest(x, z); diff --git a/divinemc-server/paper-patches/files/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java.patch b/divinemc-server/paper-patches/files/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java.patch deleted file mode 100644 index 9b7c787..0000000 --- a/divinemc-server/paper-patches/files/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -+++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -@@ -1979,7 +_,7 @@ - BlockFormEvent event = (entity == null) ? new BlockFormEvent(blockState.getBlock(), blockState) : new EntityBlockFormEvent(entity.getBukkitEntity(), blockState.getBlock(), blockState); - world.getCraftServer().getPluginManager().callEvent(event); - -- if (!event.isCancelled()) { -+ if (!event.isCancelled() && (BlockFormEvent.getHandlerList().getRegisteredListeners().length != 0)) { // DivineMC - skip block update if no listeners - blockState.update(true); - } - diff --git a/divinemc-server/paper-patches/features/0005-Parallel-world-ticking.patch b/patches/unapplied/server/0005-Parallel-world-ticking.patch similarity index 100% rename from divinemc-server/paper-patches/features/0005-Parallel-world-ticking.patch rename to patches/unapplied/server/0005-Parallel-world-ticking.patch diff --git a/divinemc-server/minecraft-patches/features/0001-Rebrand.patch b/patches/unapplied/server/minecraft-patches/features/0001-Rebrand.patch similarity index 100% rename from divinemc-server/minecraft-patches/features/0001-Rebrand.patch rename to patches/unapplied/server/minecraft-patches/features/0001-Rebrand.patch diff --git a/divinemc-server/minecraft-patches/features/0002-Configuration.patch b/patches/unapplied/server/minecraft-patches/features/0002-Configuration.patch similarity index 100% rename from divinemc-server/minecraft-patches/features/0002-Configuration.patch rename to patches/unapplied/server/minecraft-patches/features/0002-Configuration.patch diff --git a/divinemc-server/minecraft-patches/features/0003-Completely-remove-Mojang-profiler.patch b/patches/unapplied/server/minecraft-patches/features/0003-Completely-remove-Mojang-profiler.patch similarity index 100% rename from divinemc-server/minecraft-patches/features/0003-Completely-remove-Mojang-profiler.patch rename to patches/unapplied/server/minecraft-patches/features/0003-Completely-remove-Mojang-profiler.patch diff --git a/divinemc-server/minecraft-patches/features/0004-Implement-Secure-Seed.patch b/patches/unapplied/server/minecraft-patches/features/0004-Implement-Secure-Seed.patch similarity index 100% rename from divinemc-server/minecraft-patches/features/0004-Implement-Secure-Seed.patch rename to patches/unapplied/server/minecraft-patches/features/0004-Implement-Secure-Seed.patch diff --git a/divinemc-server/minecraft-patches/features/0005-Async-Pathfinding.patch b/patches/unapplied/server/minecraft-patches/features/0005-Async-Pathfinding.patch similarity index 100% rename from divinemc-server/minecraft-patches/features/0005-Async-Pathfinding.patch rename to patches/unapplied/server/minecraft-patches/features/0005-Async-Pathfinding.patch diff --git a/divinemc-server/minecraft-patches/features/0006-Multithreaded-Tracker.patch b/patches/unapplied/server/minecraft-patches/features/0006-Multithreaded-Tracker.patch similarity index 100% rename from divinemc-server/minecraft-patches/features/0006-Multithreaded-Tracker.patch rename to patches/unapplied/server/minecraft-patches/features/0006-Multithreaded-Tracker.patch diff --git a/divinemc-server/minecraft-patches/features/0007-Async-locate-command.patch b/patches/unapplied/server/minecraft-patches/features/0007-Async-locate-command.patch similarity index 100% rename from divinemc-server/minecraft-patches/features/0007-Async-locate-command.patch rename to patches/unapplied/server/minecraft-patches/features/0007-Async-locate-command.patch diff --git a/divinemc-server/minecraft-patches/features/0008-Parallel-world-ticking.patch b/patches/unapplied/server/minecraft-patches/features/0008-Parallel-world-ticking.patch similarity index 100% rename from divinemc-server/minecraft-patches/features/0008-Parallel-world-ticking.patch rename to patches/unapplied/server/minecraft-patches/features/0008-Parallel-world-ticking.patch diff --git a/divinemc-server/minecraft-patches/features/0009-Misc-Optimizations.patch b/patches/unapplied/server/minecraft-patches/features/0009-Misc-Optimizations.patch similarity index 100% rename from divinemc-server/minecraft-patches/features/0009-Misc-Optimizations.patch rename to patches/unapplied/server/minecraft-patches/features/0009-Misc-Optimizations.patch diff --git a/divinemc-server/minecraft-patches/features/0010-Chunk-System-Optimizations.patch b/patches/unapplied/server/minecraft-patches/features/0010-Chunk-System-Optimizations.patch similarity index 100% rename from divinemc-server/minecraft-patches/features/0010-Chunk-System-Optimizations.patch rename to patches/unapplied/server/minecraft-patches/features/0010-Chunk-System-Optimizations.patch diff --git a/divinemc-server/minecraft-patches/features/0011-Optimize-Fluids.patch b/patches/unapplied/server/minecraft-patches/features/0011-Optimize-Fluids.patch similarity index 100% rename from divinemc-server/minecraft-patches/features/0011-Optimize-Fluids.patch rename to patches/unapplied/server/minecraft-patches/features/0011-Optimize-Fluids.patch diff --git a/divinemc-server/minecraft-patches/features/0012-Optimize-entity-stupid-brain.patch b/patches/unapplied/server/minecraft-patches/features/0012-Optimize-entity-stupid-brain.patch similarity index 100% rename from divinemc-server/minecraft-patches/features/0012-Optimize-entity-stupid-brain.patch rename to patches/unapplied/server/minecraft-patches/features/0012-Optimize-entity-stupid-brain.patch diff --git a/divinemc-server/minecraft-patches/features/0013-Clump-experience-orbs.patch b/patches/unapplied/server/minecraft-patches/features/0013-Clump-experience-orbs.patch similarity index 100% rename from divinemc-server/minecraft-patches/features/0013-Clump-experience-orbs.patch rename to patches/unapplied/server/minecraft-patches/features/0013-Clump-experience-orbs.patch diff --git a/divinemc-server/minecraft-patches/features/0014-Optimize-explosions.patch b/patches/unapplied/server/minecraft-patches/features/0014-Optimize-explosions.patch similarity index 100% rename from divinemc-server/minecraft-patches/features/0014-Optimize-explosions.patch rename to patches/unapplied/server/minecraft-patches/features/0014-Optimize-explosions.patch diff --git a/divinemc-server/minecraft-patches/features/0015-Option-to-allow-weird-movement-and-disable-teleporti.patch b/patches/unapplied/server/minecraft-patches/features/0015-Option-to-allow-weird-movement-and-disable-teleporti.patch similarity index 100% rename from divinemc-server/minecraft-patches/features/0015-Option-to-allow-weird-movement-and-disable-teleporti.patch rename to patches/unapplied/server/minecraft-patches/features/0015-Option-to-allow-weird-movement-and-disable-teleporti.patch diff --git a/divinemc-server/minecraft-patches/features/0016-Lag-compensation.patch b/patches/unapplied/server/minecraft-patches/features/0016-Lag-compensation.patch similarity index 100% rename from divinemc-server/minecraft-patches/features/0016-Lag-compensation.patch rename to patches/unapplied/server/minecraft-patches/features/0016-Lag-compensation.patch diff --git a/divinemc-server/minecraft-patches/features/0017-MSPT-Tracking-for-each-world.patch b/patches/unapplied/server/minecraft-patches/features/0017-MSPT-Tracking-for-each-world.patch similarity index 100% rename from divinemc-server/minecraft-patches/features/0017-MSPT-Tracking-for-each-world.patch rename to patches/unapplied/server/minecraft-patches/features/0017-MSPT-Tracking-for-each-world.patch diff --git a/divinemc-server/minecraft-patches/features/0018-Skip-EntityScheduler-s-executeTick-checks-if-there-i.patch b/patches/unapplied/server/minecraft-patches/features/0018-Skip-EntityScheduler-s-executeTick-checks-if-there-i.patch similarity index 100% rename from divinemc-server/minecraft-patches/features/0018-Skip-EntityScheduler-s-executeTick-checks-if-there-i.patch rename to patches/unapplied/server/minecraft-patches/features/0018-Skip-EntityScheduler-s-executeTick-checks-if-there-i.patch diff --git a/divinemc-server/minecraft-patches/features/0019-Carpet-Fixes-RecipeManager-Optimize.patch b/patches/unapplied/server/minecraft-patches/features/0019-Carpet-Fixes-RecipeManager-Optimize.patch similarity index 100% rename from divinemc-server/minecraft-patches/features/0019-Carpet-Fixes-RecipeManager-Optimize.patch rename to patches/unapplied/server/minecraft-patches/features/0019-Carpet-Fixes-RecipeManager-Optimize.patch diff --git a/divinemc-server/minecraft-patches/features/0020-Snowball-and-Egg-knockback.patch b/patches/unapplied/server/minecraft-patches/features/0020-Snowball-and-Egg-knockback.patch similarity index 100% rename from divinemc-server/minecraft-patches/features/0020-Snowball-and-Egg-knockback.patch rename to patches/unapplied/server/minecraft-patches/features/0020-Snowball-and-Egg-knockback.patch diff --git a/divinemc-server/minecraft-patches/features/0021-Block-Log4Shell-exploit.patch b/patches/unapplied/server/minecraft-patches/features/0021-Block-Log4Shell-exploit.patch similarity index 100% rename from divinemc-server/minecraft-patches/features/0021-Block-Log4Shell-exploit.patch rename to patches/unapplied/server/minecraft-patches/features/0021-Block-Log4Shell-exploit.patch diff --git a/divinemc-server/minecraft-patches/features/0022-Re-Fix-MC-117075.patch b/patches/unapplied/server/minecraft-patches/features/0022-Re-Fix-MC-117075.patch similarity index 100% rename from divinemc-server/minecraft-patches/features/0022-Re-Fix-MC-117075.patch rename to patches/unapplied/server/minecraft-patches/features/0022-Re-Fix-MC-117075.patch diff --git a/divinemc-server/minecraft-patches/features/0023-Skip-distanceToSqr-call-in-ServerEntity-sendChanges-.patch b/patches/unapplied/server/minecraft-patches/features/0023-Skip-distanceToSqr-call-in-ServerEntity-sendChanges-.patch similarity index 100% rename from divinemc-server/minecraft-patches/features/0023-Skip-distanceToSqr-call-in-ServerEntity-sendChanges-.patch rename to patches/unapplied/server/minecraft-patches/features/0023-Skip-distanceToSqr-call-in-ServerEntity-sendChanges-.patch diff --git a/divinemc-server/minecraft-patches/features/0024-Optimize-canSee-checks.patch b/patches/unapplied/server/minecraft-patches/features/0024-Optimize-canSee-checks.patch similarity index 100% rename from divinemc-server/minecraft-patches/features/0024-Optimize-canSee-checks.patch rename to patches/unapplied/server/minecraft-patches/features/0024-Optimize-canSee-checks.patch diff --git a/divinemc-server/minecraft-patches/features/0025-Implement-NoChatReports.patch b/patches/unapplied/server/minecraft-patches/features/0025-Implement-NoChatReports.patch similarity index 100% rename from divinemc-server/minecraft-patches/features/0025-Implement-NoChatReports.patch rename to patches/unapplied/server/minecraft-patches/features/0025-Implement-NoChatReports.patch diff --git a/divinemc-server/minecraft-patches/features/0026-Optimize-Structure-Generation.patch b/patches/unapplied/server/minecraft-patches/features/0026-Optimize-Structure-Generation.patch similarity index 100% rename from divinemc-server/minecraft-patches/features/0026-Optimize-Structure-Generation.patch rename to patches/unapplied/server/minecraft-patches/features/0026-Optimize-Structure-Generation.patch diff --git a/divinemc-server/minecraft-patches/features/0027-Verify-Minecraft-EULA-earlier.patch b/patches/unapplied/server/minecraft-patches/features/0027-Verify-Minecraft-EULA-earlier.patch similarity index 100% rename from divinemc-server/minecraft-patches/features/0027-Verify-Minecraft-EULA-earlier.patch rename to patches/unapplied/server/minecraft-patches/features/0027-Verify-Minecraft-EULA-earlier.patch diff --git a/divinemc-server/minecraft-patches/features/0028-Configurable-MC-67.patch b/patches/unapplied/server/minecraft-patches/features/0028-Configurable-MC-67.patch similarity index 100% rename from divinemc-server/minecraft-patches/features/0028-Configurable-MC-67.patch rename to patches/unapplied/server/minecraft-patches/features/0028-Configurable-MC-67.patch diff --git a/divinemc-server/minecraft-patches/features/0029-Option-to-disable-saving-of-snowball-and-firework.patch b/patches/unapplied/server/minecraft-patches/features/0029-Option-to-disable-saving-of-snowball-and-firework.patch similarity index 100% rename from divinemc-server/minecraft-patches/features/0029-Option-to-disable-saving-of-snowball-and-firework.patch rename to patches/unapplied/server/minecraft-patches/features/0029-Option-to-disable-saving-of-snowball-and-firework.patch diff --git a/divinemc-server/minecraft-patches/features/0030-Catch-update-suppressors.patch b/patches/unapplied/server/minecraft-patches/features/0030-Catch-update-suppressors.patch similarity index 100% rename from divinemc-server/minecraft-patches/features/0030-Catch-update-suppressors.patch rename to patches/unapplied/server/minecraft-patches/features/0030-Catch-update-suppressors.patch diff --git a/divinemc-server/minecraft-patches/features/0031-lithium-fast_util.patch b/patches/unapplied/server/minecraft-patches/features/0031-lithium-fast_util.patch similarity index 100% rename from divinemc-server/minecraft-patches/features/0031-lithium-fast_util.patch rename to patches/unapplied/server/minecraft-patches/features/0031-lithium-fast_util.patch diff --git a/divinemc-server/minecraft-patches/features/0032-Virtual-Threads.patch b/patches/unapplied/server/minecraft-patches/features/0032-Virtual-Threads.patch similarity index 100% rename from divinemc-server/minecraft-patches/features/0032-Virtual-Threads.patch rename to patches/unapplied/server/minecraft-patches/features/0032-Virtual-Threads.patch diff --git a/divinemc-server/minecraft-patches/features/0033-Regionized-Chunk-Ticking.patch b/patches/unapplied/server/minecraft-patches/features/0033-Regionized-Chunk-Ticking.patch similarity index 100% rename from divinemc-server/minecraft-patches/features/0033-Regionized-Chunk-Ticking.patch rename to patches/unapplied/server/minecraft-patches/features/0033-Regionized-Chunk-Ticking.patch diff --git a/divinemc-server/minecraft-patches/features/0034-Async-Chunk-Sending.patch b/patches/unapplied/server/minecraft-patches/features/0034-Async-Chunk-Sending.patch similarity index 100% rename from divinemc-server/minecraft-patches/features/0034-Async-Chunk-Sending.patch rename to patches/unapplied/server/minecraft-patches/features/0034-Async-Chunk-Sending.patch diff --git a/divinemc-server/minecraft-patches/features/0035-Option-to-disable-disconnect.spam.patch b/patches/unapplied/server/minecraft-patches/features/0035-Option-to-disable-disconnect.spam.patch similarity index 100% rename from divinemc-server/minecraft-patches/features/0035-Option-to-disable-disconnect.spam.patch rename to patches/unapplied/server/minecraft-patches/features/0035-Option-to-disable-disconnect.spam.patch diff --git a/divinemc-server/minecraft-patches/features/0036-Configurable-MC-59471.patch b/patches/unapplied/server/minecraft-patches/features/0036-Configurable-MC-59471.patch similarity index 100% rename from divinemc-server/minecraft-patches/features/0036-Configurable-MC-59471.patch rename to patches/unapplied/server/minecraft-patches/features/0036-Configurable-MC-59471.patch diff --git a/divinemc-server/minecraft-patches/features/0037-ModernFix-compact_bit_storage.patch b/patches/unapplied/server/minecraft-patches/features/0037-ModernFix-compact_bit_storage.patch similarity index 100% rename from divinemc-server/minecraft-patches/features/0037-ModernFix-compact_bit_storage.patch rename to patches/unapplied/server/minecraft-patches/features/0037-ModernFix-compact_bit_storage.patch diff --git a/divinemc-server/minecraft-patches/features/0038-Command-block-parse-results-caching.patch b/patches/unapplied/server/minecraft-patches/features/0038-Command-block-parse-results-caching.patch similarity index 100% rename from divinemc-server/minecraft-patches/features/0038-Command-block-parse-results-caching.patch rename to patches/unapplied/server/minecraft-patches/features/0038-Command-block-parse-results-caching.patch diff --git a/divinemc-server/minecraft-patches/features/0039-Linear-region-file-format.patch b/patches/unapplied/server/minecraft-patches/features/0039-Linear-region-file-format.patch similarity index 100% rename from divinemc-server/minecraft-patches/features/0039-Linear-region-file-format.patch rename to patches/unapplied/server/minecraft-patches/features/0039-Linear-region-file-format.patch diff --git a/divinemc-server/minecraft-patches/features/0040-Async-mob-spawning.patch b/patches/unapplied/server/minecraft-patches/features/0040-Async-mob-spawning.patch similarity index 100% rename from divinemc-server/minecraft-patches/features/0040-Async-mob-spawning.patch rename to patches/unapplied/server/minecraft-patches/features/0040-Async-mob-spawning.patch diff --git a/divinemc-server/minecraft-patches/features/0041-Dynamic-Activation-of-Brain.patch b/patches/unapplied/server/minecraft-patches/features/0041-Dynamic-Activation-of-Brain.patch similarity index 100% rename from divinemc-server/minecraft-patches/features/0041-Dynamic-Activation-of-Brain.patch rename to patches/unapplied/server/minecraft-patches/features/0041-Dynamic-Activation-of-Brain.patch diff --git a/divinemc-server/minecraft-patches/features/0042-Configurable-movement-speed-for-entities.patch b/patches/unapplied/server/minecraft-patches/features/0042-Configurable-movement-speed-for-entities.patch similarity index 100% rename from divinemc-server/minecraft-patches/features/0042-Configurable-movement-speed-for-entities.patch rename to patches/unapplied/server/minecraft-patches/features/0042-Configurable-movement-speed-for-entities.patch diff --git a/divinemc-server/minecraft-patches/features/0043-Paper-PR-Add-FillBottleEvents-for-player-and-dispens.patch b/patches/unapplied/server/minecraft-patches/features/0043-Paper-PR-Add-FillBottleEvents-for-player-and-dispens.patch similarity index 100% rename from divinemc-server/minecraft-patches/features/0043-Paper-PR-Add-FillBottleEvents-for-player-and-dispens.patch rename to patches/unapplied/server/minecraft-patches/features/0043-Paper-PR-Add-FillBottleEvents-for-player-and-dispens.patch diff --git a/divinemc-server/minecraft-patches/features/0044-Leaf-Improve-BlockEntity-ticking-isRemoved-check.patch b/patches/unapplied/server/minecraft-patches/features/0044-Leaf-Improve-BlockEntity-ticking-isRemoved-check.patch similarity index 100% rename from divinemc-server/minecraft-patches/features/0044-Leaf-Improve-BlockEntity-ticking-isRemoved-check.patch rename to patches/unapplied/server/minecraft-patches/features/0044-Leaf-Improve-BlockEntity-ticking-isRemoved-check.patch diff --git a/divinemc-server/minecraft-patches/features/0045-Paper-PR-Throttle-failed-spawn-attempts.patch b/patches/unapplied/server/minecraft-patches/features/0045-Paper-PR-Throttle-failed-spawn-attempts.patch similarity index 100% rename from divinemc-server/minecraft-patches/features/0045-Paper-PR-Throttle-failed-spawn-attempts.patch rename to patches/unapplied/server/minecraft-patches/features/0045-Paper-PR-Throttle-failed-spawn-attempts.patch diff --git a/divinemc-server/minecraft-patches/features/0046-Optimize-Raids.patch b/patches/unapplied/server/minecraft-patches/features/0046-Optimize-Raids.patch similarity index 100% rename from divinemc-server/minecraft-patches/features/0046-Optimize-Raids.patch rename to patches/unapplied/server/minecraft-patches/features/0046-Optimize-Raids.patch diff --git a/divinemc-server/minecraft-patches/features/0047-SparklyPaper-Allow-throttling-hopper-checks-if-the-t.patch b/patches/unapplied/server/minecraft-patches/features/0047-SparklyPaper-Allow-throttling-hopper-checks-if-the-t.patch similarity index 100% rename from divinemc-server/minecraft-patches/features/0047-SparklyPaper-Allow-throttling-hopper-checks-if-the-t.patch rename to patches/unapplied/server/minecraft-patches/features/0047-SparklyPaper-Allow-throttling-hopper-checks-if-the-t.patch diff --git a/divinemc-server/minecraft-patches/sources/io/papermc/paper/command/subcommands/FixLightCommand.java.patch b/patches/unapplied/server/minecraft-patches/sources/io/papermc/paper/command/subcommands/FixLightCommand.java.patch similarity index 100% rename from divinemc-server/minecraft-patches/sources/io/papermc/paper/command/subcommands/FixLightCommand.java.patch rename to patches/unapplied/server/minecraft-patches/sources/io/papermc/paper/command/subcommands/FixLightCommand.java.patch diff --git a/divinemc-server/minecraft-patches/sources/net/minecraft/advancements/critereon/SimpleCriterionTrigger.java.patch b/patches/unapplied/server/minecraft-patches/sources/net/minecraft/advancements/critereon/SimpleCriterionTrigger.java.patch similarity index 100% rename from divinemc-server/minecraft-patches/sources/net/minecraft/advancements/critereon/SimpleCriterionTrigger.java.patch rename to patches/unapplied/server/minecraft-patches/sources/net/minecraft/advancements/critereon/SimpleCriterionTrigger.java.patch diff --git a/divinemc-server/minecraft-patches/sources/net/minecraft/server/MinecraftServer.java.patch b/patches/unapplied/server/minecraft-patches/sources/net/minecraft/server/MinecraftServer.java.patch similarity index 100% rename from divinemc-server/minecraft-patches/sources/net/minecraft/server/MinecraftServer.java.patch rename to patches/unapplied/server/minecraft-patches/sources/net/minecraft/server/MinecraftServer.java.patch diff --git a/divinemc-server/minecraft-patches/sources/net/minecraft/server/PlayerAdvancements.java.patch b/patches/unapplied/server/minecraft-patches/sources/net/minecraft/server/PlayerAdvancements.java.patch similarity index 100% rename from divinemc-server/minecraft-patches/sources/net/minecraft/server/PlayerAdvancements.java.patch rename to patches/unapplied/server/minecraft-patches/sources/net/minecraft/server/PlayerAdvancements.java.patch diff --git a/divinemc-server/minecraft-patches/sources/net/minecraft/server/level/ServerPlayer.java.patch b/patches/unapplied/server/minecraft-patches/sources/net/minecraft/server/level/ServerPlayer.java.patch similarity index 100% rename from divinemc-server/minecraft-patches/sources/net/minecraft/server/level/ServerPlayer.java.patch rename to patches/unapplied/server/minecraft-patches/sources/net/minecraft/server/level/ServerPlayer.java.patch diff --git a/divinemc-server/minecraft-patches/sources/net/minecraft/server/network/ServerGamePacketListenerImpl.java.patch b/patches/unapplied/server/minecraft-patches/sources/net/minecraft/server/network/ServerGamePacketListenerImpl.java.patch similarity index 100% rename from divinemc-server/minecraft-patches/sources/net/minecraft/server/network/ServerGamePacketListenerImpl.java.patch rename to patches/unapplied/server/minecraft-patches/sources/net/minecraft/server/network/ServerGamePacketListenerImpl.java.patch diff --git a/divinemc-server/minecraft-patches/sources/net/minecraft/server/network/ServerStatusPacketListenerImpl.java.patch b/patches/unapplied/server/minecraft-patches/sources/net/minecraft/server/network/ServerStatusPacketListenerImpl.java.patch similarity index 100% rename from divinemc-server/minecraft-patches/sources/net/minecraft/server/network/ServerStatusPacketListenerImpl.java.patch rename to patches/unapplied/server/minecraft-patches/sources/net/minecraft/server/network/ServerStatusPacketListenerImpl.java.patch diff --git a/divinemc-server/minecraft-patches/sources/net/minecraft/server/players/PlayerList.java.patch b/patches/unapplied/server/minecraft-patches/sources/net/minecraft/server/players/PlayerList.java.patch similarity index 100% rename from divinemc-server/minecraft-patches/sources/net/minecraft/server/players/PlayerList.java.patch rename to patches/unapplied/server/minecraft-patches/sources/net/minecraft/server/players/PlayerList.java.patch diff --git a/divinemc-server/minecraft-patches/sources/net/minecraft/server/rcon/RconConsoleSource.java.patch b/patches/unapplied/server/minecraft-patches/sources/net/minecraft/server/rcon/RconConsoleSource.java.patch similarity index 100% rename from divinemc-server/minecraft-patches/sources/net/minecraft/server/rcon/RconConsoleSource.java.patch rename to patches/unapplied/server/minecraft-patches/sources/net/minecraft/server/rcon/RconConsoleSource.java.patch diff --git a/divinemc-server/minecraft-patches/sources/net/minecraft/stats/ServerStatsCounter.java.patch b/patches/unapplied/server/minecraft-patches/sources/net/minecraft/stats/ServerStatsCounter.java.patch similarity index 100% rename from divinemc-server/minecraft-patches/sources/net/minecraft/stats/ServerStatsCounter.java.patch rename to patches/unapplied/server/minecraft-patches/sources/net/minecraft/stats/ServerStatsCounter.java.patch diff --git a/divinemc-server/minecraft-patches/sources/net/minecraft/util/thread/BlockableEventLoop.java.patch b/patches/unapplied/server/minecraft-patches/sources/net/minecraft/util/thread/BlockableEventLoop.java.patch similarity index 100% rename from divinemc-server/minecraft-patches/sources/net/minecraft/util/thread/BlockableEventLoop.java.patch rename to patches/unapplied/server/minecraft-patches/sources/net/minecraft/util/thread/BlockableEventLoop.java.patch diff --git a/divinemc-server/minecraft-patches/sources/net/minecraft/world/entity/LivingEntity.java.patch b/patches/unapplied/server/minecraft-patches/sources/net/minecraft/world/entity/LivingEntity.java.patch similarity index 100% rename from divinemc-server/minecraft-patches/sources/net/minecraft/world/entity/LivingEntity.java.patch rename to patches/unapplied/server/minecraft-patches/sources/net/minecraft/world/entity/LivingEntity.java.patch diff --git a/divinemc-server/minecraft-patches/sources/net/minecraft/world/entity/ai/goal/target/HurtByTargetGoal.java.patch b/patches/unapplied/server/minecraft-patches/sources/net/minecraft/world/entity/ai/goal/target/HurtByTargetGoal.java.patch similarity index 100% rename from divinemc-server/minecraft-patches/sources/net/minecraft/world/entity/ai/goal/target/HurtByTargetGoal.java.patch rename to patches/unapplied/server/minecraft-patches/sources/net/minecraft/world/entity/ai/goal/target/HurtByTargetGoal.java.patch diff --git a/divinemc-server/minecraft-patches/sources/net/minecraft/world/entity/ai/sensing/SecondaryPoiSensor.java.patch b/patches/unapplied/server/minecraft-patches/sources/net/minecraft/world/entity/ai/sensing/SecondaryPoiSensor.java.patch similarity index 100% rename from divinemc-server/minecraft-patches/sources/net/minecraft/world/entity/ai/sensing/SecondaryPoiSensor.java.patch rename to patches/unapplied/server/minecraft-patches/sources/net/minecraft/world/entity/ai/sensing/SecondaryPoiSensor.java.patch diff --git a/divinemc-server/minecraft-patches/sources/net/minecraft/world/entity/monster/ZombieVillager.java.patch b/patches/unapplied/server/minecraft-patches/sources/net/minecraft/world/entity/monster/ZombieVillager.java.patch similarity index 100% rename from divinemc-server/minecraft-patches/sources/net/minecraft/world/entity/monster/ZombieVillager.java.patch rename to patches/unapplied/server/minecraft-patches/sources/net/minecraft/world/entity/monster/ZombieVillager.java.patch diff --git a/divinemc-server/minecraft-patches/sources/net/minecraft/world/entity/player/Player.java.patch b/patches/unapplied/server/minecraft-patches/sources/net/minecraft/world/entity/player/Player.java.patch similarity index 100% rename from divinemc-server/minecraft-patches/sources/net/minecraft/world/entity/player/Player.java.patch rename to patches/unapplied/server/minecraft-patches/sources/net/minecraft/world/entity/player/Player.java.patch diff --git a/divinemc-server/minecraft-patches/sources/net/minecraft/world/level/BaseCommandBlock.java.patch b/patches/unapplied/server/minecraft-patches/sources/net/minecraft/world/level/BaseCommandBlock.java.patch similarity index 100% rename from divinemc-server/minecraft-patches/sources/net/minecraft/world/level/BaseCommandBlock.java.patch rename to patches/unapplied/server/minecraft-patches/sources/net/minecraft/world/level/BaseCommandBlock.java.patch diff --git a/divinemc-server/minecraft-patches/sources/net/minecraft/world/level/block/Blocks.java.patch b/patches/unapplied/server/minecraft-patches/sources/net/minecraft/world/level/block/Blocks.java.patch similarity index 100% rename from divinemc-server/minecraft-patches/sources/net/minecraft/world/level/block/Blocks.java.patch rename to patches/unapplied/server/minecraft-patches/sources/net/minecraft/world/level/block/Blocks.java.patch diff --git a/divinemc-server/minecraft-patches/sources/net/minecraft/world/level/block/LeavesBlock.java.patch b/patches/unapplied/server/minecraft-patches/sources/net/minecraft/world/level/block/LeavesBlock.java.patch similarity index 100% rename from divinemc-server/minecraft-patches/sources/net/minecraft/world/level/block/LeavesBlock.java.patch rename to patches/unapplied/server/minecraft-patches/sources/net/minecraft/world/level/block/LeavesBlock.java.patch diff --git a/divinemc-server/minecraft-patches/sources/net/minecraft/world/level/block/SlimeBlock.java.patch b/patches/unapplied/server/minecraft-patches/sources/net/minecraft/world/level/block/SlimeBlock.java.patch similarity index 100% rename from divinemc-server/minecraft-patches/sources/net/minecraft/world/level/block/SlimeBlock.java.patch rename to patches/unapplied/server/minecraft-patches/sources/net/minecraft/world/level/block/SlimeBlock.java.patch diff --git a/divinemc-server/minecraft-patches/sources/net/minecraft/world/level/chunk/LevelChunk.java.patch b/patches/unapplied/server/minecraft-patches/sources/net/minecraft/world/level/chunk/LevelChunk.java.patch similarity index 100% rename from divinemc-server/minecraft-patches/sources/net/minecraft/world/level/chunk/LevelChunk.java.patch rename to patches/unapplied/server/minecraft-patches/sources/net/minecraft/world/level/chunk/LevelChunk.java.patch diff --git a/divinemc-server/minecraft-patches/sources/net/minecraft/world/level/levelgen/SurfaceRules.java.patch b/patches/unapplied/server/minecraft-patches/sources/net/minecraft/world/level/levelgen/SurfaceRules.java.patch similarity index 100% rename from divinemc-server/minecraft-patches/sources/net/minecraft/world/level/levelgen/SurfaceRules.java.patch rename to patches/unapplied/server/minecraft-patches/sources/net/minecraft/world/level/levelgen/SurfaceRules.java.patch