diff --git a/.github/workflows/ver1193.yml b/.github/workflows/build-1194.yml similarity index 81% rename from .github/workflows/ver1193.yml rename to .github/workflows/build-1194.yml index 25290f17..408bd200 100644 --- a/.github/workflows/ver1193.yml +++ b/.github/workflows/build-1194.yml @@ -1,4 +1,4 @@ -name: Build Leaf 1.19.3 +name: Build Leaf 1.19.4 on: [ push, pull_request ] jobs: build: @@ -9,7 +9,7 @@ jobs: - name: Set up JDK uses: graalvm/setup-graalvm@v1 with: - version: "latest" + version: latest java-version: 19 github-token: "${{ secrets.GITHUB_TOKEN }}" cache: gradle @@ -22,17 +22,18 @@ jobs: - name: Create ReobfPaperclipJar run: ./gradlew -Dorg.gradle.jvmargs="-Dgraal.CompilerConfiguration=enterprise -Dgraal.UsePriorityInlining=true -Dgraal.Vectorization=true -Dgraal.OptDuplication=true --add-modules jdk.incubator.vector" createReobfPaperclipJar --stacktrace --no-daemon - name: Rename Paperclip Jar - run: mv build/libs/leaf-paperclip-1.19.3-R0.1-SNAPSHOT-reobf.jar ./leaf-1.19.3.jar + run: mv build/libs/leaf-paperclip-1.19.4-R0.1-SNAPSHOT-reobf.jar ./leaf-1.19.4.jar - name: Upload Leaf uses: actions/upload-artifact@v3 with: name: Leaf - path: ./leaf-1.19.3.jar + path: ./leaf-1.19.4.jar - name: Release Artifacts + if: github.ref_name == 'ver/1.19.4' uses: marvinpinto/action-automatic-releases@latest with: - title: "Leaf 1.19.3" - automatic_release_tag: "ver-1.19.3" + title: "Leaf 1.19.4" + automatic_release_tag: "ver-1.19.4" repo_token: "${{ secrets.GITHUB_TOKEN }}" - files: "./leaf-1.19.3.jar" + files: "./leaf-1.19.4.jar" prerelease: false diff --git a/README.md b/README.md index 9195c3a0..5f92c9be 100644 --- a/README.md +++ b/README.md @@ -2,8 +2,8 @@ ## Leaf -[![Github Actions Build](https://img.shields.io/github/actions/workflow/status/Winds-Studio/Leaf/ver1193.yml?branch=ver%2F1.19.3&style=flat-square)](https://github.com/Winds-Studio/Leaf/actions) -[![MIT License](https://img.shields.io/github/license/Dreeam-qwq/Leaf?style=flat-square)](LICENSE) +[![Github Actions Build](https://img.shields.io/github/actions/workflow/status/Winds-Studio/Leaf/build-1194.yml?branch=ver%2F1.19.4&style=flat-square)](https://github.com/Winds-Studio/Leaf/releases) +[![MIT License](https://img.shields.io/github/license/Winds-Studio/Leaf?style=flat-square)](LICENSE)
Leaf is a drop-in replacement designed for removing some checks, customized, and high-performance built on top of Gale with optimization from other forks.
@@ -27,7 +27,7 @@ ## Downloads -The Reobf JAR can be obtained in the [Actions](https://github.com/Dreeam-qwq/Leaf/actions) or [Releases](https://github.com/Dreeam-qwq/Leaf/releases) +The Reobf JAR can be obtained in the [Actions](https://github.com/Winds-Studio/Leaf/actions) or [Releases](https://github.com/Winds-Studio/Leaf/releases) ## Building @@ -40,7 +40,7 @@ Building a Paperclip JAR for distribution: ## License -[![MIT License](https://img.shields.io/github/license/Dreeam-qwq/Leaf?style=flat-square)](LICENSE) +[![MIT License](https://img.shields.io/github/license/Winds-Studio/Leaf?style=flat-square)](LICENSE) All patches are licensed under the MIT license, unless otherwise noted in the patch headers. diff --git a/build.gradle.kts b/build.gradle.kts index 263b0282..1280d716 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -3,7 +3,7 @@ import io.papermc.paperweight.util.constants.* plugins { java `maven-publish` - id("com.github.johnrengelman.shadow") version "8.1.0" apply false + id("com.github.johnrengelman.shadow") version "8.1.1" apply false id("io.papermc.paperweight.patcher") version "1.5.4-SNAPSHOT" } @@ -19,7 +19,7 @@ repositories { dependencies { remapper("net.fabricmc:tiny-remapper:0.8.6:fat") decompiler("org.quiltmc:quiltflower:1.9.0") - paperclip("io.papermc:paperclip:3.0.3-SNAPSHOT") + paperclip("io.papermc:paperclip:3.0.4-SNAPSHOT") } subprojects { diff --git a/gradle.properties b/gradle.properties index 699e0c67..329a74a8 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,7 +1,7 @@ group = org.dreeam.leaf -version = 1.19.3-R0.1-SNAPSHOT +version = 1.19.4-R0.1-SNAPSHOT -galeCommit = fea609a45aa6337c29d5db00c4262843691559f5 +galeCommit = 43611dc08655f8b54b42256c0cfd6cbf945325b2 org.gradle.caching = true org.gradle.parallel = true diff --git a/patches/api/0002-Bump-Dependencies.patch b/patches/api/0002-Bump-Dependencies.patch index aa8ac639..05de19b4 100644 --- a/patches/api/0002-Bump-Dependencies.patch +++ b/patches/api/0002-Bump-Dependencies.patch @@ -5,20 +5,21 @@ Subject: [PATCH] Bump Dependencies diff --git a/build.gradle.kts b/build.gradle.kts -index 1f8ce35cbc0802917d6fb166fe276a22b03835ed..c9c032ff0ff898cd28de231843c2b98f9843cb8b 100644 +index 8af9efe2dbc9563a2c327002cf05c5d2fd8fc68b..475761fc9ee0ed5c3c7f74fef46b459dd26e3f01 100644 --- a/build.gradle.kts +++ b/build.gradle.kts -@@ -24,14 +24,16 @@ configurations.api { +@@ -24,15 +24,17 @@ configurations.api { dependencies { // api dependencies are listed transitively to API consumers api("com.google.guava:guava:31.1-jre") - api("com.google.code.gson:gson:2.10") -- api("net.md-5:bungeecord-chat:1.16-R0.4-deprecated+build.6") // Paper +- api("net.md-5:bungeecord-chat:1.16-R0.4-deprecated+build.9") // Paper + // Leaf start - Bump Dependencies + api("com.google.code.gson:gson:2.10.1") + api("net.md-5:bungeecord-chat:1.19-R0.1-SNAPSHOT") // Paper + // Leaf end api("org.yaml:snakeyaml:1.33") + api("org.joml:joml:1.10.5") // Paper start api("com.googlecode.json-simple:json-simple:1.1.1") { isTransitive = false // includes junit @@ -28,7 +29,7 @@ index 1f8ce35cbc0802917d6fb166fe276a22b03835ed..c9c032ff0ff898cd28de231843c2b98f apiAndDocs(platform("net.kyori:adventure-bom:$adventureVersion")) apiAndDocs("net.kyori:adventure-api") apiAndDocs("net.kyori:adventure-text-minimessage") -@@ -39,33 +41,35 @@ dependencies { +@@ -40,32 +42,34 @@ dependencies { apiAndDocs("net.kyori:adventure-text-serializer-legacy") apiAndDocs("net.kyori:adventure-text-serializer-plain") apiAndDocs("net.kyori:adventure-text-logger-slf4j") @@ -38,13 +39,11 @@ index 1f8ce35cbc0802917d6fb166fe276a22b03835ed..c9c032ff0ff898cd28de231843c2b98f + api("org.apache.logging.log4j:log4j-api:2.20.0") + api("org.slf4j:slf4j-api:2.0.6") -- implementation("org.ow2.asm:asm:9.2") -- implementation("org.ow2.asm:asm-commons:9.2") -+ implementation("org.ow2.asm:asm:9.4") -+ implementation("org.ow2.asm:asm-commons:9.4") + implementation("org.ow2.asm:asm:9.4") + implementation("org.ow2.asm:asm-commons:9.4") // Paper end -- compileOnly("org.apache.maven:maven-resolver-provider:3.8.5") +- api("org.apache.maven:maven-resolver-provider:3.8.5") // Paper, expose - compileOnly("org.apache.maven.resolver:maven-resolver-connector-basic:1.7.3") - compileOnly("org.apache.maven.resolver:maven-resolver-transport-http:1.7.3") - compileOnly("com.google.code.findbugs:jsr305:1.3.9") // Paper @@ -70,14 +69,12 @@ index 1f8ce35cbc0802917d6fb166fe276a22b03835ed..c9c032ff0ff898cd28de231843c2b98f testImplementation("org.apache.commons:commons-lang3:3.12.0") testImplementation("junit:junit:4.13.2") - testImplementation("org.hamcrest:hamcrest-library:1.3") -- testImplementation("org.ow2.asm:asm-tree:9.3") + testImplementation("org.hamcrest:hamcrest-library:2.2") -+ testImplementation("org.ow2.asm:asm-tree:9.4") + // Leaf end + testImplementation("org.ow2.asm:asm-tree:9.4") } - configure { -@@ -111,9 +115,11 @@ tasks.withType { +@@ -112,9 +116,11 @@ tasks.withType { options.use() options.isDocFilesSubDirs = true options.links( @@ -90,8 +87,8 @@ index 1f8ce35cbc0802917d6fb166fe276a22b03835ed..c9c032ff0ff898cd28de231843c2b98f + // Leaf end // Paper start //"https://javadoc.io/doc/net.md-5/bungeecord-chat/1.16-R0.4/", // don't link to bungee chat - "https://jd.adventure.kyori.net/api/$adventureVersion/", -@@ -153,6 +159,9 @@ val scanJar = tasks.register("scanJarForBadCalls", io.papermc.paperweight.tasks. + "https://jd.advntr.dev/api/$adventureVersion/", +@@ -154,6 +160,9 @@ val scanJar = tasks.register("scanJarForBadCalls", io.papermc.paperweight.tasks. jarToScan.set(tasks.jar.flatMap { it.archiveFile }) classpath.from(configurations.compileClasspath) } diff --git a/patches/api/0004-Purpur-ChatColor-conveniences.patch b/patches/api/0004-Purpur-ChatColor-conveniences.patch index 313dec79..894d63a1 100644 --- a/patches/api/0004-Purpur-ChatColor-conveniences.patch +++ b/patches/api/0004-Purpur-ChatColor-conveniences.patch @@ -7,7 +7,7 @@ Original license: MIT Original project: https://github.com/PurpurMC/Purpur diff --git a/src/main/java/org/bukkit/ChatColor.java b/src/main/java/org/bukkit/ChatColor.java -index f6eb30f53dad684f156102cf7147b2f00c82c71e..f1239a2618b08fa92e0e20692d1c3d20d1558502 100644 +index e3f185dc982d1c38195a4e01ddd485c13ffa58c0..98c2f73ee5c921dab506fc933a0acff400201537 100644 --- a/src/main/java/org/bukkit/ChatColor.java +++ b/src/main/java/org/bukkit/ChatColor.java @@ -3,6 +3,7 @@ package org.bukkit; @@ -18,7 +18,7 @@ index f6eb30f53dad684f156102cf7147b2f00c82c71e..f1239a2618b08fa92e0e20692d1c3d20 import java.util.regex.Pattern; import org.jetbrains.annotations.Contract; import org.jetbrains.annotations.NotNull; -@@ -413,4 +414,77 @@ public enum ChatColor { +@@ -454,4 +455,77 @@ public enum ChatColor { BY_CHAR.put(color.code, color); } } diff --git a/patches/api/0006-Purpur-Lobotomize-stuck-villagers.patch b/patches/api/0005-Purpur-Lobotomize-stuck-villagers.patch similarity index 100% rename from patches/api/0006-Purpur-Lobotomize-stuck-villagers.patch rename to patches/api/0005-Purpur-Lobotomize-stuck-villagers.patch diff --git a/patches/api/0005-Purpur-Spigot-Improve-output-of-plugins-command.patch b/patches/api/0005-Purpur-Spigot-Improve-output-of-plugins-command.patch deleted file mode 100644 index 275bb6ed..00000000 --- a/patches/api/0005-Purpur-Spigot-Improve-output-of-plugins-command.patch +++ /dev/null @@ -1,118 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: Parker Hawke -Date: Sat, 27 Jun 2020 18:43:37 -0400 -Subject: [PATCH] Purpur: Spigot - Improve output of plugins command - -Original license: MIT -Original project: https://github.com/PurpurMC/Purpur - -Co-authored-by: Oharass - -diff --git a/src/main/java/org/bukkit/command/defaults/PluginsCommand.java b/src/main/java/org/bukkit/command/defaults/PluginsCommand.java -index 1aa58c59e1e8738bbdc77752885ff3b18b29de42..46525191653e4ac0e0366c0357f368c0b709f20d 100644 ---- a/src/main/java/org/bukkit/command/defaults/PluginsCommand.java -+++ b/src/main/java/org/bukkit/command/defaults/PluginsCommand.java -@@ -11,6 +11,14 @@ import org.bukkit.ChatColor; - import org.bukkit.command.CommandSender; - import org.bukkit.plugin.Plugin; - import org.jetbrains.annotations.NotNull; -+// Spigot start -+import net.kyori.adventure.text.Component; -+import net.kyori.adventure.text.TextComponent; -+import net.kyori.adventure.text.format.NamedTextColor; -+import net.kyori.adventure.text.event.ClickEvent; -+import org.bukkit.entity.Player; -+import org.bukkit.plugin.PluginDescriptionFile; -+// Spigot end - - public class PluginsCommand extends BukkitCommand { - public PluginsCommand(@NotNull String name) { -@@ -25,7 +33,13 @@ public class PluginsCommand extends BukkitCommand { - public boolean execute(@NotNull CommandSender sender, @NotNull String currentAlias, @NotNull String[] args) { - if (!testPermission(sender)) return true; - -- sender.sendMessage("Plugins " + getPluginList()); -+ // Spigot start -+ if (sender instanceof Player && sender.hasPermission("bukkit.command.version")) { -+ sender.sendMessage(getPluginListSpigot()); -+ } else { -+ sender.sendMessage("Plugins " + getPluginList()); -+ } -+ // Spigot end - return true; - } - -@@ -71,4 +85,73 @@ public class PluginsCommand extends BukkitCommand { - // Paper end - } - -+ // Spigot start -+ @NotNull -+ private TextComponent getPluginListSpigot() { -+ Plugin[] plugins = Bukkit.getPluginManager().getPlugins(); -+ TextComponent.Builder builder = Component.text(); -+ builder.append(Component.text("Plugins (" + plugins.length + "): ")); -+ -+ int index = 0; -+ for (Plugin plugin : plugins) { -+ if (index++ > 0) { -+ builder.append(Component.text(", ", NamedTextColor.WHITE)); -+ } -+ -+ // Event components -+ PluginDescriptionFile description = plugin.getDescription(); -+ TextComponent.Builder hover = Component.text(); -+ hover.append(Component.text("Version: ", NamedTextColor.WHITE)).append(Component.text(description.getVersion(), NamedTextColor.GREEN)); -+ -+ if (description.getDescription() != null) { -+ hover.append(Component.newline()) -+ .append(Component.text("Description: ", NamedTextColor.WHITE)) -+ .append(Component.text(description.getDescription(), NamedTextColor.GREEN)); -+ } -+ -+ if (description.getWebsite() != null) { -+ hover.append(Component.newline()) -+ .append(Component.text("Website: ", NamedTextColor.WHITE)) -+ .append(Component.text(description.getWebsite(), NamedTextColor.GREEN)); -+ } -+ -+ if (!description.getAuthors().isEmpty()) { -+ hover.append(Component.newline()); -+ if (description.getAuthors().size() == 1) { -+ hover.append(Component.text("Author: ")); -+ } else { -+ hover.append(Component.text("Authors: ")); -+ } -+ -+ hover.append(getAuthors(description)); -+ } -+ -+ // Plugin list entry -+ builder.append(Component.text(plugin.getDescription().getName(), plugin.isEnabled() ? NamedTextColor.GREEN : NamedTextColor.RED) -+ .hoverEvent(hover.build()).clickEvent(ClickEvent.suggestCommand("/version " + description.getName()))); -+ -+ if (plugin.getDescription().getProvides().size() > 0) { -+ builder.append(Component.text(" (", NamedTextColor.WHITE)).append(Component.text(String.join(", ", plugin.getDescription().getProvides()))).append(Component.text(")")); -+ } -+ } -+ -+ return builder.build(); -+ } -+ -+ @NotNull -+ private TextComponent getAuthors(@NotNull final PluginDescriptionFile description) { -+ TextComponent.Builder builder = Component.text(); -+ List authors = description.getAuthors(); -+ -+ for (int i = 0; i < authors.size(); i++) { -+ if (i > 0) { -+ builder.append(Component.text(i < authors.size() - 1 ? ", " : " and ", NamedTextColor.WHITE)); -+ } -+ -+ builder.append(Component.text(authors.get(i), NamedTextColor.GREEN)); -+ } -+ -+ return builder.build(); -+ } -+ // Spigot end - } diff --git a/patches/api/0007-KTP-Optimize-Spigot-event-bus.patch b/patches/api/0006-KTP-Optimize-Spigot-event-bus.patch similarity index 94% rename from patches/api/0007-KTP-Optimize-Spigot-event-bus.patch rename to patches/api/0006-KTP-Optimize-Spigot-event-bus.patch index 59b71ac3..03afb477 100644 --- a/patches/api/0007-KTP-Optimize-Spigot-event-bus.patch +++ b/patches/api/0006-KTP-Optimize-Spigot-event-bus.patch @@ -24,10 +24,10 @@ index 3b3d9642a8d63798dc28f2f8df77f0466451cbff..8d3605f25e97a375971705c737bc7bac } } diff --git a/src/main/java/org/bukkit/plugin/SimplePluginManager.java b/src/main/java/org/bukkit/plugin/SimplePluginManager.java -index 7903554958f567c7b566a47fa4b49852a837898e..730394fd53fdaa90133ee399f86e76da8ccc08e6 100644 +index 623c683563a5fb5dcf3b8478873ef2a27307b289..e7e7a4b5ed1a1ae7b4f711daec51003514908d86 100644 --- a/src/main/java/org/bukkit/plugin/SimplePluginManager.java +++ b/src/main/java/org/bukkit/plugin/SimplePluginManager.java -@@ -662,11 +662,15 @@ public final class SimplePluginManager implements PluginManager { +@@ -640,11 +640,15 @@ public final class SimplePluginManager implements PluginManager { // Gale end - JettPack - skip events without listeners // Paper - replace callEvent by merging to below method diff --git a/patches/api/0008-KeYi-Player-Skull-API.patch b/patches/api/0007-KeYi-Player-Skull-API.patch similarity index 73% rename from patches/api/0008-KeYi-Player-Skull-API.patch rename to patches/api/0007-KeYi-Player-Skull-API.patch index 77ec6a22..407ad7a8 100644 --- a/patches/api/0008-KeYi-Player-Skull-API.patch +++ b/patches/api/0007-KeYi-Player-Skull-API.patch @@ -7,20 +7,20 @@ Original license: MIT Original project: https://github.com/KeYiMC/KeYi diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java -index 6acdd0c9a6ea65b06ad5dad4758efb64884daaf3..49b7960390cef1f2e00105ed07186608376b4ddf 100644 +index 15c57f3e4e1c023e0f3168ce03dd770f006cf27b..9b1390c60bb8a5777a93676ad878b3bee1e8fd4e 100644 --- a/src/main/java/org/bukkit/entity/Player.java +++ b/src/main/java/org/bukkit/entity/Player.java -@@ -3,6 +3,9 @@ package org.bukkit.entity; - import java.net.InetSocketAddress; +@@ -4,7 +4,8 @@ import java.net.InetSocketAddress; import java.util.Collection; + import java.util.Map; import java.util.UUID; +- +import java.util.concurrent.CompletableFuture; -+import java.util.concurrent.Future; -+ - import com.destroystokyo.paper.ClientOption; // Paper - import com.destroystokyo.paper.Title; // Paper - import net.kyori.adventure.text.Component; -@@ -3010,4 +3013,23 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM ++import net.kyori.adventure.text.Component; + import org.bukkit.DyeColor; + import org.bukkit.Effect; + import org.bukkit.GameMode; +@@ -3012,4 +3013,23 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM @Override Spigot spigot(); // Spigot end diff --git a/patches/api/0009-Slice-Smooth-Teleports.patch b/patches/api/0008-Slice-Smooth-Teleports.patch similarity index 89% rename from patches/api/0009-Slice-Smooth-Teleports.patch rename to patches/api/0008-Slice-Smooth-Teleports.patch index b3237d39..94d98a04 100644 --- a/patches/api/0009-Slice-Smooth-Teleports.patch +++ b/patches/api/0008-Slice-Smooth-Teleports.patch @@ -7,10 +7,10 @@ Original license: MIT Original project: https://github.com/Cryptite/Slice diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java -index 49b7960390cef1f2e00105ed07186608376b4ddf..04da082de862bef1d345266fc763d480e3bed0bc 100644 +index 9b1390c60bb8a5777a93676ad878b3bee1e8fd4e..cc2be9366a671112e30578e5a470bdc4790e05ed 100644 --- a/src/main/java/org/bukkit/entity/Player.java +++ b/src/main/java/org/bukkit/entity/Player.java -@@ -2873,6 +2873,19 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM +@@ -2895,6 +2895,19 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM String getClientBrandName(); // Paper end diff --git a/patches/api/0010-Pufferfish-Sentry.patch b/patches/api/0009-Pufferfish-Sentry.patch similarity index 90% rename from patches/api/0010-Pufferfish-Sentry.patch rename to patches/api/0009-Pufferfish-Sentry.patch index 7e4db65f..b1be29d2 100644 --- a/patches/api/0010-Pufferfish-Sentry.patch +++ b/patches/api/0009-Pufferfish-Sentry.patch @@ -7,10 +7,10 @@ Original license: GPL v3 Original project: https://github.com/pufferfish-gg/Pufferfish diff --git a/build.gradle.kts b/build.gradle.kts -index 359050a6f125e16787b4f712aaea463d0014dc63..1b61f96fa04c30b7e25b0dbb24a602def228175c 100644 +index 475761fc9ee0ed5c3c7f74fef46b459dd26e3f01..fb4e4e4fa637032f4eb315d27a69c297bc0a9d52 100644 --- a/build.gradle.kts +++ b/build.gradle.kts -@@ -44,6 +44,7 @@ dependencies { +@@ -45,6 +45,7 @@ dependencies { // Leaf start - Bump Dependencies api("org.apache.logging.log4j:log4j-api:2.20.0") api("org.slf4j:slf4j-api:2.0.6") @@ -186,10 +186,10 @@ index 0000000000000000000000000000000000000000..10310fdd53de28efb8a8250f6d3b0c8e + } +} diff --git a/src/main/java/org/bukkit/plugin/SimplePluginManager.java b/src/main/java/org/bukkit/plugin/SimplePluginManager.java -index 730394fd53fdaa90133ee399f86e76da8ccc08e6..17b8d42f8e2897eb019ef12ad772ed0d505f7e84 100644 +index e7e7a4b5ed1a1ae7b4f711daec51003514908d86..f81a3ac08a80d1a3282844b9e3d9e64e2eed34d9 100644 --- a/src/main/java/org/bukkit/plugin/SimplePluginManager.java +++ b/src/main/java/org/bukkit/plugin/SimplePluginManager.java -@@ -625,7 +625,9 @@ public final class SimplePluginManager implements PluginManager { +@@ -584,7 +584,9 @@ public final class SimplePluginManager implements PluginManager { // Paper start private void handlePluginException(String msg, Throwable ex, Plugin plugin) { @@ -199,7 +199,7 @@ index 730394fd53fdaa90133ee399f86e76da8ccc08e6..17b8d42f8e2897eb019ef12ad772ed0d callEvent(new com.destroystokyo.paper.event.server.ServerExceptionEvent(new com.destroystokyo.paper.exception.ServerPluginEnableDisableException(msg, ex, plugin))); } // Paper end -@@ -693,9 +695,11 @@ public final class SimplePluginManager implements PluginManager { +@@ -671,9 +673,11 @@ public final class SimplePluginManager implements PluginManager { )); } } catch (Throwable ex) { @@ -212,20 +212,24 @@ index 730394fd53fdaa90133ee399f86e76da8ccc08e6..17b8d42f8e2897eb019ef12ad772ed0d callEvent(new com.destroystokyo.paper.event.server.ServerExceptionEvent(new com.destroystokyo.paper.exception.ServerEventException(msg, ex, registration.getPlugin(), registration.getListener(), event))); } diff --git a/src/main/java/org/bukkit/plugin/java/JavaPluginLoader.java b/src/main/java/org/bukkit/plugin/java/JavaPluginLoader.java -index 7e5149a21b6747f64425a277c142e69f0ef43b3f..bf93183aa76af005d5daf8cf533f908d535166e8 100644 +index eaefbb00e9993d54906cc8cf35cf753c0d6c7707..301e82369603f3dd6e6c1bd380da4bacacd7ef6c 100644 --- a/src/main/java/org/bukkit/plugin/java/JavaPluginLoader.java +++ b/src/main/java/org/bukkit/plugin/java/JavaPluginLoader.java -@@ -370,7 +370,9 @@ public final class JavaPluginLoader implements PluginLoader { +@@ -336,7 +336,13 @@ public final class JavaPluginLoader implements PluginLoader { try { jPlugin.setEnabled(true); } catch (Throwable ex) { + gg.pufferfish.pufferfish.sentry.SentryContext.setPluginContext(plugin); // Pufferfish server.getLogger().log(Level.SEVERE, "Error occurred while enabling " + plugin.getDescription().getFullName() + " (Is it up to date?)", ex); + gg.pufferfish.pufferfish.sentry.SentryContext.removePluginContext(); // Pufferfish - // Paper start - Disable plugins that fail to load - this.server.getPluginManager().disablePlugin(jPlugin); - return; -@@ -399,7 +401,9 @@ public final class JavaPluginLoader implements PluginLoader { ++ // Paper start - Disable plugins that fail to load ++ this.server.getPluginManager().disablePlugin(jPlugin); ++ return; ++ // Paper end + } + + // Perhaps abort here, rather than continue going, but as it stands, +@@ -361,7 +367,9 @@ public final class JavaPluginLoader implements PluginLoader { try { jPlugin.setEnabled(false); } catch (Throwable ex) { diff --git a/patches/server/0001-Rebrand.patch b/patches/server/0001-Rebrand.patch index 54bb1a23..330603bd 100644 --- a/patches/server/0001-Rebrand.patch +++ b/patches/server/0001-Rebrand.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Rebrand diff --git a/build.gradle.kts b/build.gradle.kts -index f5999d4e9834e19669301612044857d34bd64daa..bb7ecba3612a77191d26a3da2a3609748860b540 100644 +index bb7cb64ccf87508110325c1cae30ca56d036bd90..0785aef21cc7c89d971d22188d287c6406e44ac6 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -9,7 +9,7 @@ plugins { @@ -40,10 +40,10 @@ index e45e6b44b2a8f2cdae6e0048a812b92126aa17ca..b5f3f213da8a40d5184098af017c8e26 .completer(new ConsoleCommandCompleter(this.server)) .option(LineReader.Option.COMPLETE_IN_WORD, true); diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index fe702a042cb132987e5135d2ed855484f9cef686..51704170ca171440e198a51b7fba563dca8debb6 100644 +index dad347675f45922254f8b26efb2cce7461411928..6df45f1978ad075c37902940e7a925dea0717606 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java -@@ -1027,7 +1027,7 @@ public abstract class MinecraftServer extends MinecraftServerBlockableEventLoop +@@ -1030,7 +1030,7 @@ public abstract class MinecraftServer extends MinecraftServerBlockableEventLoop We do not want people to report thread issues to Paper, but we do want people to report thread issues to Gale. */ @@ -52,7 +52,7 @@ index fe702a042cb132987e5135d2ed855484f9cef686..51704170ca171440e198a51b7fba563d // Gale end - branding changes // Gale start - base thread pool while (serverThread.isAlive()) { -@@ -1857,7 +1857,7 @@ public abstract class MinecraftServer extends MinecraftServerBlockableEventLoop +@@ -1880,7 +1880,7 @@ public abstract class MinecraftServer extends MinecraftServerBlockableEventLoop @DontObfuscate public String getServerModName() { @@ -62,10 +62,10 @@ index fe702a042cb132987e5135d2ed855484f9cef686..51704170ca171440e198a51b7fba563d public SystemReport fillSystemReport(SystemReport details) { diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index a618eb60a7f6af1174e9cf1428fdd1cddceaf56d..b4cb8cdacc822d9bf238fcc2029b21c28ea1753b 100644 +index 8605f089a40c56f52f1d2df28af0704677623671..822aad8bacc80fadd8b9ec1dfa48cd45126896b5 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -@@ -266,7 +266,7 @@ import javax.annotation.Nullable; // Paper +@@ -261,7 +261,7 @@ import javax.annotation.Nullable; // Paper import javax.annotation.Nonnull; // Paper public final class CraftServer implements Server { diff --git a/patches/server/0002-Leaf-Config.patch b/patches/server/0002-Leaf-Config.patch index 9a649fe4..5b2bd7a9 100644 --- a/patches/server/0002-Leaf-Config.patch +++ b/patches/server/0002-Leaf-Config.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Leaf Config diff --git a/build.gradle.kts b/build.gradle.kts -index 6e68916e8db5819a56c2696ebf5f1742df7119f8..c745122af630d0f79bed7f0c03baa66eeb2e5da0 100644 +index 0785aef21cc7c89d971d22188d287c6406e44ac6..c088aca3cd93a09860089bbc39e39ba65a8eec0a 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -49,6 +49,13 @@ dependencies { @@ -38,10 +38,10 @@ index 781fc0a92f73be73b9313e7bc4eeb2f2ed6ff8ea..b40c03e42e02bca29fe8b107d9382db6 new TimingsExport(listeners, parent, history).start(); diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 51704170ca171440e198a51b7fba563dca8debb6..108245311279757c17b543b8bb0fcafd31c5eaf8 100644 +index 6df45f1978ad075c37902940e7a925dea0717606..3b73a250d738d75ce2bc2078b380938bc64186ee 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java -@@ -1857,7 +1857,7 @@ public abstract class MinecraftServer extends MinecraftServerBlockableEventLoop +@@ -1880,7 +1880,7 @@ public abstract class MinecraftServer extends MinecraftServerBlockableEventLoop @DontObfuscate public String getServerModName() { diff --git a/patches/server/0003-Bump-Dependencies.patch b/patches/server/0003-Bump-Dependencies.patch index 41983730..615c3f12 100644 --- a/patches/server/0003-Bump-Dependencies.patch +++ b/patches/server/0003-Bump-Dependencies.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Bump Dependencies diff --git a/build.gradle.kts b/build.gradle.kts -index c745122af630d0f79bed7f0c03baa66eeb2e5da0..1b4d00c5b5794b065737f0ca2e61ec8a79a5fa48 100644 +index c088aca3cd93a09860089bbc39e39ba65a8eec0a..63a819196ddcad8106c7358172176c41031c70cd 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -17,7 +17,7 @@ dependencies { @@ -17,7 +17,7 @@ index c745122af630d0f79bed7f0c03baa66eeb2e5da0..1b4d00c5b5794b065737f0ca2e61ec8a implementation("net.minecrell:terminalconsoleappender:1.3.0") /* Required to add the missing Log4j2Plugins.dat file from log4j-core -@@ -25,29 +25,35 @@ dependencies { +@@ -25,14 +25,16 @@ dependencies { all its classes to check if they are plugins. Scanning takes about 1-2 seconds so adding this speeds up the server start. */ @@ -30,31 +30,24 @@ index c745122af630d0f79bed7f0c03baa66eeb2e5da0..1b4d00c5b5794b065737f0ca2e61ec8a + implementation("io.netty:netty-codec-haproxy:4.1.89.Final") // Paper - Add support for proxy protocol // Paper end - implementation("org.apache.logging.log4j:log4j-iostreams:2.19.0") // Paper - remove exclusion -- implementation("org.ow2.asm:asm:9.3") -- implementation("org.ow2.asm:asm-commons:9.3") // Paper - ASM event executor generation -- testImplementation("org.mockito:mockito-core:4.9.0") // Paper - switch to mockito + implementation("org.apache.logging.log4j:log4j-iostreams:2.20.0") // Paper - remove exclusion -+ implementation("org.ow2.asm:asm:9.4") -+ implementation("org.ow2.asm:asm-commons:9.4") // Paper - ASM event executor generation -+ + implementation("org.ow2.asm:asm:9.4") + implementation("org.ow2.asm:asm-commons:9.4") // Paper - ASM event executor generation +- testImplementation("org.mockito:mockito-core:4.9.0") // Paper - switch to mockito + testImplementation("org.mockito:mockito-core:5.2.0") // Paper - switch to mockito + // Leaf end implementation("org.spongepowered:configurate-yaml:4.1.2") // Paper - config files implementation("commons-lang:commons-lang:2.6") implementation("net.fabricmc:mapping-io:0.3.0") // Paper - needed to read mappings for stacktrace deobfuscation +@@ -40,14 +42,15 @@ dependencies { + runtimeOnly("com.mysql:mysql-connector-j:8.0.32") + runtimeOnly("com.lmax:disruptor:3.4.4") // Paper // Paper start - Use Velocity cipher - implementation("com.velocitypowered:velocity-native:3.1.2-SNAPSHOT") { + implementation("com.velocitypowered:velocity-native:3.2.0-SNAPSHOT") { // Leaf - Bump Dependencies isTransitive = false } // Paper end -- runtimeOnly("org.xerial:sqlite-jdbc:3.36.0.3") -- runtimeOnly("mysql:mysql-connector-java:8.0.29") -+ // Leaf start - Bump Dependencies -+ runtimeOnly("org.xerial:sqlite-jdbc:3.41.0.0") -+ runtimeOnly("com.mysql:mysql-connector-j:8.0.32") -+ - runtimeOnly("com.lmax:disruptor:3.4.4") // Paper - runtimeOnly("org.apache.maven:maven-resolver-provider:3.8.5") - runtimeOnly("org.apache.maven.resolver:maven-resolver-connector-basic:1.7.3") @@ -66,7 +59,7 @@ index c745122af630d0f79bed7f0c03baa66eeb2e5da0..1b4d00c5b5794b065737f0ca2e61ec8a // Pufferfish start implementation("org.yaml:snakeyaml:1.33") -@@ -56,11 +62,13 @@ dependencies { +@@ -56,11 +59,13 @@ dependencies { } // Pufferfish end @@ -82,8 +75,8 @@ index c745122af630d0f79bed7f0c03baa66eeb2e5da0..1b4d00c5b5794b065737f0ca2e61ec8a + // Leaf end } - val craftbukkitPackageVersion = "1_19_R2" // Paper -@@ -228,3 +236,6 @@ tasks.registerRunTask("runDev") { + val craftbukkitPackageVersion = "1_19_R3" // Paper +@@ -231,3 +236,6 @@ tasks.registerRunTask("runDev") { description = "Spin up a non-relocated Mojang-mapped test server" classpath(sourceSets.main.map { it.runtimeClasspath }) } diff --git a/patches/server/0005-Remove-Spigot-Check-for-Broken-BungeeCord-Configurat.patch b/patches/server/0005-Remove-Spigot-Check-for-Broken-BungeeCord-Configurat.patch index a5f50200..8bbe6ca1 100644 --- a/patches/server/0005-Remove-Spigot-Check-for-Broken-BungeeCord-Configurat.patch +++ b/patches/server/0005-Remove-Spigot-Check-for-Broken-BungeeCord-Configurat.patch @@ -5,18 +5,18 @@ Subject: [PATCH] Remove Spigot Check for Broken BungeeCord Configurations diff --git a/src/main/java/net/minecraft/server/network/ServerHandshakePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerHandshakePacketListenerImpl.java -index 8e68d1373a519cc12bf83de6aadcb24cbbd34af6..4b07c53efffff8c8c88e13c0c890eff8bc55c4f4 100644 +index f3bbfb472b9be083dd1f1a317b90dda5c3c4f851..ff24597a21d2fb6b4143679e18e0a89d2e2d3914 100644 --- a/src/main/java/net/minecraft/server/network/ServerHandshakePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerHandshakePacketListenerImpl.java -@@ -10,6 +10,7 @@ import net.minecraft.network.protocol.handshake.ClientIntentionPacket; - import net.minecraft.network.protocol.handshake.ServerHandshakePacketListener; +@@ -11,6 +11,7 @@ import net.minecraft.network.protocol.handshake.ServerHandshakePacketListener; import net.minecraft.network.protocol.login.ClientboundLoginDisconnectPacket; + import net.minecraft.network.protocol.status.ServerStatus; import net.minecraft.server.MinecraftServer; +import org.dreeam.leaf.LeafConfig; // CraftBukkit start import java.net.InetAddress; -@@ -135,7 +136,7 @@ public class ServerHandshakePacketListenerImpl implements ServerHandshakePacketL +@@ -136,7 +137,7 @@ public class ServerHandshakePacketListenerImpl implements ServerHandshakePacketL { connection.spoofedProfile = ServerHandshakePacketListenerImpl.gson.fromJson(split[3], com.mojang.authlib.properties.Property[].class); } @@ -26,7 +26,7 @@ index 8e68d1373a519cc12bf83de6aadcb24cbbd34af6..4b07c53efffff8c8c88e13c0c890eff8 this.connection.send(new ClientboundLoginDisconnectPacket(chatmessage)); this.connection.disconnect(chatmessage); diff --git a/src/main/java/org/dreeam/leaf/LeafConfig.java b/src/main/java/org/dreeam/leaf/LeafConfig.java -index 64d105330644aedabff26ba359597b8621bc02c5..9f5150c9e75cd01cbcdce8e359f4df5d4de621d1 100644 +index 590b796615b6ddebea07b79a17c6b3594d900ae7..152968788244233bd249b335b4d291ae536c792e 100644 --- a/src/main/java/org/dreeam/leaf/LeafConfig.java +++ b/src/main/java/org/dreeam/leaf/LeafConfig.java @@ -166,9 +166,13 @@ public class LeafConfig { diff --git a/patches/server/0007-Remove-UseItemOnPacket-Too-Far-Check.patch b/patches/server/0007-Remove-UseItemOnPacket-Too-Far-Check.patch index 0d703bda..b57be6f7 100644 --- a/patches/server/0007-Remove-UseItemOnPacket-Too-Far-Check.patch +++ b/patches/server/0007-Remove-UseItemOnPacket-Too-Far-Check.patch @@ -7,10 +7,10 @@ This Check is added in 1.17.x -> 1.18.x update by Mojang. By removing this check, it enable hackers to use some modules of hack clients. diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 8fd2a0a9f3990742c17d471b143c672163eb76aa..4ff68ff8b4e442a6b6a132eefedd88870006052d 100644 +index cfa431c16d3e366b9bba3539a95286c7485993e1..37890682543302feef9717c3889bfab655b2ec27 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -188,6 +188,7 @@ import org.bukkit.craftbukkit.util.permissions.CraftDefaultPermissions; +@@ -190,6 +190,7 @@ import org.bukkit.craftbukkit.util.permissions.CraftDefaultPermissions; import org.galemc.gale.configuration.GaleGlobalConfiguration; import org.galemc.gale.executor.queue.BaseTaskQueues; import org.galemc.gale.executor.queue.ScheduledServerThreadTaskQueues; @@ -18,7 +18,7 @@ index 8fd2a0a9f3990742c17d471b143c672163eb76aa..4ff68ff8b4e442a6b6a132eefedd8887 import org.slf4j.Logger; // CraftBukkit start -@@ -1979,7 +1980,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -1969,7 +1970,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic Vec3 vec3d2 = vec3d.subtract(vec3d1); double d0 = 1.0000001D; @@ -28,7 +28,7 @@ index 8fd2a0a9f3990742c17d471b143c672163eb76aa..4ff68ff8b4e442a6b6a132eefedd8887 this.player.resetLastActionTime(); diff --git a/src/main/java/org/dreeam/leaf/LeafConfig.java b/src/main/java/org/dreeam/leaf/LeafConfig.java -index 9f5150c9e75cd01cbcdce8e359f4df5d4de621d1..e79c612336d609ca4182c97adaa7cef02a50c93f 100644 +index 152968788244233bd249b335b4d291ae536c792e..cd8d422cb9a6ba38d0ff74e2028bcff76073e307 100644 --- a/src/main/java/org/dreeam/leaf/LeafConfig.java +++ b/src/main/java/org/dreeam/leaf/LeafConfig.java @@ -167,6 +167,8 @@ public class LeafConfig { diff --git a/patches/server/0008-Purpur-Fix-decompile-errors.patch b/patches/server/0008-Purpur-Fix-decompile-errors.patch index d6bd6cec..c6671027 100644 --- a/patches/server/0008-Purpur-Fix-decompile-errors.patch +++ b/patches/server/0008-Purpur-Fix-decompile-errors.patch @@ -6,24 +6,11 @@ Subject: [PATCH] Purpur: Fix decompile errors Original license: MIT Original project: https://github.com/PurpurMC/Purpur -diff --git a/src/main/java/net/minecraft/world/entity/decoration/Painting.java b/src/main/java/net/minecraft/world/entity/decoration/Painting.java -index 0c5caad2a5bfc14450cf8d37f988ee176e8d1450..05a0a890a719a957d9aea736d6c0e85bae9e4eec 100644 ---- a/src/main/java/net/minecraft/world/entity/decoration/Painting.java -+++ b/src/main/java/net/minecraft/world/entity/decoration/Painting.java -@@ -124,7 +124,7 @@ public class Painting extends HangingEntity implements VariantHolder { - return entry; -- }).orElseGet(Painting::getDefaultVariant); -+ }).orElseGet(() -> (Holder.Reference) getDefaultVariant()); // Purpur - decompile error - this.setVariant(holder); - this.direction = Direction.from2DDataValue(nbt.getByte("facing")); - super.readAdditionalSaveData(nbt); diff --git a/src/main/java/net/minecraft/world/level/block/Blocks.java b/src/main/java/net/minecraft/world/level/block/Blocks.java -index 42f46d338886e2892ee4219d19be4dc97f61616f..fdd3aa81644087bff33a47c5f98e14ca0452f3ef 100644 +index f148c7d2954cc17377d0da4af03ea2c1c9397a52..8584a65433555133cdcfc24a078fb0b53b9f83bc 100644 --- a/src/main/java/net/minecraft/world/level/block/Blocks.java +++ b/src/main/java/net/minecraft/world/level/block/Blocks.java -@@ -1127,7 +1127,7 @@ public class Blocks { +@@ -1153,7 +1153,7 @@ public class Blocks { } private static Boolean ocelotOrParrot(BlockState state, BlockGetter world, BlockPos pos, EntityType type) { diff --git a/patches/server/0009-Purpur-Implement-TPSBar.patch b/patches/server/0009-Purpur-Implement-TPSBar.patch index de2f258f..ec345575 100644 --- a/patches/server/0009-Purpur-Implement-TPSBar.patch +++ b/patches/server/0009-Purpur-Implement-TPSBar.patch @@ -19,7 +19,7 @@ index 39844531b03eb8a6c70700b4ecbf0ff1a557424d..632ae75cb3bbc7a3955872d14ad0fbc2 public void removeCommand(String name) { this.children.remove(name); diff --git a/src/main/java/net/minecraft/commands/CommandSourceStack.java b/src/main/java/net/minecraft/commands/CommandSourceStack.java -index ae5dd08de75a7ed231295f306fd0974da3988249..b8d49f7607c646216d42f4e047997d47b49f228f 100644 +index 7b6b51392b123d34382233adcf4c3d4867bdaa32..ccc78857b51e25640ec1e4dcfe4c76a06d1bbff4 100644 --- a/src/main/java/net/minecraft/commands/CommandSourceStack.java +++ b/src/main/java/net/minecraft/commands/CommandSourceStack.java @@ -317,6 +317,30 @@ public class CommandSourceStack implements SharedSuggestionProvider, com.destroy @@ -54,10 +54,10 @@ index ae5dd08de75a7ed231295f306fd0974da3988249..b8d49f7607c646216d42f4e047997d47 if (this.source.acceptsSuccess() && !this.silent) { this.source.sendSystemMessage(message); diff --git a/src/main/java/net/minecraft/commands/Commands.java b/src/main/java/net/minecraft/commands/Commands.java -index c7083450b3466d80611b5efdac78b31ac2e70cf5..0e8700ccc884957f08fa382723a3784d94da0f0e 100644 +index 1a28f9b348a24448bd4a327e1bf0dfab4dc301f5..265c2f9b6b5301f52ef8cf544bbeb8f4a9242737 100644 --- a/src/main/java/net/minecraft/commands/Commands.java +++ b/src/main/java/net/minecraft/commands/Commands.java -@@ -214,6 +214,7 @@ public class Commands { +@@ -221,6 +221,7 @@ public class Commands { SetPlayerIdleTimeoutCommand.register(this.dispatcher); StopCommand.register(this.dispatcher); WhitelistCommand.register(this.dispatcher); @@ -66,10 +66,10 @@ index c7083450b3466d80611b5efdac78b31ac2e70cf5..0e8700ccc884957f08fa382723a3784d if (environment.includeIntegrated) { diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 108245311279757c17b543b8bb0fcafd31c5eaf8..590d697eb0b1e61d3b910ac5276598e6428189fe 100644 +index 3b73a250d738d75ce2bc2078b380938bc64186ee..ef9511d74a185c800e106c1192bbb8162f037326 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java -@@ -1127,6 +1127,7 @@ public abstract class MinecraftServer extends MinecraftServerBlockableEventLoop +@@ -1130,6 +1130,7 @@ public abstract class MinecraftServer extends MinecraftServerBlockableEventLoop this.safeShutdown(waitForShutdown, false); } public void safeShutdown(boolean waitForShutdown, boolean isRestarting) { @@ -98,10 +98,10 @@ index b104a38d2c879b649a3862876c389564c69e83b4..001738c2553cb73a9ed647302a99b462 } } diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index 82dec221441ad4b76af0aebf788af801a275be64..39a0bd651736c80cc558775d94794ee020c574a8 100644 +index aee10fe735b4ccbafbd92908890989b6b8b3685d..74556d5a894a83ca2053c6dbd8117b53b80c28ed 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java -@@ -269,6 +269,7 @@ public class ServerPlayer extends Player { +@@ -275,6 +275,7 @@ public class ServerPlayer extends Player { public final com.destroystokyo.paper.util.misc.PooledLinkedHashSets.PooledObjectLinkedOpenHashSet cachedSingleHashSet; // Paper public PlayerNaturallySpawnCreaturesEvent playerNaturallySpawnedEvent; // Paper public org.bukkit.event.player.PlayerQuitEvent.QuitReason quitReason = null; // Paper - there are a lot of changes to do if we change all methods leading to the event @@ -109,7 +109,7 @@ index 82dec221441ad4b76af0aebf788af801a275be64..39a0bd651736c80cc558775d94794ee0 public ServerPlayer(MinecraftServer server, ServerLevel world, GameProfile profile) { super(world, world.getSharedSpawnPos(), world.getSharedSpawnAngle(), profile); -@@ -507,6 +508,7 @@ public class ServerPlayer extends Player { +@@ -513,6 +514,7 @@ public class ServerPlayer extends Player { } } @@ -117,7 +117,7 @@ index 82dec221441ad4b76af0aebf788af801a275be64..39a0bd651736c80cc558775d94794ee0 } @Override -@@ -573,6 +575,7 @@ public class ServerPlayer extends Player { +@@ -579,6 +581,7 @@ public class ServerPlayer extends Player { } this.getBukkitEntity().setExtraData(nbt); // CraftBukkit @@ -125,7 +125,7 @@ index 82dec221441ad4b76af0aebf788af801a275be64..39a0bd651736c80cc558775d94794ee0 } // CraftBukkit start - World fallback code, either respawn location or global spawn -@@ -2551,4 +2554,14 @@ public class ServerPlayer extends Player { +@@ -2543,4 +2546,14 @@ public class ServerPlayer extends Player { return (CraftPlayer) super.getBukkitEntity(); } // CraftBukkit end @@ -141,10 +141,10 @@ index 82dec221441ad4b76af0aebf788af801a275be64..39a0bd651736c80cc558775d94794ee0 + // Purpur end } diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index 0cbef825129b173a5244a195ea68444c216c0b1b..56a585f9b05e7b38900899be2fe439ac20205bc8 100644 +index 996f4debc4e5fd2aa6097a0d9769481b9bad70b9..cb5ff86443cd1c599f3167b050cf15ec348eacca 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java -@@ -105,6 +105,7 @@ import net.minecraft.world.scores.Scoreboard; // Paper +@@ -106,6 +106,7 @@ import net.minecraft.world.scores.Scoreboard; // Paper import net.minecraft.world.scores.Team; import org.galemc.gale.configuration.GaleGlobalConfiguration; import org.galemc.gale.executor.queue.ScheduledServerThreadTaskQueues; @@ -152,7 +152,7 @@ index 0cbef825129b173a5244a195ea68444c216c0b1b..56a585f9b05e7b38900899be2fe439ac import org.slf4j.Logger; // CraftBukkit start -@@ -521,6 +522,7 @@ public abstract class PlayerList { +@@ -528,6 +529,7 @@ public abstract class PlayerList { scoreboard.addPlayerToTeam(player.getScoreboardName(), collideRuleTeam); } // Paper end @@ -160,7 +160,7 @@ index 0cbef825129b173a5244a195ea68444c216c0b1b..56a585f9b05e7b38900899be2fe439ac // CraftBukkit - Moved from above, added world if (GaleGlobalConfiguration.get().logToConsole.playerLoginLocations) { // Gale - JettPack - make logging login location configurable PlayerList.LOGGER.info("{}[{}] logged in with entity id {} at ([{}]{}, {}, {})", player.getName().getString(), s1, player.getId(), worldserver1.serverLevelData.getLevelName(), player.getX(), player.getY(), player.getZ()); -@@ -636,6 +638,8 @@ public abstract class PlayerList { +@@ -643,6 +645,8 @@ public abstract class PlayerList { } public net.kyori.adventure.text.Component remove(ServerPlayer entityplayer, net.kyori.adventure.text.Component leaveMessage) { // Paper end @@ -182,7 +182,7 @@ index 6035af2cf08353b3d3801220d8116d8611a0cd37..7774ab6a2e553a40def4bb4dceea9e5f final String commandName; if (vanillaCommand.getRedirect() == null) { diff --git a/src/main/java/org/dreeam/leaf/LeafConfig.java b/src/main/java/org/dreeam/leaf/LeafConfig.java -index e79c612336d609ca4182c97adaa7cef02a50c93f..0bc65b128f52fca34017c579bd31f13fe89c5ec9 100644 +index cd8d422cb9a6ba38d0ff74e2028bcff76073e307..395327b9bd07a6860d6b41f76d865f63cd4619a7 100644 --- a/src/main/java/org/dreeam/leaf/LeafConfig.java +++ b/src/main/java/org/dreeam/leaf/LeafConfig.java @@ -1,9 +1,11 @@ diff --git a/patches/server/0010-Purpur-Add-compass-command.patch b/patches/server/0010-Purpur-Add-compass-command.patch index fc31e43c..385fc435 100644 --- a/patches/server/0010-Purpur-Add-compass-command.patch +++ b/patches/server/0010-Purpur-Add-compass-command.patch @@ -7,10 +7,10 @@ Original license: MIT Original project: https://github.com/PurpurMC/Purpur diff --git a/src/main/java/net/minecraft/commands/Commands.java b/src/main/java/net/minecraft/commands/Commands.java -index 0e8700ccc884957f08fa382723a3784d94da0f0e..66242833210ae89cbca7448cd4e7cf1fa774bcf0 100644 +index 265c2f9b6b5301f52ef8cf544bbeb8f4a9242737..5ddaaf3b50b6483143e21f278d3fd732429e64d4 100644 --- a/src/main/java/net/minecraft/commands/Commands.java +++ b/src/main/java/net/minecraft/commands/Commands.java -@@ -215,6 +215,7 @@ public class Commands { +@@ -222,6 +222,7 @@ public class Commands { StopCommand.register(this.dispatcher); WhitelistCommand.register(this.dispatcher); org.dreeam.leaf.commands.TPSBarCommand.register(this.dispatcher); // Purpur @@ -19,10 +19,10 @@ index 0e8700ccc884957f08fa382723a3784d94da0f0e..66242833210ae89cbca7448cd4e7cf1f if (environment.includeIntegrated) { diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index 39a0bd651736c80cc558775d94794ee020c574a8..09667820e41ef9c4e3aef9e2c8d18eb6aa0bdc1e 100644 +index 74556d5a894a83ca2053c6dbd8117b53b80c28ed..f0cf0f82920e09a984c8c3dbb131103beb327163 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java -@@ -270,6 +270,7 @@ public class ServerPlayer extends Player { +@@ -276,6 +276,7 @@ public class ServerPlayer extends Player { public PlayerNaturallySpawnCreaturesEvent playerNaturallySpawnedEvent; // Paper public org.bukkit.event.player.PlayerQuitEvent.QuitReason quitReason = null; // Paper - there are a lot of changes to do if we change all methods leading to the event private boolean tpsBar = false; // Purpur @@ -30,7 +30,7 @@ index 39a0bd651736c80cc558775d94794ee020c574a8..09667820e41ef9c4e3aef9e2c8d18eb6 public ServerPlayer(MinecraftServer server, ServerLevel world, GameProfile profile) { super(world, world.getSharedSpawnPos(), world.getSharedSpawnAngle(), profile); -@@ -509,6 +510,7 @@ public class ServerPlayer extends Player { +@@ -515,6 +516,7 @@ public class ServerPlayer extends Player { } if (nbt.contains("Purpur.TPSBar")) { this.tpsBar = nbt.getBoolean("Purpur.TPSBar"); } // Purpur @@ -38,7 +38,7 @@ index 39a0bd651736c80cc558775d94794ee020c574a8..09667820e41ef9c4e3aef9e2c8d18eb6 } @Override -@@ -576,6 +578,7 @@ public class ServerPlayer extends Player { +@@ -582,6 +584,7 @@ public class ServerPlayer extends Player { this.getBukkitEntity().setExtraData(nbt); // CraftBukkit nbt.putBoolean("Purpur.TPSBar", this.tpsBar); // Purpur @@ -46,7 +46,7 @@ index 39a0bd651736c80cc558775d94794ee020c574a8..09667820e41ef9c4e3aef9e2c8d18eb6 } // CraftBukkit start - World fallback code, either respawn location or global spawn -@@ -2563,5 +2566,13 @@ public class ServerPlayer extends Player { +@@ -2555,5 +2558,13 @@ public class ServerPlayer extends Player { public void tpsBar(boolean tpsBar) { this.tpsBar = tpsBar; } @@ -61,7 +61,7 @@ index 39a0bd651736c80cc558775d94794ee020c574a8..09667820e41ef9c4e3aef9e2c8d18eb6 // Purpur end } diff --git a/src/main/java/org/dreeam/leaf/LeafConfig.java b/src/main/java/org/dreeam/leaf/LeafConfig.java -index 0bc65b128f52fca34017c579bd31f13fe89c5ec9..178891c37d9dea00329dee1fb8d413ec4bb77cb6 100644 +index 395327b9bd07a6860d6b41f76d865f63cd4619a7..41b79bdda2f643fdb85577b2b52327d4b7fa83a8 100644 --- a/src/main/java/org/dreeam/leaf/LeafConfig.java +++ b/src/main/java/org/dreeam/leaf/LeafConfig.java @@ -194,6 +194,11 @@ public class LeafConfig { diff --git a/patches/server/0011-Purpur-Implement-ram-and-rambar-commands.patch b/patches/server/0011-Purpur-Implement-ram-and-rambar-commands.patch index e075f6f3..65634acb 100644 --- a/patches/server/0011-Purpur-Implement-ram-and-rambar-commands.patch +++ b/patches/server/0011-Purpur-Implement-ram-and-rambar-commands.patch @@ -7,10 +7,10 @@ Original license: MIT Original project: https://github.com/PurpurMC/Purpur diff --git a/src/main/java/net/minecraft/commands/Commands.java b/src/main/java/net/minecraft/commands/Commands.java -index 66242833210ae89cbca7448cd4e7cf1fa774bcf0..ff19fcd83295c6936dd83c7780d5757071ca44a5 100644 +index 5ddaaf3b50b6483143e21f278d3fd732429e64d4..e94bcacae678b70a61c428dd307b860ab2382f50 100644 --- a/src/main/java/net/minecraft/commands/Commands.java +++ b/src/main/java/net/minecraft/commands/Commands.java -@@ -216,6 +216,8 @@ public class Commands { +@@ -223,6 +223,8 @@ public class Commands { WhitelistCommand.register(this.dispatcher); org.dreeam.leaf.commands.TPSBarCommand.register(this.dispatcher); // Purpur org.dreeam.leaf.commands.CompassCommand.register(this.dispatcher); // Purpur @@ -20,10 +20,10 @@ index 66242833210ae89cbca7448cd4e7cf1fa774bcf0..ff19fcd83295c6936dd83c7780d57570 if (environment.includeIntegrated) { diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index 09667820e41ef9c4e3aef9e2c8d18eb6aa0bdc1e..05ef07550dae98170a71968673addf9bf8c96769 100644 +index f0cf0f82920e09a984c8c3dbb131103beb327163..807bae553cf0008e3ca328b85fb210dc6a929fde 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java -@@ -271,6 +271,7 @@ public class ServerPlayer extends Player { +@@ -277,6 +277,7 @@ public class ServerPlayer extends Player { public org.bukkit.event.player.PlayerQuitEvent.QuitReason quitReason = null; // Paper - there are a lot of changes to do if we change all methods leading to the event private boolean tpsBar = false; // Purpur private boolean compassBar = false; // Purpur @@ -31,7 +31,7 @@ index 09667820e41ef9c4e3aef9e2c8d18eb6aa0bdc1e..05ef07550dae98170a71968673addf9b public ServerPlayer(MinecraftServer server, ServerLevel world, GameProfile profile) { super(world, world.getSharedSpawnPos(), world.getSharedSpawnAngle(), profile); -@@ -509,6 +510,7 @@ public class ServerPlayer extends Player { +@@ -515,6 +516,7 @@ public class ServerPlayer extends Player { } } @@ -39,7 +39,7 @@ index 09667820e41ef9c4e3aef9e2c8d18eb6aa0bdc1e..05ef07550dae98170a71968673addf9b if (nbt.contains("Purpur.TPSBar")) { this.tpsBar = nbt.getBoolean("Purpur.TPSBar"); } // Purpur if (nbt.contains("Purpur.CompassBar")) { this.compassBar = nbt.getBoolean("Purpur.CompassBar"); } // Purpur } -@@ -577,6 +579,7 @@ public class ServerPlayer extends Player { +@@ -583,6 +585,7 @@ public class ServerPlayer extends Player { } this.getBukkitEntity().setExtraData(nbt); // CraftBukkit @@ -47,7 +47,7 @@ index 09667820e41ef9c4e3aef9e2c8d18eb6aa0bdc1e..05ef07550dae98170a71968673addf9b nbt.putBoolean("Purpur.TPSBar", this.tpsBar); // Purpur nbt.putBoolean("Purpur.CompassBar", this.compassBar); // Purpur } -@@ -2574,5 +2577,14 @@ public class ServerPlayer extends Player { +@@ -2566,5 +2569,14 @@ public class ServerPlayer extends Player { public void compassBar(boolean compassBar) { this.compassBar = compassBar; } @@ -63,7 +63,7 @@ index 09667820e41ef9c4e3aef9e2c8d18eb6aa0bdc1e..05ef07550dae98170a71968673addf9b // Purpur end } diff --git a/src/main/java/org/dreeam/leaf/LeafConfig.java b/src/main/java/org/dreeam/leaf/LeafConfig.java -index 178891c37d9dea00329dee1fb8d413ec4bb77cb6..95131d2fb1b2fff8fe787498ab4d9fbbdf970118 100644 +index 41b79bdda2f643fdb85577b2b52327d4b7fa83a8..b9ade5d89b8dd48b075338e0f61c54aee5fa72ae 100644 --- a/src/main/java/org/dreeam/leaf/LeafConfig.java +++ b/src/main/java/org/dreeam/leaf/LeafConfig.java @@ -199,6 +199,17 @@ public class LeafConfig { diff --git a/patches/server/0012-Purpur-Lagging-threshold.patch b/patches/server/0012-Purpur-Lagging-threshold.patch index b606fc62..3efc2da9 100644 --- a/patches/server/0012-Purpur-Lagging-threshold.patch +++ b/patches/server/0012-Purpur-Lagging-threshold.patch @@ -7,10 +7,10 @@ Original license: MIT Original project: https://github.com/PurpurMC/Purpur diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 590d697eb0b1e61d3b910ac5276598e6428189fe..fe25f51ee708c76bcf66e3280bb235713c99f79c 100644 +index ef9511d74a185c800e106c1192bbb8162f037326..9fe91c7d5949fcd1c764e79fa937f62a5a2ee23b 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java -@@ -404,6 +404,7 @@ public abstract class MinecraftServer extends MinecraftServerBlockableEventLoop +@@ -408,6 +408,7 @@ public abstract class MinecraftServer extends MinecraftServerBlockableEventLoop public final io.papermc.paper.configuration.PaperConfigurations paperConfigurations; public final GaleConfigurations galeConfigurations; // Gale - Gale configuration public static long currentTickLong = 0L; // Paper @@ -18,7 +18,7 @@ index 590d697eb0b1e61d3b910ac5276598e6428189fe..fe25f51ee708c76bcf66e3280bb23571 public volatile Thread shutdownThread; // Paper public volatile boolean abnormalExit = false; // Paper -@@ -1272,6 +1273,7 @@ public abstract class MinecraftServer extends MinecraftServerBlockableEventLoop +@@ -1273,6 +1274,7 @@ public abstract class MinecraftServer extends MinecraftServerBlockableEventLoop this.recentTps[1] = tps5.getAverage(); this.recentTps[2] = tps15.getAverage(); // Paper end @@ -27,10 +27,10 @@ index 590d697eb0b1e61d3b910ac5276598e6428189fe..fe25f51ee708c76bcf66e3280bb23571 } // Spigot end diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index b4cb8cdacc822d9bf238fcc2029b21c28ea1753b..8e3d8b34816a4c097fa6a001aae6eaa2d416af72 100644 +index 822aad8bacc80fadd8b9ec1dfa48cd45126896b5..9dd50870384e1a8bc12a94099a357c6227aa0c3a 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -@@ -3002,4 +3002,10 @@ public final class CraftServer implements Server { +@@ -2982,4 +2982,10 @@ public final class CraftServer implements Server { } // Gale end - YAPFA - last tick time - API @@ -42,7 +42,7 @@ index b4cb8cdacc822d9bf238fcc2029b21c28ea1753b..8e3d8b34816a4c097fa6a001aae6eaa2 + // Purpur end } diff --git a/src/main/java/org/dreeam/leaf/LeafConfig.java b/src/main/java/org/dreeam/leaf/LeafConfig.java -index 95131d2fb1b2fff8fe787498ab4d9fbbdf970118..81a06fa14b0c47321ad37ad73b59770f1563c883 100644 +index b9ade5d89b8dd48b075338e0f61c54aee5fa72ae..d16699e35a17b78364f7d47d69cbeb4ab76c00a1 100644 --- a/src/main/java/org/dreeam/leaf/LeafConfig.java +++ b/src/main/java/org/dreeam/leaf/LeafConfig.java @@ -183,6 +183,11 @@ public class LeafConfig { diff --git a/patches/server/0013-Purpur-Configurable-TPS-Catchup.patch b/patches/server/0013-Purpur-Configurable-TPS-Catchup.patch index d4a2be28..1d57a46b 100644 --- a/patches/server/0013-Purpur-Configurable-TPS-Catchup.patch +++ b/patches/server/0013-Purpur-Configurable-TPS-Catchup.patch @@ -7,10 +7,10 @@ Original license: MIT Original project: https://github.com/PurpurMC/Purpur diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index fe25f51ee708c76bcf66e3280bb235713c99f79c..1f3f414ede558f590a5e68256a60d9ca3c3edf32 100644 +index 9fe91c7d5949fcd1c764e79fa937f62a5a2ee23b..8cd54a95609df0c5497c00d1a254c22d47e80a15 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java -@@ -1285,6 +1285,13 @@ public abstract class MinecraftServer extends MinecraftServerBlockableEventLoop +@@ -1286,6 +1286,13 @@ public abstract class MinecraftServer extends MinecraftServerBlockableEventLoop this.tickServer(this::haveTime); lastTickProperTime = (System.nanoTime() - tickProperStart) / 1000000L; // Gale - YAPFA - last tick time this.setDelayedTasksMaxNextTickTime(Math.max(Util.getMillis() + 50L, this.nextTickTime)); // Gale - base thread pool @@ -25,7 +25,7 @@ index fe25f51ee708c76bcf66e3280bb235713c99f79c..1f3f414ede558f590a5e68256a60d9ca this.isReady = true; JvmProfiler.INSTANCE.onServerTick(this.averageTickTime); diff --git a/src/main/java/org/dreeam/leaf/LeafConfig.java b/src/main/java/org/dreeam/leaf/LeafConfig.java -index 81a06fa14b0c47321ad37ad73b59770f1563c883..1beacdeacb712396cd3de1206c9789be800d2761 100644 +index d16699e35a17b78364f7d47d69cbeb4ab76c00a1..8fce40f92fb9113e01080ef9b67cf61557f19263 100644 --- a/src/main/java/org/dreeam/leaf/LeafConfig.java +++ b/src/main/java/org/dreeam/leaf/LeafConfig.java @@ -184,8 +184,10 @@ public class LeafConfig { diff --git a/patches/server/0014-Purpur-Add-allow-water-in-end-world-option.patch b/patches/server/0014-Purpur-Add-allow-water-in-end-world-option.patch index ea8bce5a..d9fb911a 100644 --- a/patches/server/0014-Purpur-Add-allow-water-in-end-world-option.patch +++ b/patches/server/0014-Purpur-Add-allow-water-in-end-world-option.patch @@ -29,10 +29,10 @@ index 5c6aa9c464784ad5ee366412d080c72d3d22a76f..35d819aa2e660263cf6a5a0c09a6e73f return true; diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index 0ab14271e6efebe49ed9fec904e47566691b9f40..b5e887258bee7de80a9b1d06da030b1d7d07ddc6 100644 +index b19e842be160748a6969e498952eb02ffece2ecc..db412c3409e17eda94290d4f5998d44b6e8220c1 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java -@@ -1616,4 +1616,14 @@ public abstract class Level implements LevelAccessor, AutoCloseable { +@@ -1629,4 +1629,14 @@ public abstract class Level implements LevelAccessor, AutoCloseable { return null; } // Paper end @@ -48,13 +48,13 @@ index 0ab14271e6efebe49ed9fec904e47566691b9f40..b5e887258bee7de80a9b1d06da030b1d + // Purpur end } diff --git a/src/main/java/net/minecraft/world/level/block/IceBlock.java b/src/main/java/net/minecraft/world/level/block/IceBlock.java -index 64206d94a5bf210116d208f9678618b905a61428..fbb06c5db6f80008a54563b7d959e55e5ba96673 100644 +index 5ecf02ce83b7496c977adfeb203b8eadb05f9da5..a04965be7126a9d94bdd52db91067cb05f3ba15f 100644 --- a/src/main/java/net/minecraft/world/level/block/IceBlock.java +++ b/src/main/java/net/minecraft/world/level/block/IceBlock.java @@ -31,7 +31,7 @@ public class IceBlock extends HalfTransparentBlock { - public void afterDestroy(Level world, BlockPos pos, ItemStack stack) { + public void afterDestroy(Level world, BlockPos pos, ItemStack tool) { // Paper end - if (EnchantmentHelper.getItemEnchantmentLevel(Enchantments.SILK_TOUCH, stack) == 0) { + if (EnchantmentHelper.getItemEnchantmentLevel(Enchantments.SILK_TOUCH, tool) == 0) { - if (world.dimensionType().ultraWarm()) { + if (world.isNether() || (world.isTheEnd() && !org.dreeam.leaf.LeafConfig.allowWaterPlacementInTheEnd)) { // Purpur world.removeBlock(pos, false); @@ -70,7 +70,7 @@ index 64206d94a5bf210116d208f9678618b905a61428..fbb06c5db6f80008a54563b7d959e55e } else { world.setBlockAndUpdate(pos, Blocks.WATER.defaultBlockState()); diff --git a/src/main/java/org/dreeam/leaf/LeafConfig.java b/src/main/java/org/dreeam/leaf/LeafConfig.java -index 1beacdeacb712396cd3de1206c9789be800d2761..e0f97f0072232fb4aa45e0cebc98860418c63215 100644 +index 8fce40f92fb9113e01080ef9b67cf61557f19263..25f97e391c29da7b3b49e6b4724875bd904a9270 100644 --- a/src/main/java/org/dreeam/leaf/LeafConfig.java +++ b/src/main/java/org/dreeam/leaf/LeafConfig.java @@ -251,7 +251,9 @@ public class LeafConfig { diff --git a/patches/server/0017-Purpur-Configurable-broadcast-settings.patch b/patches/server/0017-Purpur-Configurable-broadcast-settings.patch index b4b6841d..c5ee046d 100644 --- a/patches/server/0017-Purpur-Configurable-broadcast-settings.patch +++ b/patches/server/0017-Purpur-Configurable-broadcast-settings.patch @@ -7,10 +7,10 @@ Original license: MIT Original project: https://github.com/PurpurMC/Purpur diff --git a/src/main/java/net/minecraft/server/PlayerAdvancements.java b/src/main/java/net/minecraft/server/PlayerAdvancements.java -index 5ba0a756d45350dcda3caa5518c9a47a4de06f14..e438597242adc99e88f465231a043ea25eec4ba1 100644 +index c953f7f2f125985eeec9563a22f9188cc979cd36..09ba481ca721306d3696078e475850a9f36e9df5 100644 --- a/src/main/java/net/minecraft/server/PlayerAdvancements.java +++ b/src/main/java/net/minecraft/server/PlayerAdvancements.java -@@ -298,6 +298,7 @@ public class PlayerAdvancements { +@@ -250,6 +250,7 @@ public class PlayerAdvancements { advancement.getRewards().grant(this.player); // Paper start - Add Adventure message to PlayerAdvancementDoneEvent if (message != null && this.player.level.getGameRules().getBoolean(GameRules.RULE_ANNOUNCE_ADVANCEMENTS)) { @@ -19,10 +19,10 @@ index 5ba0a756d45350dcda3caa5518c9a47a4de06f14..e438597242adc99e88f465231a043ea2 // Paper end } diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index 05ef07550dae98170a71968673addf9bf8c96769..f940f54841455caf5959cb7c9289c5bf4a159f55 100644 +index 807bae553cf0008e3ca328b85fb210dc6a929fde..b9b16f566103798c95592b2921b48a2585a65e73 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java -@@ -948,6 +948,7 @@ public class ServerPlayer extends Player { +@@ -954,6 +954,7 @@ public class ServerPlayer extends Player { })); Team scoreboardteambase = this.getTeam(); @@ -30,7 +30,7 @@ index 05ef07550dae98170a71968673addf9bf8c96769..f940f54841455caf5959cb7c9289c5bf if (scoreboardteambase != null && scoreboardteambase.getDeathMessageVisibility() != Team.Visibility.ALWAYS) { if (scoreboardteambase.getDeathMessageVisibility() == Team.Visibility.HIDE_FOR_OTHER_TEAMS) { this.server.getPlayerList().broadcastSystemToTeam(this, ichatbasecomponent); -@@ -1744,6 +1745,26 @@ public class ServerPlayer extends Player { +@@ -1721,6 +1722,26 @@ public class ServerPlayer extends Player { this.lastSentExp = -1; // CraftBukkit - Added to reset } @@ -58,10 +58,10 @@ index 05ef07550dae98170a71968673addf9bf8c96769..f940f54841455caf5959cb7c9289c5bf public void displayClientMessage(Component message, boolean overlay) { this.sendSystemMessage(message, overlay); diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index 56a585f9b05e7b38900899be2fe439ac20205bc8..fb1bf9dd162ae7105df6ff20724be72768c60d0f 100644 +index cb5ff86443cd1c599f3167b050cf15ec348eacca..bbd2e5cba28b6eded49c6bb70db24f2e0d7a5e84 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java -@@ -1131,6 +1131,20 @@ public abstract class PlayerList { +@@ -1140,6 +1140,20 @@ public abstract class PlayerList { } // CraftBukkit end @@ -83,11 +83,11 @@ index 56a585f9b05e7b38900899be2fe439ac20205bc8..fb1bf9dd162ae7105df6ff20724be727 Iterator iterator = this.players.iterator(); diff --git a/src/main/java/net/minecraft/world/damagesource/DamageSource.java b/src/main/java/net/minecraft/world/damagesource/DamageSource.java -index 2848cb7c76e94d8349f042dc92daf01322a6ce5a..0edf0e24b0b311269b447a34f3aad485556bce10 100644 +index 93a1e990b0a6caae4143c2f9d09bfb368fa1d6db..615611fe372d6edaef56db058bbf2cf7641e3c26 100644 --- a/src/main/java/net/minecraft/world/damagesource/DamageSource.java +++ b/src/main/java/net/minecraft/world/damagesource/DamageSource.java -@@ -265,6 +265,15 @@ public class DamageSource { - return entityliving1 != null ? Component.translatable(s1, entity.getDisplayName(), entityliving1.getDisplayName()) : Component.translatable(s, entity.getDisplayName()); +@@ -126,6 +126,15 @@ public class DamageSource { + } } + // Purpur start @@ -99,14 +99,14 @@ index 2848cb7c76e94d8349f042dc92daf01322a6ce5a..0edf0e24b0b311269b447a34f3aad485 + } + // Purpur end + - public boolean isFire() { - return this.isFireSource; + public String getMsgId() { + return this.type().msgId(); } diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index ce197df36b3746dbd511287ecd78e46eaec3d5e0..b439a6033223269c94e988069c0df3ad6ba5da28 100644 +index 697fad59a6ab4fb41aac65979b42d8ed4b4c8c21..1544c29011ec8d2074dc2e1e107a6e32f351d7c4 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -3877,6 +3877,20 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { +@@ -3922,6 +3922,20 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { return SlotAccess.NULL; } @@ -128,7 +128,7 @@ index ce197df36b3746dbd511287ecd78e46eaec3d5e0..b439a6033223269c94e988069c0df3ad public void sendSystemMessage(Component message) {} diff --git a/src/main/java/org/dreeam/leaf/LeafConfig.java b/src/main/java/org/dreeam/leaf/LeafConfig.java -index cf40152856e51a3c90d6740f45f0e63d582763ed..e66bb8559d6756e07d4c75a1195927377dc7960d 100644 +index b484e1124f861c41e025c3f625bc0881434de086..dbf1099be0c16cb8d8facba8a2f7b56b3a586d23 100644 --- a/src/main/java/org/dreeam/leaf/LeafConfig.java +++ b/src/main/java/org/dreeam/leaf/LeafConfig.java @@ -250,6 +250,13 @@ public class LeafConfig { diff --git a/patches/server/0018-Purpur-Allow-player-join-full-server-by-permission.patch b/patches/server/0018-Purpur-Allow-player-join-full-server-by-permission.patch index b69d290e..6cbb410b 100644 --- a/patches/server/0018-Purpur-Allow-player-join-full-server-by-permission.patch +++ b/patches/server/0018-Purpur-Allow-player-join-full-server-by-permission.patch @@ -7,10 +7,10 @@ Original license: MIT Original project: https://github.com/PurpurMC/Purpur diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index fb1bf9dd162ae7105df6ff20724be72768c60d0f..94f3d84a1a89e1f1c720d6e7f19e93b1b0b5a865 100644 +index bbd2e5cba28b6eded49c6bb70db24f2e0d7a5e84..f509a31c20bef0a37dfa9b51afe2fac9a607b10b 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java -@@ -794,7 +794,7 @@ public abstract class PlayerList { +@@ -801,7 +801,7 @@ public abstract class PlayerList { event.disallow(PlayerLoginEvent.Result.KICK_BANNED, PaperAdventure.asAdventure(ichatmutablecomponent)); // Paper - Adventure } else { // return this.players.size() >= this.maxPlayers && !this.canBypassPlayerLimit(gameprofile) ? IChatBaseComponent.translatable("multiplayer.disconnect.server_full") : null; diff --git a/patches/server/0019-Purpur-Persistent-BlockEntity-Lore-and-DisplayName.patch b/patches/server/0019-Purpur-Persistent-BlockEntity-Lore-and-DisplayName.patch index 1cab1b80..475e3b26 100644 --- a/patches/server/0019-Purpur-Persistent-BlockEntity-Lore-and-DisplayName.patch +++ b/patches/server/0019-Purpur-Persistent-BlockEntity-Lore-and-DisplayName.patch @@ -40,7 +40,7 @@ index b0204af850ee182773ad458208cccd946ad148d5..f74e420b1791df528a30a1213bb0076b @Nullable diff --git a/src/main/java/net/minecraft/world/level/block/Block.java b/src/main/java/net/minecraft/world/level/block/Block.java -index 39981cd0003eb7ee416d887ffec70fb049599320..a5a1773109123c3499d6b2b02b76805d66764ec5 100644 +index 52743a5865997506b5a53fdfd99cdbab67ae3d3f..7f46de07e117d33634ab3510ce16da0fd8770f84 100644 --- a/src/main/java/net/minecraft/world/level/block/Block.java +++ b/src/main/java/net/minecraft/world/level/block/Block.java @@ -65,6 +65,13 @@ import net.minecraft.world.phys.shapes.Shapes; @@ -76,13 +76,13 @@ index 39981cd0003eb7ee416d887ffec70fb049599320..a5a1773109123c3499d6b2b02b76805d state.spawnAfterBreak(world.getMinecraftWorld(), pos, ItemStack.EMPTY, true); } @@ -355,13 +362,53 @@ public class Block extends BlockBehaviour implements ItemLike { - public static void dropResources(BlockState state, Level world, BlockPos pos, @Nullable BlockEntity blockEntity, Entity entity, ItemStack stack) { + public static void dropResources(BlockState state, Level world, BlockPos pos, @Nullable BlockEntity blockEntity, Entity entity, ItemStack tool) { if (world instanceof ServerLevel) { - Block.getDrops(state, (ServerLevel) world, pos, blockEntity, entity, stack).forEach((itemstack1) -> { + Block.getDrops(state, (ServerLevel) world, pos, blockEntity, entity, tool).forEach((itemstack1) -> { - Block.popResource(world, pos, itemstack1); + Block.popResource(world, pos, applyDisplayNameAndLoreFromTile(itemstack1, blockEntity)); // Purpur }); - state.spawnAfterBreak((ServerLevel) world, pos, stack, true); + state.spawnAfterBreak((ServerLevel) world, pos, tool, true); } } @@ -128,10 +128,10 @@ index 39981cd0003eb7ee416d887ffec70fb049599320..a5a1773109123c3499d6b2b02b76805d + // Purpur end + public static void popResource(Level world, BlockPos pos, ItemStack stack) { - float f = EntityType.ITEM.getHeight() / 2.0F; - // Paper start - don't convert potentially massive numbers to floats + double d0 = (double) EntityType.ITEM.getHeight() / 2.0D; + double d1 = (double) pos.getX() + 0.5D + Mth.nextDouble(world.random, -0.25D, 0.25D); diff --git a/src/main/java/net/minecraft/world/level/block/entity/BlockEntity.java b/src/main/java/net/minecraft/world/level/block/entity/BlockEntity.java -index 58986bc0677c5ea1ad54d7d6d4efa5c2ea233aea..59d616137088af46d4494171fe96ba0129082496 100644 +index 1b248db497500aa6bd346b306dcb908af77626f3..64c55f3ebdbc27f7f0cea38247ff7b35fa99e341 100644 --- a/src/main/java/net/minecraft/world/level/block/entity/BlockEntity.java +++ b/src/main/java/net/minecraft/world/level/block/entity/BlockEntity.java @@ -6,6 +6,8 @@ import net.minecraft.CrashReportCategory; @@ -198,7 +198,7 @@ index 58986bc0677c5ea1ad54d7d6d4efa5c2ea233aea..59d616137088af46d4494171fe96ba01 + // Purpur end } diff --git a/src/main/java/org/dreeam/leaf/LeafConfig.java b/src/main/java/org/dreeam/leaf/LeafConfig.java -index e66bb8559d6756e07d4c75a1195927377dc7960d..8f6198983afdf371200d266f7b6e005a97598fcd 100644 +index dbf1099be0c16cb8d8facba8a2f7b56b3a586d23..788a9f3ebf1135e00f8e93199cf1e2a300b67f0b 100644 --- a/src/main/java/org/dreeam/leaf/LeafConfig.java +++ b/src/main/java/org/dreeam/leaf/LeafConfig.java @@ -259,9 +259,11 @@ public class LeafConfig { diff --git a/patches/server/0020-Purpur-Add-more-logger-output-for-invalid-movement-k.patch b/patches/server/0020-Purpur-Add-more-logger-output-for-invalid-movement-k.patch index cc4d2ffa..b18cce94 100644 --- a/patches/server/0020-Purpur-Add-more-logger-output-for-invalid-movement-k.patch +++ b/patches/server/0020-Purpur-Add-more-logger-output-for-invalid-movement-k.patch @@ -7,10 +7,10 @@ Original license: MIT Original project: https://github.com/PurpurMC/Purpur diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 5a656751b101d914afd5b07d70e60b50009ed215..4f131ca1977475513ee43120f06b7c026f49e91e 100644 +index 37890682543302feef9717c3889bfab655b2ec27..89416f1222bb31275ae033009dac18b5578d5807 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -837,6 +837,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -839,6 +839,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic if (packet.getId() == this.awaitingTeleport) { if (this.awaitingPositionFromClient == null) { this.disconnect(Component.translatable("multiplayer.disconnect.invalid_player_movement"), org.bukkit.event.player.PlayerKickEvent.Cause.INVALID_PLAYER_MOVEMENT); // Paper - kick event cause @@ -18,7 +18,7 @@ index 5a656751b101d914afd5b07d70e60b50009ed215..4f131ca1977475513ee43120f06b7c02 return; } -@@ -1401,8 +1402,16 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -1403,8 +1404,16 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic @Override public void handleMovePlayer(ServerboundMovePlayerPacket packet) { PacketUtils.ensureRunningOnSameThread(packet, this, this.player.getLevel()); diff --git a/patches/server/0021-Purpur-Log-skipped-entity-s-position.patch b/patches/server/0021-Purpur-Log-skipped-entity-s-position.patch index 4828690b..e08a3115 100644 --- a/patches/server/0021-Purpur-Log-skipped-entity-s-position.patch +++ b/patches/server/0021-Purpur-Log-skipped-entity-s-position.patch @@ -7,10 +7,10 @@ Original license: MIT Original project: https://github.com/PurpurMC/Purpur diff --git a/src/main/java/net/minecraft/world/entity/EntityType.java b/src/main/java/net/minecraft/world/entity/EntityType.java -index 41ff954010c11d524ffb90abd22c29a1d8d8f5a0..675da6794923cfefbe41034247a71ef929e2802c 100644 +index ceacc0d383e2ee674783d3c0a7df0a951595faca..77214e07b0013014a5dbbd8a14862958db0bcbcd 100644 --- a/src/main/java/net/minecraft/world/entity/EntityType.java +++ b/src/main/java/net/minecraft/world/entity/EntityType.java -@@ -581,6 +581,12 @@ public class EntityType implements FeatureElement, EntityTypeT +@@ -589,6 +589,12 @@ public class EntityType implements FeatureElement, EntityTypeT entity.load(nbt); }, () -> { EntityType.LOGGER.warn("Skipping Entity with id {}", nbt.getString("id")); diff --git a/patches/server/0023-Purpur-Option-to-disable-kick-for-out-of-order-chat.patch b/patches/server/0023-Purpur-Option-to-disable-kick-for-out-of-order-chat.patch index aea72e95..df2223d1 100644 --- a/patches/server/0023-Purpur-Option-to-disable-kick-for-out-of-order-chat.patch +++ b/patches/server/0023-Purpur-Option-to-disable-kick-for-out-of-order-chat.patch @@ -7,10 +7,10 @@ Original license: MIT Original project: https://github.com/PurpurMC/Purpur diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index ed8c12a221c493657f8bdf3c1cb91b0dc2384699..1aaf511a1f69eae6a83e3d7d2cf4d3f03807728f 100644 +index 89416f1222bb31275ae033009dac18b5578d5807..441d5ed7f48a3725a0a50441eaa8ab68ce1025d8 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -2405,7 +2405,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -2399,7 +2399,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic do { instant1 = (Instant) this.lastChatTimeStamp.get(); if (timestamp.isBefore(instant1)) { @@ -20,7 +20,7 @@ index ed8c12a221c493657f8bdf3c1cb91b0dc2384699..1aaf511a1f69eae6a83e3d7d2cf4d3f0 } while (!this.lastChatTimeStamp.compareAndSet(instant1, timestamp)); diff --git a/src/main/java/org/dreeam/leaf/LeafConfig.java b/src/main/java/org/dreeam/leaf/LeafConfig.java -index f7948743b75c2cabaee0f259881e366c371454aa..e8ca567656f23548ddd2485e2f973ec128d93763 100644 +index 24f24530f4e6c7981ca7a30d347648e950915f60..984bed1917c9556775f13f0314a0a7c42ba17ba6 100644 --- a/src/main/java/org/dreeam/leaf/LeafConfig.java +++ b/src/main/java/org/dreeam/leaf/LeafConfig.java @@ -278,4 +278,9 @@ public class LeafConfig { diff --git a/patches/server/0025-KeYi-Player-Skull-API.patch b/patches/server/0025-KeYi-Player-Skull-API.patch index 1d38ae72..8d32be39 100644 --- a/patches/server/0025-KeYi-Player-Skull-API.patch +++ b/patches/server/0025-KeYi-Player-Skull-API.patch @@ -7,7 +7,7 @@ Original license: MIT Original project: https://github.com/KeYiMC/KeYi diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index 03430916a8107c1b0f04d84e1dce494e2da06e7a..74874910d339bd8fbec44755f1ab32fafd17d2e9 100644 +index eca5e6b93dd84307bf9dbadf32414d6f506e69dc..7b80640474c35cf0d47a246c3dcb0f3e72581da8 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java @@ -26,6 +26,9 @@ import java.util.Optional; @@ -20,7 +20,7 @@ index 03430916a8107c1b0f04d84e1dce494e2da06e7a..74874910d339bd8fbec44755f1ab32fa import java.util.logging.Level; import java.util.logging.Logger; import javax.annotation.Nullable; -@@ -146,6 +149,7 @@ import org.bukkit.event.player.PlayerUnregisterChannelEvent; +@@ -147,6 +150,7 @@ import org.bukkit.event.player.PlayerUnregisterChannelEvent; import org.bukkit.inventory.EquipmentSlot; import org.bukkit.inventory.InventoryView.Property; import org.bukkit.inventory.ItemStack; @@ -28,7 +28,7 @@ index 03430916a8107c1b0f04d84e1dce494e2da06e7a..74874910d339bd8fbec44755f1ab32fa import org.bukkit.map.MapCursor; import org.bukkit.map.MapView; import org.bukkit.metadata.MetadataValue; -@@ -3058,4 +3062,28 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -3148,4 +3152,28 @@ public class CraftPlayer extends CraftHumanEntity implements Player { return this.spigot; } // Spigot end diff --git a/patches/server/0026-KeYi-Disable-arrow-despawn-counter-by-default.patch b/patches/server/0026-KeYi-Disable-arrow-despawn-counter-by-default.patch index e2ea3156..fb354781 100644 --- a/patches/server/0026-KeYi-Disable-arrow-despawn-counter-by-default.patch +++ b/patches/server/0026-KeYi-Disable-arrow-despawn-counter-by-default.patch @@ -7,10 +7,10 @@ Original license: MIT Original project: https://github.com/KeYiMC/KeYi diff --git a/src/main/java/org/galemc/gale/configuration/GaleWorldConfiguration.java b/src/main/java/org/galemc/gale/configuration/GaleWorldConfiguration.java -index cc25c05262929b946cf696a1df0f24a50508db5e..e06cfc5aac784b62ffa8c425ba438d53b18359d2 100644 +index 0b4621b60c2eee7201b38016063ec3db11706022..4892c6d9e1df2f25ae82c98bdabbe807e8c58b2e 100644 --- a/src/main/java/org/galemc/gale/configuration/GaleWorldConfiguration.java +++ b/src/main/java/org/galemc/gale/configuration/GaleWorldConfiguration.java -@@ -308,7 +308,7 @@ public class GaleWorldConfiguration extends ConfigurationPart { +@@ -325,7 +325,7 @@ public class GaleWorldConfiguration extends ConfigurationPart { public boolean entitiesCanEatBlocksInNonTickingChunks = false; // Gale - Purpur - prevent entities eating blocks in non-ticking chunks public boolean entitiesCanRandomStrollIntoNonTickingChunks = true; // Gale - MultiPaper - prevent entities random strolling into non-ticking chunks diff --git a/patches/server/0027-KeYi-Add-an-option-for-spigot-item-merging-mechanism.patch b/patches/server/0027-KeYi-Add-an-option-for-spigot-item-merging-mechanism.patch index 19c90901..b176eb04 100644 --- a/patches/server/0027-KeYi-Add-an-option-for-spigot-item-merging-mechanism.patch +++ b/patches/server/0027-KeYi-Add-an-option-for-spigot-item-merging-mechanism.patch @@ -7,28 +7,28 @@ Original license: MIT Original project: https://github.com/KeYiMC/KeYi diff --git a/src/main/java/net/minecraft/world/entity/item/ItemEntity.java b/src/main/java/net/minecraft/world/entity/item/ItemEntity.java -index 7b0374b6e22105e59b29995983a6ac50268c722e..da45ccd3b96158dace1dec4c291aa98f9d5c4ac5 100644 +index b77d112f74046cd35f17bada00a22402cb716482..881fe946c1046dd0421db98f628fcf6f0922e469 100644 --- a/src/main/java/net/minecraft/world/entity/item/ItemEntity.java +++ b/src/main/java/net/minecraft/world/entity/item/ItemEntity.java -@@ -37,6 +37,7 @@ import org.bukkit.event.entity.EntityPickupItemEvent; +@@ -38,6 +38,7 @@ import org.bukkit.event.entity.EntityPickupItemEvent; import org.bukkit.event.player.PlayerPickupItemEvent; // CraftBukkit end import org.bukkit.event.player.PlayerAttemptPickupItemEvent; // Paper +import org.dreeam.leaf.LeafConfig; - public class ItemEntity extends Entity { + public class ItemEntity extends Entity implements TraceableEntity { -@@ -316,7 +317,7 @@ public class ItemEntity extends Entity { +@@ -325,7 +326,7 @@ public class ItemEntity extends Entity implements TraceableEntity { ItemStack itemstack1 = other.getItem(); - if (Objects.equals(this.getOwner(), other.getOwner()) && ItemEntity.areMergable(itemstack, itemstack1)) { + if (Objects.equals(this.target, other.target) && ItemEntity.areMergable(itemstack, itemstack1)) { - if (true || itemstack1.getCount() < itemstack.getCount()) { // Spigot + if (LeafConfig.useSpigotItemMergingMechanism || itemstack1.getCount() < itemstack.getCount()) { // Spigot // KeYi ItemEntity.merge(this, itemstack, other, itemstack1); } else { ItemEntity.merge(other, itemstack1, this, itemstack); diff --git a/src/main/java/org/dreeam/leaf/LeafConfig.java b/src/main/java/org/dreeam/leaf/LeafConfig.java -index e8ca567656f23548ddd2485e2f973ec128d93763..b3604afdc3fcb515d0c56349552dc1eaeb733a5a 100644 +index 984bed1917c9556775f13f0314a0a7c42ba17ba6..918631209956adae59b83dd28e7492290362311e 100644 --- a/src/main/java/org/dreeam/leaf/LeafConfig.java +++ b/src/main/java/org/dreeam/leaf/LeafConfig.java @@ -187,11 +187,13 @@ public class LeafConfig { diff --git a/patches/server/0030-Carpet-Fixes-Optimize-Math.round-and-Math.hypot-func.patch b/patches/server/0030-Carpet-Fixes-Optimize-Math.round-and-Math.hypot-func.patch index d8180cb2..b2d88604 100644 --- a/patches/server/0030-Carpet-Fixes-Optimize-Math.round-and-Math.hypot-func.patch +++ b/patches/server/0030-Carpet-Fixes-Optimize-Math.round-and-Math.hypot-func.patch @@ -140,23 +140,23 @@ index 7784d72ddd6db00c674e22759c00c430222c4b85..0f180d11774f6dec2667b3a3f6a63d11 text("Relit ", BLUE), text(totalRelit), text(" chunks. Took ", BLUE), text(diff + "ms") diff --git a/src/main/java/net/minecraft/commands/arguments/TimeArgument.java b/src/main/java/net/minecraft/commands/arguments/TimeArgument.java -index e3e80db89c18588322ffdaa0f9fd85e398cb1471..d947011b80ee14e7aaf74af3d9081fc78e8cb4c3 100644 +index b2f1d117abd3828140c1edf2baf314b34d2ccf40..d13bafdfa4175e193fa3e337f93e796dd346e678 100644 --- a/src/main/java/net/minecraft/commands/arguments/TimeArgument.java +++ b/src/main/java/net/minecraft/commands/arguments/TimeArgument.java -@@ -35,7 +35,7 @@ public class TimeArgument implements ArgumentType { +@@ -48,7 +48,7 @@ public class TimeArgument implements ArgumentType { if (i == 0) { throw ERROR_INVALID_UNIT.create(); } else { - int j = Math.round(f * (float)i); + int j = carpetfixes.helpers.FastMath.round(f * (float)i); // Mirai - if (j < 0) { - throw ERROR_INVALID_TICK_COUNT.create(j); + if (j < this.minimum) { + throw ERROR_TICK_COUNT_TOO_LOW.create(j, this.minimum); } else { diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 1f3f414ede558f590a5e68256a60d9ca3c3edf32..4bd8a68ed3fb9ab8857ed53a78284c2b43dbaaec 100644 +index 8cd54a95609df0c5497c00d1a254c22d47e80a15..0447aaaa778e9e7f5ceb3d0f3c868a8289fcdc6f 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java -@@ -2838,7 +2838,7 @@ public abstract class MinecraftServer extends MinecraftServerBlockableEventLoop +@@ -2861,7 +2861,7 @@ public abstract class MinecraftServer extends MinecraftServerBlockableEventLoop } double overuseCount = (double)overuse/(double)MAX_CHUNK_EXEC_TIME; @@ -179,7 +179,7 @@ index 88f10d729aa1e0a01790521821d691a0ecd373a2..45b2aa542969798a5a3b73af78de21cc // Paper end } diff --git a/src/main/java/net/minecraft/util/Mth.java b/src/main/java/net/minecraft/util/Mth.java -index 618f19d70a61062ed5989ec6cf0c036f2e047466..2963a5516575f656882d11547671201060b8ada0 100644 +index a378a2ddd96e76925fa3409282d9606a86c72334..8f6a109675d3ac160c8ee199400cedc20f529e2e 100644 --- a/src/main/java/net/minecraft/util/Mth.java +++ b/src/main/java/net/minecraft/util/Mth.java @@ -9,6 +9,7 @@ import net.minecraft.core.Vec3i; @@ -189,8 +189,8 @@ index 618f19d70a61062ed5989ec6cf0c036f2e047466..2963a5516575f656882d115476712010 +import org.dreeam.leaf.LeafConfig; public class Mth { - private static final int BIG_ENOUGH_INT = 1024; -@@ -800,6 +801,7 @@ public class Mth { + private static final long UUID_VERSION = 61440L; +@@ -592,6 +593,7 @@ public class Mth { } public static double length(double a, double b) { @@ -199,10 +199,10 @@ index 618f19d70a61062ed5989ec6cf0c036f2e047466..2963a5516575f656882d115476712010 } diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index 87499e82e80a8b7d6d8ca6eeaa1819b74fcf1665..cb6f4a671dc258eab9e739d5a80952e3768acbbd 100644 +index a076e8b852a87b67602a21f07048da1570226a81..a947acfee2d45ba29e293b196250d52af874bcc6 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java -@@ -1512,7 +1512,7 @@ public abstract class LivingEntity extends Entity { +@@ -1501,7 +1501,7 @@ public abstract class LivingEntity extends Entity implements Attackable { if (this instanceof ServerPlayer) { CriteriaTriggers.ENTITY_HURT_PLAYER.trigger((ServerPlayer) this, source, f1, amount, flag); if (f2 > 0.0F && f2 < 3.4028235E37F) { @@ -211,7 +211,7 @@ index 87499e82e80a8b7d6d8ca6eeaa1819b74fcf1665..cb6f4a671dc258eab9e739d5a80952e3 } } -@@ -2102,9 +2102,9 @@ public abstract class LivingEntity extends Entity { +@@ -2100,9 +2100,9 @@ public abstract class LivingEntity extends Entity implements Attackable { if (f3 > 0.0F && f3 < 3.4028235E37F) { if (this instanceof ServerPlayer) { @@ -223,7 +223,7 @@ index 87499e82e80a8b7d6d8ca6eeaa1819b74fcf1665..cb6f4a671dc258eab9e739d5a80952e3 } } } -@@ -2216,9 +2216,9 @@ public abstract class LivingEntity extends Entity { +@@ -2214,9 +2214,9 @@ public abstract class LivingEntity extends Entity implements Attackable { float f3 = (float) -event.getDamage(DamageModifier.RESISTANCE); if (f3 > 0.0F && f3 < 3.4028235E37F) { if (this instanceof ServerPlayer) { @@ -235,20 +235,25 @@ index 87499e82e80a8b7d6d8ca6eeaa1819b74fcf1665..cb6f4a671dc258eab9e739d5a80952e3 } } } -@@ -2250,10 +2250,10 @@ public abstract class LivingEntity extends Entity { +@@ -2248,7 +2248,7 @@ public abstract class LivingEntity extends Entity implements Attackable { float f2 = absorptionModifier; if (f2 > 0.0F && f2 < 3.4028235E37F && this instanceof net.minecraft.world.entity.player.Player) { - ((net.minecraft.world.entity.player.Player) this).awardStat(Stats.DAMAGE_ABSORBED, Math.round(f2 * 10.0F)); + ((net.minecraft.world.entity.player.Player) this).awardStat(Stats.DAMAGE_ABSORBED, carpetfixes.helpers.FastMath.round(f2 * 10.0F)); // Mirai } - if (f2 > 0.0F && f2 < 3.4028235E37F && damagesource.getEntity() instanceof ServerPlayer) { -- ((ServerPlayer) damagesource.getEntity()).awardStat(Stats.DAMAGE_DEALT_ABSORBED, Math.round(f2 * 10.0F)); -+ ((ServerPlayer) damagesource.getEntity()).awardStat(Stats.DAMAGE_DEALT_ABSORBED, carpetfixes.helpers.FastMath.round(f2 * 10.0F)); // Mirai + if (f2 > 0.0F && f2 < 3.4028235E37F) { + Entity entity = damagesource.getEntity(); +@@ -2256,7 +2256,7 @@ public abstract class LivingEntity extends Entity implements Attackable { + if (entity instanceof ServerPlayer) { + ServerPlayer entityplayer = (ServerPlayer) entity; + +- entityplayer.awardStat(Stats.DAMAGE_DEALT_ABSORBED, Math.round(f2 * 10.0F)); ++ entityplayer.awardStat(Stats.DAMAGE_DEALT_ABSORBED, carpetfixes.helpers.FastMath.round(f2 * 10.0F)); // Mirai + } } - if (f > 0 || !human) { -@@ -2261,7 +2261,7 @@ public abstract class LivingEntity extends Entity { +@@ -2265,7 +2265,7 @@ public abstract class LivingEntity extends Entity implements Attackable { // PAIL: Be sure to drag all this code from the EntityHuman subclass each update. ((net.minecraft.world.entity.player.Player) this).causeFoodExhaustion(damagesource.getFoodExhaustion(), org.bukkit.event.entity.EntityExhaustionEvent.ExhaustionReason.DAMAGED); // CraftBukkit - EntityExhaustionEvent if (f < 3.4028235E37F) { @@ -257,8 +262,8 @@ index 87499e82e80a8b7d6d8ca6eeaa1819b74fcf1665..cb6f4a671dc258eab9e739d5a80952e3 } } // CraftBukkit end -@@ -2285,7 +2285,7 @@ public abstract class LivingEntity extends Entity { - CriteriaTriggers.ENTITY_HURT_PLAYER.trigger((ServerPlayer) this, damagesource, f, originalDamage, true); +@@ -2287,7 +2287,7 @@ public abstract class LivingEntity extends Entity implements Attackable { + CriteriaTriggers.ENTITY_HURT_PLAYER.trigger((ServerPlayer) this, damagesource, originalDamage, f, true); // Paper - fix taken/dealt param order f2 = (float) -event.getDamage(DamageModifier.BLOCKING); if (f2 > 0.0F && f2 < 3.4028235E37F) { - ((ServerPlayer) this).awardStat(Stats.DAMAGE_BLOCKED_BY_SHIELD, Math.round(originalDamage * 10.0F)); @@ -266,7 +271,7 @@ index 87499e82e80a8b7d6d8ca6eeaa1819b74fcf1665..cb6f4a671dc258eab9e739d5a80952e3 } } -@@ -3088,13 +3088,13 @@ public abstract class LivingEntity extends Entity { +@@ -3054,13 +3054,13 @@ public abstract class LivingEntity extends Entity implements Attackable { f2 = this.tickHeadTurn(f1, f2); // Paper start - stop large pitch and yaw changes from crashing the server @@ -285,10 +290,10 @@ index 87499e82e80a8b7d6d8ca6eeaa1819b74fcf1665..cb6f4a671dc258eab9e739d5a80952e3 this.animStep += f2; diff --git a/src/main/java/net/minecraft/world/entity/player/Player.java b/src/main/java/net/minecraft/world/entity/player/Player.java -index 8123f6dade5e64f6f8d9e567402636b8e297abe0..cd68fabce025a80eb2633192ae9493ff6bbf7817 100644 +index 7b0dbfaab5951aaf09c36bc5112d953585f0098a..8814e1320fa716184a7f8ae930717583184b5408 100644 --- a/src/main/java/net/minecraft/world/entity/player/Player.java +++ b/src/main/java/net/minecraft/world/entity/player/Player.java -@@ -1074,7 +1074,7 @@ public abstract class Player extends LivingEntity { +@@ -1072,7 +1072,7 @@ public abstract class Player extends LivingEntity { float f2 = f1 - f; if (f2 > 0.0F && f2 < 3.4028235E37F) { @@ -297,16 +302,16 @@ index 8123f6dade5e64f6f8d9e567402636b8e297abe0..cd68fabce025a80eb2633192ae9493ff } if (f != 0.0F) { -@@ -1084,7 +1084,7 @@ public abstract class Player extends LivingEntity { - this.setHealth(this.getHealth() - f); +@@ -1082,7 +1082,7 @@ public abstract class Player extends LivingEntity { this.getCombatTracker().recordDamage(damagesource, f3, f); + this.setHealth(this.getHealth() - f); if (f < 3.4028235E37F) { - this.awardStat(Stats.DAMAGE_TAKEN, Math.round(f * 10.0F)); + this.awardStat(Stats.DAMAGE_TAKEN, carpetfixes.helpers.FastMath.round(f * 10.0F)); // Mirai } } -@@ -1423,7 +1423,7 @@ public abstract class Player extends LivingEntity { +@@ -1422,7 +1422,7 @@ public abstract class Player extends LivingEntity { if (target instanceof LivingEntity) { float f5 = f3 - ((LivingEntity) target).getHealth(); @@ -315,7 +320,7 @@ index 8123f6dade5e64f6f8d9e567402636b8e297abe0..cd68fabce025a80eb2633192ae9493ff if (j > 0) { // CraftBukkit start - Call a combust event when somebody hits with a fire enchanted item EntityCombustByEntityEvent combustEvent = new EntityCombustByEntityEvent(this.getBukkitEntity(), target.getBukkitEntity(), j * 4); -@@ -1691,29 +1691,29 @@ public abstract class Player extends LivingEntity { +@@ -1686,29 +1686,29 @@ public abstract class Player extends LivingEntity { int i; if (this.isSwimming()) { @@ -350,7 +355,7 @@ index 8123f6dade5e64f6f8d9e567402636b8e297abe0..cd68fabce025a80eb2633192ae9493ff if (i > 0) { if (this.isSprinting()) { this.awardStat(Stats.SPRINT_ONE_CM, i); -@@ -1727,10 +1727,10 @@ public abstract class Player extends LivingEntity { +@@ -1722,10 +1722,10 @@ public abstract class Player extends LivingEntity { } } } else if (this.isFallFlying()) { @@ -363,7 +368,7 @@ index 8123f6dade5e64f6f8d9e567402636b8e297abe0..cd68fabce025a80eb2633192ae9493ff if (i > 25) { this.awardStat(Stats.FLY_ONE_CM, i); } -@@ -1741,7 +1741,7 @@ public abstract class Player extends LivingEntity { +@@ -1736,7 +1736,7 @@ public abstract class Player extends LivingEntity { private void checkRidingStatistics(double dx, double dy, double dz) { if (this.isPassenger()) { @@ -372,7 +377,7 @@ index 8123f6dade5e64f6f8d9e567402636b8e297abe0..cd68fabce025a80eb2633192ae9493ff if (i > 0) { Entity entity = this.getVehicle(); -@@ -1768,7 +1768,7 @@ public abstract class Player extends LivingEntity { +@@ -1763,7 +1763,7 @@ public abstract class Player extends LivingEntity { return false; } else { if (fallDistance >= 2.0F) { @@ -382,10 +387,10 @@ index 8123f6dade5e64f6f8d9e567402636b8e297abe0..cd68fabce025a80eb2633192ae9493ff return super.causeFallDamage(fallDistance, damageMultiplier, damageSource); diff --git a/src/main/java/net/minecraft/world/item/Item.java b/src/main/java/net/minecraft/world/item/Item.java -index 253d3c1b83d1e8f5d1afbdb5fb7007196ed94436..ea9c536db845d94ae4333c1e8fa9469cf20a45b7 100644 +index dd2f6c67533cc3344a171fe3ae9b3704796d8c50..78e641cf4f5857712f60b168be803f311e7def10 100644 --- a/src/main/java/net/minecraft/world/item/Item.java +++ b/src/main/java/net/minecraft/world/item/Item.java -@@ -168,7 +168,7 @@ public class Item implements FeatureElement, ItemLike { +@@ -169,7 +169,7 @@ public class Item implements FeatureElement, ItemLike { } public int getBarWidth(ItemStack stack) { @@ -395,10 +400,10 @@ index 253d3c1b83d1e8f5d1afbdb5fb7007196ed94436..ea9c536db845d94ae4333c1e8fa9469c public int getBarColor(ItemStack stack) { diff --git a/src/main/java/net/minecraft/world/item/enchantment/EnchantmentHelper.java b/src/main/java/net/minecraft/world/item/enchantment/EnchantmentHelper.java -index 064783822333d11120daa28f3be5099e10510b72..48fa055b8130889c5fcce9d0e282ea12a4daf577 100644 +index ecf640b00007a386290f8dfe9935a8aa610079fd..8b199643eda44a6f020768af70e85175fbe2be5d 100644 --- a/src/main/java/net/minecraft/world/item/enchantment/EnchantmentHelper.java +++ b/src/main/java/net/minecraft/world/item/enchantment/EnchantmentHelper.java -@@ -346,7 +346,7 @@ public class EnchantmentHelper { +@@ -350,7 +350,7 @@ public class EnchantmentHelper { } else { level += 1 + random.nextInt(i / 4 + 1) + random.nextInt(i / 4 + 1); float f = (random.nextFloat() + random.nextFloat() - 1.0F) * 0.15F; @@ -408,7 +413,7 @@ index 064783822333d11120daa28f3be5099e10510b72..48fa055b8130889c5fcce9d0e282ea12 if (!list2.isEmpty()) { WeightedRandom.getRandomItem(random, list2).ifPresent(list::add); diff --git a/src/main/java/net/minecraft/world/level/block/DaylightDetectorBlock.java b/src/main/java/net/minecraft/world/level/block/DaylightDetectorBlock.java -index 16504b8be08064e61b013fa943f692816612cbd0..38f6759501dcc2a0adb9608a9f639c2411acf277 100644 +index 81376e725151f723dad8a7b5c1a4bd597e60294e..5a33c98d29e1a76e5239dab166514ab95779ddc6 100644 --- a/src/main/java/net/minecraft/world/level/block/DaylightDetectorBlock.java +++ b/src/main/java/net/minecraft/world/level/block/DaylightDetectorBlock.java @@ -62,7 +62,7 @@ public class DaylightDetectorBlock extends BaseEntityBlock { @@ -419,7 +424,7 @@ index 16504b8be08064e61b013fa943f692816612cbd0..38f6759501dcc2a0adb9608a9f639c24 + i = carpetfixes.helpers.FastMath.round((float) i * Mth.cos(f)); // Mirai } - i = Mth.clamp(i, (int) 0, (int) 15); + i = Mth.clamp(i, 0, 15); diff --git a/src/main/java/net/minecraft/world/level/levelgen/SurfaceSystem.java b/src/main/java/net/minecraft/world/level/levelgen/SurfaceSystem.java index 3152d995f87beca1e0243a7d594d352ec458b0ed..d4dbee946d292e0d01910cc4fd1c67cda8fd7dc8 100644 --- a/src/main/java/net/minecraft/world/level/levelgen/SurfaceSystem.java @@ -487,7 +492,7 @@ index 731c7dd15f131dc124be6af8f342b122cb89491b..24a82111a5485da1e3903977d0519e9e return i; } diff --git a/src/main/java/org/dreeam/leaf/LeafConfig.java b/src/main/java/org/dreeam/leaf/LeafConfig.java -index b3604afdc3fcb515d0c56349552dc1eaeb733a5a..4260147ebc4f1e60ce510212c2829ed32f94b735 100644 +index 918631209956adae59b83dd28e7492290362311e..607b02f77c76760f607ce763ea2ea17e48323c0e 100644 --- a/src/main/java/org/dreeam/leaf/LeafConfig.java +++ b/src/main/java/org/dreeam/leaf/LeafConfig.java @@ -188,12 +188,18 @@ public class LeafConfig { diff --git a/patches/server/0031-Petal-reduce-work-done-by-game-event-system.patch b/patches/server/0031-Petal-reduce-work-done-by-game-event-system.patch index b5d12bae..8b3e697c 100644 --- a/patches/server/0031-Petal-reduce-work-done-by-game-event-system.patch +++ b/patches/server/0031-Petal-reduce-work-done-by-game-event-system.patch @@ -11,7 +11,7 @@ Original project: https://github.com/Bloom-host/Petal 2. EuclideanGameEventListenerRegistry is not used concurrently so we ban that usage for improved performance with allays diff --git a/src/main/java/net/minecraft/world/level/block/entity/SculkCatalystBlockEntity.java b/src/main/java/net/minecraft/world/level/block/entity/SculkCatalystBlockEntity.java -index 163e63e3c538c7c1c75ed634896db9d8c00416f3..d07c31d21c98583f7a387a23697b673feae6ad6b 100644 +index 902f2b39104bf059849228829bfe93b6dbc757d4..088bc38bfe82532a9ec80a96de8178dee21d07d6 100644 --- a/src/main/java/net/minecraft/world/level/block/entity/SculkCatalystBlockEntity.java +++ b/src/main/java/net/minecraft/world/level/block/entity/SculkCatalystBlockEntity.java @@ -85,6 +85,13 @@ public class SculkCatalystBlockEntity extends BlockEntity implements GameEventLi @@ -29,7 +29,7 @@ index 163e63e3c538c7c1c75ed634896db9d8c00416f3..d07c31d21c98583f7a387a23697b673f org.bukkit.craftbukkit.event.CraftEventFactory.sourceBlockOverride = blockEntity.getBlockPos(); // CraftBukkit - SPIGOT-7068: Add source block override, not the most elegant way but better than passing down a BlockPosition up to five methods deep. blockEntity.sculkSpreader.updateCursors(world, pos, world.getRandom(), true); diff --git a/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java b/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java -index c752545aa67ef6488d8dfa80fa424e123d7c8f0b..4c0f62f95990dc926ced1e4528612904bfbb6399 100644 +index ccf7a5abfe1d15c02eaa7b7b5699642f53bc3510..e6d3fa7921e5e5d002613391851a75a53370276a 100644 --- a/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java +++ b/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java @@ -87,7 +87,18 @@ public class LevelChunk extends ChunkAccess { @@ -173,10 +173,10 @@ index a6689c03777c2b4b79dcafcae5d70c949519cd8e..f94169a3e177251a05644e3e384ac051 + // petal end } diff --git a/src/main/java/net/minecraft/world/level/gameevent/vibrations/VibrationListener.java b/src/main/java/net/minecraft/world/level/gameevent/vibrations/VibrationListener.java -index 3288837a406539c4a22464524ffb2e727c6ad32b..f36c53a7f34be7540c805df91454fa614cd3bbb7 100644 +index 103e12ec589dcbe6dbad7432b50e0644c3a37b1b..c90a827ca260d5f010c699488cba0dd00f9e97e4 100644 --- a/src/main/java/net/minecraft/world/level/gameevent/vibrations/VibrationListener.java +++ b/src/main/java/net/minecraft/world/level/gameevent/vibrations/VibrationListener.java -@@ -225,6 +225,13 @@ public class VibrationListener implements GameEventListener { +@@ -228,6 +228,13 @@ public class VibrationListener implements GameEventListener { return true; } diff --git a/patches/server/0032-Petal-Reduce-sensor-work.patch b/patches/server/0032-Petal-Reduce-sensor-work.patch index b8401056..33eb897f 100644 --- a/patches/server/0032-Petal-Reduce-sensor-work.patch +++ b/patches/server/0032-Petal-Reduce-sensor-work.patch @@ -10,10 +10,10 @@ this patch is focused around the sensors used for ai delete the line of sight cache less often and use a faster nearby comparison diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index cb6f4a671dc258eab9e739d5a80952e3768acbbd..a6f9361ac685bd87c6a697c4f0da0b37dccbb5ab 100644 +index a947acfee2d45ba29e293b196250d52af874bcc6..1467773e42a6c85121e96c492c01abe73d7b257e 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java -@@ -1012,12 +1012,14 @@ public abstract class LivingEntity extends Entity { +@@ -1006,12 +1006,14 @@ public abstract class LivingEntity extends Entity implements Attackable { } if (entity != null) { @@ -31,10 +31,10 @@ index cb6f4a671dc258eab9e739d5a80952e3768acbbd..a6f9361ac685bd87c6a697c4f0da0b37 return d0; diff --git a/src/main/java/net/minecraft/world/entity/Mob.java b/src/main/java/net/minecraft/world/entity/Mob.java -index 27fc50571305132c86497fcb1d5b1bb514610a4e..f1a33fd186fa9c10ac99b7b0e6379902a10dfb14 100644 +index f2eca869a9301c8e6536396f55fd5dc871a3dfbc..9a3551cf7977ef59b499871bd31bd20d33679d3a 100644 --- a/src/main/java/net/minecraft/world/entity/Mob.java +++ b/src/main/java/net/minecraft/world/entity/Mob.java -@@ -867,8 +867,8 @@ public abstract class Mob extends LivingEntity { +@@ -896,8 +896,8 @@ public abstract class Mob extends LivingEntity implements Targeting { return; } // Paper end diff --git a/patches/server/0034-Slice-Smooth-Teleports.patch b/patches/server/0034-Slice-Smooth-Teleports.patch index 207ebdba..86ec8e77 100644 --- a/patches/server/0034-Slice-Smooth-Teleports.patch +++ b/patches/server/0034-Slice-Smooth-Teleports.patch @@ -7,10 +7,10 @@ Original license: MIT Original project: https://github.com/Cryptite/Slice diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index f940f54841455caf5959cb7c9289c5bf4a159f55..f5190797bc4e91f080abe1a01cac03913f3eb276 100644 +index b9b16f566103798c95592b2921b48a2585a65e73..fc1209030fc72a1160899fbb795a1c1a38e95c59 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java -@@ -269,6 +269,7 @@ public class ServerPlayer extends Player { +@@ -275,6 +275,7 @@ public class ServerPlayer extends Player { public final com.destroystokyo.paper.util.misc.PooledLinkedHashSets.PooledObjectLinkedOpenHashSet cachedSingleHashSet; // Paper public PlayerNaturallySpawnCreaturesEvent playerNaturallySpawnedEvent; // Paper public org.bukkit.event.player.PlayerQuitEvent.QuitReason quitReason = null; // Paper - there are a lot of changes to do if we change all methods leading to the event @@ -19,10 +19,10 @@ index f940f54841455caf5959cb7c9289c5bf4a159f55..f5190797bc4e91f080abe1a01cac0391 private boolean compassBar = false; // Purpur private boolean ramBar = false; // Purpur diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index 94f3d84a1a89e1f1c720d6e7f19e93b1b0b5a865..e77d9b23ae797cc1b2d04028695bfa27d9f02076 100644 +index f509a31c20bef0a37dfa9b51afe2fac9a607b10b..ca352368716214a6c670aa7185a0b3a8ac1a0ffc 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java -@@ -975,12 +975,12 @@ public abstract class PlayerList { +@@ -982,12 +982,12 @@ public abstract class PlayerList { int i = flag ? 1 : 0; // CraftBukkit start LevelData worlddata = worldserver1.getLevelData(); @@ -38,10 +38,10 @@ index 94f3d84a1a89e1f1c720d6e7f19e93b1b0b5a865..e77d9b23ae797cc1b2d04028695bfa27 // entityplayer1.connection.teleport(entityplayer1.getX(), entityplayer1.getY(), entityplayer1.getZ(), entityplayer1.getYRot(), entityplayer1.getXRot()); diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index 74874910d339bd8fbec44755f1ab32fafd17d2e9..f968f35aa0665e6ead59a221f30c2cd36da40ac0 100644 +index 7b80640474c35cf0d47a246c3dcb0f3e72581da8..14c9a75ae54ad2f63caf22f826b302181e8fddda 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -@@ -1215,6 +1215,15 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -1244,6 +1244,15 @@ public class CraftPlayer extends CraftHumanEntity implements Player { // Paper end } diff --git a/patches/server/0036-PaperPR-Optimize-VarInts.patch b/patches/server/0036-PaperPR-Optimize-VarInts.patch index fc937584..0cee0253 100644 --- a/patches/server/0036-PaperPR-Optimize-VarInts.patch +++ b/patches/server/0036-PaperPR-Optimize-VarInts.patch @@ -8,10 +8,10 @@ Original project: https://github.com/PaperMC/Velocity Paper pull request: https://github.com/PaperMC/Paper/pull/8418 diff --git a/src/main/java/net/minecraft/network/FriendlyByteBuf.java b/src/main/java/net/minecraft/network/FriendlyByteBuf.java -index 32ee4ed11aefd82dca2e3e78b3108f041fdc3695..b54a4b2df126006b200a9e2dfda85303e6baa0ee 100644 +index 9938bb90bef84cf784f9a1ceb02a1a45aa8b48a1..f5080a3716a65a7175b043c41f1e002322ecbf70 100644 --- a/src/main/java/net/minecraft/network/FriendlyByteBuf.java +++ b/src/main/java/net/minecraft/network/FriendlyByteBuf.java -@@ -94,6 +94,18 @@ public class FriendlyByteBuf extends ByteBuf { +@@ -103,6 +103,18 @@ public class FriendlyByteBuf extends ByteBuf { } public static int getVarIntSize(int value) { @@ -30,7 +30,7 @@ index 32ee4ed11aefd82dca2e3e78b3108f041fdc3695..b54a4b2df126006b200a9e2dfda85303 for (int j = 1; j < 5; ++j) { if ((value & -1 << j * 7) == 0) { return j; -@@ -566,6 +578,21 @@ public class FriendlyByteBuf extends ByteBuf { +@@ -613,6 +625,21 @@ public class FriendlyByteBuf extends ByteBuf { } public FriendlyByteBuf writeVarInt(int value) { diff --git a/patches/server/0037-Fix-build-system-issues.patch b/patches/server/0037-Fix-build-system-issues.patch index 9c3cdd07..f408eacf 100644 --- a/patches/server/0037-Fix-build-system-issues.patch +++ b/patches/server/0037-Fix-build-system-issues.patch @@ -5,28 +5,23 @@ Subject: [PATCH] Fix build system issues diff --git a/build.gradle.kts b/build.gradle.kts -index 1b4d00c5b5794b065737f0ca2e61ec8a79a5fa48..4edfa9998d160026765a35806fad2d959ce84de4 100644 +index 63a819196ddcad8106c7358172176c41031c70cd..3ef66e60ef5c8645ed6b88328a33ef332bb1ea27 100644 --- a/build.gradle.kts +++ b/build.gradle.kts -@@ -198,15 +198,14 @@ fun TaskContainer.registerRunTask( - systemProperty("gale.detect.thread.blocks", true) // Gale - base thread pool - watch for blocking base threads - - val memoryGb = providers.gradleProperty("paper.runMemoryGb").getOrElse("2") -- val modifiedJvmArgs = jvmArgs ?: arrayListOf() -- modifiedJvmArgs.addAll(listOf("-Xms${memoryGb}G", "-Xmx${memoryGb}G")) -+ minHeapSize = "${memoryGb}G" -+ maxHeapSize = "${memoryGb}G" - // Gale start - enable virtual threads for development runs +@@ -198,14 +198,8 @@ fun TaskContainer.registerRunTask( + minHeapSize = "${memoryGb}G" + maxHeapSize = "${memoryGb}G" + // Gale start - modify JVM args for development runs +- val modifiedJvmArgs = ArrayList(jvmArgs) ?: arrayListOf() +- // Gale start - enable virtual threads for development runs - modifiedJvmArgs.add("--enable-preview") - modifiedJvmArgs.addAll(listOf("--add-opens=java.base/java.lang=ALL-UNNAMED")) -+ args("--enable-preview") -+ args(listOf("--add-opens=java.base/java.lang=ALL-UNNAMED")) - // Gale end - enable virtual threads for development runs +- // Gale end - enable virtual threads for development runs - modifiedJvmArgs.add("--add-modules=jdk.incubator.vector") // Gale - Pufferfish - SIMD support - modifiedJvmArgs.add("-XX:+AllowRedefinitionToAddDeleteMethods") // Gale - base thread pool - watch for blocking base threads - jvmArgs = modifiedJvmArgs -+ args("--add-modules=jdk.incubator.vector") // Gale - Pufferfish - SIMD support -+ args("-XX:+AllowRedefinitionToAddDeleteMethods") // Gale - base thread pool - watch for blocking base threads ++ args("--add-modules=jdk.incubator.vector") // Gale - Pufferfish - SIMD support // Leaf - Fix build system issues ++ args("-XX:+AllowRedefinitionToAddDeleteMethods") // Gale - base thread pool - watch for blocking base threads // Leaf - Fix build system issues + // Gale end - modify JVM args for development runs doFirst { - workingDir.mkdirs()