diff --git a/.github/workflows/build.yml b/.github/workflows_disabled/build.yml similarity index 100% rename from .github/workflows/build.yml rename to .github/workflows_disabled/build.yml diff --git a/.github/workflows/issues-check-version.yml b/.github/workflows_disabled/issues-check-version.yml similarity index 100% rename from .github/workflows/issues-check-version.yml rename to .github/workflows_disabled/issues-check-version.yml diff --git a/.github/workflows/test.yml b/.github/workflows_disabled/test.yml similarity index 100% rename from .github/workflows/test.yml rename to .github/workflows_disabled/test.yml diff --git a/gradle.properties b/gradle.properties index 554b95ac..4ed80354 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,7 +1,11 @@ group=org.leavesmc.leaves -version=1.21.5-R0.1-SNAPSHOT -mcVersion=1.21.5 -paperRef=2ba1675c7506cadd8a540ea452e5dafb79ae8947 +version=1.21.7-R0.1-SNAPSHOT +mcVersion=1.21.7 +paperRef=0cadaefc094c1d25eb19332cfebc02f9b5885c4a + +# Set to true while updating Minecraft version +updatingMinecraft=true + preVersion=true org.gradle.caching=true org.gradle.parallel=true diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 18362b78..fa5602a8 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-8.12-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.14.2-bin.zip networkTimeout=10000 zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/gradlew b/gradlew index f5feea6d..23d15a93 100755 --- a/gradlew +++ b/gradlew @@ -86,8 +86,7 @@ done # shellcheck disable=SC2034 APP_BASE_NAME=${0##*/} # Discard cd standard output in case $CDPATH is set (https://github.com/gradle/gradle/issues/25036) -APP_HOME=$( cd -P "${APP_HOME:-./}" > /dev/null && printf '%s -' "$PWD" ) || exit +APP_HOME=$( cd -P "${APP_HOME:-./}" > /dev/null && printf '%s\n' "$PWD" ) || exit # Use the maximum available, or set MAX_FD != -1 to use that value. MAX_FD=maximum @@ -115,7 +114,7 @@ case "$( uname )" in #( NONSTOP* ) nonstop=true ;; esac -CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar +CLASSPATH="\\\"\\\"" # Determine the Java command to use to start the JVM. @@ -206,7 +205,7 @@ fi DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' # Collect all arguments for the java command: -# * DEFAULT_JVM_OPTS, JAVA_OPTS, JAVA_OPTS, and optsEnvironmentVar are not allowed to contain shell fragments, +# * DEFAULT_JVM_OPTS, JAVA_OPTS, and optsEnvironmentVar are not allowed to contain shell fragments, # and any embedded shellness will be escaped. # * For example: A user cannot expect ${Hostname} to be expanded, as it is an environment variable and will be # treated as '${Hostname}' itself on the command line. @@ -214,7 +213,7 @@ DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' set -- \ "-Dorg.gradle.appname=$APP_BASE_NAME" \ -classpath "$CLASSPATH" \ - org.gradle.wrapper.GradleWrapperMain \ + -jar "$APP_HOME/gradle/wrapper/gradle-wrapper.jar" \ "$@" # Stop when "xargs" is not available. diff --git a/gradlew.bat b/gradlew.bat index 9d21a218..d22863ab 100644 --- a/gradlew.bat +++ b/gradlew.bat @@ -70,11 +70,11 @@ goto fail :execute @rem Setup the command line -set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar +set CLASSPATH= @rem Execute Gradle -"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %* +"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" -jar "%APP_HOME%\gradle\wrapper\gradle-wrapper.jar" %* :end @rem End local scope for the variables with windows NT shell @@ -91,4 +91,4 @@ exit /b %EXIT_CODE% :mainEnd if "%OS%"=="Windows_NT" endlocal -:omega +:omega \ No newline at end of file diff --git a/leaves-api/paper-patches/features/0001-Delete-Timings.patch b/leaves-api/paper-patches/features/0001-Delete-Timings.patch index 4adb90ae..663897de 100644 --- a/leaves-api/paper-patches/features/0001-Delete-Timings.patch +++ b/leaves-api/paper-patches/features/0001-Delete-Timings.patch @@ -2904,18 +2904,18 @@ index 59fada9b1eb78238d280c6bbb711f52facba52c6..eb4d78c6111a530d015a0b91d14c40ad return i >= j && i <= k; } diff --git a/src/main/java/org/bukkit/command/SimpleCommandMap.java b/src/main/java/org/bukkit/command/SimpleCommandMap.java -index 4acda947b7d69ab4133b4cc94e76d945e4d148d5..d356f1895e8f3fae14bbbe1f60e589af3856b9ec 100644 +index ad1330d87223dfcf3c9da40aa5ece8c21141f0d6..f561ac4ebd8d40266ae9f066e79045bb93113a53 100644 --- a/src/main/java/org/bukkit/command/SimpleCommandMap.java +++ b/src/main/java/org/bukkit/command/SimpleCommandMap.java -@@ -32,7 +32,6 @@ public class SimpleCommandMap implements CommandMap { - - private void setDefaultCommands() { - register("bukkit", new ReloadCommand("reload")); +@@ -34,7 +34,6 @@ public class SimpleCommandMap implements CommandMap { + final ReloadCommand reload = new ReloadCommand("reload"); + this.knownCommands.put("bukkit:reload", reload); + this.knownCommands.put("bukkit:rl", reload); - register("bukkit", new co.aikar.timings.TimingsCommand("timings")); } public void setFallbackCommands() { -@@ -64,7 +63,6 @@ public class SimpleCommandMap implements CommandMap { +@@ -66,7 +65,6 @@ public class SimpleCommandMap implements CommandMap { */ @Override public boolean register(@NotNull String label, @NotNull String fallbackPrefix, @NotNull Command command) { @@ -2923,7 +2923,7 @@ index 4acda947b7d69ab4133b4cc94e76d945e4d148d5..d356f1895e8f3fae14bbbe1f60e589af label = label.toLowerCase(Locale.ROOT).trim(); fallbackPrefix = fallbackPrefix.toLowerCase(Locale.ROOT).trim(); boolean registered = register(label, command, false, fallbackPrefix); -@@ -146,17 +144,9 @@ public class SimpleCommandMap implements CommandMap { +@@ -148,17 +146,9 @@ public class SimpleCommandMap implements CommandMap { return false; } @@ -2942,7 +2942,7 @@ index 4acda947b7d69ab4133b4cc94e76d945e4d148d5..d356f1895e8f3fae14bbbe1f60e589af server.getPluginManager().callEvent(new com.destroystokyo.paper.event.server.ServerExceptionEvent(new com.destroystokyo.paper.exception.ServerCommandException(ex, target, sender, args))); // Paper //target.timings.stopTiming(); // Spigot // Paper diff --git a/src/main/java/org/bukkit/plugin/SimplePluginManager.java b/src/main/java/org/bukkit/plugin/SimplePluginManager.java -index 001465eedafa51ac027a4db51cba6223edfe1171..dd98b4886d21ac92d9f9139450258754e985fb85 100644 +index dfc2d76403993640e6283f25f9f3647bb6d1a30c..cc2a208b7cb118134ca4088c622644b5d2fac1c0 100644 --- a/src/main/java/org/bukkit/plugin/SimplePluginManager.java +++ b/src/main/java/org/bukkit/plugin/SimplePluginManager.java @@ -720,7 +720,6 @@ public final class SimplePluginManager implements PluginManager { diff --git a/leaves-api/src/main/java/org/leavesmc/leaves/bytebuf/packet/PacketType.java b/leaves-api/src/main/java/org/leavesmc/leaves/bytebuf/packet/PacketType.java index a0c28ae8..63f95dfb 100644 --- a/leaves-api/src/main/java/org/leavesmc/leaves/bytebuf/packet/PacketType.java +++ b/leaves-api/src/main/java/org/leavesmc/leaves/bytebuf/packet/PacketType.java @@ -140,6 +140,8 @@ public enum PacketType { ServerboundMoveVehicle, ServerboundPaddleBoat, ServerboundPickItem, + ServerboundPickItemFromBlock, + ServerboundPickItemFromEntity, ServerboundPlaceRecipe, ServerboundPlayerAbilities, ServerboundPlayerAction, @@ -188,5 +190,7 @@ public enum PacketType { ServerboundPong, ServerboundResourcePack, ServerboundPingRequest, - ClientboundPongResponse + ClientboundPongResponse, + ClientboundShowDialog, + ClientboundClearDialog } diff --git a/leaves-server/build.gradle.kts.patch b/leaves-server/build.gradle.kts.patch index 0bec9579..4b117d15 100644 --- a/leaves-server/build.gradle.kts.patch +++ b/leaves-server/build.gradle.kts.patch @@ -1,20 +1,27 @@ --- a/paper-server/build.gradle.kts +++ b/paper-server/build.gradle.kts -@@ -9,25 +_,38 @@ +@@ -1,4 +_,4 @@ +-import io.papermc.fill.model.BuildChannel ++//import io.papermc.fill.model.BuildChannel + import io.papermc.paperweight.attribute.DevBundleOutput + import io.papermc.paperweight.util.* + import io.papermc.paperweight.util.data.FileEntry +@@ -10,22 +_,35 @@ `java-library` `maven-publish` idea - id("io.papermc.paperweight.core") + id("org.leavesmc.leavesweight.core") // Leaves - build change + id("io.papermc.fill.gradle") version "1.0.3" } val paperMavenPublicUrl = "https://repo.papermc.io/repository/maven-public/" +val leavesMavenPublicUrl = "https://repo.leavesmc.com/snapshots/" // Leaves - build change dependencies { - mache("io.papermc:mache:1.21.5+build.2") + mache("io.papermc:mache:1.21.7+build.1") - paperclip("io.papermc:paperclip:3.0.3") -+ leavesclip("org.leavesmc:leavesclip:3.0.0") // Leaves - build change ++ leavesclip("org.leavesmc:leavesclip:3.0.2") // Leaves - build change testRuntimeOnly("org.junit.platform:junit-platform-launcher") } @@ -23,10 +30,6 @@ + minecraftVersion = rootProject.providers.gradleProperty("mcVersion") // Leaves - build change gitFilePatches = false - //updatingMinecraft { - // oldPaperCommit = "f4f275519f7c1fbe9db173b7144a4fe81440e365" - //} - + // Leaves start - build change + val leaves = forks.register("leaves") { + upstream.patchDir("paperServer") { @@ -40,9 +43,9 @@ + // Leaves end - build change + spigot { - buildDataRef = "702e1a0a5072b2c4082371d5228cb30525687efc" - packageVersion = "v1_21_R4" // also needs to be updated in MappingEnvironment -@@ -50,6 +_,7 @@ + enabled = true + buildDataRef = "436eac9815c211be1a2a6ca0702615f995e81c44" +@@ -49,6 +_,7 @@ libraryRepositories.addAll( "https://repo.maven.apache.org/maven2/", paperMavenPublicUrl, @@ -50,7 +53,7 @@ ) } -@@ -108,7 +_,22 @@ +@@ -107,7 +_,22 @@ } } @@ -74,12 +77,13 @@ configurations.named(log4jPlugins.compileClasspathConfigurationName) { extendsFrom(configurations.compileClasspath.get()) } -@@ -130,7 +_,18 @@ +@@ -129,7 +_,19 @@ } dependencies { - implementation(project(":paper-api")) + implementation(project(":leaves-api")) // Leaves - build change ++ implementation("commons-lang:commons-lang:2.6") // Leaves - build change + // Leaves start - linear + implementation("com.github.luben:zstd-jni:1.5.4-1") + implementation("org.lz4:lz4-java:1.8.0") @@ -94,18 +98,15 @@ 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 -@@ -157,9 +_,9 @@ - implementation("org.ow2.asm:asm-commons:9.8") - implementation("org.spongepowered:configurate-yaml:4.2.0-20250225.064233-199") +@@ -158,7 +_,6 @@ 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") // Leaves // 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") runtimeOnly("com.lmax:disruptor:3.4.4") -@@ -194,6 +_,16 @@ +@@ -193,6 +_,16 @@ implementation("me.lucko:spark-paper:1.10.133-20250413.112336-1") } @@ -122,7 +123,7 @@ tasks.jar { manifest { val git = Git(rootProject.layout.projectDirectory.path) -@@ -206,14 +_,14 @@ +@@ -205,14 +_,14 @@ val gitBranch = git.exec(providers, "rev-parse", "--abbrev-ref", "HEAD").get().trim() attributes( "Main-Class" to "org.bukkit.craftbukkit.Main", @@ -142,7 +143,7 @@ "Build-Number" to (build ?: ""), "Build-Time" to buildTime.toString(), "Git-Branch" to gitBranch, -@@ -267,7 +_,7 @@ +@@ -271,7 +_,7 @@ jvmArgumentProviders.add(provider) } @@ -151,7 +152,7 @@ idea { module { generatedSourceDirs.add(generatedDir.toFile()) -@@ -360,13 +_,26 @@ +@@ -364,17 +_,32 @@ classpath(tasks.createReobfBundlerJar.flatMap { it.outputZip }) mainClass.set(null as String?) } @@ -165,6 +166,7 @@ - classpath(tasks.createReobfPaperclipJar.flatMap { it.outputZip }) - mainClass.set(null as String?) -} +- + +// Leaves start - build change +tasks.registerRunTask("runLeavesclip") { @@ -188,3 +190,16 @@ + classpath(sourceSets.main.map { it.runtimeClasspath }) +} +// Leaves end - create config file ++ ++// Leaves start - what is it? ++/* + fill { + project("paper") + versionFamily(paperweight.minecraftVersion.map { it.split(".", "-").takeWhile { part -> part.toIntOrNull() != null }.take(2).joinToString(".") }) +@@ -391,3 +_,6 @@ + } + } + } ++ ++*/ ++// Leaves end - what is it? diff --git a/leaves-server/paper-patches/features/0001-Build-changes.patch b/leaves-server/paper-patches/features/0001-Build-changes.patch index e5123cef..87779147 100644 --- a/leaves-server/paper-patches/features/0001-Build-changes.patch +++ b/leaves-server/paper-patches/features/0001-Build-changes.patch @@ -93,7 +93,7 @@ index 6abc57669e87f7f98f3b76af3c0e50825fea6eb1..c7ee6d3a158ca7d3de54bc12622affbf } } diff --git a/src/main/java/io/papermc/paper/ServerBuildInfoImpl.java b/src/main/java/io/papermc/paper/ServerBuildInfoImpl.java -index 790bad0494454ca12ee152e3de6da3da634d9b20..c060857cb0551fff8f5033553b887f3a6b8f935a 100644 +index 74ffdc823e66fc5ec027c4b7c462382bcbfe2be2..f38f8e5851ec65a8f3f98018d55de74ea6ff165c 100644 --- a/src/main/java/io/papermc/paper/ServerBuildInfoImpl.java +++ b/src/main/java/io/papermc/paper/ServerBuildInfoImpl.java @@ -30,7 +30,7 @@ public record ServerBuildInfoImpl( @@ -119,10 +119,10 @@ index a7d1a959af6a810c0ce6d5baa08e4429e14d4f5b..88dbb30dd736b63f562918fb166678ba public static LiteralCommandNode create() { diff --git a/src/main/java/org/bukkit/craftbukkit/Main.java b/src/main/java/org/bukkit/craftbukkit/Main.java -index a11fc64b4933a5abce0182ba46f1da22043eb0d8..c311381d7d6841153f9f29f9a2e6718811bdf1c7 100644 +index 7675acdca2162e403f4ff523bcdd6efe0cb42d49..a950bfb0c6aeb0b19150c59cea13337005c2752a 100644 --- a/src/main/java/org/bukkit/craftbukkit/Main.java +++ b/src/main/java/org/bukkit/craftbukkit/Main.java -@@ -232,7 +232,7 @@ public class Main { +@@ -231,7 +231,7 @@ public class Main { if (buildDate.before(deadline.getTime())) { // Paper start - This is some stupid bullshit System.err.println("*** Warning, you've not updated in a while! ***"); @@ -132,10 +132,10 @@ index a11fc64b4933a5abce0182ba46f1da22043eb0d8..c311381d7d6841153f9f29f9a2e67188 } } diff --git a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java -index a287ad5cce532229f2a514956d34a9358175bc45..27f1a050882c7b00649ab2bea2e4d00c575080eb 100644 +index c1aad9203af20102e560571435dfa75150b37c1b..ea97ea679b1ba64c9d33e52f39d010a923ef4385 100644 --- a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java +++ b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java -@@ -485,7 +485,7 @@ public final class CraftMagicNumbers implements UnsafeValues { +@@ -481,7 +481,7 @@ public final class CraftMagicNumbers implements UnsafeValues { @Override public com.destroystokyo.paper.util.VersionFetcher getVersionFetcher() { diff --git a/leaves-server/paper-patches/features/0003-Leaves-Server-Config-And-Command.patch b/leaves-server/paper-patches/features/0003-Leaves-Server-Config-And-Command.patch index fb55af82..9965f5c7 100644 --- a/leaves-server/paper-patches/features/0003-Leaves-Server-Config-And-Command.patch +++ b/leaves-server/paper-patches/features/0003-Leaves-Server-Config-And-Command.patch @@ -36,10 +36,10 @@ index 5c52b1563d20d7e977a5bb958c18b19dec5c365a..65664441c5692620a8b22513ded497b7 } catch (CommandException ex) { sender.sendMessage(Component.text("An internal error occurred while attempting to tab-complete this command", NamedTextColor.RED)); diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index 1da86b25e3b89c79d4f3920c8d2ef10ee2757f65..8dc17473e580df2ba9273e612868ad325a952bee 100644 +index 03dfcb4665d0279c825a74f3f999c92fe2bd22cb..8646070885a65bcd6e60198bdaeb538613798389 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -@@ -1101,6 +1101,7 @@ public final class CraftServer implements Server { +@@ -1073,6 +1073,7 @@ public final class CraftServer implements Server { playerMetadata.removeAll(plugin); } // Paper end @@ -48,10 +48,10 @@ index 1da86b25e3b89c79d4f3920c8d2ef10ee2757f65..8dc17473e580df2ba9273e612868ad32 org.spigotmc.SpigotConfig.registerCommands(); // Spigot io.papermc.paper.command.PaperCommands.registerCommands(this.console); // Paper diff --git a/src/main/java/org/bukkit/craftbukkit/Main.java b/src/main/java/org/bukkit/craftbukkit/Main.java -index c311381d7d6841153f9f29f9a2e6718811bdf1c7..d855a6543433ce520fb26e536f32c22b847ea0b6 100644 +index a950bfb0c6aeb0b19150c59cea13337005c2752a..7f68edab68fc82a7ae269f01633c786b2d1026a8 100644 --- a/src/main/java/org/bukkit/craftbukkit/Main.java +++ b/src/main/java/org/bukkit/craftbukkit/Main.java -@@ -170,6 +170,14 @@ public class Main { +@@ -169,6 +169,14 @@ public class Main { .ofType(String.class) .defaultsTo("Unknown Server") .describedAs("Name"); diff --git a/leaves-server/paper-patches/features/0004-Leaves-Protocol-Core.patch b/leaves-server/paper-patches/features/0004-Leaves-Protocol-Core.patch index dd0ca8db..5112e797 100644 --- a/leaves-server/paper-patches/features/0004-Leaves-Protocol-Core.patch +++ b/leaves-server/paper-patches/features/0004-Leaves-Protocol-Core.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Leaves Protocol Core diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index 8dc17473e580df2ba9273e612868ad325a952bee..4ffe2623badcaca80c192b3ea79488f274c125e9 100644 +index 8646070885a65bcd6e60198bdaeb538613798389..bd128202f1618a88b67def9c829ef7b269dad09c 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -@@ -497,6 +497,7 @@ public final class CraftServer implements Server { +@@ -496,6 +496,7 @@ public final class CraftServer implements Server { this.potionBrewer = new io.papermc.paper.potion.PaperPotionBrewer(console); // Paper - custom potion mixes datapackManager = new io.papermc.paper.datapack.PaperDatapackManager(console.getPackRepository()); // Paper this.spark = new io.papermc.paper.SparksFly(this); // Paper - spark @@ -16,7 +16,7 @@ index 8dc17473e580df2ba9273e612868ad325a952bee..4ffe2623badcaca80c192b3ea79488f2 } public boolean getCommandBlockOverride(String command) { -@@ -1108,6 +1109,7 @@ public final class CraftServer implements Server { +@@ -1080,6 +1081,7 @@ public final class CraftServer implements Server { this.spark.registerCommandBeforePlugins(this); // Paper - spark this.overrideAllCommandBlockCommands = this.commandsConfiguration.getStringList("command-block-overrides").contains("*"); this.ignoreVanillaPermissions = this.commandsConfiguration.getBoolean("ignore-vanilla-permissions"); diff --git a/leaves-server/paper-patches/features/0005-Leaves-Fakeplayer.patch b/leaves-server/paper-patches/features/0005-Leaves-Fakeplayer.patch index 58c69748..bd07e727 100644 --- a/leaves-server/paper-patches/features/0005-Leaves-Fakeplayer.patch +++ b/leaves-server/paper-patches/features/0005-Leaves-Fakeplayer.patch @@ -22,10 +22,10 @@ index a589689e3a9de1fffef62e0e3dcd79bb2e848c5b..a0a6cde96322df8e455b26b32b1c593f RegisteredListener[] listeners = handlers.getRegisteredListeners(); diff --git a/src/main/java/org/bukkit/craftbukkit/CraftRegionAccessor.java b/src/main/java/org/bukkit/craftbukkit/CraftRegionAccessor.java -index 1775eb659ef1a10868cfc6721aedd5096fe0a17c..1eb1a3c9736bf97fbdcd1e17a86f49c030a6cdf3 100644 +index 0a10f49ee410d93e95ceb90108200a1a9d12b54b..b836e047e9a4ae9a4cbde5caf761013d2c99e12c 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftRegionAccessor.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftRegionAccessor.java -@@ -424,6 +424,7 @@ public abstract class CraftRegionAccessor implements RegionAccessor { +@@ -423,6 +423,7 @@ public abstract class CraftRegionAccessor implements RegionAccessor { @SuppressWarnings("unchecked") public T addEntity(T entity) { Preconditions.checkArgument(!entity.isInWorld(), "Entity has already been added to a world"); @@ -34,10 +34,10 @@ index 1775eb659ef1a10868cfc6721aedd5096fe0a17c..1eb1a3c9736bf97fbdcd1e17a86f49c0 if (nmsEntity.level() != this.getHandle().getLevel()) { nmsEntity = nmsEntity.teleport(new TeleportTransition(this.getHandle().getLevel(), nmsEntity, TeleportTransition.DO_NOTHING)); diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index 4ffe2623badcaca80c192b3ea79488f274c125e9..25c11fbe0b4e0cdc0aa63982d185935e2016ba79 100644 +index bd128202f1618a88b67def9c829ef7b269dad09c..2a9fc317284a4e0bac4f0b64482b57de78d8bc30 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -@@ -316,6 +316,7 @@ public final class CraftServer implements Server { +@@ -315,6 +315,7 @@ public final class CraftServer implements Server { private final io.papermc.paper.potion.PaperPotionBrewer potionBrewer; public final io.papermc.paper.SparksFly spark; private final ServerConfiguration serverConfig = new PaperServerConfiguration(); @@ -45,7 +45,7 @@ index 4ffe2623badcaca80c192b3ea79488f274c125e9..25c11fbe0b4e0cdc0aa63982d185935e // Paper start - Folia region threading API private final io.papermc.paper.threadedregions.scheduler.FallbackRegionScheduler regionizedScheduler = new io.papermc.paper.threadedregions.scheduler.FallbackRegionScheduler(); -@@ -498,6 +499,7 @@ public final class CraftServer implements Server { +@@ -497,6 +498,7 @@ public final class CraftServer implements Server { datapackManager = new io.papermc.paper.datapack.PaperDatapackManager(console.getPackRepository()); // Paper this.spark = new io.papermc.paper.SparksFly(this); // Paper - spark org.leavesmc.leaves.protocol.core.LeavesProtocolManager.init(); // Leaves - protocol @@ -53,7 +53,7 @@ index 4ffe2623badcaca80c192b3ea79488f274c125e9..25c11fbe0b4e0cdc0aa63982d185935e } public boolean getCommandBlockOverride(String command) { -@@ -1469,7 +1471,7 @@ public final class CraftServer implements Server { +@@ -1441,7 +1443,7 @@ public final class CraftServer implements Server { return false; } @@ -62,7 +62,7 @@ index 4ffe2623badcaca80c192b3ea79488f274c125e9..25c11fbe0b4e0cdc0aa63982d185935e return false; } -@@ -3209,4 +3211,11 @@ public final class CraftServer implements Server { +@@ -3186,4 +3188,11 @@ public final class CraftServer implements Server { public void allowPausing(final Plugin plugin, final boolean value) { this.console.addPluginAllowingSleep(plugin.getName(), value); } @@ -75,10 +75,10 @@ index 4ffe2623badcaca80c192b3ea79488f274c125e9..25c11fbe0b4e0cdc0aa63982d185935e + // Leaves end - Bot API } diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -index aae378697b2f2e388d2a5dfaca24c9197b8abf3e..6773681bfaf0edb03cc17bcdfa43b98c8b7c9c20 100644 +index 68351e47609ae06f0a1641b4ad2013ce6261ae4e..2d726d5878dc3033129ad30782871aae56c0595d 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -@@ -238,7 +238,7 @@ public class CraftWorld extends CraftRegionAccessor implements World { +@@ -247,7 +247,7 @@ public class CraftWorld extends CraftRegionAccessor implements World { @Override public int getPlayerCount() { @@ -87,7 +87,7 @@ index aae378697b2f2e388d2a5dfaca24c9197b8abf3e..6773681bfaf0edb03cc17bcdfa43b98c } @Override -@@ -1242,9 +1242,9 @@ public class CraftWorld extends CraftRegionAccessor implements World { +@@ -1264,9 +1264,9 @@ public class CraftWorld extends CraftRegionAccessor implements World { @Override public List getPlayers() { @@ -99,7 +99,7 @@ index aae378697b2f2e388d2a5dfaca24c9197b8abf3e..6773681bfaf0edb03cc17bcdfa43b98c HumanEntity bukkitEntity = human.getBukkitEntity(); if ((bukkitEntity != null) && (bukkitEntity instanceof Player)) { -@@ -1926,7 +1926,7 @@ public class CraftWorld extends CraftRegionAccessor implements World { +@@ -1948,7 +1948,7 @@ public class CraftWorld extends CraftRegionAccessor implements World { public void playSound(final net.kyori.adventure.sound.Sound sound) { org.spigotmc.AsyncCatcher.catchOp("play sound"); // Paper final long seed = sound.seed().orElseGet(this.world.getRandom()::nextLong); @@ -108,7 +108,7 @@ index aae378697b2f2e388d2a5dfaca24c9197b8abf3e..6773681bfaf0edb03cc17bcdfa43b98c player.connection.send(io.papermc.paper.adventure.PaperAdventure.asSoundPacket(sound, player.getX(), player.getY(), player.getZ(), seed, null)); } } -@@ -1954,7 +1954,7 @@ public class CraftWorld extends CraftRegionAccessor implements World { +@@ -1976,7 +1976,7 @@ public class CraftWorld extends CraftRegionAccessor implements World { org.spigotmc.AsyncCatcher.catchOp("play sound"); // Paper final long seed = sound.seed().orElseGet(this.getHandle().getRandom()::nextLong); if (emitter == net.kyori.adventure.sound.Sound.Emitter.self()) { @@ -117,7 +117,7 @@ index aae378697b2f2e388d2a5dfaca24c9197b8abf3e..6773681bfaf0edb03cc17bcdfa43b98c player.connection.send(io.papermc.paper.adventure.PaperAdventure.asSoundPacket(sound, player, seed, null)); } } else if (emitter instanceof CraftEntity craftEntity) { -@@ -2184,7 +2184,7 @@ public class CraftWorld extends CraftRegionAccessor implements World { +@@ -2206,7 +2206,7 @@ public class CraftWorld extends CraftRegionAccessor implements World { Preconditions.checkArgument(particle.getDataType().isInstance(data), "data (%s) should be %s", data.getClass(), particle.getDataType()); } this.getHandle().sendParticlesSource( @@ -127,10 +127,10 @@ index aae378697b2f2e388d2a5dfaca24c9197b8abf3e..6773681bfaf0edb03cc17bcdfa43b98c CraftParticle.createParticleParam(particle, data), // Particle force, diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java -index 3b41a37f852c3b494b158e447eade9b030f26556..656586dc3bda8aefc8b2e648e9f3d008cb2908fd 100644 +index b38073628d3b1381ccc4e5c6c44b2b7ec8ba1273..656d599060449a4fd53360915378aca177b7e6e7 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java -@@ -108,6 +108,8 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity { +@@ -121,6 +121,8 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity { return new CraftHumanEntity(server, (net.minecraft.world.entity.player.Player) entity); } @@ -140,10 +140,10 @@ index 3b41a37f852c3b494b158e447eade9b030f26556..656586dc3bda8aefc8b2e648e9f3d008 if (entity instanceof EnderDragonPart complexPart) { if (complexPart.parentMob instanceof EnderDragon) { diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -index 9774c9c72a910ccd919b903d92f4068c06d199d7..03778c286144d8f04147f37aa59fb73fcc584833 100644 +index 1d112510093d5eb5117adf16b92dd3411a610a4a..d74ce689380246eb176596f5905275fa5187aace 100644 --- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java +++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -@@ -885,7 +885,11 @@ public class CraftEventFactory { +@@ -896,7 +896,11 @@ public class CraftEventFactory { event.setKeepInventory(keepInventory); event.setKeepLevel(victim.keepLevel); // SPIGOT-2222: pre-set keepLevel populateFields(victim, event); // Paper - make cancellable diff --git a/leaves-server/paper-patches/features/0010-Replay-Mod-API.patch b/leaves-server/paper-patches/features/0010-Replay-Mod-API.patch index dad99d9f..e96f5c73 100644 --- a/leaves-server/paper-patches/features/0010-Replay-Mod-API.patch +++ b/leaves-server/paper-patches/features/0010-Replay-Mod-API.patch @@ -18,10 +18,10 @@ index a0a6cde96322df8e455b26b32b1c593f332d4db6..b5031ba5c48c7d007a7c05766a2beff4 } // Leaves end - skip bot diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index 25c11fbe0b4e0cdc0aa63982d185935e2016ba79..b6c8536c143b9ff64e7a7cb7016d113e7f766fb1 100644 +index 2a9fc317284a4e0bac4f0b64482b57de78d8bc30..3c130ecb6c2898596d5e4749b04b4aa14c34f289 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -@@ -317,6 +317,7 @@ public final class CraftServer implements Server { +@@ -316,6 +316,7 @@ public final class CraftServer implements Server { public final io.papermc.paper.SparksFly spark; private final ServerConfiguration serverConfig = new PaperServerConfiguration(); private final org.leavesmc.leaves.entity.CraftBotManager botManager; // Leaves @@ -29,7 +29,7 @@ index 25c11fbe0b4e0cdc0aa63982d185935e2016ba79..b6c8536c143b9ff64e7a7cb7016d113e // Paper start - Folia region threading API private final io.papermc.paper.threadedregions.scheduler.FallbackRegionScheduler regionizedScheduler = new io.papermc.paper.threadedregions.scheduler.FallbackRegionScheduler(); -@@ -411,7 +412,7 @@ public final class CraftServer implements Server { +@@ -410,7 +411,7 @@ public final class CraftServer implements Server { public CraftServer(DedicatedServer console, PlayerList playerList) { this.console = console; this.playerList = (DedicatedPlayerList) playerList; @@ -38,7 +38,7 @@ index 25c11fbe0b4e0cdc0aa63982d185935e2016ba79..b6c8536c143b9ff64e7a7cb7016d113e @Override public CraftPlayer apply(ServerPlayer player) { return player.getBukkitEntity(); -@@ -3218,4 +3219,11 @@ public final class CraftServer implements Server { +@@ -3195,4 +3196,11 @@ public final class CraftServer implements Server { return botManager; } // Leaves end - Bot API @@ -51,10 +51,10 @@ index 25c11fbe0b4e0cdc0aa63982d185935e2016ba79..b6c8536c143b9ff64e7a7cb7016d113e + // Leaves end - replay mod api } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java -index 656586dc3bda8aefc8b2e648e9f3d008cb2908fd..b0e3471b3f18994c9ccaea4afe34a31709e68571 100644 +index 656d599060449a4fd53360915378aca177b7e6e7..1e94a2e2f9669c8130a228c440720b424e1bd080 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java -@@ -109,6 +109,7 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity { +@@ -122,6 +122,7 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity { } if (entity instanceof org.leavesmc.leaves.bot.ServerBot bot) { return new org.leavesmc.leaves.entity.CraftBot(server, bot); } @@ -63,10 +63,10 @@ index 656586dc3bda8aefc8b2e648e9f3d008cb2908fd..b0e3471b3f18994c9ccaea4afe34a317 // Special case complex part, since there is no extra entity type for them if (entity instanceof EnderDragonPart complexPart) { diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index 1db6276ae7a547860cf2c6f85b37ec4d6b33655a..e09e9daadb9f8d8230d72f50ab34bffd1c5c3ecd 100644 +index 1e2e8d81e6d05b9e94fdb40dcdc4a7e0e4ceb0ac..231007b5f7a97e0fa4cc2f259ed8ac9740895298 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -@@ -2257,7 +2257,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -2205,7 +2205,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player, PluginMessa @Override public boolean canSee(Player player) { diff --git a/leaves-server/paper-patches/features/0012-Bytebuf-API.patch b/leaves-server/paper-patches/features/0012-Bytebuf-API.patch index 4cbacb50..2c17b49b 100644 --- a/leaves-server/paper-patches/features/0012-Bytebuf-API.patch +++ b/leaves-server/paper-patches/features/0012-Bytebuf-API.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Bytebuf API diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index b6c8536c143b9ff64e7a7cb7016d113e7f766fb1..eb49cf958cbbd1d53f0bb4556ade8bc407ae7a20 100644 +index 3c130ecb6c2898596d5e4749b04b4aa14c34f289..164830c0d9bae7849a4953e489ea144919d9911a 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -@@ -318,6 +318,7 @@ public final class CraftServer implements Server { +@@ -317,6 +317,7 @@ public final class CraftServer implements Server { private final ServerConfiguration serverConfig = new PaperServerConfiguration(); private final org.leavesmc.leaves.entity.CraftBotManager botManager; // Leaves private final org.leavesmc.leaves.entity.CraftPhotographerManager photographerManager = new org.leavesmc.leaves.entity.CraftPhotographerManager(); // Leaves @@ -16,7 +16,7 @@ index b6c8536c143b9ff64e7a7cb7016d113e7f766fb1..eb49cf958cbbd1d53f0bb4556ade8bc4 // Paper start - Folia region threading API private final io.papermc.paper.threadedregions.scheduler.FallbackRegionScheduler regionizedScheduler = new io.papermc.paper.threadedregions.scheduler.FallbackRegionScheduler(); -@@ -3226,4 +3227,15 @@ public final class CraftServer implements Server { +@@ -3203,4 +3204,15 @@ public final class CraftServer implements Server { return photographerManager; } // Leaves end - replay mod api @@ -33,12 +33,12 @@ index b6c8536c143b9ff64e7a7cb7016d113e7f766fb1..eb49cf958cbbd1d53f0bb4556ade8bc4 + // Leaves end - Bytebuf API } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index e09e9daadb9f8d8230d72f50ab34bffd1c5c3ecd..32b866b5327634af3c5fdf80d80839e219789b21 100644 +index 231007b5f7a97e0fa4cc2f259ed8ac9740895298..25b9ff06411d1675672a7ee630dcfab5baf8d974 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -@@ -3576,4 +3576,16 @@ public class CraftPlayer extends CraftHumanEntity implements Player { - public void setDeathScreenScore(final int score) { - getHandle().setScore(score); +@@ -3503,4 +3503,16 @@ public class CraftPlayer extends CraftHumanEntity implements Player, PluginMessa + public PlayerGameConnection getConnection() { + return this.getHandle().connection.playerGameConnection; } + + // Leaves start - Bytebuf API diff --git a/leaves-server/src/main/java/org/leavesmc/leaves/bytebuf/WrappedBytebuf.java b/leaves-server/src/main/java/org/leavesmc/leaves/bytebuf/WrappedBytebuf.java index 0c32c205..e549e687 100644 --- a/leaves-server/src/main/java/org/leavesmc/leaves/bytebuf/WrappedBytebuf.java +++ b/leaves-server/src/main/java/org/leavesmc/leaves/bytebuf/WrappedBytebuf.java @@ -1,6 +1,8 @@ package org.leavesmc.leaves.bytebuf; import com.google.gson.JsonElement; +import com.mojang.datafixers.util.Pair; +import com.mojang.serialization.JsonOps; import io.netty.buffer.ByteBuf; import net.minecraft.core.RegistryAccess; import net.minecraft.network.FriendlyByteBuf; @@ -226,7 +228,7 @@ public class WrappedBytebuf implements Bytebuf { @Override public Bytebuf writeComponentJson(JsonElement json) { - Component component = Component.Serializer.fromJson(json, RegistryAccess.EMPTY); + Component component = ComponentSerialization.CODEC.decode(JsonOps.INSTANCE, json).mapOrElse(Pair::getFirst, v -> null); if (component == null) { throw new IllegalArgumentException("Null can not be serialize to Minecraft chat component"); } @@ -236,7 +238,7 @@ public class WrappedBytebuf implements Bytebuf { @Override public JsonElement readComponentJson() { - return Component.Serializer.serialize(ComponentSerialization.STREAM_CODEC.decode(new RegistryFriendlyByteBuf(buf, RegistryAccess.EMPTY)), RegistryAccess.EMPTY); + return ComponentSerialization.CODEC.encodeStart(JsonOps.INSTANCE, ComponentSerialization.STREAM_CODEC.decode(new RegistryFriendlyByteBuf(buf, RegistryAccess.EMPTY))).getOrThrow(); } @Override diff --git a/leaves-server/src/main/java/org/leavesmc/leaves/lithium/common/world/chunk/LithiumHashPalette.java b/leaves-server/src/main/java/org/leavesmc/leaves/lithium/common/world/chunk/LithiumHashPalette.java index 549cc9f4..3734fad3 100644 --- a/leaves-server/src/main/java/org/leavesmc/leaves/lithium/common/world/chunk/LithiumHashPalette.java +++ b/leaves-server/src/main/java/org/leavesmc/leaves/lithium/common/world/chunk/LithiumHashPalette.java @@ -8,7 +8,7 @@ import net.minecraft.core.IdMap; import net.minecraft.network.FriendlyByteBuf; import net.minecraft.network.VarInt; import net.minecraft.world.level.chunk.Palette; -import net.minecraft.world.level.chunk.PaletteResize; +import net.minecraft.world.level.chunk.Palette.PaletteResize; import org.jetbrains.annotations.NotNull; import java.util.Arrays; diff --git a/leaves-server/unapplied/0012-Bytebuf-API.patch b/leaves-server/unapplied/0012-Bytebuf-API.patch new file mode 100644 index 00000000..4cbacb50 --- /dev/null +++ b/leaves-server/unapplied/0012-Bytebuf-API.patch @@ -0,0 +1,55 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Lumine1909 <133463833+Lumine1909@users.noreply.github.com> +Date: Thu, 6 Feb 2025 00:14:23 +0800 +Subject: [PATCH] Bytebuf API + + +diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java +index b6c8536c143b9ff64e7a7cb7016d113e7f766fb1..eb49cf958cbbd1d53f0bb4556ade8bc407ae7a20 100644 +--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java ++++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java +@@ -318,6 +318,7 @@ public final class CraftServer implements Server { + private final ServerConfiguration serverConfig = new PaperServerConfiguration(); + private final org.leavesmc.leaves.entity.CraftBotManager botManager; // Leaves + private final org.leavesmc.leaves.entity.CraftPhotographerManager photographerManager = new org.leavesmc.leaves.entity.CraftPhotographerManager(); // Leaves ++ private final org.leavesmc.leaves.bytebuf.internal.InternalBytebufHandler internalBytebufHandler = new org.leavesmc.leaves.bytebuf.internal.InternalBytebufHandler(); // Leaves + + // Paper start - Folia region threading API + private final io.papermc.paper.threadedregions.scheduler.FallbackRegionScheduler regionizedScheduler = new io.papermc.paper.threadedregions.scheduler.FallbackRegionScheduler(); +@@ -3226,4 +3227,15 @@ public final class CraftServer implements Server { + return photographerManager; + } + // Leaves end - replay mod api ++ ++ // Leaves start - Bytebuf API ++ @Override ++ public org.leavesmc.leaves.bytebuf.BytebufManager getBytebufManager() { ++ return internalBytebufHandler.getManager(); ++ } ++ ++ public org.leavesmc.leaves.bytebuf.internal.InternalBytebufHandler getBytebufHandler() { ++ return internalBytebufHandler; ++ } ++ // Leaves end - Bytebuf API + } +diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +index e09e9daadb9f8d8230d72f50ab34bffd1c5c3ecd..32b866b5327634af3c5fdf80d80839e219789b21 100644 +--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java ++++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +@@ -3576,4 +3576,16 @@ public class CraftPlayer extends CraftHumanEntity implements Player { + public void setDeathScreenScore(final int score) { + getHandle().setScore(score); + } ++ ++ // Leaves start - Bytebuf API ++ @Override ++ public void sendPacket(org.leavesmc.leaves.bytebuf.packet.Packet packet) { ++ this.server.getBytebufHandler().applyPacketToPlayer(this.getHandle(), packet); ++ } ++ ++ @Override ++ public void sendPacket(org.leavesmc.leaves.bytebuf.Bytebuf bytebuf, org.leavesmc.leaves.bytebuf.packet.PacketType type) { ++ this.server.getBytebufHandler().applyPacketToPlayer(this.getHandle(), new org.leavesmc.leaves.bytebuf.packet.Packet(type, bytebuf)); ++ } ++ // Leaves end - Bytebuf API + } diff --git a/leaves-server/unapplied/0013-Leaves-plugin.patch b/leaves-server/unapplied/0013-Leaves-plugin.patch new file mode 100644 index 00000000..818b409d --- /dev/null +++ b/leaves-server/unapplied/0013-Leaves-plugin.patch @@ -0,0 +1,262 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: MC_XiaoHei +Date: Mon, 22 Jul 2024 09:05:56 +0000 +Subject: [PATCH] Leaves plugin + +This patch is licensed under the MIT license. + +diff --git a/src/main/java/io/papermc/paper/command/PaperPluginsCommand.java b/src/main/java/io/papermc/paper/command/PaperPluginsCommand.java +index 41c95f00b4b2bea6d31f85e268c33d7f6184823e..a9154645554379d80b43171562f6f64a01ed3792 100644 +--- a/src/main/java/io/papermc/paper/command/PaperPluginsCommand.java ++++ b/src/main/java/io/papermc/paper/command/PaperPluginsCommand.java +@@ -172,28 +172,41 @@ public class PaperPluginsCommand extends BukkitCommand { + + final TreeMap> paperPlugins = new TreeMap<>(String.CASE_INSENSITIVE_ORDER); + final TreeMap> spigotPlugins = new TreeMap<>(String.CASE_INSENSITIVE_ORDER); ++ // Leaves start - leaves plugin ++ final TreeMap> leavesPlugins = new TreeMap<>(String.CASE_INSENSITIVE_ORDER); + + for (final PluginProvider provider : LaunchEntryPointHandler.INSTANCE.get(Entrypoint.PLUGIN).getRegisteredProviders()) { + final PluginMeta configuration = provider.getMeta(); + + if (provider instanceof SpigotPluginProvider) { + spigotPlugins.put(configuration.getDisplayName(), provider); ++ } else if (provider instanceof PaperPluginParent.LeavesServerPluginProvider) { ++ leavesPlugins.put(configuration.getDisplayName(), provider); + } else if (provider instanceof PaperPluginParent.PaperServerPluginProvider) { + paperPlugins.put(configuration.getDisplayName(), provider); + } + } + ++ final int sizeLeavesPlugins = leavesPlugins.size(); + final int sizePaperPlugins = paperPlugins.size(); + final int sizeSpigotPlugins = spigotPlugins.size(); +- final int sizePlugins = sizePaperPlugins + sizeSpigotPlugins; +- final boolean hasAllPluginTypes = (sizePaperPlugins > 0 && sizeSpigotPlugins > 0); ++ final int sizePlugins = sizePaperPlugins + sizeSpigotPlugins + sizeLeavesPlugins; ++ final boolean showSize = (sizePaperPlugins > 0 && sizeSpigotPlugins > 0) || (sizePaperPlugins > 0 && sizeLeavesPlugins > 0) || (sizeSpigotPlugins > 0 && sizeLeavesPlugins > 0); + + final Component infoMessage = Component.text().append(INFO_ICON_SERVER_PLUGIN).append(Component.text("Server Plugins (%s):".formatted(sizePlugins), NamedTextColor.WHITE)).build(); + + sender.sendMessage(infoMessage); + ++ if (!leavesPlugins.isEmpty()) { ++ sender.sendMessage(header("Leaves Plugins", 0x37D1AB, sizeLeavesPlugins, showSize)); ++ } ++ ++ for (final Component component : formatProviders(leavesPlugins)) { ++ sender.sendMessage(component); ++ } ++ + if (!paperPlugins.isEmpty()) { +- sender.sendMessage(header("Paper Plugins", 0x0288D1, sizePaperPlugins, hasAllPluginTypes)); ++ sender.sendMessage(header("Paper Plugins", 0x0288D1, sizePaperPlugins, showSize)); + } + + for (final Component component : formatProviders(paperPlugins)) { +@@ -201,8 +214,9 @@ public class PaperPluginsCommand extends BukkitCommand { + } + + if (!spigotPlugins.isEmpty()) { +- sender.sendMessage(header("Bukkit Plugins", 0xED8106, sizeSpigotPlugins, hasAllPluginTypes)); ++ sender.sendMessage(header("Bukkit Plugins", 0xED8106, sizeSpigotPlugins, showSize)); + } ++ // Leaves end - leaves plugin + + for (final Component component : formatProviders(spigotPlugins)) { + sender.sendMessage(component); +diff --git a/src/main/java/io/papermc/paper/plugin/PluginInitializerManager.java b/src/main/java/io/papermc/paper/plugin/PluginInitializerManager.java +index 70413fddd23ca1165cb5090cce4fddcb1bbca93f..2cdf32d5f08b575cf0fe755634242ddb05b59774 100644 +--- a/src/main/java/io/papermc/paper/plugin/PluginInitializerManager.java ++++ b/src/main/java/io/papermc/paper/plugin/PluginInitializerManager.java +@@ -117,19 +117,30 @@ public class PluginInitializerManager { + java.util.List files = ((java.util.List) optionSet.valuesOf("add-plugin")).stream().map(File::toPath).toList(); + io.papermc.paper.plugin.util.EntrypointUtil.registerProvidersFromSource(io.papermc.paper.plugin.provider.source.PluginFlagProviderSource.INSTANCE, files); + ++ // Leaves start - leaves plugin ++ final Set leavesPluginNames = new TreeSet<>(); + final Set paperPluginNames = new TreeSet<>(); + final Set legacyPluginNames = new TreeSet<>(); + LaunchEntryPointHandler.INSTANCE.getStorage().forEach((entrypoint, providerStorage) -> { + providerStorage.getRegisteredProviders().forEach(provider -> { + if (provider instanceof final SpigotPluginProvider legacy) { + legacyPluginNames.add(String.format("%s (%s)", legacy.getMeta().getName(), legacy.getMeta().getVersion())); ++ } else if (provider instanceof final PaperPluginParent.LeavesServerPluginProvider leaves) { ++ leavesPluginNames.add(String.format("%s (%s)", provider.getMeta().getName(), provider.getMeta().getVersion())); + } else if (provider instanceof final PaperPluginParent.PaperServerPluginProvider paper) { + paperPluginNames.add(String.format("%s (%s)", provider.getMeta().getName(), provider.getMeta().getVersion())); + } + }); + }); +- final int total = paperPluginNames.size() + legacyPluginNames.size(); ++ final int total = leavesPluginNames.size() + paperPluginNames.size() + legacyPluginNames.size(); + LOGGER.info("Initialized {} plugin{}", total, total == 1 ? "" : "s"); ++ if (!leavesPluginNames.isEmpty()) { ++ if (LOGGER.isDebugEnabled()) { ++ LOGGER.info("Leaves plugins ({}):\n - {}", leavesPluginNames.size(), String.join("\n - ", leavesPluginNames)); ++ } else { ++ LOGGER.info("Leaves plugins ({}):\n - {}", leavesPluginNames.size(), String.join(", ", leavesPluginNames)); ++ } ++ } // Leaves end - leaves plugin + if (!paperPluginNames.isEmpty()) { + if (LOGGER.isDebugEnabled()) { + LOGGER.info("Paper plugins ({}):\n - {}", paperPluginNames.size(), String.join("\n - ", paperPluginNames)); +diff --git a/src/main/java/io/papermc/paper/plugin/provider/configuration/LegacyPaperMeta.java b/src/main/java/io/papermc/paper/plugin/provider/configuration/LegacyPaperMeta.java +index 8cd649c977172f6b757d68565fcbb9eb8ae100a3..c18a94af99c827d73c31279e324e15ec8217a31d 100644 +--- a/src/main/java/io/papermc/paper/plugin/provider/configuration/LegacyPaperMeta.java ++++ b/src/main/java/io/papermc/paper/plugin/provider/configuration/LegacyPaperMeta.java +@@ -18,7 +18,7 @@ import java.util.List; + import java.util.Map; + import java.util.Set; + +-class LegacyPaperMeta { ++public class LegacyPaperMeta { + + + private static final TypeToken>> TYPE_TOKEN = new TypeToken<>() { +@@ -28,6 +28,12 @@ class LegacyPaperMeta { + ConfigurationTransformation.chain(notVersioned()).apply(node); + } + ++ // Leaves start - leaves plugin ++ public static void migrate(org.spongepowered.configurate.ConfigurationNode node) throws ConfigurateException { ++ ConfigurationTransformation.chain(notVersioned()).apply(node); ++ } ++ // Leaves end - leaves plugin ++ + private static ConfigurationTransformation notVersioned() { + return ConfigurationTransformation.builder() + .addAction(NodePath.path(), (path, value) -> { +diff --git a/src/main/java/io/papermc/paper/plugin/provider/configuration/PaperPluginMeta.java b/src/main/java/io/papermc/paper/plugin/provider/configuration/PaperPluginMeta.java +index d3b3a8baca013909fa9c6204d964d7d7efeb2719..753fdb9782ee6b4cb8e232ebfdd52dea5d9e2a66 100644 +--- a/src/main/java/io/papermc/paper/plugin/provider/configuration/PaperPluginMeta.java ++++ b/src/main/java/io/papermc/paper/plugin/provider/configuration/PaperPluginMeta.java +@@ -55,7 +55,7 @@ public class PaperPluginMeta implements PluginMeta { + @Required + private String version; + private String description; +- private List authors = List.of(); ++ protected List authors = List.of(); // Leaves - leaves plugin + private List contributors = List.of(); + private String website; + private String prefix; +diff --git a/src/main/java/io/papermc/paper/plugin/provider/type/PluginFileType.java b/src/main/java/io/papermc/paper/plugin/provider/type/PluginFileType.java +index 8d0da6e46d4eb5eb05c3144510c4ef083559d0ec..331a4e98699f65adfad275bde923c0f57ef4dd18 100644 +--- a/src/main/java/io/papermc/paper/plugin/provider/type/PluginFileType.java ++++ b/src/main/java/io/papermc/paper/plugin/provider/type/PluginFileType.java +@@ -23,6 +23,7 @@ import java.util.jar.JarFile; + public abstract class PluginFileType { + + public static final String PAPER_PLUGIN_YML = "paper-plugin.yml"; ++ public static final String LEAVES_PLUGIN_JSON = "leaves-plugin.json"; // Leaves - leaves plugin + private static final List CONFIG_TYPES = new ArrayList<>(); + + public static final PluginFileType PAPER = new PluginFileType<>(PAPER_PLUGIN_YML, PaperPluginParent.FACTORY) { +@@ -43,8 +44,21 @@ public abstract class PluginFileType { + entrypointHandler.register(Entrypoint.PLUGIN, provider); + } + }; ++ // Leaves start - leaves plugin ++ public static final PluginFileType LEAVES = new PluginFileType<>(LEAVES_PLUGIN_JSON, PaperPluginParent.LEAVES_FACTORY) { ++ @Override ++ protected void register(EntrypointHandler entrypointHandler, PaperPluginParent parent) { ++ PaperPluginParent.LeavesBootstrapProvider bootstrapPluginProvider = null; ++ if (parent.shouldCreateBootstrap()) { ++ bootstrapPluginProvider = parent.createLeavesBootstrapProvider(); ++ entrypointHandler.register(Entrypoint.BOOTSTRAPPER, bootstrapPluginProvider); ++ } ++ entrypointHandler.register(Entrypoint.PLUGIN, parent.createLeavesPluginProvider(bootstrapPluginProvider)); ++ } ++ }; + +- private static final List> VALUES = List.of(PAPER, SPIGOT); ++ private static final List> VALUES = List.of(LEAVES, PAPER, SPIGOT); ++ // Leaves end - leaves plugin + + private final String config; + private final PluginTypeFactory factory; +diff --git a/src/main/java/io/papermc/paper/plugin/provider/type/paper/PaperPluginParent.java b/src/main/java/io/papermc/paper/plugin/provider/type/paper/PaperPluginParent.java +index 55a6898e95704cddafda1ca5dc0951c7102fe10b..283f046c6f34c83f01e1ca1d80cbd7cc35a2b7d2 100644 +--- a/src/main/java/io/papermc/paper/plugin/provider/type/paper/PaperPluginParent.java ++++ b/src/main/java/io/papermc/paper/plugin/provider/type/paper/PaperPluginParent.java +@@ -27,6 +27,7 @@ import java.util.jar.JarFile; + public class PaperPluginParent { + + public static final PluginTypeFactory FACTORY = new PaperPluginProviderFactory(); ++ public static final PluginTypeFactory LEAVES_FACTORY = new org.leavesmc.leaves.plugin.provider.LeavesPluginProviderFactory(); // Leaves - leaves plugin + private final Path path; + private final JarFile jarFile; + private final PaperPluginMeta description; +@@ -51,6 +52,32 @@ public class PaperPluginParent { + return new PaperBootstrapProvider(); + } + ++ // Leaves start - leaves plugin ++ public LeavesBootstrapProvider createLeavesBootstrapProvider() { ++ return new io.papermc.paper.plugin.provider.type.paper.PaperPluginParent.LeavesBootstrapProvider(); ++ } ++ public LeavesServerPluginProvider createLeavesPluginProvider(LeavesBootstrapProvider provider) { ++ return new LeavesServerPluginProvider(provider); ++ } ++ ++ public class LeavesBootstrapProvider extends PaperBootstrapProvider { ++ @Override ++ public org.leavesmc.leaves.plugin.provider.configuration.LeavesPluginMeta getMeta() { ++ return (org.leavesmc.leaves.plugin.provider.configuration.LeavesPluginMeta) super.getMeta(); ++ } ++ } ++ ++ public class LeavesServerPluginProvider extends PaperServerPluginProvider { ++ LeavesServerPluginProvider(PaperPluginParent.LeavesBootstrapProvider bootstrapProvider) { ++ super(bootstrapProvider); ++ } ++ @Override ++ public org.leavesmc.leaves.plugin.provider.configuration.LeavesPluginMeta getMeta() { ++ return (org.leavesmc.leaves.plugin.provider.configuration.LeavesPluginMeta) super.getMeta(); ++ } ++ } ++ // Leaves end - leaves plugin ++ + public PaperServerPluginProvider createPluginProvider(PaperBootstrapProvider provider) { + return new PaperServerPluginProvider(provider); + } +diff --git a/src/main/java/io/papermc/paper/plugin/storage/SimpleProviderStorage.java b/src/main/java/io/papermc/paper/plugin/storage/SimpleProviderStorage.java +index 26422904751647a061397ce978bba752149003cd..884ed63dab16acca83fe8f421762f2561400b1fb 100644 +--- a/src/main/java/io/papermc/paper/plugin/storage/SimpleProviderStorage.java ++++ b/src/main/java/io/papermc/paper/plugin/storage/SimpleProviderStorage.java +@@ -26,6 +26,16 @@ public abstract class SimpleProviderStorage implements ProviderStorage { + + @Override + public void register(PluginProvider provider) { ++ // Leaves start - leaves plugin ++ if (provider instanceof final io.papermc.paper.plugin.provider.type.paper.PaperPluginParent.LeavesServerPluginProvider leaves) { ++ org.leavesmc.leaves.plugin.provider.configuration.LeavesPluginMeta meta = leaves.getMeta(); ++ java.util.List unavailableFeatures = meta.getFeatures().getRequired().stream().filter(feature -> !org.leavesmc.leaves.plugin.ServerFeatureManager.INSTANCE.isFeatureAvailable(feature)).toList(); ++ if (!unavailableFeatures.isEmpty()) { ++ LOGGER.warn("The plugin {} ({}) requires some unavailable feature(s) {}. The plugin has been skipped.", meta.getName(), meta.getVersion(), unavailableFeatures); ++ return; ++ } ++ } ++ // Leaves end - leaves plugin + this.providers.add(provider); + } + +diff --git a/src/main/java/io/papermc/paper/pluginremap/PluginRemapper.java b/src/main/java/io/papermc/paper/pluginremap/PluginRemapper.java +index fbad4a2242aa1ab910b2e2ae4cce973ff63fda84..89d4fa952d072dd6e071dc9eef51f4050f7e750e 100644 +--- a/src/main/java/io/papermc/paper/pluginremap/PluginRemapper.java ++++ b/src/main/java/io/papermc/paper/pluginremap/PluginRemapper.java +@@ -337,7 +337,13 @@ public final class PluginRemapper { + } + index.skip(inputFile); + return CompletableFuture.completedFuture(inputFile); +- } ++ } else if (ns == null && Files.exists(fs.getPath(PluginFileType.LEAVES_PLUGIN_JSON))) { // Leaves start - leaves plugin ++ if (DEBUG_LOGGING) { ++ LOGGER.info("Plugin '{}' is a Leaves plugin with no namespace specified.", inputFile); ++ } ++ index.skip(inputFile); ++ return CompletableFuture.completedFuture(inputFile); ++ } // Leaves end - leaves plugin + } + } catch (final IOException ex) { + return CompletableFuture.failedFuture(new RuntimeException("Failed to open plugin jar " + inputFile, ex)); diff --git a/leaves-server/unapplied/0014-Fix-SculkCatalyst-exp-skip.patch b/leaves-server/unapplied/0014-Fix-SculkCatalyst-exp-skip.patch new file mode 100644 index 00000000..493379ad --- /dev/null +++ b/leaves-server/unapplied/0014-Fix-SculkCatalyst-exp-skip.patch @@ -0,0 +1,35 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: violetc <58360096+s-yh-china@users.noreply.github.com> +Date: Sun, 6 Apr 2025 10:42:46 +0800 +Subject: [PATCH] Fix SculkCatalyst exp skip + + +diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java +index 03778c286144d8f04147f37aa59fb73fcc584833..daea37a117101a9f3b463e87bfc8f0f9db394aca 100644 +--- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java ++++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java +@@ -851,7 +851,7 @@ public class CraftEventFactory { + CraftLivingEntity entity = (CraftLivingEntity) victim.getBukkitEntity(); + CraftDamageSource bukkitDamageSource = new CraftDamageSource(damageSource); + CraftWorld world = (CraftWorld) entity.getWorld(); +- EntityDeathEvent event = new EntityDeathEvent(entity, bukkitDamageSource, new io.papermc.paper.util.TransformingRandomAccessList<>(drops, Entity.DefaultDrop::stack, FROM_FUNCTION), victim.getExpReward(world.getHandle(), damageSource.getEntity())); // Paper - Restore vanilla drops behavior ++ EntityDeathEvent event = new EntityDeathEvent(entity, bukkitDamageSource, new io.papermc.paper.util.TransformingRandomAccessList<>(drops, Entity.DefaultDrop::stack, FROM_FUNCTION), victim.getExpReward(world.getHandle(), damageSource.getEntity()), victim.getExperienceReward(world.getHandle(), damageSource.getEntity())); // Paper - Restore vanilla drops behavior // Leaves - exp fix + populateFields(victim, event); // Paper - make cancellable + Bukkit.getServer().getPluginManager().callEvent(event); + +@@ -862,6 +862,7 @@ public class CraftEventFactory { + playDeathSound(victim, event, damageSource); + // Paper end + victim.expToDrop = event.getDroppedExp(); ++ victim.expToReward = event.getRewardExp(); // Leaves - exp fix + lootCheck.run(); // Paper - advancement triggers before destroying items + + // Paper start - Restore vanilla drops behavior +@@ -901,6 +902,7 @@ public class CraftEventFactory { + victim.newLevel = event.getNewLevel(); + victim.newTotalExp = event.getNewTotalExp(); + victim.expToDrop = event.getDroppedExp(); ++ victim.expToReward = event.getRewardExp(); // Leaves - exp fix + victim.newExp = event.getNewExp(); + + // Paper start - Restore vanilla drops behavior diff --git a/leaves-server/unapplied/0015-Leaves-Config-API.patch b/leaves-server/unapplied/0015-Leaves-Config-API.patch new file mode 100644 index 00000000..39743d72 --- /dev/null +++ b/leaves-server/unapplied/0015-Leaves-Config-API.patch @@ -0,0 +1,22 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Lumine1909 <133463833+Lumine1909@users.noreply.github.com> +Date: Sun, 18 May 2025 19:58:42 +0800 +Subject: [PATCH] Leaves Config API + + +diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java +index eb49cf958cbbd1d53f0bb4556ade8bc407ae7a20..6fbcde3248ec35d0188eea0e99922759d5f1d5cf 100644 +--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java ++++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java +@@ -3238,4 +3238,11 @@ public final class CraftServer implements Server { + return internalBytebufHandler; + } + // Leaves end - Bytebuf API ++ ++ // Leaves start - Config API ++ @Override ++ public org.leavesmc.leaves.config.LeavesConfigProvider getLeavesConfig() { ++ return org.leavesmc.leaves.config.InternalConfigProvider.INSTANCE; ++ } ++ // Leaves end - Config API + } diff --git a/leaves-server/minecraft-patches/features/0001-Build-changes.patch b/leaves-server/unapplied/minecraft-patches/features/0001-Build-changes.patch similarity index 100% rename from leaves-server/minecraft-patches/features/0001-Build-changes.patch rename to leaves-server/unapplied/minecraft-patches/features/0001-Build-changes.patch diff --git a/leaves-server/minecraft-patches/features/0002-Leaves-Server-Config-And-Command.patch b/leaves-server/unapplied/minecraft-patches/features/0002-Leaves-Server-Config-And-Command.patch similarity index 100% rename from leaves-server/minecraft-patches/features/0002-Leaves-Server-Config-And-Command.patch rename to leaves-server/unapplied/minecraft-patches/features/0002-Leaves-Server-Config-And-Command.patch diff --git a/leaves-server/minecraft-patches/features/0003-Leaves-Utils.patch b/leaves-server/unapplied/minecraft-patches/features/0003-Leaves-Utils.patch similarity index 100% rename from leaves-server/minecraft-patches/features/0003-Leaves-Utils.patch rename to leaves-server/unapplied/minecraft-patches/features/0003-Leaves-Utils.patch diff --git a/leaves-server/minecraft-patches/features/0004-Leaves-Protocol-Core.patch b/leaves-server/unapplied/minecraft-patches/features/0004-Leaves-Protocol-Core.patch similarity index 100% rename from leaves-server/minecraft-patches/features/0004-Leaves-Protocol-Core.patch rename to leaves-server/unapplied/minecraft-patches/features/0004-Leaves-Protocol-Core.patch diff --git a/leaves-server/minecraft-patches/features/0005-Configurable-trading-with-the-void.patch b/leaves-server/unapplied/minecraft-patches/features/0005-Configurable-trading-with-the-void.patch similarity index 100% rename from leaves-server/minecraft-patches/features/0005-Configurable-trading-with-the-void.patch rename to leaves-server/unapplied/minecraft-patches/features/0005-Configurable-trading-with-the-void.patch diff --git a/leaves-server/minecraft-patches/features/0006-Make-snowball-and-egg-can-knockback-player.patch b/leaves-server/unapplied/minecraft-patches/features/0006-Make-snowball-and-egg-can-knockback-player.patch similarity index 100% rename from leaves-server/minecraft-patches/features/0006-Make-snowball-and-egg-can-knockback-player.patch rename to leaves-server/unapplied/minecraft-patches/features/0006-Make-snowball-and-egg-can-knockback-player.patch diff --git a/leaves-server/minecraft-patches/features/0007-Leaves-Fakeplayer.patch b/leaves-server/unapplied/minecraft-patches/features/0007-Leaves-Fakeplayer.patch similarity index 100% rename from leaves-server/minecraft-patches/features/0007-Leaves-Fakeplayer.patch rename to leaves-server/unapplied/minecraft-patches/features/0007-Leaves-Fakeplayer.patch diff --git a/leaves-server/minecraft-patches/features/0008-Make-shears-in-dispenser-can-unlimited-use.patch b/leaves-server/unapplied/minecraft-patches/features/0008-Make-shears-in-dispenser-can-unlimited-use.patch similarity index 100% rename from leaves-server/minecraft-patches/features/0008-Make-shears-in-dispenser-can-unlimited-use.patch rename to leaves-server/unapplied/minecraft-patches/features/0008-Make-shears-in-dispenser-can-unlimited-use.patch diff --git a/leaves-server/minecraft-patches/features/0009-Redstone-Shears-Wrench.patch b/leaves-server/unapplied/minecraft-patches/features/0009-Redstone-Shears-Wrench.patch similarity index 100% rename from leaves-server/minecraft-patches/features/0009-Redstone-Shears-Wrench.patch rename to leaves-server/unapplied/minecraft-patches/features/0009-Redstone-Shears-Wrench.patch diff --git a/leaves-server/minecraft-patches/features/0010-Add-isShrink-to-EntityResurrectEvent.patch b/leaves-server/unapplied/minecraft-patches/features/0010-Add-isShrink-to-EntityResurrectEvent.patch similarity index 100% rename from leaves-server/minecraft-patches/features/0010-Add-isShrink-to-EntityResurrectEvent.patch rename to leaves-server/unapplied/minecraft-patches/features/0010-Add-isShrink-to-EntityResurrectEvent.patch diff --git a/leaves-server/minecraft-patches/features/0011-Movable-Budding-Amethyst.patch b/leaves-server/unapplied/minecraft-patches/features/0011-Movable-Budding-Amethyst.patch similarity index 100% rename from leaves-server/minecraft-patches/features/0011-Movable-Budding-Amethyst.patch rename to leaves-server/unapplied/minecraft-patches/features/0011-Movable-Budding-Amethyst.patch diff --git a/leaves-server/minecraft-patches/features/0012-Spectator-dont-get-Advancement.patch b/leaves-server/unapplied/minecraft-patches/features/0012-Spectator-dont-get-Advancement.patch similarity index 100% rename from leaves-server/minecraft-patches/features/0012-Spectator-dont-get-Advancement.patch rename to leaves-server/unapplied/minecraft-patches/features/0012-Spectator-dont-get-Advancement.patch diff --git a/leaves-server/minecraft-patches/features/0013-Stick-can-change-ArmorStand-arm-status.patch b/leaves-server/unapplied/minecraft-patches/features/0013-Stick-can-change-ArmorStand-arm-status.patch similarity index 100% rename from leaves-server/minecraft-patches/features/0013-Stick-can-change-ArmorStand-arm-status.patch rename to leaves-server/unapplied/minecraft-patches/features/0013-Stick-can-change-ArmorStand-arm-status.patch diff --git a/leaves-server/minecraft-patches/features/0014-Configurable-MC-59471.patch b/leaves-server/unapplied/minecraft-patches/features/0014-Configurable-MC-59471.patch similarity index 100% rename from leaves-server/minecraft-patches/features/0014-Configurable-MC-59471.patch rename to leaves-server/unapplied/minecraft-patches/features/0014-Configurable-MC-59471.patch diff --git a/leaves-server/minecraft-patches/features/0015-No-chat-sign.patch b/leaves-server/unapplied/minecraft-patches/features/0015-No-chat-sign.patch similarity index 100% rename from leaves-server/minecraft-patches/features/0015-No-chat-sign.patch rename to leaves-server/unapplied/minecraft-patches/features/0015-No-chat-sign.patch diff --git a/leaves-server/minecraft-patches/features/0016-Dont-send-useless-entity-packets.patch b/leaves-server/unapplied/minecraft-patches/features/0016-Dont-send-useless-entity-packets.patch similarity index 100% rename from leaves-server/minecraft-patches/features/0016-Dont-send-useless-entity-packets.patch rename to leaves-server/unapplied/minecraft-patches/features/0016-Dont-send-useless-entity-packets.patch diff --git a/leaves-server/minecraft-patches/features/0017-Optimize-suffocation.patch b/leaves-server/unapplied/minecraft-patches/features/0017-Optimize-suffocation.patch similarity index 100% rename from leaves-server/minecraft-patches/features/0017-Optimize-suffocation.patch rename to leaves-server/unapplied/minecraft-patches/features/0017-Optimize-suffocation.patch diff --git a/leaves-server/minecraft-patches/features/0018-Only-check-for-spooky-season-once-an-hour.patch b/leaves-server/unapplied/minecraft-patches/features/0018-Only-check-for-spooky-season-once-an-hour.patch similarity index 100% rename from leaves-server/minecraft-patches/features/0018-Only-check-for-spooky-season-once-an-hour.patch rename to leaves-server/unapplied/minecraft-patches/features/0018-Only-check-for-spooky-season-once-an-hour.patch diff --git a/leaves-server/minecraft-patches/features/0019-Config-to-disable-method-profiler.patch b/leaves-server/unapplied/minecraft-patches/features/0019-Config-to-disable-method-profiler.patch similarity index 100% rename from leaves-server/minecraft-patches/features/0019-Config-to-disable-method-profiler.patch rename to leaves-server/unapplied/minecraft-patches/features/0019-Config-to-disable-method-profiler.patch diff --git a/leaves-server/minecraft-patches/features/0020-Throttle-goal-selector-during-inactive-ticking.patch b/leaves-server/unapplied/minecraft-patches/features/0020-Throttle-goal-selector-during-inactive-ticking.patch similarity index 100% rename from leaves-server/minecraft-patches/features/0020-Throttle-goal-selector-during-inactive-ticking.patch rename to leaves-server/unapplied/minecraft-patches/features/0020-Throttle-goal-selector-during-inactive-ticking.patch diff --git a/leaves-server/minecraft-patches/features/0021-Reduce-entity-allocations.patch b/leaves-server/unapplied/minecraft-patches/features/0021-Reduce-entity-allocations.patch similarity index 100% rename from leaves-server/minecraft-patches/features/0021-Reduce-entity-allocations.patch rename to leaves-server/unapplied/minecraft-patches/features/0021-Reduce-entity-allocations.patch diff --git a/leaves-server/minecraft-patches/features/0022-Remove-lambda-from-ticking-guard.patch b/leaves-server/unapplied/minecraft-patches/features/0022-Remove-lambda-from-ticking-guard.patch similarity index 100% rename from leaves-server/minecraft-patches/features/0022-Remove-lambda-from-ticking-guard.patch rename to leaves-server/unapplied/minecraft-patches/features/0022-Remove-lambda-from-ticking-guard.patch diff --git a/leaves-server/minecraft-patches/features/0023-Cache-climbing-check-for-activation.patch b/leaves-server/unapplied/minecraft-patches/features/0023-Cache-climbing-check-for-activation.patch similarity index 100% rename from leaves-server/minecraft-patches/features/0023-Cache-climbing-check-for-activation.patch rename to leaves-server/unapplied/minecraft-patches/features/0023-Cache-climbing-check-for-activation.patch diff --git a/leaves-server/minecraft-patches/features/0024-Reduce-chunk-loading-lookups.patch b/leaves-server/unapplied/minecraft-patches/features/0024-Reduce-chunk-loading-lookups.patch similarity index 100% rename from leaves-server/minecraft-patches/features/0024-Reduce-chunk-loading-lookups.patch rename to leaves-server/unapplied/minecraft-patches/features/0024-Reduce-chunk-loading-lookups.patch diff --git a/leaves-server/minecraft-patches/features/0025-InstantBlockUpdater-Reintroduced.patch b/leaves-server/unapplied/minecraft-patches/features/0025-InstantBlockUpdater-Reintroduced.patch similarity index 100% rename from leaves-server/minecraft-patches/features/0025-InstantBlockUpdater-Reintroduced.patch rename to leaves-server/unapplied/minecraft-patches/features/0025-InstantBlockUpdater-Reintroduced.patch diff --git a/leaves-server/minecraft-patches/features/0026-Random-flatten-triangular-distribution.patch b/leaves-server/unapplied/minecraft-patches/features/0026-Random-flatten-triangular-distribution.patch similarity index 100% rename from leaves-server/minecraft-patches/features/0026-Random-flatten-triangular-distribution.patch rename to leaves-server/unapplied/minecraft-patches/features/0026-Random-flatten-triangular-distribution.patch diff --git a/leaves-server/minecraft-patches/features/0027-BBOR-Protocol.patch b/leaves-server/unapplied/minecraft-patches/features/0027-BBOR-Protocol.patch similarity index 100% rename from leaves-server/minecraft-patches/features/0027-BBOR-Protocol.patch rename to leaves-server/unapplied/minecraft-patches/features/0027-BBOR-Protocol.patch diff --git a/leaves-server/minecraft-patches/features/0028-PCA-sync-protocol.patch b/leaves-server/unapplied/minecraft-patches/features/0028-PCA-sync-protocol.patch similarity index 100% rename from leaves-server/minecraft-patches/features/0028-PCA-sync-protocol.patch rename to leaves-server/unapplied/minecraft-patches/features/0028-PCA-sync-protocol.patch diff --git a/leaves-server/minecraft-patches/features/0029-Alternative-block-placement-Protocol.patch b/leaves-server/unapplied/minecraft-patches/features/0029-Alternative-block-placement-Protocol.patch similarity index 100% rename from leaves-server/minecraft-patches/features/0029-Alternative-block-placement-Protocol.patch rename to leaves-server/unapplied/minecraft-patches/features/0029-Alternative-block-placement-Protocol.patch diff --git a/leaves-server/minecraft-patches/features/0030-Jade-Protocol.patch b/leaves-server/unapplied/minecraft-patches/features/0030-Jade-Protocol.patch similarity index 100% rename from leaves-server/minecraft-patches/features/0030-Jade-Protocol.patch rename to leaves-server/unapplied/minecraft-patches/features/0030-Jade-Protocol.patch diff --git a/leaves-server/minecraft-patches/features/0031-Player-operation-limiter.patch b/leaves-server/unapplied/minecraft-patches/features/0031-Player-operation-limiter.patch similarity index 100% rename from leaves-server/minecraft-patches/features/0031-Player-operation-limiter.patch rename to leaves-server/unapplied/minecraft-patches/features/0031-Player-operation-limiter.patch diff --git a/leaves-server/minecraft-patches/features/0032-Renewable-Elytra.patch b/leaves-server/unapplied/minecraft-patches/features/0032-Renewable-Elytra.patch similarity index 100% rename from leaves-server/minecraft-patches/features/0032-Renewable-Elytra.patch rename to leaves-server/unapplied/minecraft-patches/features/0032-Renewable-Elytra.patch diff --git a/leaves-server/minecraft-patches/features/0033-MC-Technical-Survival-Mode.patch b/leaves-server/unapplied/minecraft-patches/features/0033-MC-Technical-Survival-Mode.patch similarity index 100% rename from leaves-server/minecraft-patches/features/0033-MC-Technical-Survival-Mode.patch rename to leaves-server/unapplied/minecraft-patches/features/0033-MC-Technical-Survival-Mode.patch diff --git a/leaves-server/minecraft-patches/features/0034-Stackable-ShulkerBoxes.patch b/leaves-server/unapplied/minecraft-patches/features/0034-Stackable-ShulkerBoxes.patch similarity index 100% rename from leaves-server/minecraft-patches/features/0034-Stackable-ShulkerBoxes.patch rename to leaves-server/unapplied/minecraft-patches/features/0034-Stackable-ShulkerBoxes.patch diff --git a/leaves-server/minecraft-patches/features/0035-Return-nether-portal-fix.patch b/leaves-server/unapplied/minecraft-patches/features/0035-Return-nether-portal-fix.patch similarity index 100% rename from leaves-server/minecraft-patches/features/0035-Return-nether-portal-fix.patch rename to leaves-server/unapplied/minecraft-patches/features/0035-Return-nether-portal-fix.patch diff --git a/leaves-server/minecraft-patches/features/0036-Leaves-Extra-Yggdrasil-Service.patch b/leaves-server/unapplied/minecraft-patches/features/0036-Leaves-Extra-Yggdrasil-Service.patch similarity index 100% rename from leaves-server/minecraft-patches/features/0036-Leaves-Extra-Yggdrasil-Service.patch rename to leaves-server/unapplied/minecraft-patches/features/0036-Leaves-Extra-Yggdrasil-Service.patch diff --git a/leaves-server/minecraft-patches/features/0037-Configurable-vanilla-random.patch b/leaves-server/unapplied/minecraft-patches/features/0037-Configurable-vanilla-random.patch similarity index 100% rename from leaves-server/minecraft-patches/features/0037-Configurable-vanilla-random.patch rename to leaves-server/unapplied/minecraft-patches/features/0037-Configurable-vanilla-random.patch diff --git a/leaves-server/minecraft-patches/features/0038-Catch-update-suppression-crash.patch b/leaves-server/unapplied/minecraft-patches/features/0038-Catch-update-suppression-crash.patch similarity index 100% rename from leaves-server/minecraft-patches/features/0038-Catch-update-suppression-crash.patch rename to leaves-server/unapplied/minecraft-patches/features/0038-Catch-update-suppression-crash.patch diff --git a/leaves-server/minecraft-patches/features/0039-Bedrock-break-list.patch b/leaves-server/unapplied/minecraft-patches/features/0039-Bedrock-break-list.patch similarity index 100% rename from leaves-server/minecraft-patches/features/0039-Bedrock-break-list.patch rename to leaves-server/unapplied/minecraft-patches/features/0039-Bedrock-break-list.patch diff --git a/leaves-server/minecraft-patches/features/0040-Fix-trapdoor-feature.patch b/leaves-server/unapplied/minecraft-patches/features/0040-Fix-trapdoor-feature.patch similarity index 100% rename from leaves-server/minecraft-patches/features/0040-Fix-trapdoor-feature.patch rename to leaves-server/unapplied/minecraft-patches/features/0040-Fix-trapdoor-feature.patch diff --git a/leaves-server/minecraft-patches/features/0041-Disable-distance-check-for-UseItemOnPacket.patch b/leaves-server/unapplied/minecraft-patches/features/0041-Disable-distance-check-for-UseItemOnPacket.patch similarity index 100% rename from leaves-server/minecraft-patches/features/0041-Disable-distance-check-for-UseItemOnPacket.patch rename to leaves-server/unapplied/minecraft-patches/features/0041-Disable-distance-check-for-UseItemOnPacket.patch diff --git a/leaves-server/minecraft-patches/features/0042-No-feather-falling-trample.patch b/leaves-server/unapplied/minecraft-patches/features/0042-No-feather-falling-trample.patch similarity index 100% rename from leaves-server/minecraft-patches/features/0042-No-feather-falling-trample.patch rename to leaves-server/unapplied/minecraft-patches/features/0042-No-feather-falling-trample.patch diff --git a/leaves-server/minecraft-patches/features/0043-Disable-packet-limit.patch b/leaves-server/unapplied/minecraft-patches/features/0043-Disable-packet-limit.patch similarity index 100% rename from leaves-server/minecraft-patches/features/0043-Disable-packet-limit.patch rename to leaves-server/unapplied/minecraft-patches/features/0043-Disable-packet-limit.patch diff --git a/leaves-server/minecraft-patches/features/0044-Syncmatica-Protocol.patch b/leaves-server/unapplied/minecraft-patches/features/0044-Syncmatica-Protocol.patch similarity index 100% rename from leaves-server/minecraft-patches/features/0044-Syncmatica-Protocol.patch rename to leaves-server/unapplied/minecraft-patches/features/0044-Syncmatica-Protocol.patch diff --git a/leaves-server/minecraft-patches/features/0045-Shared-villager-discounts.patch b/leaves-server/unapplied/minecraft-patches/features/0045-Shared-villager-discounts.patch similarity index 100% rename from leaves-server/minecraft-patches/features/0045-Shared-villager-discounts.patch rename to leaves-server/unapplied/minecraft-patches/features/0045-Shared-villager-discounts.patch diff --git a/leaves-server/minecraft-patches/features/0046-Redstone-ignore-upwards-update.patch b/leaves-server/unapplied/minecraft-patches/features/0046-Redstone-ignore-upwards-update.patch similarity index 100% rename from leaves-server/minecraft-patches/features/0046-Redstone-ignore-upwards-update.patch rename to leaves-server/unapplied/minecraft-patches/features/0046-Redstone-ignore-upwards-update.patch diff --git a/leaves-server/minecraft-patches/features/0047-Disable-check-out-of-order-command.patch b/leaves-server/unapplied/minecraft-patches/features/0047-Disable-check-out-of-order-command.patch similarity index 100% rename from leaves-server/minecraft-patches/features/0047-Disable-check-out-of-order-command.patch rename to leaves-server/unapplied/minecraft-patches/features/0047-Disable-check-out-of-order-command.patch diff --git a/leaves-server/minecraft-patches/features/0048-Despawn-enderman-with-block.patch b/leaves-server/unapplied/minecraft-patches/features/0048-Despawn-enderman-with-block.patch similarity index 100% rename from leaves-server/minecraft-patches/features/0048-Despawn-enderman-with-block.patch rename to leaves-server/unapplied/minecraft-patches/features/0048-Despawn-enderman-with-block.patch diff --git a/leaves-server/minecraft-patches/features/0049-Optimized-dragon-respawn.patch b/leaves-server/unapplied/minecraft-patches/features/0049-Optimized-dragon-respawn.patch similarity index 100% rename from leaves-server/minecraft-patches/features/0049-Optimized-dragon-respawn.patch rename to leaves-server/unapplied/minecraft-patches/features/0049-Optimized-dragon-respawn.patch diff --git a/leaves-server/minecraft-patches/features/0050-Creative-fly-no-clip.patch b/leaves-server/unapplied/minecraft-patches/features/0050-Creative-fly-no-clip.patch similarity index 100% rename from leaves-server/minecraft-patches/features/0050-Creative-fly-no-clip.patch rename to leaves-server/unapplied/minecraft-patches/features/0050-Creative-fly-no-clip.patch diff --git a/leaves-server/minecraft-patches/features/0051-Shave-snow-layers.patch b/leaves-server/unapplied/minecraft-patches/features/0051-Shave-snow-layers.patch similarity index 100% rename from leaves-server/minecraft-patches/features/0051-Shave-snow-layers.patch rename to leaves-server/unapplied/minecraft-patches/features/0051-Shave-snow-layers.patch diff --git a/leaves-server/minecraft-patches/features/0052-Elytra-aeronautics-no-chunk-load.patch b/leaves-server/unapplied/minecraft-patches/features/0052-Elytra-aeronautics-no-chunk-load.patch similarity index 100% rename from leaves-server/minecraft-patches/features/0052-Elytra-aeronautics-no-chunk-load.patch rename to leaves-server/unapplied/minecraft-patches/features/0052-Elytra-aeronautics-no-chunk-load.patch diff --git a/leaves-server/minecraft-patches/features/0053-Cache-ignite-odds.patch b/leaves-server/unapplied/minecraft-patches/features/0053-Cache-ignite-odds.patch similarity index 100% rename from leaves-server/minecraft-patches/features/0053-Cache-ignite-odds.patch rename to leaves-server/unapplied/minecraft-patches/features/0053-Cache-ignite-odds.patch diff --git a/leaves-server/minecraft-patches/features/0054-Lava-riptide.patch b/leaves-server/unapplied/minecraft-patches/features/0054-Lava-riptide.patch similarity index 100% rename from leaves-server/minecraft-patches/features/0054-Lava-riptide.patch rename to leaves-server/unapplied/minecraft-patches/features/0054-Lava-riptide.patch diff --git a/leaves-server/minecraft-patches/features/0055-No-block-update-command.patch b/leaves-server/unapplied/minecraft-patches/features/0055-No-block-update-command.patch similarity index 100% rename from leaves-server/minecraft-patches/features/0055-No-block-update-command.patch rename to leaves-server/unapplied/minecraft-patches/features/0055-No-block-update-command.patch diff --git a/leaves-server/minecraft-patches/features/0056-Raider-die-skip-self-raid-check.patch b/leaves-server/unapplied/minecraft-patches/features/0056-Raider-die-skip-self-raid-check.patch similarity index 100% rename from leaves-server/minecraft-patches/features/0056-Raider-die-skip-self-raid-check.patch rename to leaves-server/unapplied/minecraft-patches/features/0056-Raider-die-skip-self-raid-check.patch diff --git a/leaves-server/minecraft-patches/features/0057-Container-open-passthrough.patch b/leaves-server/unapplied/minecraft-patches/features/0057-Container-open-passthrough.patch similarity index 100% rename from leaves-server/minecraft-patches/features/0057-Container-open-passthrough.patch rename to leaves-server/unapplied/minecraft-patches/features/0057-Container-open-passthrough.patch diff --git a/leaves-server/minecraft-patches/features/0058-Dont-respond-ping-before-start-fully.patch b/leaves-server/unapplied/minecraft-patches/features/0058-Dont-respond-ping-before-start-fully.patch similarity index 100% rename from leaves-server/minecraft-patches/features/0058-Dont-respond-ping-before-start-fully.patch rename to leaves-server/unapplied/minecraft-patches/features/0058-Dont-respond-ping-before-start-fully.patch diff --git a/leaves-server/minecraft-patches/features/0059-Faster-chunk-serialization.patch b/leaves-server/unapplied/minecraft-patches/features/0059-Faster-chunk-serialization.patch similarity index 100% rename from leaves-server/minecraft-patches/features/0059-Faster-chunk-serialization.patch rename to leaves-server/unapplied/minecraft-patches/features/0059-Faster-chunk-serialization.patch diff --git a/leaves-server/minecraft-patches/features/0060-Skip-secondary-POI-sensor-if-absent.patch b/leaves-server/unapplied/minecraft-patches/features/0060-Skip-secondary-POI-sensor-if-absent.patch similarity index 100% rename from leaves-server/minecraft-patches/features/0060-Skip-secondary-POI-sensor-if-absent.patch rename to leaves-server/unapplied/minecraft-patches/features/0060-Skip-secondary-POI-sensor-if-absent.patch diff --git a/leaves-server/minecraft-patches/features/0061-Store-mob-counts-in-an-array.patch b/leaves-server/unapplied/minecraft-patches/features/0061-Store-mob-counts-in-an-array.patch similarity index 100% rename from leaves-server/minecraft-patches/features/0061-Store-mob-counts-in-an-array.patch rename to leaves-server/unapplied/minecraft-patches/features/0061-Store-mob-counts-in-an-array.patch diff --git a/leaves-server/minecraft-patches/features/0062-Optimize-noise-generation.patch b/leaves-server/unapplied/minecraft-patches/features/0062-Optimize-noise-generation.patch similarity index 100% rename from leaves-server/minecraft-patches/features/0062-Optimize-noise-generation.patch rename to leaves-server/unapplied/minecraft-patches/features/0062-Optimize-noise-generation.patch diff --git a/leaves-server/minecraft-patches/features/0063-Optimize-sun-burn-tick.patch b/leaves-server/unapplied/minecraft-patches/features/0063-Optimize-sun-burn-tick.patch similarity index 100% rename from leaves-server/minecraft-patches/features/0063-Optimize-sun-burn-tick.patch rename to leaves-server/unapplied/minecraft-patches/features/0063-Optimize-sun-burn-tick.patch diff --git a/leaves-server/minecraft-patches/features/0064-Reduce-lambda-and-Optional-allocation-in-EntityBased.patch b/leaves-server/unapplied/minecraft-patches/features/0064-Reduce-lambda-and-Optional-allocation-in-EntityBased.patch similarity index 100% rename from leaves-server/minecraft-patches/features/0064-Reduce-lambda-and-Optional-allocation-in-EntityBased.patch rename to leaves-server/unapplied/minecraft-patches/features/0064-Reduce-lambda-and-Optional-allocation-in-EntityBased.patch diff --git a/leaves-server/minecraft-patches/features/0065-Avoid-Class-isAssignableFrom-call-in-ClassInstanceMu.patch b/leaves-server/unapplied/minecraft-patches/features/0065-Avoid-Class-isAssignableFrom-call-in-ClassInstanceMu.patch similarity index 100% rename from leaves-server/minecraft-patches/features/0065-Avoid-Class-isAssignableFrom-call-in-ClassInstanceMu.patch rename to leaves-server/unapplied/minecraft-patches/features/0065-Avoid-Class-isAssignableFrom-call-in-ClassInstanceMu.patch diff --git a/leaves-server/minecraft-patches/features/0066-Optimized-CubePointRange.patch b/leaves-server/unapplied/minecraft-patches/features/0066-Optimized-CubePointRange.patch similarity index 100% rename from leaves-server/minecraft-patches/features/0066-Optimized-CubePointRange.patch rename to leaves-server/unapplied/minecraft-patches/features/0066-Optimized-CubePointRange.patch diff --git a/leaves-server/minecraft-patches/features/0067-Check-frozen-ticks-before-landing-block.patch b/leaves-server/unapplied/minecraft-patches/features/0067-Check-frozen-ticks-before-landing-block.patch similarity index 100% rename from leaves-server/minecraft-patches/features/0067-Check-frozen-ticks-before-landing-block.patch rename to leaves-server/unapplied/minecraft-patches/features/0067-Check-frozen-ticks-before-landing-block.patch diff --git a/leaves-server/minecraft-patches/features/0068-Skip-entity-move-if-movement-is-zero.patch b/leaves-server/unapplied/minecraft-patches/features/0068-Skip-entity-move-if-movement-is-zero.patch similarity index 100% rename from leaves-server/minecraft-patches/features/0068-Skip-entity-move-if-movement-is-zero.patch rename to leaves-server/unapplied/minecraft-patches/features/0068-Skip-entity-move-if-movement-is-zero.patch diff --git a/leaves-server/minecraft-patches/features/0069-Skip-cloning-advancement-criteria.patch b/leaves-server/unapplied/minecraft-patches/features/0069-Skip-cloning-advancement-criteria.patch similarity index 100% rename from leaves-server/minecraft-patches/features/0069-Skip-cloning-advancement-criteria.patch rename to leaves-server/unapplied/minecraft-patches/features/0069-Skip-cloning-advancement-criteria.patch diff --git a/leaves-server/minecraft-patches/features/0070-Fix-villagers-dont-release-memory.patch b/leaves-server/unapplied/minecraft-patches/features/0070-Fix-villagers-dont-release-memory.patch similarity index 100% rename from leaves-server/minecraft-patches/features/0070-Fix-villagers-dont-release-memory.patch rename to leaves-server/unapplied/minecraft-patches/features/0070-Fix-villagers-dont-release-memory.patch diff --git a/leaves-server/minecraft-patches/features/0071-Avoid-anvil-too-expensive.patch b/leaves-server/unapplied/minecraft-patches/features/0071-Avoid-anvil-too-expensive.patch similarity index 100% rename from leaves-server/minecraft-patches/features/0071-Avoid-anvil-too-expensive.patch rename to leaves-server/unapplied/minecraft-patches/features/0071-Avoid-anvil-too-expensive.patch diff --git a/leaves-server/minecraft-patches/features/0072-Bow-infinity-fix.patch b/leaves-server/unapplied/minecraft-patches/features/0072-Bow-infinity-fix.patch similarity index 100% rename from leaves-server/minecraft-patches/features/0072-Bow-infinity-fix.patch rename to leaves-server/unapplied/minecraft-patches/features/0072-Bow-infinity-fix.patch diff --git a/leaves-server/minecraft-patches/features/0073-Zero-tick-plants.patch b/leaves-server/unapplied/minecraft-patches/features/0073-Zero-tick-plants.patch similarity index 100% rename from leaves-server/minecraft-patches/features/0073-Zero-tick-plants.patch rename to leaves-server/unapplied/minecraft-patches/features/0073-Zero-tick-plants.patch diff --git a/leaves-server/minecraft-patches/features/0074-Replay-Mod-API.patch b/leaves-server/unapplied/minecraft-patches/features/0074-Replay-Mod-API.patch similarity index 100% rename from leaves-server/minecraft-patches/features/0074-Replay-Mod-API.patch rename to leaves-server/unapplied/minecraft-patches/features/0074-Replay-Mod-API.patch diff --git a/leaves-server/minecraft-patches/features/0075-Leaves-I18n-support.patch b/leaves-server/unapplied/minecraft-patches/features/0075-Leaves-I18n-support.patch similarity index 100% rename from leaves-server/minecraft-patches/features/0075-Leaves-I18n-support.patch rename to leaves-server/unapplied/minecraft-patches/features/0075-Leaves-I18n-support.patch diff --git a/leaves-server/minecraft-patches/features/0076-Fix-minecraft-hopper-not-work-without-player.patch b/leaves-server/unapplied/minecraft-patches/features/0076-Fix-minecraft-hopper-not-work-without-player.patch similarity index 100% rename from leaves-server/minecraft-patches/features/0076-Fix-minecraft-hopper-not-work-without-player.patch rename to leaves-server/unapplied/minecraft-patches/features/0076-Fix-minecraft-hopper-not-work-without-player.patch diff --git a/leaves-server/minecraft-patches/features/0077-RNG-Fishing.patch b/leaves-server/unapplied/minecraft-patches/features/0077-RNG-Fishing.patch similarity index 100% rename from leaves-server/minecraft-patches/features/0077-RNG-Fishing.patch rename to leaves-server/unapplied/minecraft-patches/features/0077-RNG-Fishing.patch diff --git a/leaves-server/minecraft-patches/features/0078-Wool-Hopper-Counter.patch b/leaves-server/unapplied/minecraft-patches/features/0078-Wool-Hopper-Counter.patch similarity index 100% rename from leaves-server/minecraft-patches/features/0078-Wool-Hopper-Counter.patch rename to leaves-server/unapplied/minecraft-patches/features/0078-Wool-Hopper-Counter.patch diff --git a/leaves-server/minecraft-patches/features/0079-Spider-jockeys-drop-gapples.patch b/leaves-server/unapplied/minecraft-patches/features/0079-Spider-jockeys-drop-gapples.patch similarity index 100% rename from leaves-server/minecraft-patches/features/0079-Spider-jockeys-drop-gapples.patch rename to leaves-server/unapplied/minecraft-patches/features/0079-Spider-jockeys-drop-gapples.patch diff --git a/leaves-server/minecraft-patches/features/0080-Force-Void-Trade.patch b/leaves-server/unapplied/minecraft-patches/features/0080-Force-Void-Trade.patch similarity index 100% rename from leaves-server/minecraft-patches/features/0080-Force-Void-Trade.patch rename to leaves-server/unapplied/minecraft-patches/features/0080-Force-Void-Trade.patch diff --git a/leaves-server/minecraft-patches/features/0081-Villager-infinite-discounts.patch b/leaves-server/unapplied/minecraft-patches/features/0081-Villager-infinite-discounts.patch similarity index 100% rename from leaves-server/minecraft-patches/features/0081-Villager-infinite-discounts.patch rename to leaves-server/unapplied/minecraft-patches/features/0081-Villager-infinite-discounts.patch diff --git a/leaves-server/minecraft-patches/features/0082-CCE-update-suppression.patch b/leaves-server/unapplied/minecraft-patches/features/0082-CCE-update-suppression.patch similarity index 100% rename from leaves-server/minecraft-patches/features/0082-CCE-update-suppression.patch rename to leaves-server/unapplied/minecraft-patches/features/0082-CCE-update-suppression.patch diff --git a/leaves-server/minecraft-patches/features/0083-Disable-offline-warn-if-use-proxy.patch b/leaves-server/unapplied/minecraft-patches/features/0083-Disable-offline-warn-if-use-proxy.patch similarity index 100% rename from leaves-server/minecraft-patches/features/0083-Disable-offline-warn-if-use-proxy.patch rename to leaves-server/unapplied/minecraft-patches/features/0083-Disable-offline-warn-if-use-proxy.patch diff --git a/leaves-server/minecraft-patches/features/0084-Armor-stand-cant-kill-by-mob-projectile.patch b/leaves-server/unapplied/minecraft-patches/features/0084-Armor-stand-cant-kill-by-mob-projectile.patch similarity index 100% rename from leaves-server/minecraft-patches/features/0084-Armor-stand-cant-kill-by-mob-projectile.patch rename to leaves-server/unapplied/minecraft-patches/features/0084-Armor-stand-cant-kill-by-mob-projectile.patch diff --git a/leaves-server/minecraft-patches/features/0085-Make-Item-tick-vanilla.patch b/leaves-server/unapplied/minecraft-patches/features/0085-Make-Item-tick-vanilla.patch similarity index 100% rename from leaves-server/minecraft-patches/features/0085-Make-Item-tick-vanilla.patch rename to leaves-server/unapplied/minecraft-patches/features/0085-Make-Item-tick-vanilla.patch diff --git a/leaves-server/minecraft-patches/features/0086-Copper-Bulb-1-gt-delay.patch b/leaves-server/unapplied/minecraft-patches/features/0086-Copper-Bulb-1-gt-delay.patch similarity index 100% rename from leaves-server/minecraft-patches/features/0086-Copper-Bulb-1-gt-delay.patch rename to leaves-server/unapplied/minecraft-patches/features/0086-Copper-Bulb-1-gt-delay.patch diff --git a/leaves-server/minecraft-patches/features/0087-Crafter-1-gt-delay.patch b/leaves-server/unapplied/minecraft-patches/features/0087-Crafter-1-gt-delay.patch similarity index 100% rename from leaves-server/minecraft-patches/features/0087-Crafter-1-gt-delay.patch rename to leaves-server/unapplied/minecraft-patches/features/0087-Crafter-1-gt-delay.patch diff --git a/leaves-server/minecraft-patches/features/0088-More-Region-Format-Support.patch b/leaves-server/unapplied/minecraft-patches/features/0088-More-Region-Format-Support.patch similarity index 100% rename from leaves-server/minecraft-patches/features/0088-More-Region-Format-Support.patch rename to leaves-server/unapplied/minecraft-patches/features/0088-More-Region-Format-Support.patch diff --git a/leaves-server/minecraft-patches/features/0089-No-TNT-place-update.patch b/leaves-server/unapplied/minecraft-patches/features/0089-No-TNT-place-update.patch similarity index 100% rename from leaves-server/minecraft-patches/features/0089-No-TNT-place-update.patch rename to leaves-server/unapplied/minecraft-patches/features/0089-No-TNT-place-update.patch diff --git a/leaves-server/minecraft-patches/features/0090-Servux-Protocol.patch b/leaves-server/unapplied/minecraft-patches/features/0090-Servux-Protocol.patch similarity index 100% rename from leaves-server/minecraft-patches/features/0090-Servux-Protocol.patch rename to leaves-server/unapplied/minecraft-patches/features/0090-Servux-Protocol.patch diff --git a/leaves-server/minecraft-patches/features/0091-Placing-locked-hopper-no-longer-send-NC-updates.patch b/leaves-server/unapplied/minecraft-patches/features/0091-Placing-locked-hopper-no-longer-send-NC-updates.patch similarity index 100% rename from leaves-server/minecraft-patches/features/0091-Placing-locked-hopper-no-longer-send-NC-updates.patch rename to leaves-server/unapplied/minecraft-patches/features/0091-Placing-locked-hopper-no-longer-send-NC-updates.patch diff --git a/leaves-server/minecraft-patches/features/0092-Renewable-deepslate.patch b/leaves-server/unapplied/minecraft-patches/features/0092-Renewable-deepslate.patch similarity index 100% rename from leaves-server/minecraft-patches/features/0092-Renewable-deepslate.patch rename to leaves-server/unapplied/minecraft-patches/features/0092-Renewable-deepslate.patch diff --git a/leaves-server/minecraft-patches/features/0093-Renewable-sponges.patch b/leaves-server/unapplied/minecraft-patches/features/0093-Renewable-sponges.patch similarity index 100% rename from leaves-server/minecraft-patches/features/0093-Renewable-sponges.patch rename to leaves-server/unapplied/minecraft-patches/features/0093-Renewable-sponges.patch diff --git a/leaves-server/minecraft-patches/features/0094-Renewable-coral.patch b/leaves-server/unapplied/minecraft-patches/features/0094-Renewable-coral.patch similarity index 100% rename from leaves-server/minecraft-patches/features/0094-Renewable-coral.patch rename to leaves-server/unapplied/minecraft-patches/features/0094-Renewable-coral.patch diff --git a/leaves-server/minecraft-patches/features/0095-Vanilla-hopper.patch b/leaves-server/unapplied/minecraft-patches/features/0095-Vanilla-hopper.patch similarity index 100% rename from leaves-server/minecraft-patches/features/0095-Vanilla-hopper.patch rename to leaves-server/unapplied/minecraft-patches/features/0095-Vanilla-hopper.patch diff --git a/leaves-server/minecraft-patches/features/0096-Old-hopper-suckin-behavior.patch b/leaves-server/unapplied/minecraft-patches/features/0096-Old-hopper-suckin-behavior.patch similarity index 100% rename from leaves-server/minecraft-patches/features/0096-Old-hopper-suckin-behavior.patch rename to leaves-server/unapplied/minecraft-patches/features/0096-Old-hopper-suckin-behavior.patch diff --git a/leaves-server/minecraft-patches/features/0097-Fix-falling-block-s-block-location.patch b/leaves-server/unapplied/minecraft-patches/features/0097-Fix-falling-block-s-block-location.patch similarity index 100% rename from leaves-server/minecraft-patches/features/0097-Fix-falling-block-s-block-location.patch rename to leaves-server/unapplied/minecraft-patches/features/0097-Fix-falling-block-s-block-location.patch diff --git a/leaves-server/minecraft-patches/features/0098-Bytebuf-API.patch b/leaves-server/unapplied/minecraft-patches/features/0098-Bytebuf-API.patch similarity index 100% rename from leaves-server/minecraft-patches/features/0098-Bytebuf-API.patch rename to leaves-server/unapplied/minecraft-patches/features/0098-Bytebuf-API.patch diff --git a/leaves-server/minecraft-patches/features/0099-Allow-grindstone-overstacking.patch b/leaves-server/unapplied/minecraft-patches/features/0099-Allow-grindstone-overstacking.patch similarity index 100% rename from leaves-server/minecraft-patches/features/0099-Allow-grindstone-overstacking.patch rename to leaves-server/unapplied/minecraft-patches/features/0099-Allow-grindstone-overstacking.patch diff --git a/leaves-server/minecraft-patches/features/0100-Configurable-MC-67.patch b/leaves-server/unapplied/minecraft-patches/features/0100-Configurable-MC-67.patch similarity index 100% rename from leaves-server/minecraft-patches/features/0100-Configurable-MC-67.patch rename to leaves-server/unapplied/minecraft-patches/features/0100-Configurable-MC-67.patch diff --git a/leaves-server/minecraft-patches/features/0101-Disable-end-gateway-portal-entity-ticking.patch b/leaves-server/unapplied/minecraft-patches/features/0101-Disable-end-gateway-portal-entity-ticking.patch similarity index 100% rename from leaves-server/minecraft-patches/features/0101-Disable-end-gateway-portal-entity-ticking.patch rename to leaves-server/unapplied/minecraft-patches/features/0101-Disable-end-gateway-portal-entity-ticking.patch diff --git a/leaves-server/minecraft-patches/features/0102-Disable-crystal-portal-proximity-check.patch b/leaves-server/unapplied/minecraft-patches/features/0102-Disable-crystal-portal-proximity-check.patch similarity index 100% rename from leaves-server/minecraft-patches/features/0102-Disable-crystal-portal-proximity-check.patch rename to leaves-server/unapplied/minecraft-patches/features/0102-Disable-crystal-portal-proximity-check.patch diff --git a/leaves-server/minecraft-patches/features/0103-Can-disable-LivingEntity-aiStep-alive-check.patch b/leaves-server/unapplied/minecraft-patches/features/0103-Can-disable-LivingEntity-aiStep-alive-check.patch similarity index 100% rename from leaves-server/minecraft-patches/features/0103-Can-disable-LivingEntity-aiStep-alive-check.patch rename to leaves-server/unapplied/minecraft-patches/features/0103-Can-disable-LivingEntity-aiStep-alive-check.patch diff --git a/leaves-server/minecraft-patches/features/0104-Fix-FallingBlockEntity-Duplicate.patch b/leaves-server/unapplied/minecraft-patches/features/0104-Fix-FallingBlockEntity-Duplicate.patch similarity index 100% rename from leaves-server/minecraft-patches/features/0104-Fix-FallingBlockEntity-Duplicate.patch rename to leaves-server/unapplied/minecraft-patches/features/0104-Fix-FallingBlockEntity-Duplicate.patch diff --git a/leaves-server/minecraft-patches/features/0105-Old-Block-remove-behaviour.patch b/leaves-server/unapplied/minecraft-patches/features/0105-Old-Block-remove-behaviour.patch similarity index 100% rename from leaves-server/minecraft-patches/features/0105-Old-Block-remove-behaviour.patch rename to leaves-server/unapplied/minecraft-patches/features/0105-Old-Block-remove-behaviour.patch diff --git a/leaves-server/minecraft-patches/features/0106-Revert-raid-changes.patch b/leaves-server/unapplied/minecraft-patches/features/0106-Revert-raid-changes.patch similarity index 100% rename from leaves-server/minecraft-patches/features/0106-Revert-raid-changes.patch rename to leaves-server/unapplied/minecraft-patches/features/0106-Revert-raid-changes.patch diff --git a/leaves-server/minecraft-patches/features/0107-Allow-anvil-destroy-item-entities.patch b/leaves-server/unapplied/minecraft-patches/features/0107-Allow-anvil-destroy-item-entities.patch similarity index 100% rename from leaves-server/minecraft-patches/features/0107-Allow-anvil-destroy-item-entities.patch rename to leaves-server/unapplied/minecraft-patches/features/0107-Allow-anvil-destroy-item-entities.patch diff --git a/leaves-server/minecraft-patches/features/0108-Configurable-collision-behavior.patch b/leaves-server/unapplied/minecraft-patches/features/0108-Configurable-collision-behavior.patch similarity index 100% rename from leaves-server/minecraft-patches/features/0108-Configurable-collision-behavior.patch rename to leaves-server/unapplied/minecraft-patches/features/0108-Configurable-collision-behavior.patch diff --git a/leaves-server/minecraft-patches/features/0109-Disable-vault-blacklist.patch b/leaves-server/unapplied/minecraft-patches/features/0109-Disable-vault-blacklist.patch similarity index 100% rename from leaves-server/minecraft-patches/features/0109-Disable-vault-blacklist.patch rename to leaves-server/unapplied/minecraft-patches/features/0109-Disable-vault-blacklist.patch diff --git a/leaves-server/minecraft-patches/features/0110-Fix-EntityPortalExitEvent-logic.patch b/leaves-server/unapplied/minecraft-patches/features/0110-Fix-EntityPortalExitEvent-logic.patch similarity index 100% rename from leaves-server/minecraft-patches/features/0110-Fix-EntityPortalExitEvent-logic.patch rename to leaves-server/unapplied/minecraft-patches/features/0110-Fix-EntityPortalExitEvent-logic.patch diff --git a/leaves-server/minecraft-patches/features/0111-Fix-CraftPortalEvent-logic.patch b/leaves-server/unapplied/minecraft-patches/features/0111-Fix-CraftPortalEvent-logic.patch similarity index 100% rename from leaves-server/minecraft-patches/features/0111-Fix-CraftPortalEvent-logic.patch rename to leaves-server/unapplied/minecraft-patches/features/0111-Fix-CraftPortalEvent-logic.patch diff --git a/leaves-server/minecraft-patches/features/0112-Xaero-Map-Protocol.patch b/leaves-server/unapplied/minecraft-patches/features/0112-Xaero-Map-Protocol.patch similarity index 100% rename from leaves-server/minecraft-patches/features/0112-Xaero-Map-Protocol.patch rename to leaves-server/unapplied/minecraft-patches/features/0112-Xaero-Map-Protocol.patch diff --git a/leaves-server/minecraft-patches/features/0113-Skip-negligible-planar-movement-multiplication.patch b/leaves-server/unapplied/minecraft-patches/features/0113-Skip-negligible-planar-movement-multiplication.patch similarity index 100% rename from leaves-server/minecraft-patches/features/0113-Skip-negligible-planar-movement-multiplication.patch rename to leaves-server/unapplied/minecraft-patches/features/0113-Skip-negligible-planar-movement-multiplication.patch diff --git a/leaves-server/minecraft-patches/features/0114-Skippable-raid-height-check.patch b/leaves-server/unapplied/minecraft-patches/features/0114-Skippable-raid-height-check.patch similarity index 100% rename from leaves-server/minecraft-patches/features/0114-Skippable-raid-height-check.patch rename to leaves-server/unapplied/minecraft-patches/features/0114-Skippable-raid-height-check.patch diff --git a/leaves-server/minecraft-patches/features/0115-Support-REI-protocol.patch b/leaves-server/unapplied/minecraft-patches/features/0115-Support-REI-protocol.patch similarity index 100% rename from leaves-server/minecraft-patches/features/0115-Support-REI-protocol.patch rename to leaves-server/unapplied/minecraft-patches/features/0115-Support-REI-protocol.patch diff --git a/leaves-server/minecraft-patches/features/0116-Vanilla-player-display-name.patch b/leaves-server/unapplied/minecraft-patches/features/0116-Vanilla-player-display-name.patch similarity index 100% rename from leaves-server/minecraft-patches/features/0116-Vanilla-player-display-name.patch rename to leaves-server/unapplied/minecraft-patches/features/0116-Vanilla-player-display-name.patch diff --git a/leaves-server/minecraft-patches/features/0117-Fix-SculkCatalyst-exp-skip.patch b/leaves-server/unapplied/minecraft-patches/features/0117-Fix-SculkCatalyst-exp-skip.patch similarity index 100% rename from leaves-server/minecraft-patches/features/0117-Fix-SculkCatalyst-exp-skip.patch rename to leaves-server/unapplied/minecraft-patches/features/0117-Fix-SculkCatalyst-exp-skip.patch diff --git a/leaves-server/minecraft-patches/features/0118-Vanilla-creative-pickup-behavior.patch b/leaves-server/unapplied/minecraft-patches/features/0118-Vanilla-creative-pickup-behavior.patch similarity index 100% rename from leaves-server/minecraft-patches/features/0118-Vanilla-creative-pickup-behavior.patch rename to leaves-server/unapplied/minecraft-patches/features/0118-Vanilla-creative-pickup-behavior.patch diff --git a/leaves-server/minecraft-patches/features/0119-Vanilla-portal-handle.patch b/leaves-server/unapplied/minecraft-patches/features/0119-Vanilla-portal-handle.patch similarity index 100% rename from leaves-server/minecraft-patches/features/0119-Vanilla-portal-handle.patch rename to leaves-server/unapplied/minecraft-patches/features/0119-Vanilla-portal-handle.patch diff --git a/leaves-server/minecraft-patches/features/0120-Fix-chunk-reload-detector.patch b/leaves-server/unapplied/minecraft-patches/features/0120-Fix-chunk-reload-detector.patch similarity index 100% rename from leaves-server/minecraft-patches/features/0120-Fix-chunk-reload-detector.patch rename to leaves-server/unapplied/minecraft-patches/features/0120-Fix-chunk-reload-detector.patch diff --git a/leaves-server/minecraft-patches/features/0121-Do-not-reset-placed-block-on-exception.patch b/leaves-server/unapplied/minecraft-patches/features/0121-Do-not-reset-placed-block-on-exception.patch similarity index 100% rename from leaves-server/minecraft-patches/features/0121-Do-not-reset-placed-block-on-exception.patch rename to leaves-server/unapplied/minecraft-patches/features/0121-Do-not-reset-placed-block-on-exception.patch diff --git a/leaves-server/minecraft-patches/features/0122-Do-not-prevent-block-entity-and-entity-crash-at-Leve.patch b/leaves-server/unapplied/minecraft-patches/features/0122-Do-not-prevent-block-entity-and-entity-crash-at-Leve.patch similarity index 100% rename from leaves-server/minecraft-patches/features/0122-Do-not-prevent-block-entity-and-entity-crash-at-Leve.patch rename to leaves-server/unapplied/minecraft-patches/features/0122-Do-not-prevent-block-entity-and-entity-crash-at-Leve.patch diff --git a/leaves-server/minecraft-patches/features/0123-Tripwire-behavior-modifier.patch b/leaves-server/unapplied/minecraft-patches/features/0123-Tripwire-behavior-modifier.patch similarity index 100% rename from leaves-server/minecraft-patches/features/0123-Tripwire-behavior-modifier.patch rename to leaves-server/unapplied/minecraft-patches/features/0123-Tripwire-behavior-modifier.patch diff --git a/leaves-server/minecraft-patches/features/0124-Old-nether-portal-collision.patch b/leaves-server/unapplied/minecraft-patches/features/0124-Old-nether-portal-collision.patch similarity index 100% rename from leaves-server/minecraft-patches/features/0124-Old-nether-portal-collision.patch rename to leaves-server/unapplied/minecraft-patches/features/0124-Old-nether-portal-collision.patch diff --git a/leaves-server/minecraft-patches/features/0125-Spawn-invulnerable-time.patch b/leaves-server/unapplied/minecraft-patches/features/0125-Spawn-invulnerable-time.patch similarity index 100% rename from leaves-server/minecraft-patches/features/0125-Spawn-invulnerable-time.patch rename to leaves-server/unapplied/minecraft-patches/features/0125-Spawn-invulnerable-time.patch diff --git a/leaves-server/minecraft-patches/features/0126-Old-zombie-reinforcement.patch b/leaves-server/unapplied/minecraft-patches/features/0126-Old-zombie-reinforcement.patch similarity index 100% rename from leaves-server/minecraft-patches/features/0126-Old-zombie-reinforcement.patch rename to leaves-server/unapplied/minecraft-patches/features/0126-Old-zombie-reinforcement.patch diff --git a/leaves-server/minecraft-patches/features/0127-Sound-update-suppression.patch b/leaves-server/unapplied/minecraft-patches/features/0127-Sound-update-suppression.patch similarity index 100% rename from leaves-server/minecraft-patches/features/0127-Sound-update-suppression.patch rename to leaves-server/unapplied/minecraft-patches/features/0127-Sound-update-suppression.patch diff --git a/leaves-server/minecraft-patches/features/0128-Old-zombie-piglin-drop-behavior.patch b/leaves-server/unapplied/minecraft-patches/features/0128-Old-zombie-piglin-drop-behavior.patch similarity index 100% rename from leaves-server/minecraft-patches/features/0128-Old-zombie-piglin-drop-behavior.patch rename to leaves-server/unapplied/minecraft-patches/features/0128-Old-zombie-piglin-drop-behavior.patch diff --git a/leaves-server/minecraft-patches/features/0129-Fast-exp-orb-absorb.patch b/leaves-server/unapplied/minecraft-patches/features/0129-Fast-exp-orb-absorb.patch similarity index 100% rename from leaves-server/minecraft-patches/features/0129-Fast-exp-orb-absorb.patch rename to leaves-server/unapplied/minecraft-patches/features/0129-Fast-exp-orb-absorb.patch diff --git a/leaves-server/minecraft-patches/features/0130-Vanilla-Fluid-Pushing.patch b/leaves-server/unapplied/minecraft-patches/features/0130-Vanilla-Fluid-Pushing.patch similarity index 100% rename from leaves-server/minecraft-patches/features/0130-Vanilla-Fluid-Pushing.patch rename to leaves-server/unapplied/minecraft-patches/features/0130-Vanilla-Fluid-Pushing.patch diff --git a/leaves-server/minecraft-patches/features/0131-Configurable-item-damage-check.patch b/leaves-server/unapplied/minecraft-patches/features/0131-Configurable-item-damage-check.patch similarity index 100% rename from leaves-server/minecraft-patches/features/0131-Configurable-item-damage-check.patch rename to leaves-server/unapplied/minecraft-patches/features/0131-Configurable-item-damage-check.patch diff --git a/leaves-server/minecraft-patches/features/0132-Old-Throwable-Projectile-tick-order.patch b/leaves-server/unapplied/minecraft-patches/features/0132-Old-Throwable-Projectile-tick-order.patch similarity index 100% rename from leaves-server/minecraft-patches/features/0132-Old-Throwable-Projectile-tick-order.patch rename to leaves-server/unapplied/minecraft-patches/features/0132-Old-Throwable-Projectile-tick-order.patch diff --git a/settings.gradle.kts b/settings.gradle.kts index bf4a5bba..ff262540 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -1,5 +1,6 @@ pluginManagement { repositories { + mavenLocal() // Should remove this after we merge Leavesweight#2 gradlePluginPortal() maven("https://repo.leavesmc.org/snapshots/") maven("https://repo.papermc.io/repository/maven-public/")