diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 7c52ac2a..5a5d4ba5 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -5,9 +5,9 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout Git Repository - uses: actions/checkout@v3.0.2 + uses: actions/checkout@v3 - name: Validate Gradle Wrapper - uses: gradle/wrapper-validation-action@v1.0.4 + uses: gradle/wrapper-validation-action@master - name: Set up JDK (GraalVM) uses: graalvm/setup-graalvm@v1 with: @@ -15,7 +15,7 @@ jobs: java-version: '17' github-token: ${{ secrets.GITHUB_TOKEN }} - name: Pull Gradle Cache - uses: actions/cache@v3.0.4 + uses: actions/cache@v3 id: gradle-cache with: path: ~/.gradle @@ -31,17 +31,11 @@ jobs: - name: Build run: | ./gradlew -Dorg.gradle.jvmargs="-Dfile.encoding=UTF-8 -Dgraal.CompilerConfiguration=community -Dgraal.UsePriorityInlining=true -Dgraal.Vectorization=true -Dgraal.OptDuplication=true -Dgraal.SpeculativeGuardMovement=true -Dgraal.WriteableCodeCache=true --add-modules jdk.incubator.vector" createReobfPaperclipJar --stacktrace --no-daemon - - name: Archive Paperclip - uses: actions/upload-artifact@v3.1.0 + - name: Release + if: github.ref_name == 'ver/1.19.2' + uses: marvinpinto/action-automatic-releases@latest with: - name: Mirai-1.19.2 - path: build/libs/mirai-paperclip-1.19.2-R0.1-SNAPSHOT-reobf.jar -# - name: Release -# if: github.ref_name == 'ver/1.19' -# uses: marvinpinto/action-automatic-releases@v1.2.1 -# with: -# repo_token: ${{ secrets.GITHUB_TOKEN }} -# automatic_release_tag: '1.19' -# prerelease: false -# title: 'Mirai 1.19' -# files: build/libs/mirai-paperclip-1.19-R0.1-SNAPSHOT-reobf.jar + title: "Mirai-1.19.2" + automatic_release_tag: "1.19.2" + repo_token: "${{ secrets.GITHUB_TOKEN }}" + files: build/libs/mirai-paperclip-1.19.2-R0.1-SNAPSHOT-reobf.jar diff --git a/README.md b/README.md index c340c327..c85a75db 100644 --- a/README.md +++ b/README.md @@ -5,7 +5,7 @@

Mirai is ❗under heavy development❗ and contributions are welcome!

This project is experimental, its usage in production environment is discouraged if you are not ready to face possible bugs.
- [![Build status](https://img.shields.io/github/workflow/status/etil2jz/Mirai/Build/ver/1.19?style=for-the-badge)](https://ci.codemc.io/job/etil2jz/job/Mirai-1.19/lastSuccessfulBuild) + [![Build status](https://img.shields.io/github/actions/workflow/status/Dreeam-qwq/Mirai/build.yml?branch=ver%2F1.19.2&style=for-the-badge)](https://github.com/Dreeam-qwq/Mirai/releases/tag/1.19.2) [![Discord](https://img.shields.io/discord/928402257605701683?color=5865F2&label=discord&style=for-the-badge)](https://discord.gg/DdH6Yfu9gM) @@ -26,7 +26,7 @@ ## Downloads The latest successful build can be downloaded here: -[mirai-paperclip-1.19.2-R0.1-SNAPSHOT-reobf.jar](https://ci.codemc.io/job/etil2jz/job/Mirai-1.19/lastSuccessfulBuild/) +[mirai-paperclip-1.19.2-R0.1-SNAPSHOT-reobf.jar](https://github.com/Dreeam-qwq/Mirai/releases/tag/1.19.2) **Please note Java >= 17 is required.** diff --git a/build-data/dev-imports.txt b/build-data/dev-imports.txt index b818b96e..f35428a8 100644 --- a/build-data/dev-imports.txt +++ b/build-data/dev-imports.txt @@ -7,4 +7,4 @@ # datafixerupper com/mojang/datafixers/util/Either.java # To import classes from the vanilla Minecraft jar use `minecraft` as the artifactId: # minecraft net.minecraft.world.level.entity.LevelEntityGetterAdapter -# minecraft net/minecraft/world/level/entity/LevelEntityGetter.java +# minecraft net/minecraft/world/level/entity/LevelEntityGetter.java \ No newline at end of file diff --git a/build.gradle.kts b/build.gradle.kts index 55981c9e..7bef4028 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -4,7 +4,7 @@ plugins { java `maven-publish` id("com.github.johnrengelman.shadow") version "7.1.2" apply false - id("io.papermc.paperweight.patcher") version "1.3.9-SNAPSHOT" + id("io.papermc.paperweight.patcher") version "1.4.1" } repositories { @@ -16,7 +16,7 @@ repositories { dependencies { remapper("net.fabricmc:tiny-remapper:0.8.6:fat") - decompiler("org.quiltmc:quiltflower:1.8.1") + decompiler("org.quiltmc:quiltflower:1.9.0") paperclip("io.papermc:paperclip:3.0.3-SNAPSHOT") } diff --git a/gradle.properties b/gradle.properties index 6d12ef33..d8879770 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,8 +1,9 @@ org.gradle.caching=true org.gradle.parallel=true org.gradle.vfs.watch=false +org.gradle.jvmargs = -Xmx4G group=dev.etil.mirai version=1.19.2-R0.1-SNAPSHOT mcVersion=1.19.2 -pufferfishRef=deb9638cd5243286685c20d254fdec9c2754979b +pufferfishRef=9b8cdc74a4bed029a68682a6f0b6ec039b5c2707 diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar index 249e5832..943f0cbf 100644 Binary files a/gradle/wrapper/gradle-wrapper.jar and b/gradle/wrapper/gradle-wrapper.jar differ diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index ae04661e..f398c33c 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,5 +1,6 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-7.5.1-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-7.6-bin.zip +networkTimeout=10000 zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/gradlew b/gradlew index a69d9cb6..65dcd68d 100644 --- a/gradlew +++ b/gradlew @@ -55,7 +55,7 @@ # Darwin, MinGW, and NonStop. # # (3) This script is generated from the Groovy template -# https://github.com/gradle/gradle/blob/master/subprojects/plugins/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt +# https://github.com/gradle/gradle/blob/HEAD/subprojects/plugins/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt # within the Gradle project. # # You can find Gradle at https://github.com/gradle/gradle/. @@ -80,10 +80,10 @@ do esac done -APP_HOME=$( cd "${APP_HOME:-./}" && pwd -P ) || exit - -APP_NAME="Gradle" +# This is normally unused +# shellcheck disable=SC2034 APP_BASE_NAME=${0##*/} +APP_HOME=$( cd "${APP_HOME:-./}" && pwd -P ) || exit # Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' @@ -143,12 +143,16 @@ fi if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then case $MAX_FD in #( max*) + # In POSIX sh, ulimit -H is undefined. That's why the result is checked to see if it worked. + # shellcheck disable=SC3045 MAX_FD=$( ulimit -H -n ) || warn "Could not query maximum file descriptor limit" esac case $MAX_FD in #( '' | soft) :;; #( *) + # In POSIX sh, ulimit -n is undefined. That's why the result is checked to see if it worked. + # shellcheck disable=SC3045 ulimit -n "$MAX_FD" || warn "Could not set maximum file descriptor limit to $MAX_FD" esac diff --git a/gradlew.bat b/gradlew.bat index f127cfd4..93e3f59f 100644 --- a/gradlew.bat +++ b/gradlew.bat @@ -26,6 +26,7 @@ if "%OS%"=="Windows_NT" setlocal set DIRNAME=%~dp0 if "%DIRNAME%"=="" set DIRNAME=. +@rem This is normally unused set APP_BASE_NAME=%~n0 set APP_HOME=%DIRNAME% diff --git a/patches/api/0007-Lobotomize-stuck-villagers.patch b/patches/api/0007-Lobotomize-stuck-villagers.patch index f452a990..1e905ae8 100644 --- a/patches/api/0007-Lobotomize-stuck-villagers.patch +++ b/patches/api/0007-Lobotomize-stuck-villagers.patch @@ -7,10 +7,10 @@ Original license: MIT Original project: https://github.com/PurpurMC/Purpur diff --git a/src/main/java/org/bukkit/entity/Villager.java b/src/main/java/org/bukkit/entity/Villager.java -index d61855b83da0776fe910dee8cde184c720571a71..b7b7963c07f9859df980017d0515ab437f7d9d10 100644 +index c61e7e41aeb3d4f5f4ac47da8890051d8e97340d..12b08318f78c8144cc809dbccf0feabdd31f0ee2 100644 --- a/src/main/java/org/bukkit/entity/Villager.java +++ b/src/main/java/org/bukkit/entity/Villager.java -@@ -297,4 +297,14 @@ public interface Villager extends AbstractVillager { +@@ -328,4 +328,14 @@ public interface Villager extends AbstractVillager { */ public void clearReputations(); // Paper end diff --git a/patches/server/0001-Mirai-Branding-Changes.patch b/patches/server/0001-Mirai-Branding-Changes.patch index 347cecb6..40f4bc7d 100644 --- a/patches/server/0001-Mirai-Branding-Changes.patch +++ b/patches/server/0001-Mirai-Branding-Changes.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Mirai Branding Changes diff --git a/build.gradle.kts b/build.gradle.kts -index f0d22a733e3b97fb959cd566fb6c93c6d5681e16..65441b943a97f8aa453f31bf5cf7f87862fdcc07 100644 +index 5b43f5c27ce903c53cbce245477fbdefdc88733f..ca62be1aca4467b81e7398fa98863c1604ed3e46 100644 --- a/build.gradle.kts +++ b/build.gradle.kts -@@ -9,7 +9,7 @@ plugins { +@@ -7,7 +7,7 @@ plugins { } dependencies { @@ -17,7 +17,7 @@ index f0d22a733e3b97fb959cd566fb6c93c6d5681e16..65441b943a97f8aa453f31bf5cf7f878 // Pufferfish start implementation("io.papermc.paper:paper-mojangapi:1.19.2-R0.1-SNAPSHOT") { exclude("io.papermc.paper", "paper-api") -@@ -84,7 +84,7 @@ tasks.jar { +@@ -82,7 +82,7 @@ tasks.jar { attributes( "Main-Class" to "org.bukkit.craftbukkit.Main", "Implementation-Title" to "CraftBukkit", @@ -360,7 +360,7 @@ index 0000000000000000000000000000000000000000..7be6bb03891e0831ad72e581900fdf11 +} \ No newline at end of file diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index af9da39dffda01325af2ab3dd8b5e1efb18e013a..da9623b90f3d25dc4c3e3aa269c4ccd2c8a0a52c 100644 +index 3cadf20891888b56ac70798d581d6a044a98c0a3..5f759d9b346d26ae1c85cd7fb7118de305d74d74 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -923,7 +923,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop { -- return new String[][]{collection.toArray(new String[0])}; -+ return new String[][]{collection.toArray(me.titaniumtown.Constants.EMPTY_string_arr)}; // JettPack + RequirementsStrategy OR = (criteriaNames) -> { +- return new String[][]{criteriaNames.toArray(new String[0])}; ++ return new String[][]{criteriaNames.toArray(me.titaniumtown.Constants.EMPTY_string_arr)}; }; String[][] createRequirements(Collection criteriaNames); @@ -237,10 +237,10 @@ index a2920b8a9eff77d9c5d1d7f70ad3abdacba8f0fa..f7f19e360d712211625ff28e92f83949 protected CipherBase(Cipher cipher) { this.cipher = cipher; diff --git a/src/main/java/net/minecraft/network/Connection.java b/src/main/java/net/minecraft/network/Connection.java -index cd386a13d8c0909d4ac971a5df751cd23e609b1b..5344f1f81797344130bd48f16689161af8261882 100644 +index f1e1a4a48349c0e431b31327fdf217989db027b3..8f6a3b5763b74597ae005295ccc21fc98537af1c 100644 --- a/src/main/java/net/minecraft/network/Connection.java +++ b/src/main/java/net/minecraft/network/Connection.java -@@ -311,7 +311,7 @@ public class Connection extends SimpleChannelInboundHandler> { +@@ -312,7 +312,7 @@ public class Connection extends SimpleChannelInboundHandler> { } public void setListener(PacketListener listener) { @@ -263,7 +263,7 @@ index 02fb51f7f699992caf13d088c75b8275ec5267bb..11cb4ac19ddc09889117690ffec51915 private static final FormattedText TEXT_NULL = FormattedText.of("null"); private final String key; diff --git a/src/main/java/net/minecraft/server/Main.java b/src/main/java/net/minecraft/server/Main.java -index 5962f7a2b185d7d54a0f9e341a4fdf6e6f1c1ec5..0b677d128cbd108bb58d74d3cfe6015551e94143 100644 +index 0066b1abc008d245825abf1d256cb87fa9c2d877..7cc87a49a385eaf2fe0ac656571565ddbca16cf2 100644 --- a/src/main/java/net/minecraft/server/Main.java +++ b/src/main/java/net/minecraft/server/Main.java @@ -85,7 +85,7 @@ public class Main { @@ -276,7 +276,7 @@ index 5962f7a2b185d7d54a0f9e341a4fdf6e6f1c1ec5..0b677d128cbd108bb58d74d3cfe60155 OptionSpec optionspec11 = optionparser.accepts("port").withRequiredArg().ofType(Integer.class).defaultsTo(-1, new Integer[0]); OptionSpec optionspec12 = optionparser.accepts("serverId").withRequiredArg(); diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index da9623b90f3d25dc4c3e3aa269c4ccd2c8a0a52c..7ace6c1e81519b3e4f673d23627ca603fecb646d 100644 +index 5f759d9b346d26ae1c85cd7fb7118de305d74d74..faf57e23c19742b5bb5688476daca50939fc505c 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -1354,8 +1354,8 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop> list = Lists.newArrayList(); @@ -304,10 +304,10 @@ index 1eb912ad97f9663bf6bd336ad739f2552b0a5c9b..9901ffe9de585a73e9ef32c700b1e870 for (int j = 0; j < i; ++j) { diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index e802ee2b2dc458f52dbce9746fc9891eebb6dcc1..f4280eb9f77568e4f3af6f264fc60901e667a936 100644 +index 77d538ab79b31cf43620e560cdf2876a26b2bb7f..e91028d409fe3c92b368f62fecf15015ff54c9b8 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java -@@ -909,7 +909,7 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -911,7 +911,7 @@ public class ServerLevel extends Level implements WorldGenLevel { BlockPos blockposition2 = blockposition.set(j + randomX, randomY, k + randomZ); BlockState iblockdata = com.destroystokyo.paper.util.maplist.IBlockDataList.getBlockDataFromRaw(raw); @@ -316,7 +316,7 @@ index e802ee2b2dc458f52dbce9746fc9891eebb6dcc1..f4280eb9f77568e4f3af6f264fc60901 // We drop the fluid tick since LAVA is ALREADY TICKED by the above method (See LiquidBlock). // TODO CHECK ON UPDATE } -@@ -1164,7 +1164,7 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -1166,7 +1166,7 @@ public class ServerLevel extends Level implements WorldGenLevel { public static List getCurrentlyTickingEntities() { Entity ticking = currentlyTickingEntity.get(); @@ -326,7 +326,7 @@ index e802ee2b2dc458f52dbce9746fc9891eebb6dcc1..f4280eb9f77568e4f3af6f264fc60901 return ret; } diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 4e615e5d5b8d79f6eaac2136be03961415fd093e..633fe61c98c1fc181f38b4195651c3ed6fc1db42 100644 +index 187791ff8197be015856fdfa9159fb26558f95cf..7fddeb21f85d213447504985dde6180c9fe16725 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -410,7 +410,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic @@ -354,7 +354,7 @@ index 4e615e5d5b8d79f6eaac2136be03961415fd093e..633fe61c98c1fc181f38b4195651c3ed return; } // Paper end -@@ -3398,7 +3398,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -3399,7 +3399,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic // Paper start if (!org.bukkit.Bukkit.isPrimaryThread()) { if (recipeSpamPackets.addAndGet(io.papermc.paper.configuration.GlobalConfiguration.get().spamLimiter.recipeSpamIncrement) > io.papermc.paper.configuration.GlobalConfiguration.get().spamLimiter.recipeSpamLimit) { @@ -364,10 +364,10 @@ index 4e615e5d5b8d79f6eaac2136be03961415fd093e..633fe61c98c1fc181f38b4195651c3ed } } diff --git a/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java -index ea9b56fd6ae1d5577da5bd3e0c38abfeec8f3646..f1105edce8484cac39d8fb33a42c9ed8d44fe5c0 100644 +index fbd9807e3a9ad555999fa99e06211ecaf455a091..0af8c2e775862e30ab870c803f043696f6ef07b3 100644 --- a/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java -@@ -269,8 +269,8 @@ public class ServerLoginPacketListenerImpl implements TickablePacketListener, Se +@@ -268,8 +268,8 @@ public class ServerLoginPacketListenerImpl implements TickablePacketListener, Se @Override public void handleHello(ServerboundHelloPacket packet) { @@ -378,7 +378,7 @@ index ea9b56fd6ae1d5577da5bd3e0c38abfeec8f3646..f1105edce8484cac39d8fb33a42c9ed8 // Paper start - validate usernames if (io.papermc.paper.configuration.GlobalConfiguration.get().proxies.isProxyOnlineMode() && io.papermc.paper.configuration.GlobalConfiguration.get().unsupportedSettings.performUsernameValidation) { if (!this.iKnowThisMayNotBeTheBestIdeaButPleaseDisableUsernameValidation && !validateUsername(packet.name())) { -@@ -330,7 +330,7 @@ public class ServerLoginPacketListenerImpl implements TickablePacketListener, Se +@@ -329,7 +329,7 @@ public class ServerLoginPacketListenerImpl implements TickablePacketListener, Se @Override public void handleKey(ServerboundKeyPacket packet) { @@ -388,7 +388,7 @@ index ea9b56fd6ae1d5577da5bd3e0c38abfeec8f3646..f1105edce8484cac39d8fb33a42c9ed8 final String s; diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index 06eda955f96b5fe2d08ed0d39229c7a6ebb88931..3fc95b7d7b41e078e1d219e29ada27aeab1320bf 100644 +index 3be9352ae9b0b84acf07064b45562ceffd30391b..4c2eda1e555015d557a311eeed4acd1d32e14a29 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java @@ -741,7 +741,7 @@ public abstract class PlayerList { @@ -451,10 +451,10 @@ index c82bb38b5b1c9204daef21455723d21509ad1c44..4aa044ab8748c01b0022096733e5bacf private EquipmentSlot(EquipmentSlot.Type type, int entityId, int armorStandId, String name) { this.type = type; diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index 26efc49b4530112c8bd3f580ce375ab4203c9609..c0e316582e085873c05a76c16e612eabd2e8cf2a 100644 +index 77a96dd66e2c39495f23b4219dfdbb0820233434..3721f6c220da68232aabf5ea17fc6ffc25f6e7bb 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java -@@ -3070,7 +3070,7 @@ public abstract class LivingEntity extends Entity { +@@ -3087,7 +3087,7 @@ public abstract class LivingEntity extends Entity { @Nullable private Map collectEquipmentChanges() { Map map = null; @@ -464,7 +464,7 @@ index 26efc49b4530112c8bd3f580ce375ab4203c9609..c0e316582e085873c05a76c16e612eab for (int j = 0; j < i; ++j) { diff --git a/src/main/java/net/minecraft/world/entity/Mob.java b/src/main/java/net/minecraft/world/entity/Mob.java -index e89b88eb3d4202ea7ff043dc9e92163332cd10d3..78b1fc7b4cacfc98a9e3e6ba93e17c3307d5449c 100644 +index 26fabc96d3c3ac4ea35d094c686975b19c428d7f..8c84b6d2329ae580502e584c6ab450160830d31d 100644 --- a/src/main/java/net/minecraft/world/entity/Mob.java +++ b/src/main/java/net/minecraft/world/entity/Mob.java @@ -1027,7 +1027,7 @@ public abstract class Mob extends LivingEntity { @@ -504,7 +504,7 @@ index e89b88eb3d4202ea7ff043dc9e92163332cd10d3..78b1fc7b4cacfc98a9e3e6ba93e17c33 for (int j = 0; j < i; ++j) { diff --git a/src/main/java/net/minecraft/world/entity/monster/ZombieVillager.java b/src/main/java/net/minecraft/world/entity/monster/ZombieVillager.java -index fb0a77b4cf1ba47c73c00993bd9b7454240fe5d6..df1dfaea8b49794d9e3ecb792a129113829b60c9 100644 +index d1f7d912ad274cf90a912e44d63b39f9387a694b..b9cd7723130440cd6929847084b0baa2fde5bbd9 100644 --- a/src/main/java/net/minecraft/world/entity/monster/ZombieVillager.java +++ b/src/main/java/net/minecraft/world/entity/monster/ZombieVillager.java @@ -233,7 +233,7 @@ public class ZombieVillager extends Zombie implements VillagerDataHolder { @@ -517,7 +517,7 @@ index fb0a77b4cf1ba47c73c00993bd9b7454240fe5d6..df1dfaea8b49794d9e3ecb792a129113 for (int j = 0; j < i; ++j) { diff --git a/src/main/java/net/minecraft/world/item/ItemStack.java b/src/main/java/net/minecraft/world/item/ItemStack.java -index c18a0bc94d0210396046f4475e49a739088593f3..4fea1c9873b4dd9c9f21722adbb02200487caf3c 100644 +index 6eda115b5cd3312123784e758b59973e0a55773c..ffcaa1c5c78966bf5790dc7ea2382cccac88b40b 100644 --- a/src/main/java/net/minecraft/world/item/ItemStack.java +++ b/src/main/java/net/minecraft/world/item/ItemStack.java @@ -969,7 +969,7 @@ public final class ItemStack { @@ -583,7 +583,7 @@ index 2f9f15d99f8b31e9f13f7f32378b2a9e09bcb5e5..b9579e3d1610ddcb5251baa2dd9462e0 @Override diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index 0277633fd328ef9993fea4ac29df83b5b00c0f42..0948242ecebe507c90af343faeffc7c9388fa7e4 100644 +index 791411866cabc2c237f40d54250d5a34653ceaa0..cf7222ba4bbc1f40d8bc83abb04a4ea95b97c917 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java @@ -1521,7 +1521,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable { diff --git a/patches/server/0015-Make-a-field-final.patch b/patches/server/0015-Make-a-field-final.patch index 04cfb330..82f6a0cf 100644 --- a/patches/server/0015-Make-a-field-final.patch +++ b/patches/server/0015-Make-a-field-final.patch @@ -7,7 +7,7 @@ Original code by PatinaMC, licensed under GNU General Public License v3.0 You can find the original code on https://github.com/PatinaMC/Patina diff --git a/src/main/java/net/minecraft/commands/CommandSourceStack.java b/src/main/java/net/minecraft/commands/CommandSourceStack.java -index e0dd0fc1638377f4d4226d4b2976b901d635dff0..e75a428ff261a52b8d5f72d5c46437feef5b8ac4 100644 +index 81f4e3c869623b6dd2d80886652fa41791fe7032..ac5496ee97ba2fdfcf9ec31f0cf8ff5b5426729e 100644 --- a/src/main/java/net/minecraft/commands/CommandSourceStack.java +++ b/src/main/java/net/minecraft/commands/CommandSourceStack.java @@ -59,7 +59,7 @@ public class CommandSourceStack implements SharedSuggestionProvider, com.destroy @@ -16,6 +16,6 @@ index e0dd0fc1638377f4d4226d4b2976b901d635dff0..e75a428ff261a52b8d5f72d5c46437fe private final TaskChainer chatMessageChainer; - public java.util.Map currentCommand = new java.util.concurrent.ConcurrentHashMap<>(); // CraftBukkit // Paper + public final java.util.Map currentCommand = new java.util.concurrent.ConcurrentHashMap<>(); // CraftBukkit // Paper // Patina - make a field final + public boolean bypassSelectorPermissions = false; // Paper public CommandSourceStack(CommandSource output, Vec3 pos, Vec2 rot, ServerLevel world, int level, String name, Component displayName, MinecraftServer server, @Nullable Entity entity) { - this(output, pos, rot, world, level, name, displayName, server, entity, false, (commandcontext, flag, j) -> { diff --git a/patches/server/0016-Don-t-create-new-random-instance.patch b/patches/server/0016-Don-t-create-new-random-instance.patch index 2ced06c6..fe1e70be 100644 --- a/patches/server/0016-Don-t-create-new-random-instance.patch +++ b/patches/server/0016-Don-t-create-new-random-instance.patch @@ -7,10 +7,10 @@ Original code by PatinaMC, licensed under GNU General Public License v3.0 You can find the original code on https://github.com/PatinaMC/Patina diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index e5af7ef4ada68922a70f593ccec555ecb50627a9..eb634c540842a06bfea196bc9fe4bfbd73012bf1 100644 +index 9c9b4d7e0637348a94befce9377fdb69c1239694..8732b05b1fd8895d8e6696658b06b0de55b680b9 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java -@@ -380,7 +380,7 @@ public class ServerPlayer extends Player { +@@ -387,7 +387,7 @@ public class ServerPlayer extends Player { long l = k * k; int i1 = l > 2147483647L ? Integer.MAX_VALUE : (int) l; int j1 = this.getCoprime(i1); @@ -19,7 +19,7 @@ index e5af7ef4ada68922a70f593ccec555ecb50627a9..eb634c540842a06bfea196bc9fe4bfbd for (int l1 = 0; l1 < i1; ++l1) { int i2 = (k1 + j1 * l1) % i1; -@@ -417,7 +417,7 @@ public class ServerPlayer extends Player { +@@ -424,7 +424,7 @@ public class ServerPlayer extends Player { long l = k * k; int i1 = l > 2147483647L ? Integer.MAX_VALUE : (int) l; int j1 = this.getCoprime(i1); diff --git a/patches/server/0019-Use-MCUtil.asyncExecutor-for-MAIN_WORKER_EXECUTOR-in.patch b/patches/server/0019-Use-MCUtil.asyncExecutor-for-MAIN_WORKER_EXECUTOR-in.patch index a0fa6ed9..803aa750 100644 --- a/patches/server/0019-Use-MCUtil.asyncExecutor-for-MAIN_WORKER_EXECUTOR-in.patch +++ b/patches/server/0019-Use-MCUtil.asyncExecutor-for-MAIN_WORKER_EXECUTOR-in.patch @@ -39,7 +39,7 @@ index 0000000000000000000000000000000000000000..7bd88761137b2a68c04fbaa920a9ea9c +} \ No newline at end of file diff --git a/src/main/java/net/minecraft/Util.java b/src/main/java/net/minecraft/Util.java -index 59ecf5ff33617a6b9d2a3ae317315484235da804..4b4f3533f6f8624551794e63baae87138a495835 100644 +index 04704bd2b3ea8f6d95edbc0404ba36da448c7d26..f818ad4d10e60e2d39d93382db71f2ccdae0001c 100644 --- a/src/main/java/net/minecraft/Util.java +++ b/src/main/java/net/minecraft/Util.java @@ -73,6 +73,12 @@ import net.minecraft.util.TimeSource; @@ -49,7 +49,7 @@ index 59ecf5ff33617a6b9d2a3ae317315484235da804..4b4f3533f6f8624551794e63baae8713 +// JettPack start +import java.util.concurrent.AbstractExecutorService; +import me.titaniumtown.ServerWorkerWrapper; -+import net.minecraft.server.MCUtil; ++import io.papermc.paper.util.MCUtil; +import java.util.Collections; +// JettPack end @@ -59,10 +59,10 @@ index 59ecf5ff33617a6b9d2a3ae317315484235da804..4b4f3533f6f8624551794e63baae8713 if (i <= 0) { executorService = MoreExecutors.newDirectExecutorService(); } else { -- executorService = new java.util.concurrent.ThreadPoolExecutor(i, i,0L, TimeUnit.MILLISECONDS, new java.util.concurrent.LinkedBlockingQueue(), target -> new net.minecraft.server.ServerWorkerThread(target, s, priorityModifier)); +- executorService = new java.util.concurrent.ThreadPoolExecutor(i, i,0L, TimeUnit.MILLISECONDS, new java.util.concurrent.LinkedBlockingQueue(), target -> new io.papermc.paper.util.ServerWorkerThread(target, s, priorityModifier)); + //executorService = new java.util.concurrent.ThreadPoolExecutor(i, i,0L, TimeUnit.MILLISECONDS, new java.util.concurrent.LinkedBlockingQueue(), target -> new net.minecraft.server.ServerWorkerThread(target, s, priorityModifier)); // JettPack + // JettPack start -+ executorService = Integer.getInteger("Paper.WorkerThreadCount", i) <= 0 ? MoreExecutors.newDirectExecutorService() : new AbstractExecutorService(){ ++ executorService = Integer.getInteger("Paper.WorkerThreadCount", i) <= 0 ? MoreExecutors.newDirectExecutorService() : new AbstractExecutorService() { + private volatile boolean shutdown = false; + + @Override diff --git a/patches/server/0021-Remove-Spigot-tick-limiter.patch b/patches/server/0021-Remove-Spigot-tick-limiter.patch index f68db39f..3033d81d 100644 --- a/patches/server/0021-Remove-Spigot-tick-limiter.patch +++ b/patches/server/0021-Remove-Spigot-tick-limiter.patch @@ -7,7 +7,7 @@ Original code by Titaniumtown, licensed under GNU General Public License v3.0 You can find the original code on https://gitlab.com/Titaniumtown/JettPack diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index 13aee2a785b3ddb481744277a25c1ab95e036d4a..7fc3c9892d69d14de694d5328fe17a971019cc54 100644 +index 513cbb4a21762a5c8c5c07a9f51194dc85cef75c..139866dd8c0db8e26b49923a3811e2c106ee37c3 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java @@ -176,8 +176,8 @@ public abstract class Level implements LevelAccessor, AutoCloseable { @@ -33,10 +33,10 @@ index 13aee2a785b3ddb481744277a25c1ab95e036d4a..7fc3c9892d69d14de694d5328fe17a97 } diff --git a/src/main/java/org/spigotmc/SpigotWorldConfig.java b/src/main/java/org/spigotmc/SpigotWorldConfig.java -index 46ef3400605cc420bd88f13838df7d1f1106235e..a5a2e497eb3e651f3e715f995a80161d919ebab9 100644 +index 5503ad6a93d331771a0e92c0da6adedf2ac81aff..7c1efc3b6045b2179139dd419e969569f1af9f6d 100644 --- a/src/main/java/org/spigotmc/SpigotWorldConfig.java +++ b/src/main/java/org/spigotmc/SpigotWorldConfig.java -@@ -446,6 +446,7 @@ public class SpigotWorldConfig +@@ -442,6 +442,7 @@ public class SpigotWorldConfig this.hangingTickFrequency = this.getInt( "hanging-tick-frequency", 100 ); } @@ -44,7 +44,7 @@ index 46ef3400605cc420bd88f13838df7d1f1106235e..a5a2e497eb3e651f3e715f995a80161d public int tileMaxTickTime; public int entityMaxTickTime; private void maxTickTimes() -@@ -454,6 +455,7 @@ public class SpigotWorldConfig +@@ -450,6 +451,7 @@ public class SpigotWorldConfig this.entityMaxTickTime = this.getInt("max-tick-time.entity", 50); this.log("Tile Max Tick Time: " + this.tileMaxTickTime + "ms Entity max Tick Time: " + this.entityMaxTickTime + "ms"); } diff --git a/patches/server/0029-Spread-out-and-optimise-player-list-ticksSpread-out-.patch b/patches/server/0029-Spread-out-and-optimise-player-list-ticksSpread-out-.patch index 09ef8006..72a4a55c 100644 --- a/patches/server/0029-Spread-out-and-optimise-player-list-ticksSpread-out-.patch +++ b/patches/server/0029-Spread-out-and-optimise-player-list-ticksSpread-out-.patch @@ -8,7 +8,7 @@ Original code by PurpurMC, licensed under MIT You can find the original code on 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 532de4002d797c4d049f1f94ee588c20f80f6b69..b4158aed45ec60be71251d5b90e340f790e239fb 100644 +index 8f981f196c0a2b46fa20040e49689e33d270172f..367e08286dd9b668d8ef5855b05998082e4011b3 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java @@ -1038,22 +1038,22 @@ public abstract class PlayerList { @@ -48,10 +48,10 @@ index 532de4002d797c4d049f1f94ee588c20f80f6b69..b4158aed45ec60be71251d5b90e340f7 public void broadcastAll(Packet packet) { diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index 968aa80b57a31d89852c6f4bc0ec5ed4a98c6530..d0fc98ed0530a99adeb3c126b1040e40bb97685b 100644 +index a5220a4e514865c70700527bcd2f941d852564c0..d26b213c775c73c3f269aa6ba28825756ee7d756 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -@@ -1883,7 +1883,13 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -1887,7 +1887,13 @@ public class CraftPlayer extends CraftHumanEntity implements Player { @Override public boolean canSee(org.bukkit.entity.Entity entity) { diff --git a/patches/server/0032-Fix-rotating-UP-DOWN-CW-and-CCW.patch b/patches/server/0031-Fix-rotating-UP-DOWN-CW-and-CCW.patch similarity index 100% rename from patches/server/0032-Fix-rotating-UP-DOWN-CW-and-CCW.patch rename to patches/server/0031-Fix-rotating-UP-DOWN-CW-and-CCW.patch diff --git a/patches/server/0031-MC-147659-Fix-non-black-cats-spawning-in-swamp-huts.patch b/patches/server/0031-MC-147659-Fix-non-black-cats-spawning-in-swamp-huts.patch deleted file mode 100644 index 7eb81c61..00000000 --- a/patches/server/0031-MC-147659-Fix-non-black-cats-spawning-in-swamp-huts.patch +++ /dev/null @@ -1,23 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: William Blake Galbreath -Date: Thu, 2 Jan 2020 01:23:22 -0600 -Subject: [PATCH] MC-147659 - Fix non black cats spawning in swamp huts - -Original code by PurpurMC, licensed under MIT -You can find the original code on https://github.com/PurpurMC/Purpur - -diff --git a/src/main/java/net/minecraft/world/entity/npc/CatSpawner.java b/src/main/java/net/minecraft/world/entity/npc/CatSpawner.java -index 8808cb9f5df43d781cbb9c7943ff2f222e3a6969..09877498034dafccd20705670acd2866df7bd3a1 100644 ---- a/src/main/java/net/minecraft/world/entity/npc/CatSpawner.java -+++ b/src/main/java/net/minecraft/world/entity/npc/CatSpawner.java -@@ -87,8 +87,9 @@ public class CatSpawner implements CustomSpawner { - if (cat == null) { - return 0; - } else { -+ cat.moveTo(pos, 0.0F, 0.0F); // Purpur - cat.finalizeSpawn(world, world.getCurrentDifficultyAt(pos), MobSpawnType.NATURAL, (SpawnGroupData)null, (CompoundTag)null); -- cat.moveTo(pos, 0.0F, 0.0F); -+ // cat.moveTo(pos, 0.0F, 0.0F); // Purpur - move up - fixes non black cat types spawning inside swamp huts - world.addFreshEntityWithPassengers(cat); - return 1; - } diff --git a/patches/server/0033-Fix-outdated-server-showing-in-ping-before-server-fu.patch b/patches/server/0032-Fix-outdated-server-showing-in-ping-before-server-fu.patch similarity index 92% rename from patches/server/0033-Fix-outdated-server-showing-in-ping-before-server-fu.patch rename to patches/server/0032-Fix-outdated-server-showing-in-ping-before-server-fu.patch index 2a527231..7c43341d 100644 --- a/patches/server/0033-Fix-outdated-server-showing-in-ping-before-server-fu.patch +++ b/patches/server/0032-Fix-outdated-server-showing-in-ping-before-server-fu.patch @@ -8,7 +8,7 @@ Original code by PurpurMC, licensed under MIT You can find the original code on https://github.com/PurpurMC/Purpur diff --git a/src/main/java/net/minecraft/server/network/ServerStatusPacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerStatusPacketListenerImpl.java -index 29a22da1b94d51300481c071aa16bfd8cd02178f..f67cbb1badc007987e62872bb0160ad6d05e3d97 100644 +index f90eb6c50208879c4a2d5ad7e4181c06d38076f8..603d13f66684e3b44f913e2c71233032a38cd5db 100644 --- a/src/main/java/net/minecraft/server/network/ServerStatusPacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerStatusPacketListenerImpl.java @@ -153,6 +153,7 @@ public class ServerStatusPacketListenerImpl implements ServerStatusPacketListene diff --git a/patches/server/0034-Dont-send-useless-entity-packets.patch b/patches/server/0033-Dont-send-useless-entity-packets.patch similarity index 94% rename from patches/server/0034-Dont-send-useless-entity-packets.patch rename to patches/server/0033-Dont-send-useless-entity-packets.patch index f5600ed4..91a37d49 100644 --- a/patches/server/0034-Dont-send-useless-entity-packets.patch +++ b/patches/server/0033-Dont-send-useless-entity-packets.patch @@ -23,10 +23,10 @@ index db60b0dc87c5c7d50a5161ed2816067a49f2f5a7..9379fd91df73ac482064a89462764dac } \ No newline at end of file diff --git a/src/main/java/net/minecraft/server/level/ServerEntity.java b/src/main/java/net/minecraft/server/level/ServerEntity.java -index 9901ffe9de585a73e9ef32c700b1e8702f8786d3..bf314a8ea0145a82c5ff4fdff23444b8978845fe 100644 +index d68d995041b4a735e0b0b1fcc3b0c6c424051692..3fe68cdd9f53f3d000bd777dec5d485e299ddd78 100644 --- a/src/main/java/net/minecraft/server/level/ServerEntity.java +++ b/src/main/java/net/minecraft/server/level/ServerEntity.java -@@ -181,6 +181,7 @@ public class ServerEntity { +@@ -182,6 +182,7 @@ public class ServerEntity { this.teleportDelay = 0; packet1 = new ClientboundTeleportEntityPacket(this.entity); } @@ -34,7 +34,7 @@ index 9901ffe9de585a73e9ef32c700b1e8702f8786d3..bf314a8ea0145a82c5ff4fdff23444b8 } if ((this.trackDelta || this.entity.hasImpulse || this.entity instanceof LivingEntity && ((LivingEntity) this.entity).isFallFlying()) && this.tickCount > 0) { -@@ -247,6 +248,22 @@ public class ServerEntity { +@@ -248,6 +249,22 @@ public class ServerEntity { } diff --git a/patches/server/0035-Skip-events-if-there-s-no-listeners.patch b/patches/server/0034-Skip-events-if-there-s-no-listeners.patch similarity index 100% rename from patches/server/0035-Skip-events-if-there-s-no-listeners.patch rename to patches/server/0034-Skip-events-if-there-s-no-listeners.patch diff --git a/patches/server/0036-Alternative-Keepalive-Handling.patch b/patches/server/0035-Alternative-Keepalive-Handling.patch similarity index 96% rename from patches/server/0036-Alternative-Keepalive-Handling.patch rename to patches/server/0035-Alternative-Keepalive-Handling.patch index 7ad2d342..4d009e36 100644 --- a/patches/server/0036-Alternative-Keepalive-Handling.patch +++ b/patches/server/0035-Alternative-Keepalive-Handling.patch @@ -24,7 +24,7 @@ index 9379fd91df73ac482064a89462764dac9835c71f..432ba1293419dea0903e31043f68f5ad } \ No newline at end of file diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 79c56946cecba2a6308a0a67b7da036d348a97a8..dfacc5d6b7eb30292f59b25752d2c7ee1ff9534f 100644 +index 782bf3f68575ca711ac2860a1694d5fb6d989c03..cfdd0eb2c660f5b3c70f2258339308a74347eb83 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -260,6 +260,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic @@ -57,7 +57,7 @@ index 79c56946cecba2a6308a0a67b7da036d348a97a8..dfacc5d6b7eb30292f59b25752d2c7ee if (this.keepAlivePending) { if (!this.processedDisconnect && elapsedTime >= KEEPALIVE_LIMIT) { // check keepalive limit, don't fire if already disconnected ServerGamePacketListenerImpl.LOGGER.warn("{} was kicked due to keepalive timeout!", this.player.getScoreboardName()); // more info -@@ -3598,6 +3614,16 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -3599,6 +3615,16 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic @Override public void handleKeepAlive(ServerboundKeepAlivePacket packet) { diff --git a/patches/server/0037-Logger-settings-suppressing-pointless-logs.patch b/patches/server/0036-Logger-settings-suppressing-pointless-logs.patch similarity index 76% rename from patches/server/0037-Logger-settings-suppressing-pointless-logs.patch rename to patches/server/0036-Logger-settings-suppressing-pointless-logs.patch index 0f7d4f71..990c8198 100644 --- a/patches/server/0037-Logger-settings-suppressing-pointless-logs.patch +++ b/patches/server/0036-Logger-settings-suppressing-pointless-logs.patch @@ -7,13 +7,15 @@ Original code by PurpurMC, licensed under MIT You can find the original code on https://github.com/PurpurMC/Purpur diff --git a/src/main/java/dev/etil/mirai/MiraiConfig.java b/src/main/java/dev/etil/mirai/MiraiConfig.java -index 432ba1293419dea0903e31043f68f5ad45ed0c2d..15e0cf25afc0a57f70af63294e5933632b409630 100644 +index 432ba1293419dea0903e31043f68f5ad45ed0c2d..b5b5a73e7b911c098564f9cc1ff670e6f8dbd652 100644 --- a/src/main/java/dev/etil/mirai/MiraiConfig.java +++ b/src/main/java/dev/etil/mirai/MiraiConfig.java -@@ -166,4 +166,27 @@ public class MiraiConfig { +@@ -166,4 +166,26 @@ public class MiraiConfig { "This can drastically reduce players timeouts due to a bad connection."); } +-} +\ No newline at end of file + public static boolean loggerSuppressInitLegacyMaterialError; + public static boolean loggerSuppressIgnoredAdvancementWarnings; + public static boolean loggerSuppressUnrecognizedRecipeErrors; @@ -21,24 +23,22 @@ index 432ba1293419dea0903e31043f68f5ad45ed0c2d..15e0cf25afc0a57f70af63294e593363 + public static boolean loggerSuppressSentExpiredChat; + private static void loggerSettings() { + loggerSuppressInitLegacyMaterialError = getBoolean("logger.suppress-init-legacy-material-errors", false, -+ "Whether or not server should stop saying", -+ "'Initializing Legacy Material Support. Unless you have legacy plugins and/or data this is a bug!'"); ++ "Whether or not server should stop saying", ++ "'Initializing Legacy Material Support. Unless you have legacy plugins and/or data this is a bug!'"); + loggerSuppressIgnoredAdvancementWarnings = getBoolean("logger.suppress-ignored-advancement-warnings", false, -+ "Whether or not server should stop saying", -+ "'Ignored advancement '{}' in progress file {} - it doesn't exist anymore?'"); ++ "Whether or not server should stop saying", ++ "'Ignored advancement '{}' in progress file {} - it doesn't exist anymore?'"); + loggerSuppressUnrecognizedRecipeErrors = getBoolean("logger.suppress-unrecognized-recipe-errors", false, -+ "Whether or not server should stop saying", -+ "'Tried to load unrecognized recipe: {} removed now.'"); ++ "Whether or not server should stop saying", ++ "'Tried to load unrecognized recipe: {} removed now.'"); + loggerSuppressSetBlockFarChunk = getBoolean("logger.suppress-setblock-in-far-chunk-errors", false, -+ "Whether or not server should stop saying", -+ "'Detected setBlock in a far chunk.'"); ++ "Whether or not server should stop saying", ++ "'Detected setBlock in a far chunk.'"); + loggerSuppressSentExpiredChat = getBoolean("logger.suppress-sent-expired-chat", false, -+ "Whether or not server should stop saying", -+ "'{} sent expired chat: '{}'. Is the client/server system time unsynchronized?'"); ++ "Whether or not server should stop saying", ++ "'{} sent expired chat: '{}'. Is the client/server system time unsynchronized?'"); + } -+ - } -\ No newline at end of file ++} diff --git a/src/main/java/net/minecraft/server/PlayerAdvancements.java b/src/main/java/net/minecraft/server/PlayerAdvancements.java index a0c19503aabab5378d672a30163d35a5ba05b6c1..b5d2e67fef5f9c7802ca6b2cf9b3f86c1aa1882d 100644 --- a/src/main/java/net/minecraft/server/PlayerAdvancements.java @@ -53,10 +53,10 @@ index a0c19503aabab5378d672a30163d35a5ba05b6c1..b5d2e67fef5f9c7802ca6b2cf9b3f86c // CraftBukkit end } else { diff --git a/src/main/java/net/minecraft/server/level/WorldGenRegion.java b/src/main/java/net/minecraft/server/level/WorldGenRegion.java -index 80c1e0e47818486a68e0114b063395290365346b..91b273d058d2fe83207cc562a25711e4d621c862 100644 +index 0d3587e2d454fb0994ecff930b5e496a3999746a..a23745ac430e5f236dd9e4552a343a71a63e0f1c 100644 --- a/src/main/java/net/minecraft/server/level/WorldGenRegion.java +++ b/src/main/java/net/minecraft/server/level/WorldGenRegion.java -@@ -295,7 +295,7 @@ public class WorldGenRegion implements WorldGenLevel { +@@ -296,7 +296,7 @@ public class WorldGenRegion implements WorldGenLevel { return true; } else { // Paper start @@ -66,15 +66,15 @@ index 80c1e0e47818486a68e0114b063395290365346b..91b273d058d2fe83207cc562a25711e4 hasSetFarWarned = true; if (this.getServer() != null && this.getServer().isDebugging()) { diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index dfacc5d6b7eb30292f59b25752d2c7ee1ff9534f..ed98aab3df24bbefc1adc0e21ec7f1deab8d8aa1 100644 +index cfdd0eb2c660f5b3c70f2258339308a74347eb83..214650909f83f024ebc5ddb0689682d5a81719db 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -2628,7 +2628,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic } - if (playerchatmessage.hasExpiredServer(Instant.now())) { -- ServerGamePacketListenerImpl.LOGGER.warn("{} sent expired chat: '{}'. Is the client/server system time unsynchronized? c: {} s: {}", this.player.getName().getString(), playerchatmessage.signedContent().plain(), playerchatmessage.timeStamp().getEpochSecond(), Instant.now().getEpochSecond()); // Paper -+ if (!dev.etil.mirai.MiraiConfig.loggerSuppressSentExpiredChat) ServerGamePacketListenerImpl.LOGGER.warn("{} sent expired chat: '{}'. Is the client/server system time unsynchronized? c: {} s: {}", this.player.getName().getString(), playerchatmessage.signedContent().plain(), playerchatmessage.timeStamp().getEpochSecond(), Instant.now().getEpochSecond()); // Paper // Purpur + if (message.hasExpiredServer(Instant.now())) { +- ServerGamePacketListenerImpl.LOGGER.warn("{} sent expired chat: '{}'. Is the client/server system time unsynchronized? c: {} s: {}", this.player.getName().getString(), message.signedContent().plain(), message.timeStamp().getEpochSecond(), Instant.now().getEpochSecond()); // Paper ++ if (!dev.etil.mirai.MiraiConfig.loggerSuppressSentExpiredChat) ServerGamePacketListenerImpl.LOGGER.warn("{} sent expired chat: '{}'. Is the client/server system time unsynchronized? c: {} s: {}", this.player.getName().getString(), message.signedContent().plain(), message.timeStamp().getEpochSecond(), Instant.now().getEpochSecond()); // Paper // Purpur } return true; diff --git a/patches/server/0038-Add-5-second-tps-average-in-tps.patch b/patches/server/0037-Add-5-second-tps-average-in-tps.patch similarity index 97% rename from patches/server/0038-Add-5-second-tps-average-in-tps.patch rename to patches/server/0037-Add-5-second-tps-average-in-tps.patch index 742091a9..e8b3b331 100644 --- a/patches/server/0038-Add-5-second-tps-average-in-tps.patch +++ b/patches/server/0037-Add-5-second-tps-average-in-tps.patch @@ -29,7 +29,7 @@ index fa56cd09102a89692b42f1d14257990508c5c720..f9251183df72ddc56662fd3f02acf216 setListData(vector); } diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 904ce75db06d3a50025bf758279e84346912ef6c..6cdced357fdcd5ea4ce0c63d29e39573a5f40f65 100644 +index 3606ee44c9080348aecced1815c7e6f2dd1f5386..8f09ebf88bb26c74182893c86ad95ccc8580a455 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -290,7 +290,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop lockedFlags = new EnumMap<>(Goal.Flag.class); -- public final Set availableGoals = Sets.newLinkedHashSet(); +- private final Set availableGoals = Sets.newLinkedHashSet(); + public final Set availableGoals = new ObjectLinkedOpenHashSet<>(); // Lithium - replace AI goal set with optimized collection private final Supplier profiler; private final EnumSet disabledFlags = EnumSet.noneOf(Goal.Flag.class); // Paper unused, but dummy to prevent plugins from crashing as hard. Theyll need to support paper in a special case if this is super important, but really doesn't seem like it would be. diff --git a/patches/server/0043-vmp-skip-entity-move-if-movement-is-zero.patch b/patches/server/0042-vmp-skip-entity-move-if-movement-is-zero.patch similarity index 89% rename from patches/server/0043-vmp-skip-entity-move-if-movement-is-zero.patch rename to patches/server/0042-vmp-skip-entity-move-if-movement-is-zero.patch index a6f36b59..f0d924a9 100644 --- a/patches/server/0043-vmp-skip-entity-move-if-movement-is-zero.patch +++ b/patches/server/0042-vmp-skip-entity-move-if-movement-is-zero.patch @@ -9,7 +9,7 @@ Original code by RelativityMC, licensed under MIT You can find the original code on https://github.com/RelativityMC/VMP-fabric (Yarn mappings) diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index e46948c61c4f694c2224bed2bee695570d196ab9..0565cf824c2d623845239cb07c80f042732ff6be 100644 +index bf03c5636d16a798411b441300f2d5d3c334b8f7..ecf67ebaac98924b48357802830c76b974aa8bb1 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -299,6 +299,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { @@ -20,7 +20,7 @@ index e46948c61c4f694c2224bed2bee695570d196ab9..0565cf824c2d623845239cb07c80f042 public boolean onGround; public boolean horizontalCollision; public boolean verticalCollision; -@@ -1032,6 +1033,12 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { +@@ -1033,6 +1034,12 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { // Paper end - detailed watchdog information public void move(MoverType movementType, Vec3 movement) { @@ -33,7 +33,7 @@ index e46948c61c4f694c2224bed2bee695570d196ab9..0565cf824c2d623845239cb07c80f042 // Paper start - detailed watchdog information io.papermc.paper.util.TickThread.ensureTickThread("Cannot move an entity off-main"); synchronized (this.posLock) { -@@ -3758,6 +3765,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { +@@ -3763,6 +3770,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { } public final void setBoundingBox(AABB boundingBox) { diff --git a/patches/server/0044-Don-t-send-fire-packets-if-player-has-Fire-Resistanc.patch b/patches/server/0043-Don-t-send-fire-packets-if-player-has-Fire-Resistanc.patch similarity index 88% rename from patches/server/0044-Don-t-send-fire-packets-if-player-has-Fire-Resistanc.patch rename to patches/server/0043-Don-t-send-fire-packets-if-player-has-Fire-Resistanc.patch index c318d3d8..20f535ed 100644 --- a/patches/server/0044-Don-t-send-fire-packets-if-player-has-Fire-Resistanc.patch +++ b/patches/server/0043-Don-t-send-fire-packets-if-player-has-Fire-Resistanc.patch @@ -7,10 +7,10 @@ Original code by Cryptite, licensed under MIT You can find the original code on https://github.com/Cryptite/Slice diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 0565cf824c2d623845239cb07c80f042732ff6be..4aae8f6dc6f06ca9bc30b86a4dac57f38560e395 100644 +index ecf67ebaac98924b48357802830c76b974aa8bb1..62d1817f8268d12f95c21a901aac2716c4d13709 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -878,7 +878,13 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { +@@ -879,7 +879,13 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { this.checkOutOfWorld(); if (!this.level.isClientSide) { diff --git a/patches/server/0045-lithium-cached-hashcode.patch b/patches/server/0044-lithium-cached-hashcode.patch similarity index 100% rename from patches/server/0045-lithium-cached-hashcode.patch rename to patches/server/0044-lithium-cached-hashcode.patch diff --git a/patches/server/0046-PaperPR-Fix-CME-in-CraftPersistentDataTypeRegistry.patch b/patches/server/0045-PaperPR-Fix-CME-in-CraftPersistentDataTypeRegistry.patch similarity index 100% rename from patches/server/0046-PaperPR-Fix-CME-in-CraftPersistentDataTypeRegistry.patch rename to patches/server/0045-PaperPR-Fix-CME-in-CraftPersistentDataTypeRegistry.patch diff --git a/patches/server/0047-lithium-store-gamerules-in-fastutil-hashmap.patch b/patches/server/0046-lithium-store-gamerules-in-fastutil-hashmap.patch similarity index 95% rename from patches/server/0047-lithium-store-gamerules-in-fastutil-hashmap.patch rename to patches/server/0046-lithium-store-gamerules-in-fastutil-hashmap.patch index 21ee0bf7..34b01959 100644 --- a/patches/server/0047-lithium-store-gamerules-in-fastutil-hashmap.patch +++ b/patches/server/0046-lithium-store-gamerules-in-fastutil-hashmap.patch @@ -7,7 +7,7 @@ Original code by CaffeineMC, licensed under GNU Lesser General Public License v3 You can find the original code on https://github.com/CaffeineMC/lithium-fabric (Yarn mappings) diff --git a/src/main/java/net/minecraft/world/level/GameRules.java b/src/main/java/net/minecraft/world/level/GameRules.java -index 17e869074b8cf29a8c3280499a27e95179896750..97a5aec7da267b8b9f6d191c871316ccb89c448c 100644 +index 9fa0758c0a8c74dec6cfe8a16585ace1cf45df96..f912b0ec9f58861efcc4fbd65604bd0a31c6d7d5 100644 --- a/src/main/java/net/minecraft/world/level/GameRules.java +++ b/src/main/java/net/minecraft/world/level/GameRules.java @@ -27,6 +27,7 @@ import net.minecraft.network.protocol.game.ClientboundGameEventPacket; diff --git a/patches/server/0048-carpetfixes-BiomeAccess-prediction.patch b/patches/server/0047-carpetfixes-BiomeAccess-prediction.patch similarity index 100% rename from patches/server/0048-carpetfixes-BiomeAccess-prediction.patch rename to patches/server/0047-carpetfixes-BiomeAccess-prediction.patch diff --git a/patches/server/0049-Configurable-enchantment-table-book-animation-tick.patch b/patches/server/0048-Configurable-enchantment-table-book-animation-tick.patch similarity index 73% rename from patches/server/0049-Configurable-enchantment-table-book-animation-tick.patch rename to patches/server/0048-Configurable-enchantment-table-book-animation-tick.patch index c201ecd9..7076458c 100644 --- a/patches/server/0049-Configurable-enchantment-table-book-animation-tick.patch +++ b/patches/server/0048-Configurable-enchantment-table-book-animation-tick.patch @@ -5,24 +5,23 @@ Subject: [PATCH] Configurable enchantment table book animation tick diff --git a/src/main/java/dev/etil/mirai/MiraiConfig.java b/src/main/java/dev/etil/mirai/MiraiConfig.java -index 8e720820a94cf5d39e59998700932bfbb5c15544..929ccc5cf475a5b3d19e44d8d6b324e1d647b5d1 100644 +index 697b766953607e25a6e9f3eced2ea9e801d37e81..53fa3c4b9d589ebc7d003a12a40a43c2772e004c 100644 --- a/src/main/java/dev/etil/mirai/MiraiConfig.java +++ b/src/main/java/dev/etil/mirai/MiraiConfig.java -@@ -202,4 +202,11 @@ public class MiraiConfig { - "Whether or not entities should be able to use portals."); +@@ -201,4 +201,11 @@ public class MiraiConfig { + entitiesCanUsePortals = getBoolean("entities-can-use-portals", true, + "Whether or not entities should be able to use portals."); } - ++ + public static boolean bookAnimationTick; + private static void bookTicking() { + bookAnimationTick = getBoolean("enchantment-table-book-animation-tick", false, -+ "Whether or not server should animate enchantment table book.", -+ "Disabling it can save MSPT, especially with quite a lot of enchantment tables."); ++ "Whether or not server should animate enchantment table book.", ++ "Disabling it can save MSPT, especially with quite a lot of enchantment tables."); + } -+ } -\ No newline at end of file diff --git a/src/main/java/net/minecraft/world/level/block/entity/EnchantmentTableBlockEntity.java b/src/main/java/net/minecraft/world/level/block/entity/EnchantmentTableBlockEntity.java -index 2341a5a249d455628165fc6ba508fc6d70c3dbfb..20e224ea5dbd96fd0d12ea5a1143fe0702cd6e77 100644 +index 65e1381bb2d10bd212463feb602c60f8fdb9ade1..528a722919e5ab79ff71236fd713ed614713af2a 100644 --- a/src/main/java/net/minecraft/world/level/block/entity/EnchantmentTableBlockEntity.java +++ b/src/main/java/net/minecraft/world/level/block/entity/EnchantmentTableBlockEntity.java @@ -48,6 +48,7 @@ public class EnchantmentTableBlockEntity extends BlockEntity implements Nameable diff --git a/patches/server/0050-Skip-cloning-loot-parameters.patch b/patches/server/0049-Skip-cloning-loot-parameters.patch similarity index 91% rename from patches/server/0050-Skip-cloning-loot-parameters.patch rename to patches/server/0049-Skip-cloning-loot-parameters.patch index 56b8bdf0..bd2e1bc4 100644 --- a/patches/server/0050-Skip-cloning-loot-parameters.patch +++ b/patches/server/0049-Skip-cloning-loot-parameters.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Skip cloning loot parameters diff --git a/src/main/java/net/minecraft/advancements/Advancement.java b/src/main/java/net/minecraft/advancements/Advancement.java -index 2c01231dcfbb992c9d2f034fcfd4af52fe8ac265..7ed9ca7d220c2af764a2febe2c1d7cb208593074 100644 +index dd4409790524293be07483f00df05d8a8743e3d9..b816302aa46528bdd14b6d47c3e6b5ce5ebdc222 100644 --- a/src/main/java/net/minecraft/advancements/Advancement.java +++ b/src/main/java/net/minecraft/advancements/Advancement.java @@ -45,7 +45,7 @@ public class Advancement { diff --git a/patches/server/0051-lithium-precompute-shape-arrays.patch b/patches/server/0050-lithium-precompute-shape-arrays.patch similarity index 100% rename from patches/server/0051-lithium-precompute-shape-arrays.patch rename to patches/server/0050-lithium-precompute-shape-arrays.patch diff --git a/patches/server/0052-Fix-MC-121706.patch b/patches/server/0051-Fix-MC-121706.patch similarity index 100% rename from patches/server/0052-Fix-MC-121706.patch rename to patches/server/0051-Fix-MC-121706.patch diff --git a/patches/server/0053-vmp-spawn_density_cap.patch b/patches/server/0052-vmp-spawn_density_cap.patch similarity index 100% rename from patches/server/0053-vmp-spawn_density_cap.patch rename to patches/server/0052-vmp-spawn_density_cap.patch diff --git a/patches/server/0054-lithium-entity.fast_elytra_check.patch b/patches/server/0053-lithium-entity.fast_elytra_check.patch similarity index 84% rename from patches/server/0054-lithium-entity.fast_elytra_check.patch rename to patches/server/0053-lithium-entity.fast_elytra_check.patch index 34effd28..5002c111 100644 --- a/patches/server/0054-lithium-entity.fast_elytra_check.patch +++ b/patches/server/0053-lithium-entity.fast_elytra_check.patch @@ -7,10 +7,10 @@ Original code by CaffeineMC, licensed under GNU Lesser General Public License v3 You can find the original code on https://github.com/CaffeineMC/lithium-fabric (Yarn mappings) diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index c0e316582e085873c05a76c16e612eabd2e8cf2a..dbcabd230bd9bd070e157f35d098553f3ed06987 100644 +index 3721f6c220da68232aabf5ea17fc6ffc25f6e7bb..19adfc12667e28d4f9b38cb74e210bb58bb1f6da 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java -@@ -3428,6 +3428,8 @@ public abstract class LivingEntity extends Entity { +@@ -3456,6 +3456,8 @@ public abstract class LivingEntity extends Entity { } private void updateFallFlying() { diff --git a/patches/server/0055-lithium-entity.fast_hand_swing.patch b/patches/server/0054-lithium-entity.fast_hand_swing.patch similarity index 84% rename from patches/server/0055-lithium-entity.fast_hand_swing.patch rename to patches/server/0054-lithium-entity.fast_hand_swing.patch index 224c52d7..c6c5a2cf 100644 --- a/patches/server/0055-lithium-entity.fast_hand_swing.patch +++ b/patches/server/0054-lithium-entity.fast_hand_swing.patch @@ -7,10 +7,10 @@ Original code by CaffeineMC, licensed under GNU Lesser General Public License v3 You can find the original code on https://github.com/CaffeineMC/lithium-fabric (Yarn mappings) diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index dbcabd230bd9bd070e157f35d098553f3ed06987..2cd8dfe953ac72f6be14557ab39d3cec1108499e 100644 +index 19adfc12667e28d4f9b38cb74e210bb58bb1f6da..c99a5f0d41031a15276ba4f49e9e01f7136f4fbd 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java -@@ -2488,6 +2488,8 @@ public abstract class LivingEntity extends Entity { +@@ -2505,6 +2505,8 @@ public abstract class LivingEntity extends Entity { } protected void updateSwingTime() { diff --git a/patches/server/0056-c2me-opts-math.patch b/patches/server/0055-c2me-opts-math.patch similarity index 100% rename from patches/server/0056-c2me-opts-math.patch rename to patches/server/0055-c2me-opts-math.patch diff --git a/patches/server/0057-lithium-entity.fast_powder_snow_check.patch b/patches/server/0056-lithium-entity.fast_powder_snow_check.patch similarity index 86% rename from patches/server/0057-lithium-entity.fast_powder_snow_check.patch rename to patches/server/0056-lithium-entity.fast_powder_snow_check.patch index 87f20070..4a0ecf62 100644 --- a/patches/server/0057-lithium-entity.fast_powder_snow_check.patch +++ b/patches/server/0056-lithium-entity.fast_powder_snow_check.patch @@ -7,10 +7,10 @@ Original code by CaffeineMC, licensed under GNU Lesser General Public License v3 You can find the original code on https://github.com/CaffeineMC/lithium-fabric (Yarn mappings) diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index 2cd8dfe953ac72f6be14557ab39d3cec1108499e..d6f7fd9dc4804e7565c89a9cbb0948f256559f03 100644 +index c99a5f0d41031a15276ba4f49e9e01f7136f4fbd..4cd993dbd2189af060349bda0df4ba710d59c11d 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java -@@ -569,11 +569,11 @@ public abstract class LivingEntity extends Entity { +@@ -570,11 +570,11 @@ public abstract class LivingEntity extends Entity { } protected void tryAddFrost() { @@ -24,7 +24,7 @@ index 2cd8dfe953ac72f6be14557ab39d3cec1108499e..d6f7fd9dc4804e7565c89a9cbb0948f2 if (attributemodifiable == null) { return; -@@ -583,7 +583,7 @@ public abstract class LivingEntity extends Entity { +@@ -584,7 +584,7 @@ public abstract class LivingEntity extends Entity { attributemodifiable.addTransientModifier(new AttributeModifier(LivingEntity.SPEED_MODIFIER_POWDER_SNOW_UUID, "Powder snow slow", (double) f, AttributeModifier.Operation.ADDITION)); } diff --git a/patches/server/0058-lithium-collections.attributes.patch b/patches/server/0057-lithium-collections.attributes.patch similarity index 94% rename from patches/server/0058-lithium-collections.attributes.patch rename to patches/server/0057-lithium-collections.attributes.patch index 03032b5b..ad413689 100644 --- a/patches/server/0058-lithium-collections.attributes.patch +++ b/patches/server/0057-lithium-collections.attributes.patch @@ -7,7 +7,7 @@ Original code by CaffeineMC, licensed under GNU Lesser General Public License v3 You can find the original code on https://github.com/CaffeineMC/lithium-fabric (Yarn mappings) diff --git a/src/main/java/net/minecraft/world/entity/ai/attributes/AttributeMap.java b/src/main/java/net/minecraft/world/entity/ai/attributes/AttributeMap.java -index 9bce290eb0c2cfef4896a3f2076c80bf3d76bd56..ac56484b1bf19dabe4bdd5b25eafa4ac38f08cbe 100644 +index 59ca3a0a70c68263495ae9972215b76554d3fb83..7c567bede8fd142626e488ed83c54a9188c818e1 100644 --- a/src/main/java/net/minecraft/world/entity/ai/attributes/AttributeMap.java +++ b/src/main/java/net/minecraft/world/entity/ai/attributes/AttributeMap.java @@ -16,11 +16,13 @@ import net.minecraft.nbt.CompoundTag; diff --git a/patches/server/0059-lithium-collections.entity_by_type.patch b/patches/server/0058-lithium-collections.entity_by_type.patch similarity index 100% rename from patches/server/0059-lithium-collections.entity_by_type.patch rename to patches/server/0058-lithium-collections.entity_by_type.patch diff --git a/patches/server/0060-lithium-collections.entity_filtering.patch b/patches/server/0059-lithium-collections.entity_filtering.patch similarity index 100% rename from patches/server/0060-lithium-collections.entity_filtering.patch rename to patches/server/0059-lithium-collections.entity_filtering.patch diff --git a/patches/server/0061-lithium-chunk.serialization.patch b/patches/server/0060-lithium-chunk.serialization.patch similarity index 100% rename from patches/server/0061-lithium-chunk.serialization.patch rename to patches/server/0060-lithium-chunk.serialization.patch diff --git a/patches/server/0062-Configurable-criterion-triggers.patch b/patches/server/0061-Configurable-criterion-triggers.patch similarity index 75% rename from patches/server/0062-Configurable-criterion-triggers.patch rename to patches/server/0061-Configurable-criterion-triggers.patch index da33c88f..f004ba63 100644 --- a/patches/server/0062-Configurable-criterion-triggers.patch +++ b/patches/server/0061-Configurable-criterion-triggers.patch @@ -9,32 +9,31 @@ Original code by YatopiaMC, licensed under MIT You can find the original code on https://github.com/YatopiaMC/Yatopia diff --git a/src/main/java/dev/etil/mirai/MiraiConfig.java b/src/main/java/dev/etil/mirai/MiraiConfig.java -index 929ccc5cf475a5b3d19e44d8d6b324e1d647b5d1..dde09a19916798afabe28902636a2ced642017a5 100644 +index 53fa3c4b9d589ebc7d003a12a40a43c2772e004c..8bdc549be4f1fc9e2b0373c5f16f66d97ba2d868 100644 --- a/src/main/java/dev/etil/mirai/MiraiConfig.java +++ b/src/main/java/dev/etil/mirai/MiraiConfig.java -@@ -209,4 +209,16 @@ public class MiraiConfig { - "Disabling it can save MSPT, especially with quite a lot of enchantment tables."); +@@ -208,4 +208,16 @@ public class MiraiConfig { + "Whether or not server should animate enchantment table book.", + "Disabling it can save MSPT, especially with quite a lot of enchantment tables."); } - ++ + public static boolean criterionTriggerEnterBlock; + public static boolean criterionTriggerTick; + public static boolean criterionTriggerLocation; + private static void criterionTriggers() { + criterionTriggerEnterBlock = getBoolean("criterion-trigger.enter-block", true, -+ "Whether or not server should listen to block enter triggers."); ++ "Whether or not server should listen to block enter triggers."); + criterionTriggerTick = getBoolean("criterion-trigger.tick", true, -+ "Whether or not server should listen to tick triggers."); ++ "Whether or not server should listen to tick triggers."); + criterionTriggerLocation = getBoolean("criterion-trigger.location", true, -+ "Whether or not server should listen to location triggers."); ++ "Whether or not server should listen to location triggers."); + } -+ } -\ No newline at end of file diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index 33cb9a669fed30509d2737898dbd15ce16193da4..d1a6a21bfe93882e23a0bad742abd6fedcac29d0 100644 +index 047af0c6b83cafd73316985f4af17794b7072440..ccac0539787d05b5e71abe98ab611e976ca56802 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java -@@ -619,7 +619,7 @@ public class ServerPlayer extends Player { +@@ -626,7 +626,7 @@ public class ServerPlayer extends Player { @Override protected void onInsideBlock(BlockState state) { @@ -43,7 +42,7 @@ index 33cb9a669fed30509d2737898dbd15ce16193da4..d1a6a21bfe93882e23a0bad742abd6fe } @Override -@@ -665,7 +665,7 @@ public class ServerPlayer extends Player { +@@ -672,7 +672,7 @@ public class ServerPlayer extends Player { } } @@ -52,7 +51,7 @@ index 33cb9a669fed30509d2737898dbd15ce16193da4..d1a6a21bfe93882e23a0bad742abd6fe if (this.levitationStartPos != null) { CriteriaTriggers.LEVITATION.trigger(this, this.levitationStartPos, this.tickCount - this.levitationStartTime); } -@@ -741,9 +741,7 @@ public class ServerPlayer extends Player { +@@ -748,9 +748,7 @@ public class ServerPlayer extends Player { this.connection.send(new ClientboundSetExperiencePacket(this.experienceProgress, this.totalExperience, this.experienceLevel)); } diff --git a/patches/server/0063-Set-item-stuck-sleep-to-15-ticks.patch b/patches/server/0062-Set-item-stuck-sleep-to-15-ticks.patch similarity index 87% rename from patches/server/0063-Set-item-stuck-sleep-to-15-ticks.patch rename to patches/server/0062-Set-item-stuck-sleep-to-15-ticks.patch index 4a189883..07c63739 100644 --- a/patches/server/0063-Set-item-stuck-sleep-to-15-ticks.patch +++ b/patches/server/0062-Set-item-stuck-sleep-to-15-ticks.patch @@ -7,10 +7,10 @@ Original code by YatopiaMC, licensed under MIT You can find the original code on https://github.com/YatopiaMC/Yatopia 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 16a55f94bda9f959548772c8916b4dc3eb045d47..3fbcd5e5d83b4451d2bf169971aa23ae5402184b 100644 +index 8a5efb6c81bbe85b67a6bb83c0c4afdf995121d0..15e14a4fbea313716b3f4b5ed53823b8b5a5caa8 100644 --- a/src/main/java/net/minecraft/world/entity/item/ItemEntity.java +++ b/src/main/java/net/minecraft/world/entity/item/ItemEntity.java -@@ -141,7 +141,7 @@ public class ItemEntity extends Entity { +@@ -142,7 +142,7 @@ public class ItemEntity extends Entity { if (this.level.isClientSide) { this.noPhysics = false; diff --git a/patches/server/0064-Smarter-statistics-ticking.patch b/patches/server/0063-Smarter-statistics-ticking.patch similarity index 95% rename from patches/server/0064-Smarter-statistics-ticking.patch rename to patches/server/0063-Smarter-statistics-ticking.patch index 84132a6f..22018421 100644 --- a/patches/server/0064-Smarter-statistics-ticking.patch +++ b/patches/server/0063-Smarter-statistics-ticking.patch @@ -10,7 +10,7 @@ Original code by YatopiaMC, licensed under MIT You can find the original code on https://github.com/YatopiaMC/Yatopia 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 9b131f0a827413e9f5d6d0f7491c5481576cb8b1..b5ffd28b2d17014d25bc4d099b1cc5da186f3146 100644 +index 0ea101f155936f7c340d9e1d1077c58b72551027..4ee90ce146abbbdce509be3d1e08ea427a6cd82a 100644 --- a/src/main/java/net/minecraft/world/entity/player/Player.java +++ b/src/main/java/net/minecraft/world/entity/player/Player.java @@ -284,19 +284,21 @@ public abstract class Player extends LivingEntity { diff --git a/patches/server/0065-some-entity-micro-opts.patch b/patches/server/0064-some-entity-micro-opts.patch similarity index 92% rename from patches/server/0065-some-entity-micro-opts.patch rename to patches/server/0064-some-entity-micro-opts.patch index 7dac4842..3a74baf8 100644 --- a/patches/server/0065-some-entity-micro-opts.patch +++ b/patches/server/0064-some-entity-micro-opts.patch @@ -7,10 +7,10 @@ Original code by Titaniumtown, licensed under GNU General Public License v3.0 You can find the original code on https://gitlab.com/Titaniumtown/JettPack diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index fc71a56fd84d975890b0e5e44f2ad020718bcc8a..8e88ae24d7e3299d7250a2021cb3604c045eaac9 100644 +index 62d1817f8268d12f95c21a901aac2716c4d13709..e9f57c2be715fca246ad7f593a3cf28501b25701 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -1880,12 +1880,18 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { +@@ -1881,12 +1881,18 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { } } @@ -30,7 +30,7 @@ index fc71a56fd84d975890b0e5e44f2ad020718bcc8a..8e88ae24d7e3299d7250a2021cb3604c public void absMoveTo(double x, double y, double z, float yaw, float pitch) { this.absMoveTo(x, y, z); this.setYRot(yaw % 360.0F); -@@ -4333,6 +4339,12 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { +@@ -4350,6 +4356,12 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { } // Paper end - block invalid positions @@ -44,7 +44,7 @@ index fc71a56fd84d975890b0e5e44f2ad020718bcc8a..8e88ae24d7e3299d7250a2021cb3604c // Paper start this.setPosRaw(x, y, z, false); diff --git a/src/main/java/net/minecraft/world/entity/Mob.java b/src/main/java/net/minecraft/world/entity/Mob.java -index 78b1fc7b4cacfc98a9e3e6ba93e17c3307d5449c..63911fd0d2a5f194ed4632f209555b3146ed7b79 100644 +index 8c84b6d2329ae580502e584c6ab450160830d31d..21334240fb5cf9c6cc0df5ad4af99e05a44bf128 100644 --- a/src/main/java/net/minecraft/world/entity/Mob.java +++ b/src/main/java/net/minecraft/world/entity/Mob.java @@ -1647,15 +1647,31 @@ public abstract class Mob extends LivingEntity { diff --git a/patches/server/0066-Dont-eat-blocks-in-non-ticking-chunks.patch b/patches/server/0065-Dont-eat-blocks-in-non-ticking-chunks.patch similarity index 96% rename from patches/server/0066-Dont-eat-blocks-in-non-ticking-chunks.patch rename to patches/server/0065-Dont-eat-blocks-in-non-ticking-chunks.patch index 2c7240dc..f9801b16 100644 --- a/patches/server/0066-Dont-eat-blocks-in-non-ticking-chunks.patch +++ b/patches/server/0065-Dont-eat-blocks-in-non-ticking-chunks.patch @@ -7,7 +7,7 @@ Original code by PurpurMC, licensed under MIT You can find the original code on https://github.com/PurpurMC/Purpur diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java -index 9ce60dd72dee4d3ceef38f425b13aed18fd5e002..9976630fad886392057f642e84f919f0b95cc040 100644 +index 65327b58bced011efb117e546fd6657092b76035..5b714df6faca6424e7c7d89e56a4e0425bd1b1c6 100644 --- a/src/main/java/net/minecraft/server/level/ChunkMap.java +++ b/src/main/java/net/minecraft/server/level/ChunkMap.java @@ -983,7 +983,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider diff --git a/patches/server/0067-Fast-speed-check.patch b/patches/server/0066-Fast-speed-check.patch similarity index 77% rename from patches/server/0067-Fast-speed-check.patch rename to patches/server/0066-Fast-speed-check.patch index 93335fa5..ce4eae28 100644 --- a/patches/server/0067-Fast-speed-check.patch +++ b/patches/server/0066-Fast-speed-check.patch @@ -12,27 +12,26 @@ doing questionable/buggy ones, and claiming breathtaking performance improvement any of those Spigot forks! diff --git a/src/main/java/dev/etil/mirai/MiraiConfig.java b/src/main/java/dev/etil/mirai/MiraiConfig.java -index dde09a19916798afabe28902636a2ced642017a5..b9ab67acf30d20745111b9fe5c6ccf44dca3e006 100644 +index 8bdc549be4f1fc9e2b0373c5f16f66d97ba2d868..c498f72b394b4b0041a438eed7caa228097411c8 100644 --- a/src/main/java/dev/etil/mirai/MiraiConfig.java +++ b/src/main/java/dev/etil/mirai/MiraiConfig.java -@@ -221,4 +221,11 @@ public class MiraiConfig { - "Whether or not server should listen to location triggers."); +@@ -220,4 +220,11 @@ public class MiraiConfig { + criterionTriggerLocation = getBoolean("criterion-trigger.location", true, + "Whether or not server should listen to location triggers."); } - ++ + public static boolean fastSpeedCheck; + private static void speedCheck() { + fastSpeedCheck = getBoolean("fast-speed-check", true, -+ "Whether or not server should use a faster method", -+ "to check when entity delta movement is null."); ++ "Whether or not server should use a faster method", ++ "to check when entity delta movement is null."); + } -+ } -\ No newline at end of file diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 8e88ae24d7e3299d7250a2021cb3604c045eaac9..d2bffae52474883488a05534273dff9450a1634c 100644 +index e9f57c2be715fca246ad7f593a3cf28501b25701..3ff172293f45119c2d4a169ec3a87262f49ee897 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -1205,7 +1205,18 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { +@@ -1206,7 +1206,18 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { } this.tryCheckInsideBlocks(); diff --git a/patches/server/0068-lithium-cache-iterate-outwards.patch b/patches/server/0067-lithium-cache-iterate-outwards.patch similarity index 100% rename from patches/server/0068-lithium-cache-iterate-outwards.patch rename to patches/server/0067-lithium-cache-iterate-outwards.patch diff --git a/patches/server/0069-lithium-ai.raid.patch b/patches/server/0068-lithium-ai.raid.patch similarity index 95% rename from patches/server/0069-lithium-ai.raid.patch rename to patches/server/0068-lithium-ai.raid.patch index fb88c6ec..0ccfbd65 100644 --- a/patches/server/0069-lithium-ai.raid.patch +++ b/patches/server/0068-lithium-ai.raid.patch @@ -37,7 +37,7 @@ index 6a0a1731fd6804eb69d3641213712d31bce085b2..5f4bb589474ce7d4f214e32ab0bc4b9c public float getHealthOfLivingRaiders() { diff --git a/src/main/java/net/minecraft/world/entity/raid/Raider.java b/src/main/java/net/minecraft/world/entity/raid/Raider.java -index 8877423a99e387c18d1d994518bf15d8d9ba64af..a65e82c8e2975244d725ff2f4931df183f25b63f 100644 +index e5ccbaf72f29731f1d1aa939b9297b644a408cd4..940fcebe1e1ab7d249487d58958b24b62fb8eaab 100644 --- a/src/main/java/net/minecraft/world/entity/raid/Raider.java +++ b/src/main/java/net/minecraft/world/entity/raid/Raider.java @@ -46,8 +46,9 @@ import net.minecraft.world.phys.Vec3; @@ -60,7 +60,7 @@ index 8877423a99e387c18d1d994518bf15d8d9ba64af..a65e82c8e2975244d725ff2f4931df18 MobEffectInstance mobeffect = entityhuman.getEffect(MobEffects.BAD_OMEN); byte b0 = 1; int i; -@@ -309,6 +310,7 @@ public abstract class Raider extends PatrollingMonster { +@@ -311,6 +312,7 @@ public abstract class Raider extends PatrollingMonster { public class ObtainRaidLeaderBannerGoal extends Goal { private final T mob; @@ -68,7 +68,7 @@ index 8877423a99e387c18d1d994518bf15d8d9ba64af..a65e82c8e2975244d725ff2f4931df18 public ObtainRaidLeaderBannerGoal(T entityraider) { // CraftBukkit - decompile error this.mob = entityraider; -@@ -320,7 +322,7 @@ public abstract class Raider extends PatrollingMonster { +@@ -322,7 +324,7 @@ public abstract class Raider extends PatrollingMonster { if (!this.mob.level.getGameRules().getBoolean(GameRules.RULE_MOBGRIEFING) || !this.mob.canPickUpLoot()) return false; // Paper - respect game and entity rules for picking up items Raid raid = this.mob.getCurrentRaid(); diff --git a/patches/server/0070-lithium-block.moving_block_shapes.patch b/patches/server/0069-lithium-block.moving_block_shapes.patch similarity index 98% rename from patches/server/0070-lithium-block.moving_block_shapes.patch rename to patches/server/0069-lithium-block.moving_block_shapes.patch index c230043f..4bf4dd4b 100644 --- a/patches/server/0070-lithium-block.moving_block_shapes.patch +++ b/patches/server/0069-lithium-block.moving_block_shapes.patch @@ -7,7 +7,7 @@ Original code by CaffeineMC, licensed under GNU Lesser General Public License v3 You can find the original code on https://github.com/CaffeineMC/lithium-fabric (Yarn mappings) diff --git a/src/main/java/net/minecraft/world/level/block/piston/PistonMovingBlockEntity.java b/src/main/java/net/minecraft/world/level/block/piston/PistonMovingBlockEntity.java -index 7c59d44a3bafdc65f453d77ff3e25cffb742ad6c..636721a111cad13e7329f1157981ca03a8f339b3 100644 +index 4b61602a1d2d6817272e02cfd282ac5dabbd976d..57bd494395de37a34452e9c7d2899b249011651c 100644 --- a/src/main/java/net/minecraft/world/level/block/piston/PistonMovingBlockEntity.java +++ b/src/main/java/net/minecraft/world/level/block/piston/PistonMovingBlockEntity.java @@ -52,6 +52,74 @@ public class PistonMovingBlockEntity extends BlockEntity { diff --git a/patches/server/0071-lithium-shapes.blockstate_cache.patch b/patches/server/0070-lithium-shapes.blockstate_cache.patch similarity index 100% rename from patches/server/0071-lithium-shapes.blockstate_cache.patch rename to patches/server/0070-lithium-shapes.blockstate_cache.patch diff --git a/patches/server/0072-lithium-gen.patch b/patches/server/0071-lithium-gen.patch similarity index 99% rename from patches/server/0072-lithium-gen.patch rename to patches/server/0071-lithium-gen.patch index 10d40227..6650eb6d 100644 --- a/patches/server/0072-lithium-gen.patch +++ b/patches/server/0071-lithium-gen.patch @@ -106,7 +106,7 @@ index 0000000000000000000000000000000000000000..c99eff34c1be07508c88fe9525c3ae1a +} \ No newline at end of file diff --git a/src/main/java/net/minecraft/server/level/WorldGenRegion.java b/src/main/java/net/minecraft/server/level/WorldGenRegion.java -index 91b273d058d2fe83207cc562a25711e4d621c862..982ebf0fe6aa4d4f42e8e3b8820fbaf1f7736849 100644 +index a23745ac430e5f236dd9e4552a343a71a63e0f1c..303061187fc289d2f7098b46629341a01719068f 100644 --- a/src/main/java/net/minecraft/server/level/WorldGenRegion.java +++ b/src/main/java/net/minecraft/server/level/WorldGenRegion.java @@ -54,6 +54,7 @@ import net.minecraft.world.phys.Vec3; diff --git a/patches/server/0074-vmp-use-linked-map-for-entity-trackers-for-faster-it.patch b/patches/server/0072-vmp-use-linked-map-for-entity-trackers-for-faster-it.patch similarity index 94% rename from patches/server/0074-vmp-use-linked-map-for-entity-trackers-for-faster-it.patch rename to patches/server/0072-vmp-use-linked-map-for-entity-trackers-for-faster-it.patch index 46dc227d..a3e26c51 100644 --- a/patches/server/0074-vmp-use-linked-map-for-entity-trackers-for-faster-it.patch +++ b/patches/server/0072-vmp-use-linked-map-for-entity-trackers-for-faster-it.patch @@ -9,7 +9,7 @@ Original code by RelativityMC, licensed under MIT You can find the original code on https://github.com/RelativityMC/VMP-fabric (Yarn mappings) diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java -index 9976630fad886392057f642e84f919f0b95cc040..c01c22b6fda9e36a2336a992c760b813b71469ce 100644 +index 5b714df6faca6424e7c7d89e56a4e0425bd1b1c6..76795b9d30ddb1f938d86b40bcac54c88364dde5 100644 --- a/src/main/java/net/minecraft/server/level/ChunkMap.java +++ b/src/main/java/net/minecraft/server/level/ChunkMap.java @@ -111,6 +111,7 @@ import org.bukkit.entity.Player; diff --git a/patches/server/0073-PaperPR-Add-more-collision-code-skipping-logic.patch b/patches/server/0073-PaperPR-Add-more-collision-code-skipping-logic.patch deleted file mode 100644 index f05a5874..00000000 --- a/patches/server/0073-PaperPR-Add-more-collision-code-skipping-logic.patch +++ /dev/null @@ -1,22 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: etil2jz <81570777+etil2jz@users.noreply.github.com> -Date: Sat, 19 Mar 2022 16:27:30 +0100 -Subject: [PATCH] PaperPR Add more collision code skipping logic - -Taken from https://github.com/PaperMC/Paper/pull/7581 - -diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index d6f7fd9dc4804e7565c89a9cbb0948f256559f03..24484d985929c7860aa08dbfca6df113086d2ed0 100644 ---- a/src/main/java/net/minecraft/world/entity/LivingEntity.java -+++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java -@@ -3470,6 +3470,10 @@ public abstract class LivingEntity extends Entity { - - protected void pushEntities() { - // Paper start - don't run getEntities if we're not going to use its result -+ if (!isCollidable(level.paperConfig().collisions.fixClimbingBypassingCrammingRule)) return; -+ net.minecraft.world.scores.Team team = getTeam(); -+ if (team != null && team.getCollisionRule() == net.minecraft.world.scores.Team.CollisionRule.NEVER) return; -+ - int i = this.level.getGameRules().getInt(GameRules.RULE_MAX_ENTITY_CRAMMING); - if (i <= 0 && level.paperConfig().collisions.maxEntityCollisions <= 0) { - return; diff --git a/patches/server/0075-c2me-reduce_allocs.patch b/patches/server/0073-c2me-reduce_allocs.patch similarity index 100% rename from patches/server/0075-c2me-reduce_allocs.patch rename to patches/server/0073-c2me-reduce_allocs.patch diff --git a/patches/server/0076-lithium-ai.sensor.secondary_poi.patch b/patches/server/0074-lithium-ai.sensor.secondary_poi.patch similarity index 100% rename from patches/server/0076-lithium-ai.sensor.secondary_poi.patch rename to patches/server/0074-lithium-ai.sensor.secondary_poi.patch diff --git a/patches/server/0077-Fix-tick-function-tag-running-before-load.patch b/patches/server/0075-Fix-tick-function-tag-running-before-load.patch similarity index 100% rename from patches/server/0077-Fix-tick-function-tag-running-before-load.patch rename to patches/server/0075-Fix-tick-function-tag-running-before-load.patch diff --git a/patches/server/0078-lithium-suffocation.patch b/patches/server/0076-lithium-suffocation.patch similarity index 96% rename from patches/server/0078-lithium-suffocation.patch rename to patches/server/0076-lithium-suffocation.patch index 64bfb537..96284cfd 100644 --- a/patches/server/0078-lithium-suffocation.patch +++ b/patches/server/0076-lithium-suffocation.patch @@ -9,10 +9,10 @@ Original license: GNU Lesser General Public License v3.0 Original project: https://github.com/CaffeineMC/lithium-fabric (Yarn mappings) diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index d2bffae52474883488a05534273dff9450a1634c..b19d4b2fec798c13601b5e46f8e77ed95917c2f0 100644 +index 3ff172293f45119c2d4a169ec3a87262f49ee897..32362fcd303fb1ed80a2f98d87704dfec275ef7e 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -2607,39 +2607,64 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { +@@ -2608,39 +2608,64 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { return !this.isRemoved(); } diff --git a/patches/server/0079-Optimize-default-values-for-configs.patch b/patches/server/0077-Optimize-default-values-for-configs.patch similarity index 91% rename from patches/server/0079-Optimize-default-values-for-configs.patch rename to patches/server/0077-Optimize-default-values-for-configs.patch index ff7412dc..30adc18d 100644 --- a/patches/server/0079-Optimize-default-values-for-configs.patch +++ b/patches/server/0077-Optimize-default-values-for-configs.patch @@ -18,7 +18,7 @@ index 34eb43ca2bf446504c372f98dfbe6dbfd0a81369..74d86c1a9ef79e09b1ec02b93e8f62d3 setComment("projectile", "Optimizes projectile settings"); } diff --git a/src/main/java/io/papermc/paper/configuration/GlobalConfiguration.java b/src/main/java/io/papermc/paper/configuration/GlobalConfiguration.java -index 54bca103347e89f116fb7fbf37449a32ac094286..76810d7767b1a66315b006569654c718105ab4ee 100644 +index d03551e81e3ef37935cb1d963aba3df316f48ef5..c2cece9c2c8ba0f14a2d6878e4bb3e8dc816821d 100644 --- a/src/main/java/io/papermc/paper/configuration/GlobalConfiguration.java +++ b/src/main/java/io/papermc/paper/configuration/GlobalConfiguration.java @@ -55,7 +55,7 @@ public class GlobalConfiguration extends ConfigurationPart { @@ -30,7 +30,7 @@ index 54bca103347e89f116fb7fbf37449a32ac094286..76810d7767b1a66315b006569654c718 public boolean serverNamePrivacy = false; public List hiddenConfigEntries = List.of( "database", -@@ -289,9 +289,9 @@ public class GlobalConfiguration extends ConfigurationPart { +@@ -291,9 +291,9 @@ public class GlobalConfiguration extends ConfigurationPart { public boolean fixEntityPositionDesync = true; public boolean loadPermissionsYmlBeforePlugins = true; @Constraints.Min(4) @@ -43,10 +43,10 @@ index 54bca103347e89f116fb7fbf37449a32ac094286..76810d7767b1a66315b006569654c718 public boolean useDimensionTypeForCustomSpawners = false; public boolean strictAdvancementDimensionCheck = false; diff --git a/src/main/java/io/papermc/paper/configuration/WorldConfiguration.java b/src/main/java/io/papermc/paper/configuration/WorldConfiguration.java -index 3d2e67dc559ee3910b17ca86a46030ec05232250..9fe2a3800f4cb2dc5a3148463144835f94db8a10 100644 +index 5982dda61e07f1661b0a68d0ba1fcc1122e8d428..2805413e4fc5f977fa05c7292bb7eb46fbe18280 100644 --- a/src/main/java/io/papermc/paper/configuration/WorldConfiguration.java +++ b/src/main/java/io/papermc/paper/configuration/WorldConfiguration.java -@@ -113,8 +113,8 @@ public class WorldConfiguration extends ConfigurationPart { +@@ -114,8 +114,8 @@ public class WorldConfiguration extends ConfigurationPart { public ArmorStands armorStands; public class ArmorStands extends ConfigurationPart { @@ -57,7 +57,7 @@ index 3d2e67dc559ee3910b17ca86a46030ec05232250..9fe2a3800f4cb2dc5a3148463144835f } public Spawning spawning; -@@ -197,8 +197,8 @@ public class WorldConfiguration extends ConfigurationPart { +@@ -198,8 +198,8 @@ public class WorldConfiguration extends ConfigurationPart { public Behavior behavior; public class Behavior extends ConfigurationPart { @@ -68,16 +68,16 @@ index 3d2e67dc559ee3910b17ca86a46030ec05232250..9fe2a3800f4cb2dc5a3148463144835f public int experienceMergeMaxValue = -1; public boolean shouldRemoveDragon = false; public boolean zombiesTargetTurtleEggs = true; -@@ -241,7 +241,7 @@ public class WorldConfiguration extends ConfigurationPart { - public boolean enderDragonsDeathAlwaysPlacesDragonEgg = false; - public boolean phantomsDoNotSpawnOnCreativePlayers = true; - public boolean phantomsOnlyAttackInsomniacs = true; +@@ -245,7 +245,7 @@ public class WorldConfiguration extends ConfigurationPart { + public int playerInsomniaStartTicks = 72000; + public int phantomsSpawnAttemptMinSeconds = 60; + public int phantomsSpawnAttemptMaxSeconds = 119; - public boolean parrotsAreUnaffectedByPlayerMovement = false; + public boolean parrotsAreUnaffectedByPlayerMovement = true; // Mirai - optimize default values for configs public double zombieVillagerInfectionChance = -1.0; public MobsCanAlwaysPickUpLoot mobsCanAlwaysPickUpLoot; -@@ -251,7 +251,7 @@ public class WorldConfiguration extends ConfigurationPart { +@@ -255,7 +255,7 @@ public class WorldConfiguration extends ConfigurationPart { } public boolean disablePlayerCrits = false; @@ -86,7 +86,7 @@ index 3d2e67dc559ee3910b17ca86a46030ec05232250..9fe2a3800f4cb2dc5a3148463144835f public PillagerPatrols pillagerPatrols; public class PillagerPatrols extends ConfigurationPart { -@@ -309,7 +309,7 @@ public class WorldConfiguration extends ConfigurationPart { +@@ -313,7 +313,7 @@ public class WorldConfiguration extends ConfigurationPart { public class Environment extends ConfigurationPart { public boolean disableThunder = false; public boolean disableIceAndSnow = false; @@ -95,7 +95,7 @@ index 3d2e67dc559ee3910b17ca86a46030ec05232250..9fe2a3800f4cb2dc5a3148463144835f public boolean disableExplosionKnockback = false; public boolean generateFlatBedrock = false; public FrostedIce frostedIce; -@@ -354,7 +354,7 @@ public class WorldConfiguration extends ConfigurationPart { +@@ -359,7 +359,7 @@ public class WorldConfiguration extends ConfigurationPart { public class Maps extends ConfigurationPart { public int itemFrameCursorLimit = 128; @@ -104,7 +104,7 @@ index 3d2e67dc559ee3910b17ca86a46030ec05232250..9fe2a3800f4cb2dc5a3148463144835f } public Fixes fixes; -@@ -380,7 +380,7 @@ public class WorldConfiguration extends ConfigurationPart { +@@ -385,7 +385,7 @@ public class WorldConfiguration extends ConfigurationPart { public class Hopper extends ConfigurationPart { public boolean cooldownWhenFull = true; public boolean disableMoveEvent = false; @@ -113,7 +113,7 @@ index 3d2e67dc559ee3910b17ca86a46030ec05232250..9fe2a3800f4cb2dc5a3148463144835f } public Collisions collisions; -@@ -388,9 +388,9 @@ public class WorldConfiguration extends ConfigurationPart { +@@ -393,9 +393,9 @@ public class WorldConfiguration extends ConfigurationPart { public class Collisions extends ConfigurationPart { public boolean onlyPlayersCollide = false; public boolean allowVehicleCollisions = true; @@ -125,7 +125,7 @@ index 3d2e67dc559ee3910b17ca86a46030ec05232250..9fe2a3800f4cb2dc5a3148463144835f public boolean allowPlayerCrammingDamage = false; } -@@ -398,18 +398,32 @@ public class WorldConfiguration extends ConfigurationPart { +@@ -403,18 +403,32 @@ public class WorldConfiguration extends ConfigurationPart { public class Chunks extends ConfigurationPart { public AutosavePeriod autoSaveInterval = AutosavePeriod.def(); @@ -167,7 +167,7 @@ index 3d2e67dc559ee3910b17ca86a46030ec05232250..9fe2a3800f4cb2dc5a3148463144835f }); } -@@ -423,11 +437,22 @@ public class WorldConfiguration extends ConfigurationPart { +@@ -428,11 +442,22 @@ public class WorldConfiguration extends ConfigurationPart { public TickRates tickRates; public class TickRates extends ConfigurationPart { @@ -195,7 +195,7 @@ index 3d2e67dc559ee3910b17ca86a46030ec05232250..9fe2a3800f4cb2dc5a3148463144835f } @Setting(FeatureSeedsGeneration.FEATURE_SEEDS_KEY) -@@ -435,7 +460,7 @@ public class WorldConfiguration extends ConfigurationPart { +@@ -440,7 +465,7 @@ public class WorldConfiguration extends ConfigurationPart { public class FeatureSeeds extends ConfigurationPart.Post { @Setting(FeatureSeedsGeneration.GENERATE_KEY) @@ -204,7 +204,7 @@ index 3d2e67dc559ee3910b17ca86a46030ec05232250..9fe2a3800f4cb2dc5a3148463144835f @Setting(FeatureSeedsGeneration.FEATURES_KEY) public Reference2LongMap>> features = new Reference2LongOpenHashMap<>(); -@@ -449,9 +474,9 @@ public class WorldConfiguration extends ConfigurationPart { +@@ -454,9 +479,9 @@ public class WorldConfiguration extends ConfigurationPart { public class Misc extends ConfigurationPart { public int lightQueueSize = 20; @@ -217,10 +217,10 @@ index 3d2e67dc559ee3910b17ca86a46030ec05232250..9fe2a3800f4cb2dc5a3148463144835f public float maxLeashDistance = 10f; public boolean disableSprintInterruptionOnAttack = false; diff --git a/src/main/java/org/spigotmc/SpigotWorldConfig.java b/src/main/java/org/spigotmc/SpigotWorldConfig.java -index a5a2e497eb3e651f3e715f995a80161d919ebab9..6594d184940fd5b0a5418ce10c02ebe6540a4d0f 100644 +index 7c1efc3b6045b2179139dd419e969569f1af9f6d..ae41c804efd5fd223240f0fe541e971ebc5ae346 100644 --- a/src/main/java/org/spigotmc/SpigotWorldConfig.java +++ b/src/main/java/org/spigotmc/SpigotWorldConfig.java -@@ -150,14 +150,14 @@ public class SpigotWorldConfig +@@ -146,14 +146,14 @@ public class SpigotWorldConfig public double itemMerge; private void itemMerge() { @@ -237,7 +237,7 @@ index a5a2e497eb3e651f3e715f995a80161d919ebab9..6594d184940fd5b0a5418ce10c02ebe6 this.log( "Experience Merge Radius: " + this.expMerge ); } -@@ -196,7 +196,7 @@ public class SpigotWorldConfig +@@ -192,7 +192,7 @@ public class SpigotWorldConfig public byte mobSpawnRange; private void mobSpawnRange() { @@ -246,7 +246,7 @@ index a5a2e497eb3e651f3e715f995a80161d919ebab9..6594d184940fd5b0a5418ce10c02ebe6 this.log( "Mob Spawn Range: " + this.mobSpawnRange ); } -@@ -207,14 +207,14 @@ public class SpigotWorldConfig +@@ -203,14 +203,14 @@ public class SpigotWorldConfig this.log( "Item Despawn Rate: " + this.itemDespawnRate ); } @@ -266,7 +266,7 @@ index a5a2e497eb3e651f3e715f995a80161d919ebab9..6594d184940fd5b0a5418ce10c02ebe6 public int wakeUpInactiveAnimals = 4; public int wakeUpInactiveAnimalsEvery = 60*20; public int wakeUpInactiveAnimalsFor = 5*20; -@@ -231,7 +231,7 @@ public class SpigotWorldConfig +@@ -227,7 +227,7 @@ public class SpigotWorldConfig public int villagersWorkImmunityFor = 20; public boolean villagersActiveForPanic = true; // Paper end @@ -275,7 +275,7 @@ index a5a2e497eb3e651f3e715f995a80161d919ebab9..6594d184940fd5b0a5418ce10c02ebe6 public boolean ignoreSpectatorActivation = false; private void activationRange() { -@@ -297,7 +297,7 @@ public class SpigotWorldConfig +@@ -293,7 +293,7 @@ public class SpigotWorldConfig { this.set( "ticks-per.hopper-check", 1 ); } @@ -284,7 +284,7 @@ index a5a2e497eb3e651f3e715f995a80161d919ebab9..6594d184940fd5b0a5418ce10c02ebe6 this.hopperAmount = this.getInt( "hopper-amount", 1 ); this.hopperCanLoadChunks = this.getBoolean( "hopper-can-load-chunks", false ); this.log( "Hopper Transfer: " + this.hopperTransfer + " Hopper Check: " + this.hopperCheck + " Hopper Amount: " + this.hopperAmount + " Hopper Can Load Chunks: " + this.hopperCanLoadChunks ); -@@ -307,7 +307,7 @@ public class SpigotWorldConfig +@@ -303,7 +303,7 @@ public class SpigotWorldConfig public int tridentDespawnRate; private void arrowDespawnRate() { @@ -293,7 +293,7 @@ index a5a2e497eb3e651f3e715f995a80161d919ebab9..6594d184940fd5b0a5418ce10c02ebe6 this.tridentDespawnRate = this.getInt( "trident-despawn-rate", this.arrowDespawnRate ); this.log( "Arrow Despawn Rate: " + this.arrowDespawnRate + " Trident Respawn Rate:" + this.tridentDespawnRate ); } -@@ -322,14 +322,14 @@ public class SpigotWorldConfig +@@ -318,14 +318,14 @@ public class SpigotWorldConfig public boolean nerfSpawnerMobs; private void nerfSpawnerMobs() { @@ -310,7 +310,7 @@ index a5a2e497eb3e651f3e715f995a80161d919ebab9..6594d184940fd5b0a5418ce10c02ebe6 this.log( "Allow Zombie Pigmen to spawn from portal blocks: " + this.enableZombiePigmenPortalSpawns ); } -@@ -443,7 +443,7 @@ public class SpigotWorldConfig +@@ -439,7 +439,7 @@ public class SpigotWorldConfig public int hangingTickFrequency; private void hangingTickFrequency() { diff --git a/patches/server/0080-Fix-hunger-saturation-depleting-on-peaceful.patch b/patches/server/0078-Fix-hunger-saturation-depleting-on-peaceful.patch similarity index 87% rename from patches/server/0080-Fix-hunger-saturation-depleting-on-peaceful.patch rename to patches/server/0078-Fix-hunger-saturation-depleting-on-peaceful.patch index b120c533..11f49f60 100644 --- a/patches/server/0080-Fix-hunger-saturation-depleting-on-peaceful.patch +++ b/patches/server/0078-Fix-hunger-saturation-depleting-on-peaceful.patch @@ -8,10 +8,10 @@ the displayed hunger bar never goes down. Hunger (or any related value, includin should not go down on peaceful. See https://bugs.mojang.com/browse/MC-31819. 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 b5ffd28b2d17014d25bc4d099b1cc5da186f3146..54e241534f0a3c00044c1ce33e7dc3a8fd020ab7 100644 +index 4ee90ce146abbbdce509be3d1e08ea427a6cd82a..92464a0a470b97636b448c38d5b611e8b821dd71 100644 --- a/src/main/java/net/minecraft/world/entity/player/Player.java +++ b/src/main/java/net/minecraft/world/entity/player/Player.java -@@ -1921,6 +1921,7 @@ public abstract class Player extends LivingEntity { +@@ -1930,6 +1930,7 @@ public abstract class Player extends LivingEntity { } public void causeFoodExhaustion(float f, EntityExhaustionEvent.ExhaustionReason reason) { diff --git a/patches/server/0081-Fix-mobs-attacking-themselves.patch b/patches/server/0079-Fix-mobs-attacking-themselves.patch similarity index 100% rename from patches/server/0081-Fix-mobs-attacking-themselves.patch rename to patches/server/0079-Fix-mobs-attacking-themselves.patch diff --git a/patches/server/0082-Fix-brewing-stands-resetting-their-brewTime-when-bei.patch b/patches/server/0080-Fix-brewing-stands-resetting-their-brewTime-when-bei.patch similarity index 100% rename from patches/server/0082-Fix-brewing-stands-resetting-their-brewTime-when-bei.patch rename to patches/server/0080-Fix-brewing-stands-resetting-their-brewTime-when-bei.patch diff --git a/patches/server/0083-lithium-world.tick_scheduler.patch b/patches/server/0081-lithium-world.tick_scheduler.patch similarity index 95% rename from patches/server/0083-lithium-world.tick_scheduler.patch rename to patches/server/0081-lithium-world.tick_scheduler.patch index 753fdc3c..e00a431d 100644 --- a/patches/server/0083-lithium-world.tick_scheduler.patch +++ b/patches/server/0081-lithium-world.tick_scheduler.patch @@ -205,7 +205,7 @@ index 0000000000000000000000000000000000000000..52e90ea09b44543af661c214767073cf + } +} diff --git a/src/main/java/net/minecraft/world/ticks/LevelChunkTicks.java b/src/main/java/net/minecraft/world/ticks/LevelChunkTicks.java -index 9f6c2e5b5d9e8d714a47c770e255d06c0ef7c190..826ced345c97bd2eb04749f42744a086fafc4ce8 100644 +index ac807277a6b26d140ea9873d17c7aa4fb5fe37b2..89c5169d05687582ebef67267e8e2cbd22032cdc 100644 --- a/src/main/java/net/minecraft/world/ticks/LevelChunkTicks.java +++ b/src/main/java/net/minecraft/world/ticks/LevelChunkTicks.java @@ -16,14 +16,37 @@ import javax.annotation.Nullable; @@ -246,9 +246,9 @@ index 9f6c2e5b5d9e8d714a47c770e255d06c0ef7c190..826ced345c97bd2eb04749f42744a086 + private final IntOpenHashSet allpendingTicks = new IntOpenHashSet(); + // Mirai end - public LevelChunkTicks() { - } -@@ -35,34 +58,133 @@ public class LevelChunkTicks implements SerializableTickContainer, TickCon + // Paper start - add dirty flag + private boolean dirty; +@@ -48,36 +71,133 @@ public class LevelChunkTicks implements SerializableTickContainer, TickCon this.ticksPerPosition.add(ScheduledTick.probe(savedTick.type(), savedTick.pos())); } @@ -259,8 +259,8 @@ index 9f6c2e5b5d9e8d714a47c770e255d06c0ef7c190..826ced345c97bd2eb04749f42744a086 + this.allpendingTicks.add(tickToInt(orderedTick.pos(), orderedTick.type())); + } + } -+ this.ticksPerPosition = null; -+ this.tickQueue = null; ++ //this.ticksPerPosition = null; // KeYi - dont null ++ //this.tickQueue = null; // KeYi - dont null + // Mirai end + } + @@ -323,6 +323,7 @@ index 9f6c2e5b5d9e8d714a47c770e255d06c0ef7c190..826ced345c97bd2eb04749f42744a086 public ScheduledTick poll() { - ScheduledTick scheduledTick = this.tickQueue.poll(); - if (scheduledTick != null) { +- this.dirty = true; // Paper - add dirty flag - this.ticksPerPosition.remove(scheduledTick); + ScheduledTick orderedTick = this.nextTickQueue.poll(); + if (orderedTick != null) { @@ -344,6 +345,7 @@ index 9f6c2e5b5d9e8d714a47c770e255d06c0ef7c190..826ced345c97bd2eb04749f42744a086 @Override public void schedule(ScheduledTick orderedTick) { - if (this.ticksPerPosition.add(orderedTick)) { +- this.dirty = true; // Paper - add dirty flag - this.scheduleUnchecked(orderedTick); + int intTick = tickToInt(orderedTick.pos(), orderedTick.type()); + if (this.allpendingTicks.add(intTick)) { @@ -390,7 +392,7 @@ index 9f6c2e5b5d9e8d714a47c770e255d06c0ef7c190..826ced345c97bd2eb04749f42744a086 private void scheduleUnchecked(ScheduledTick orderedTick) { this.tickQueue.add(orderedTick); -@@ -72,60 +194,93 @@ public class LevelChunkTicks implements SerializableTickContainer, TickCon +@@ -87,50 +207,83 @@ public class LevelChunkTicks implements SerializableTickContainer, TickCon } @@ -415,7 +417,7 @@ index 9f6c2e5b5d9e8d714a47c770e255d06c0ef7c190..826ced345c97bd2eb04749f42744a086 - while(iterator.hasNext()) { - ScheduledTick scheduledTick = iterator.next(); - if (predicate.test(scheduledTick)) { -- iterator.remove(); +- iterator.remove(); this.dirty = true; // Paper - add dirty flag - this.ticksPerPosition.remove(scheduledTick); + for (ObjectIterator> tickQueueIterator = this.tickQueuesByTimeAndPriority.values().iterator(); tickQueueIterator.hasNext(); ) { + OrderedTickQueue nextTickQueue = tickQueueIterator.next(); @@ -464,6 +466,7 @@ index 9f6c2e5b5d9e8d714a47c770e255d06c0ef7c190..826ced345c97bd2eb04749f42744a086 + */ @Override public ListTag save(long l, Function function) { +- this.lastSaved = l; // Paper - add dirty system to level ticks - ListTag listTag = new ListTag(); + ListTag nbtList = new ListTag(); if (this.pendingTicks != null) { @@ -492,6 +495,10 @@ index 9f6c2e5b5d9e8d714a47c770e255d06c0ef7c190..826ced345c97bd2eb04749f42744a086 + */ public void unpack(long time) { if (this.pendingTicks != null) { + // Paper start - add dirty system to level chunk ticks +@@ -139,14 +292,13 @@ public class LevelChunkTicks implements SerializableTickContainer, TickCon + } + // Paper end - add dirty system to level chunk ticks int i = -this.pendingTicks.size(); - - for(SavedTick savedTick : this.pendingTicks) { diff --git a/patches/server/0084-Save-Json-list-asynchronously.patch b/patches/server/0082-Save-Json-list-asynchronously.patch similarity index 89% rename from patches/server/0084-Save-Json-list-asynchronously.patch rename to patches/server/0082-Save-Json-list-asynchronously.patch index 8ba60eeb..8cd74615 100644 --- a/patches/server/0084-Save-Json-list-asynchronously.patch +++ b/patches/server/0082-Save-Json-list-asynchronously.patch @@ -8,7 +8,7 @@ Original license: GPLv3 Original project: https://github.com/Akarin-project/Akarin diff --git a/src/main/java/net/minecraft/server/players/StoredUserList.java b/src/main/java/net/minecraft/server/players/StoredUserList.java -index 109e08e098a6c1ca1ba3dc2a9a293eaf9d5d7cb7..ebefa64eb343f2185c11de56a1a364fc3a367b14 100644 +index 109e08e098a6c1ca1ba3dc2a9a293eaf9d5d7cb7..26c35cc4f40af6cd1465ab2da89624e160a2d096 100644 --- a/src/main/java/net/minecraft/server/players/StoredUserList.java +++ b/src/main/java/net/minecraft/server/players/StoredUserList.java @@ -151,6 +151,7 @@ public abstract class StoredUserList> { @@ -35,7 +35,7 @@ index 109e08e098a6c1ca1ba3dc2a9a293eaf9d5d7cb7..ebefa64eb343f2185c11de56a1a364fc + StoredUserList.LOGGER.warn("Failed to async save " + this.file, e); // Akarin - Save json list async + } + }; // Akarin - Save json list async -+ net.minecraft.server.MCUtil.scheduleAsyncTask(runnable); // Akarin - Save json list async ++ io.papermc.paper.util.MCUtil.scheduleAsyncTask(runnable); // Akarin - Save json list async } diff --git a/patches/server/0085-Swaps-the-predicate-order-of-collision.patch b/patches/server/0083-Swaps-the-predicate-order-of-collision.patch similarity index 88% rename from patches/server/0085-Swaps-the-predicate-order-of-collision.patch rename to patches/server/0083-Swaps-the-predicate-order-of-collision.patch index 81c45a05..66b33f88 100644 --- a/patches/server/0085-Swaps-the-predicate-order-of-collision.patch +++ b/patches/server/0083-Swaps-the-predicate-order-of-collision.patch @@ -8,10 +8,10 @@ Original license: GPLv3 Original project: https://github.com/Akarin-project/Akarin diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index b19d4b2fec798c13601b5e46f8e77ed95917c2f0..9f2d0ec15afb8192ea06bfdd473ffca42e887072 100644 +index 32362fcd303fb1ed80a2f98d87704dfec275ef7e..a6d3a99bc70959726334b97611d3829e3faec32a 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -1997,8 +1997,9 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { +@@ -1998,8 +1998,9 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { public void playerTouch(Player player) {} public void push(Entity entity) { diff --git a/patches/server/0086-Fix-head-rotation-packet-spam.patch b/patches/server/0084-Fix-head-rotation-packet-spam.patch similarity index 89% rename from patches/server/0086-Fix-head-rotation-packet-spam.patch rename to patches/server/0084-Fix-head-rotation-packet-spam.patch index 95738f43..0dd30894 100644 --- a/patches/server/0086-Fix-head-rotation-packet-spam.patch +++ b/patches/server/0084-Fix-head-rotation-packet-spam.patch @@ -7,10 +7,10 @@ Original license: GPLv3 Original project: https://github.com/Electroid/SportPaper diff --git a/src/main/java/net/minecraft/server/level/ServerEntity.java b/src/main/java/net/minecraft/server/level/ServerEntity.java -index bf314a8ea0145a82c5ff4fdff23444b8978845fe..3a0ff721e01e5bb2b2d05459019f8bba5f5d0737 100644 +index 3fe68cdd9f53f3d000bd777dec5d485e299ddd78..5a26a683fa5c896584f15effd97225775dc8d8b8 100644 --- a/src/main/java/net/minecraft/server/level/ServerEntity.java +++ b/src/main/java/net/minecraft/server/level/ServerEntity.java -@@ -342,8 +342,10 @@ public class ServerEntity { +@@ -343,8 +343,10 @@ public class ServerEntity { } // CraftBukkit start - Fix for nonsensical head yaw diff --git a/patches/server/0087-Cache-block-break-animation-packet.patch b/patches/server/0085-Cache-block-break-animation-packet.patch similarity index 86% rename from patches/server/0087-Cache-block-break-animation-packet.patch rename to patches/server/0085-Cache-block-break-animation-packet.patch index f5181c93..0b5cab50 100644 --- a/patches/server/0087-Cache-block-break-animation-packet.patch +++ b/patches/server/0085-Cache-block-break-animation-packet.patch @@ -7,10 +7,10 @@ Original license: GPLv3 Original project: https://github.com/Electroid/SportPaper diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index f4280eb9f77568e4f3af6f264fc60901e667a936..42166dbec3154b9ebf26d9eda1752f80a9350764 100644 +index e91028d409fe3c92b368f62fecf15015ff54c9b8..8053be51c7b04a3ce3fe6ec364f51c9f405fa024 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java -@@ -1565,6 +1565,7 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -1567,6 +1567,7 @@ public class ServerLevel extends Level implements WorldGenLevel { if (entity instanceof Player) entityhuman = (Player) entity; // CraftBukkit end @@ -18,7 +18,7 @@ index f4280eb9f77568e4f3af6f264fc60901e667a936..42166dbec3154b9ebf26d9eda1752f80 while (iterator.hasNext()) { ServerPlayer entityplayer = (ServerPlayer) iterator.next(); -@@ -1580,7 +1581,10 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -1582,7 +1583,10 @@ public class ServerLevel extends Level implements WorldGenLevel { // CraftBukkit end if (d0 * d0 + d1 * d1 + d2 * d2 < 1024.0D) { diff --git a/patches/server/0088-Use-more-fastutil-data-structures.patch b/patches/server/0086-Use-more-fastutil-data-structures.patch similarity index 94% rename from patches/server/0088-Use-more-fastutil-data-structures.patch rename to patches/server/0086-Use-more-fastutil-data-structures.patch index 3eee8c93..4b3b5664 100644 --- a/patches/server/0088-Use-more-fastutil-data-structures.patch +++ b/patches/server/0086-Use-more-fastutil-data-structures.patch @@ -9,7 +9,7 @@ Original project: https://github.com/nopjmp/Dionysus Copyright 2021 Kayla Thompson diff --git a/src/main/java/net/minecraft/server/network/ServerHandshakePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerHandshakePacketListenerImpl.java -index 08b21f5a7a07f44f8044f56991fb6723cd8f3eea..ac254e4fe3973a8cb3321e96c651847e387d9f0e 100644 +index e7ff7ad3bf4dd17fdd34202ec3aef8e9512bc36d..71c674630087e8a7f76e6b425ea6991d15f2db40 100644 --- a/src/main/java/net/minecraft/server/network/ServerHandshakePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerHandshakePacketListenerImpl.java @@ -12,8 +12,14 @@ import net.minecraft.server.MinecraftServer; @@ -37,7 +37,7 @@ index 08b21f5a7a07f44f8044f56991fb6723cd8f3eea..ac254e4fe3973a8cb3321e96c651847e private static int throttleCounter = 0; // CraftBukkit end private static final Component IGNORE_STATUS_REASON = Component.literal("Ignoring status request"); -@@ -49,7 +55,7 @@ public class ServerHandshakePacketListenerImpl implements ServerHandshakePacketL +@@ -50,7 +56,7 @@ public class ServerHandshakePacketListenerImpl implements ServerHandshakePacketL InetAddress address = ((java.net.InetSocketAddress) this.connection.getRemoteAddress()).getAddress(); synchronized (ServerHandshakePacketListenerImpl.throttleTracker) { @@ -46,7 +46,7 @@ index 08b21f5a7a07f44f8044f56991fb6723cd8f3eea..ac254e4fe3973a8cb3321e96c651847e ServerHandshakePacketListenerImpl.throttleTracker.put(address, currentTime); Component chatmessage = io.papermc.paper.adventure.PaperAdventure.asVanilla(io.papermc.paper.configuration.GlobalConfiguration.get().messages.kick.connectionThrottle); // Paper - Configurable connection throttle kick message this.connection.send(new ClientboundLoginDisconnectPacket(chatmessage)); -@@ -63,13 +69,7 @@ public class ServerHandshakePacketListenerImpl implements ServerHandshakePacketL +@@ -64,13 +70,7 @@ public class ServerHandshakePacketListenerImpl implements ServerHandshakePacketL ServerHandshakePacketListenerImpl.throttleCounter = 0; // Cleanup stale entries diff --git a/patches/server/0089-Optimize-Math.round-and-Math.hypot-functions.patch b/patches/server/0087-Optimize-Math.round-and-Math.hypot-functions.patch similarity index 94% rename from patches/server/0089-Optimize-Math.round-and-Math.hypot-functions.patch rename to patches/server/0087-Optimize-Math.round-and-Math.hypot-functions.patch index 46302b2e..d6ab28dd 100644 --- a/patches/server/0089-Optimize-Math.round-and-Math.hypot-functions.patch +++ b/patches/server/0087-Optimize-Math.round-and-Math.hypot-functions.patch @@ -100,24 +100,23 @@ index c3e54da4ab6440811aab2f9dd1e218802ac13285..db1319c51a5410ee106d023fce759f1e } } diff --git a/src/main/java/dev/etil/mirai/MiraiConfig.java b/src/main/java/dev/etil/mirai/MiraiConfig.java -index b9ab67acf30d20745111b9fe5c6ccf44dca3e006..3719d421ea6a959a6bae512cf9860085c0679c27 100644 +index c498f72b394b4b0041a438eed7caa228097411c8..b29efeef8fbdd395604a7c464ee60e2a112fb12f 100644 --- a/src/main/java/dev/etil/mirai/MiraiConfig.java +++ b/src/main/java/dev/etil/mirai/MiraiConfig.java -@@ -228,4 +228,13 @@ public class MiraiConfig { - "to check when entity delta movement is null."); +@@ -227,4 +227,13 @@ public class MiraiConfig { + "Whether or not server should use a faster method", + "to check when entity delta movement is null."); } - ++ + public static boolean optimizedRound; + public static boolean optimizedHypot; + private static void fastMath() { + optimizedRound = getBoolean("optimize-math-round", true, -+ "Whether or not Math.round should be replaced by a faster version."); ++ "Whether or not Math.round should be replaced by a faster version."); + optimizedHypot = getBoolean("optimize-math-hypot", true, -+ "Whether or not Math.hypot should be replaced by a faster version."); ++ "Whether or not Math.hypot should be replaced by a faster version."); + } -+ } -\ No newline at end of file diff --git a/src/main/java/gg/pufferfish/pufferfish/flare/collectors/TPSCollector.java b/src/main/java/gg/pufferfish/pufferfish/flare/collectors/TPSCollector.java index 40447d00aefb5ffedb8a2ee87155a04088f0649f..633a6e313174244cf13ed89b53893ea5900e2828 100644 --- a/src/main/java/gg/pufferfish/pufferfish/flare/collectors/TPSCollector.java @@ -133,7 +132,7 @@ index 40447d00aefb5ffedb8a2ee87155a04088f0649f..633a6e313174244cf13ed89b53893ea5 } } diff --git a/src/main/java/io/papermc/paper/chunk/PlayerChunkLoader.java b/src/main/java/io/papermc/paper/chunk/PlayerChunkLoader.java -index dd501e83d991e45598509134fab05bafc1904953..5ecdbeb90e9715fc89ff25e9b3c33a2e8d98ff93 100644 +index 0b060183429f4c72ec767075538477b4302bbf0d..75e7d181a8dff7247c6db8448cbf5f22772eab4b 100644 --- a/src/main/java/io/papermc/paper/chunk/PlayerChunkLoader.java +++ b/src/main/java/io/papermc/paper/chunk/PlayerChunkLoader.java @@ -387,11 +387,11 @@ public final class PlayerChunkLoader { @@ -151,7 +150,7 @@ index dd501e83d991e45598509134fab05bafc1904953..5ecdbeb90e9715fc89ff25e9b3c33a2e public void onChunkPlayerTickReady(final int chunkX, final int chunkZ) { diff --git a/src/main/java/io/papermc/paper/command/subcommands/FixLightCommand.java b/src/main/java/io/papermc/paper/command/subcommands/FixLightCommand.java -index 450bd95218852174cfbc88d4517e17daee5ffd5f..317e952655db5a4dcb2e6ec6573510f75bba9255 100644 +index 7784d72ddd6db00c674e22759c00c430222c4b85..0f180d11774f6dec2667b3a3f6a63d1127bac869 100644 --- a/src/main/java/io/papermc/paper/command/subcommands/FixLightCommand.java +++ b/src/main/java/io/papermc/paper/command/subcommands/FixLightCommand.java @@ -95,12 +95,12 @@ public final class FixLightCommand implements PaperSubcommand { @@ -183,7 +182,7 @@ index e3e80db89c18588322ffdaa0f9fd85e398cb1471..d947011b80ee14e7aaf74af3d9081fc7 throw ERROR_INVALID_TICK_COUNT.create(j); } else { diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 6cdced357fdcd5ea4ce0c63d29e39573a5f40f65..3c528e612e9ed17e8c58bbef6c26471cc3411a7a 100644 +index 8f09ebf88bb26c74182893c86ad95ccc8580a455..15f602bf646d7d08215cce5cd9c16a2886e1a77a 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -2767,7 +2767,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop 0.0F && f2 < 3.4028235E37F) { @@ -233,7 +232,7 @@ index 24484d985929c7860aa08dbfca6df113086d2ed0..2c4cd831414f73e6eba51e8b49d97cdb } } -@@ -2050,9 +2050,9 @@ public abstract class LivingEntity extends Entity { +@@ -2065,9 +2065,9 @@ public abstract class LivingEntity extends Entity { if (f3 > 0.0F && f3 < 3.4028235E37F) { if (this instanceof ServerPlayer) { @@ -245,7 +244,7 @@ index 24484d985929c7860aa08dbfca6df113086d2ed0..2c4cd831414f73e6eba51e8b49d97cdb } } } -@@ -2164,9 +2164,9 @@ public abstract class LivingEntity extends Entity { +@@ -2179,9 +2179,9 @@ public abstract class LivingEntity extends Entity { float f3 = (float) -event.getDamage(DamageModifier.RESISTANCE); if (f3 > 0.0F && f3 < 3.4028235E37F) { if (this instanceof ServerPlayer) { @@ -257,7 +256,7 @@ index 24484d985929c7860aa08dbfca6df113086d2ed0..2c4cd831414f73e6eba51e8b49d97cdb } } } -@@ -2198,10 +2198,10 @@ public abstract class LivingEntity extends Entity { +@@ -2213,10 +2213,10 @@ public abstract class LivingEntity extends Entity { float f2 = absorptionModifier; if (f2 > 0.0F && f2 < 3.4028235E37F && this instanceof net.minecraft.world.entity.player.Player) { @@ -270,7 +269,7 @@ index 24484d985929c7860aa08dbfca6df113086d2ed0..2c4cd831414f73e6eba51e8b49d97cdb } if (f > 0 || !human) { -@@ -2209,7 +2209,7 @@ public abstract class LivingEntity extends Entity { +@@ -2224,7 +2224,7 @@ public abstract class LivingEntity extends Entity { // 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) { @@ -279,7 +278,7 @@ index 24484d985929c7860aa08dbfca6df113086d2ed0..2c4cd831414f73e6eba51e8b49d97cdb } } // CraftBukkit end -@@ -2231,7 +2231,7 @@ public abstract class LivingEntity extends Entity { +@@ -2248,7 +2248,7 @@ public abstract class LivingEntity extends Entity { CriteriaTriggers.ENTITY_HURT_PLAYER.trigger((ServerPlayer) this, damagesource, f, originalDamage, true); f2 = (float) -event.getDamage(DamageModifier.BLOCKING); if (f2 > 0.0F && f2 < 3.4028235E37F) { @@ -288,7 +287,7 @@ index 24484d985929c7860aa08dbfca6df113086d2ed0..2c4cd831414f73e6eba51e8b49d97cdb } } -@@ -3035,13 +3035,13 @@ public abstract class LivingEntity extends Entity { +@@ -3052,13 +3052,13 @@ public abstract class LivingEntity extends Entity { this.level.getProfiler().push("rangeChecks"); // Paper start - stop large pitch and yaw changes from crashing the server @@ -307,7 +306,7 @@ index 24484d985929c7860aa08dbfca6df113086d2ed0..2c4cd831414f73e6eba51e8b49d97cdb this.level.getProfiler().pop(); 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 54e241534f0a3c00044c1ce33e7dc3a8fd020ab7..18c4f2eeb6bb427c1314608fc6a81e4642d92888 100644 +index 92464a0a470b97636b448c38d5b611e8b821dd71..2d1497480a5d535798d70ece277a7252a3d5dc79 100644 --- a/src/main/java/net/minecraft/world/entity/player/Player.java +++ b/src/main/java/net/minecraft/world/entity/player/Player.java @@ -1087,7 +1087,7 @@ public abstract class Player extends LivingEntity { @@ -328,7 +327,7 @@ index 54e241534f0a3c00044c1ce33e7dc3a8fd020ab7..18c4f2eeb6bb427c1314608fc6a81e46 } } -@@ -1423,7 +1423,7 @@ public abstract class Player extends LivingEntity { +@@ -1432,7 +1432,7 @@ public abstract class Player extends LivingEntity { if (target instanceof LivingEntity) { float f5 = f3 - ((LivingEntity) target).getHealth(); @@ -337,7 +336,7 @@ index 54e241534f0a3c00044c1ce33e7dc3a8fd020ab7..18c4f2eeb6bb427c1314608fc6a81e46 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); -@@ -1696,29 +1696,29 @@ public abstract class Player extends LivingEntity { +@@ -1705,29 +1705,29 @@ public abstract class Player extends LivingEntity { int i; if (this.isSwimming()) { @@ -372,7 +371,7 @@ index 54e241534f0a3c00044c1ce33e7dc3a8fd020ab7..18c4f2eeb6bb427c1314608fc6a81e46 if (i > 0) { if (this.isSprinting()) { this.awardStat(Stats.SPRINT_ONE_CM, i); -@@ -1732,10 +1732,10 @@ public abstract class Player extends LivingEntity { +@@ -1741,10 +1741,10 @@ public abstract class Player extends LivingEntity { } } } else if (this.isFallFlying()) { @@ -385,16 +384,16 @@ index 54e241534f0a3c00044c1ce33e7dc3a8fd020ab7..18c4f2eeb6bb427c1314608fc6a81e46 if (i > 25) { this.awardStat(Stats.FLY_ONE_CM, i); } -@@ -1746,7 +1746,7 @@ public abstract class Player extends LivingEntity { +@@ -1755,7 +1755,7 @@ public abstract class Player extends LivingEntity { - public void checkRidingStatistics(double dx, double dy, double dz) { + private void checkRidingStatistics(double dx, double dy, double dz) { if (this.isPassenger()) { - int i = Math.round((float) Math.sqrt(dx * dx + dy * dy + dz * dz) * 100.0F); + int i = carpetfixes.helpers.FastMath.round((float) Math.sqrt(dx * dx + dy * dy + dz * dz) * 100.0F); // Mirai if (i > 0) { Entity entity = this.getVehicle(); -@@ -1773,7 +1773,7 @@ public abstract class Player extends LivingEntity { +@@ -1782,7 +1782,7 @@ public abstract class Player extends LivingEntity { return false; } else { if (fallDistance >= 2.0F) { @@ -443,7 +442,7 @@ index 16504b8be08064e61b013fa943f692816612cbd0..38f6759501dcc2a0adb9608a9f639c24 i = Mth.clamp(i, (int) 0, (int) 15); diff --git a/src/main/java/net/minecraft/world/level/chunk/ChunkGenerator.java b/src/main/java/net/minecraft/world/level/chunk/ChunkGenerator.java -index 52264a583e79cc6adb9967aebac7f6b3ac129017..f642b7c58b8e9189d9734bf6a699848f9610b66d 100644 +index 9579889e4c7dedefc4f901ccac6157c425740481..7904e80ff9476221ffac153494c1ecbd9b9cd9d9 100644 --- a/src/main/java/net/minecraft/world/level/chunk/ChunkGenerator.java +++ b/src/main/java/net/minecraft/world/level/chunk/ChunkGenerator.java @@ -254,8 +254,8 @@ public abstract class ChunkGenerator { diff --git a/patches/server/0090-Faster-Sheep.getOffspringColor.patch b/patches/server/0088-Faster-Sheep.getOffspringColor.patch similarity index 100% rename from patches/server/0090-Faster-Sheep.getOffspringColor.patch rename to patches/server/0088-Faster-Sheep.getOffspringColor.patch diff --git a/patches/server/0091-PaperPR-Optimize-VarInts.patch b/patches/server/0089-PaperPR-Optimize-VarInts.patch similarity index 100% rename from patches/server/0091-PaperPR-Optimize-VarInts.patch rename to patches/server/0089-PaperPR-Optimize-VarInts.patch diff --git a/patches/server/0092-reduce-work-done-by-game-event-system.patch b/patches/server/0090-reduce-work-done-by-game-event-system.patch similarity index 97% rename from patches/server/0092-reduce-work-done-by-game-event-system.patch rename to patches/server/0090-reduce-work-done-by-game-event-system.patch index 4264620d..0754f810 100644 --- a/patches/server/0092-reduce-work-done-by-game-event-system.patch +++ b/patches/server/0090-reduce-work-done-by-game-event-system.patch @@ -11,10 +11,10 @@ Original project: https://github.com/Bloom-host/Petal 2. euclideangameeventdispatcher is not used concurrently so we ban that usage for improved performance with allays diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 42166dbec3154b9ebf26d9eda1752f80a9350764..ac96f90d2f89fa449907108700db327ca5c798d5 100644 +index 8053be51c7b04a3ce3fe6ec364f51c9f405fa024..901e226d30ff15dd72876a1ae135a53f7fbd9fc9 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java -@@ -1643,6 +1643,7 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -1645,6 +1645,7 @@ public class ServerLevel extends Level implements WorldGenLevel { if (chunk != null) { for (int j2 = k; j2 <= j1; ++j2) { flag |= chunk.getEventDispatcher(j2).walkListeners(event, emitterPos, emitter, (gameeventlistener, vec3d1) -> { @@ -41,7 +41,7 @@ index 22c309343299e60ed8028229b7f134109001ff35..d5947d29295ddc93ba8ac1c0fc61f7ba 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 f5adadb2e29ed8b52a502489ba06df4551cd06dc..5153dc3dcec63dc8063c7dd17d774d129dc0b67c 100644 +index 39684720c5ee2bb36b8d12cc10e05b7ab8d06172..30ff49c8b5a3f14d2b83006180552f70c0c9717d 100644 --- a/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java +++ b/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java @@ -84,7 +84,18 @@ public class LevelChunk extends ChunkAccess { diff --git a/patches/server/0093-reduce-sensor-work.patch b/patches/server/0091-reduce-sensor-work.patch similarity index 90% rename from patches/server/0093-reduce-sensor-work.patch rename to patches/server/0091-reduce-sensor-work.patch index 584e667d..d2da3d57 100644 --- a/patches/server/0093-reduce-sensor-work.patch +++ b/patches/server/0091-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 2c4cd831414f73e6eba51e8b49d97cdb89ec6fbb..bfa50273b6726e6f228ee235b1abf4d9d5145703 100644 +index 750bebe575c2a57b62fac6a0a14e41ee0541faa6..6cca6b3470c8d6c65ad5c2765c873a72251d4522 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java -@@ -998,12 +998,14 @@ public abstract class LivingEntity extends Entity { +@@ -1013,12 +1013,14 @@ public abstract class LivingEntity extends Entity { } if (entity != null) { @@ -31,7 +31,7 @@ index 2c4cd831414f73e6eba51e8b49d97cdb89ec6fbb..bfa50273b6726e6f228ee235b1abf4d9 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 63911fd0d2a5f194ed4632f209555b3146ed7b79..fe6ea0b8f40172e59ad0f84c440ceeddd9b2c001 100644 +index 21334240fb5cf9c6cc0df5ad4af99e05a44bf128..5338616937d95b2352d9d9540bca47d0d874f90e 100644 --- a/src/main/java/net/minecraft/world/entity/Mob.java +++ b/src/main/java/net/minecraft/world/entity/Mob.java @@ -855,10 +855,10 @@ public abstract class Mob extends LivingEntity { diff --git a/patches/server/0094-Configurable-chat-message-signatures.patch b/patches/server/0092-Configurable-chat-message-signatures.patch similarity index 81% rename from patches/server/0094-Configurable-chat-message-signatures.patch rename to patches/server/0092-Configurable-chat-message-signatures.patch index 0761011e..959a157e 100644 --- a/patches/server/0094-Configurable-chat-message-signatures.patch +++ b/patches/server/0092-Configurable-chat-message-signatures.patch @@ -5,23 +5,22 @@ Subject: [PATCH] Configurable chat message signatures diff --git a/src/main/java/dev/etil/mirai/MiraiConfig.java b/src/main/java/dev/etil/mirai/MiraiConfig.java -index 3719d421ea6a959a6bae512cf9860085c0679c27..40755fa049ab889f31f626cd04eca4799197de13 100644 +index b29efeef8fbdd395604a7c464ee60e2a112fb12f..213d394a4fcfaa3e384edd9fd7c098e05b44529f 100644 --- a/src/main/java/dev/etil/mirai/MiraiConfig.java +++ b/src/main/java/dev/etil/mirai/MiraiConfig.java -@@ -237,4 +237,12 @@ public class MiraiConfig { - "Whether or not Math.hypot should be replaced by a faster version."); +@@ -236,4 +236,12 @@ public class MiraiConfig { + optimizedHypot = getBoolean("optimize-math-hypot", true, + "Whether or not Math.hypot should be replaced by a faster version."); } - ++ + public static boolean chatMessageSignatures; + private static void chatreport() { + chatMessageSignatures = getBoolean("disable-chat-reports", false, -+ "Whether or not players should be able to report chat messages.", -+ "It also disables the popup when joining a server without", -+ "'secure chat', such as offline-mode servers."); ++ "Whether or not players should be able to report chat messages.", ++ "It also disables the popup when joining a server without", ++ "'secure chat', such as offline-mode servers."); + } -+ } -\ No newline at end of file diff --git a/src/main/java/net/minecraft/network/protocol/status/ServerStatus.java b/src/main/java/net/minecraft/network/protocol/status/ServerStatus.java index 11183b4a39b9897e1b1067eb2a3556d2b1d90f52..df109dd1b2d252f82096d02e57596fdd4076771f 100644 --- a/src/main/java/net/minecraft/network/protocol/status/ServerStatus.java @@ -35,7 +34,7 @@ index 11183b4a39b9897e1b1067eb2a3556d2b1d90f52..df109dd1b2d252f82096d02e57596fdd } diff --git a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java -index 54a53a65130919b68f9cd8fd2d580fd8b9d2dfb3..7d7d88d2f920446a98c63229a351dc0dc07d454b 100644 +index f8d4154388f7ddae4e65835e24edf5fa6a9dce2b..38994fdf82f8bffc9caecc083e790caf11236322 100644 --- a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java +++ b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java @@ -646,6 +646,7 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface @@ -47,7 +46,7 @@ index 54a53a65130919b68f9cd8fd2d580fd8b9d2dfb3..7d7d88d2f920446a98c63229a351dc0d } diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index ed98aab3df24bbefc1adc0e21ec7f1deab8d8aa1..e4abcd2f58dabe919a41162470386a6322f91f05 100644 +index 214650909f83f024ebc5ddb0689682d5a81719db..c6235099e79881f8aae1d6243decf18cf19e12ff 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -2165,10 +2165,34 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic @@ -60,13 +59,13 @@ index ed98aab3df24bbefc1adc0e21ec7f1deab8d8aa1..e4abcd2f58dabe919a41162470386a63 + return; + } else if (packet instanceof net.minecraft.network.protocol.game.ClientboundPlayerChatPacket chat) { + packet = new ClientboundSystemChatPacket(chat.chatType().resolve(this.player.level.registryAccess()) -+ .get().decorate(chat.message().serverContent()), false); ++ .get().decorate(chat.message().serverContent()), false); + + + this.send(packet); + return; -+ } -+ } ++ } ++ } + // Mirai end this.send(packet, (PacketSendListener) null); } @@ -86,7 +85,7 @@ index ed98aab3df24bbefc1adc0e21ec7f1deab8d8aa1..e4abcd2f58dabe919a41162470386a63 if (packet == null || this.processedDisconnect) { // Spigot return; diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index e5d8d85bfa84c52208dbf4efa1579286d2b22e75..1b0e26afd4cbc8daec655513fe78933abb4a2151 100644 +index 367e08286dd9b668d8ef5855b05998082e4011b3..7b1ba24e2c541d1271335c95e440102bbd46e1fb 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java @@ -1489,6 +1489,7 @@ public abstract class PlayerList { @@ -98,10 +97,10 @@ index e5d8d85bfa84c52208dbf4efa1579286d2b22e75..1b0e26afd4cbc8daec655513fe78933a } 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 18c4f2eeb6bb427c1314608fc6a81e4642d92888..d9ea767bac44e47d5e580d2264cbdb4c8edb4fff 100644 +index 2d1497480a5d535798d70ece277a7252a3d5dc79..ae205f436251c18573d45927a1d39c549e1f0bf4 100644 --- a/src/main/java/net/minecraft/world/entity/player/Player.java +++ b/src/main/java/net/minecraft/world/entity/player/Player.java -@@ -1516,6 +1516,7 @@ public abstract class Player extends LivingEntity { +@@ -1525,6 +1525,7 @@ public abstract class Player extends LivingEntity { @Nullable public ProfilePublicKey getProfilePublicKey() { diff --git a/patches/server/0095-PaperPR-Fix-exact-choice-recipe-book-clicks.patch b/patches/server/0093-PaperPR-Fix-exact-choice-recipe-book-clicks.patch similarity index 98% rename from patches/server/0095-PaperPR-Fix-exact-choice-recipe-book-clicks.patch rename to patches/server/0093-PaperPR-Fix-exact-choice-recipe-book-clicks.patch index 020cc113..7d1df2cb 100644 --- a/patches/server/0095-PaperPR-Fix-exact-choice-recipe-book-clicks.patch +++ b/patches/server/0093-PaperPR-Fix-exact-choice-recipe-book-clicks.patch @@ -86,7 +86,7 @@ index efee1a8e0e3ad566cd550e51d3e559c5a495889a..f75ff62be1630e3a86f917e18432769e } diff --git a/src/main/java/net/minecraft/world/item/ItemStack.java b/src/main/java/net/minecraft/world/item/ItemStack.java -index 4fea1c9873b4dd9c9f21722adbb02200487caf3c..cd47b6882509888f7d34e95b4687ca7a9eab6caf 100644 +index ffcaa1c5c78966bf5790dc7ea2382cccac88b40b..6988e18411241047ded06ade916acee0fdf72109 100644 --- a/src/main/java/net/minecraft/world/item/ItemStack.java +++ b/src/main/java/net/minecraft/world/item/ItemStack.java @@ -105,6 +105,7 @@ import org.bukkit.event.world.StructureGrowEvent; diff --git a/patches/server/0096-Fix-MC-238526.patch b/patches/server/0094-Fix-MC-238526.patch similarity index 100% rename from patches/server/0096-Fix-MC-238526.patch rename to patches/server/0094-Fix-MC-238526.patch diff --git a/patches/server/0097-Lobotomize-stuck-villagers.patch b/patches/server/0095-Lobotomize-stuck-villagers.patch similarity index 86% rename from patches/server/0097-Lobotomize-stuck-villagers.patch rename to patches/server/0095-Lobotomize-stuck-villagers.patch index 8446ecb8..b4cafca1 100644 --- a/patches/server/0097-Lobotomize-stuck-villagers.patch +++ b/patches/server/0095-Lobotomize-stuck-villagers.patch @@ -7,24 +7,23 @@ Original license: MIT Original project: https://github.com/PurpurMC/Purpur diff --git a/src/main/java/dev/etil/mirai/MiraiConfig.java b/src/main/java/dev/etil/mirai/MiraiConfig.java -index 40755fa049ab889f31f626cd04eca4799197de13..3cd738e0f8bd1fdb2ec5203f8f73daad1e230205 100644 +index 213d394a4fcfaa3e384edd9fd7c098e05b44529f..523375618efaeca8f7cb51216a9cc4b48dc6b0d7 100644 --- a/src/main/java/dev/etil/mirai/MiraiConfig.java +++ b/src/main/java/dev/etil/mirai/MiraiConfig.java -@@ -245,4 +245,11 @@ public class MiraiConfig { - "'secure chat', such as offline-mode servers."); +@@ -244,4 +244,11 @@ public class MiraiConfig { + "It also disables the popup when joining a server without", + "'secure chat', such as offline-mode servers."); } - ++ + public static boolean villagerLobotomizeEnabled; + private static void lobotomizing() { + villagerLobotomizeEnabled = getBoolean("villager-lobotomize", false, -+ "Whether or not villagers should be lobotomized when", -+ "standing on a 1x1 block while being stuck."); ++ "Whether or not villagers should be lobotomized when", ++ "standing on a 1x1 block while being stuck."); + } -+ } -\ No newline at end of file diff --git a/src/main/java/net/minecraft/world/entity/npc/Villager.java b/src/main/java/net/minecraft/world/entity/npc/Villager.java -index 93077e8c6b5a35adc6febb749d1d08be172402f1..e9c36f92bec3a54653db1fd9327467a20b577765 100644 +index fa7cede4a0b59efde4949dba4a010aed5cd0a960..8b00e82a09e48103ec35af4320644b2ff25574f4 100644 --- a/src/main/java/net/minecraft/world/entity/npc/Villager.java +++ b/src/main/java/net/minecraft/world/entity/npc/Villager.java @@ -139,6 +139,8 @@ public class Villager extends AbstractVillager implements ReputationEventHandler @@ -64,7 +63,7 @@ index 93077e8c6b5a35adc6febb749d1d08be172402f1..e9c36f92bec3a54653db1fd9327467a2 this.level.getProfiler().pop(); if (this.assignProfessionWhenSpawned) { this.assignProfessionWhenSpawned = false; -@@ -1052,4 +1069,47 @@ public class Villager extends AbstractVillager implements ReputationEventHandler +@@ -1060,4 +1077,47 @@ public class Villager extends AbstractVillager implements ReputationEventHandler return optional.isPresent() ? worldTime - (Long) optional.get() < 24000L : false; } @@ -113,10 +112,10 @@ index 93077e8c6b5a35adc6febb749d1d08be172402f1..e9c36f92bec3a54653db1fd9327467a2 + // Purpur end } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftVillager.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftVillager.java -index f0b910df1ee471b4d72d97c6197ab14f2854976e..6ce32a52d621a0c2629568ea07e445f50160d97d 100644 +index 9220b1a7aa30ba59ac8dc6196859923b0675d8ec..3e820092c2b48c37b822a7afbb3f342340eed5c7 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftVillager.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftVillager.java -@@ -194,4 +194,11 @@ public class CraftVillager extends CraftAbstractVillager implements Villager { +@@ -222,4 +222,11 @@ public class CraftVillager extends CraftAbstractVillager implements Villager { getHandle().getGossips().getReputations().clear(); } // Paper end diff --git a/patches/server/0098-Fix-legacy-colors-in-console.patch b/patches/server/0096-Fix-legacy-colors-in-console.patch similarity index 90% rename from patches/server/0098-Fix-legacy-colors-in-console.patch rename to patches/server/0096-Fix-legacy-colors-in-console.patch index 6767218b..db26f9f0 100644 --- a/patches/server/0098-Fix-legacy-colors-in-console.patch +++ b/patches/server/0096-Fix-legacy-colors-in-console.patch @@ -7,7 +7,7 @@ Original license: MIT Original project: https://github.com/PurpurMC/Purpur diff --git a/src/main/java/io/papermc/paper/console/HexFormattingConverter.java b/src/main/java/io/papermc/paper/console/HexFormattingConverter.java -index b4d0b7ecd56ab952319946854168c1299cb0b1be..8054b8da82ca455d23b26a53cc568160b14e04ce 100644 +index b9922b07cb105618390187d98acdf89e728e1f5a..6a1eda942aa33fc0802066416f8bc64f5f15d011 100644 --- a/src/main/java/io/papermc/paper/console/HexFormattingConverter.java +++ b/src/main/java/io/papermc/paper/console/HexFormattingConverter.java @@ -38,6 +38,7 @@ public final class HexFormattingConverter extends LogEventPatternConverter { @@ -18,8 +18,8 @@ index b4d0b7ecd56ab952319946854168c1299cb0b1be..8054b8da82ca455d23b26a53cc568160 public static final LegacyComponentSerializer SERIALIZER = LegacyComponentSerializer.builder() .hexColors() .flattener(PaperAdventure.FLATTENER) -@@ -48,6 +49,8 @@ public final class HexFormattingConverter extends LogEventPatternConverter { - private static final String RGB_ANSI = "\u001B[38;2;%d;%d;%dm"; +@@ -49,6 +50,8 @@ public final class HexFormattingConverter extends LogEventPatternConverter { + private static final String RESET_RGB_ANSI = ANSI_RESET + RGB_ANSI; private static final Pattern NAMED_PATTERN = Pattern.compile(COLOR_CHAR + "[0-9a-fk-orA-FK-OR]"); private static final Pattern RGB_PATTERN = Pattern.compile(COLOR_CHAR + "#([0-9a-fA-F]){6}"); + private static final Pattern LEGACY_RGB_PATTERN = Pattern.compile(LEGACY_CHAR + "x((" + LEGACY_CHAR + "[0-9a-fA-F]){6})"); // Purpur @@ -27,7 +27,7 @@ index b4d0b7ecd56ab952319946854168c1299cb0b1be..8054b8da82ca455d23b26a53cc568160 private static final String[] RGB_ANSI_CODES = new String[]{ formatHexAnsi(NamedTextColor.BLACK), // Black §0 -@@ -133,7 +136,21 @@ public final class HexFormattingConverter extends LogEventPatternConverter { +@@ -134,7 +137,21 @@ public final class HexFormattingConverter extends LogEventPatternConverter { } private static String convertRGBColors(final String input) { @@ -50,7 +50,7 @@ index b4d0b7ecd56ab952319946854168c1299cb0b1be..8054b8da82ca455d23b26a53cc568160 final int hex = Integer.decode(result.group().substring(1)); return formatHexAnsi(hex); }); -@@ -151,10 +168,11 @@ public final class HexFormattingConverter extends LogEventPatternConverter { +@@ -152,10 +169,11 @@ public final class HexFormattingConverter extends LogEventPatternConverter { } private static String stripRGBColors(final String input) { diff --git a/patches/server/0099-Set-multiple-Team-settings-at-once.patch b/patches/server/0097-Set-multiple-Team-settings-at-once.patch similarity index 100% rename from patches/server/0099-Set-multiple-Team-settings-at-once.patch rename to patches/server/0097-Set-multiple-Team-settings-at-once.patch diff --git a/patches/server/0100-Smooth-Teleports.patch b/patches/server/0098-Smooth-Teleports.patch similarity index 92% rename from patches/server/0100-Smooth-Teleports.patch rename to patches/server/0098-Smooth-Teleports.patch index 7c458047..f5ac2206 100644 --- a/patches/server/0100-Smooth-Teleports.patch +++ b/patches/server/0098-Smooth-Teleports.patch @@ -9,7 +9,7 @@ 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 d1a6a21bfe93882e23a0bad742abd6fedcac29d0..bbe39f0fab243c763ee9c9a0629d17bdb167cd72 100644 +index ccac0539787d05b5e71abe98ab611e976ca56802..1b6f2f6f909dd862745c1e2f4bb6d9ce8db6eb74 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java @@ -266,6 +266,7 @@ public class ServerPlayer extends Player { @@ -21,7 +21,7 @@ index d1a6a21bfe93882e23a0bad742abd6fedcac29d0..bbe39f0fab243c763ee9c9a0629d17bd public ServerPlayer(MinecraftServer server, ServerLevel world, GameProfile profile, @Nullable ProfilePublicKey publicKey) { super(world, world.getSharedSpawnPos(), world.getSharedSpawnAngle(), profile, publicKey); diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index 1b0e26afd4cbc8daec655513fe78933abb4a2151..790b25582f4fe78a681c0bf8281892e7545af1d6 100644 +index 7b1ba24e2c541d1271335c95e440102bbd46e1fb..d92846ccf7666e93a969898b004685d829295b62 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java @@ -970,12 +970,12 @@ public abstract class PlayerList { @@ -40,10 +40,10 @@ index 1b0e26afd4cbc8daec655513fe78933abb4a2151..790b25582f4fe78a681c0bf8281892e7 // 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 cfbabdcade291b2fcdbe83206b060b8762f50f41..f81c16884f8e517ceccb832bdff8840f24d52982 100644 +index d26b213c775c73c3f269aa6ba28825756ee7d756..83bfc375dfa1fa8a4ac47cff498a394f5e00e12e 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -@@ -1212,6 +1212,15 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -1216,6 +1216,15 @@ public class CraftPlayer extends CraftHumanEntity implements Player { // Paper end } diff --git a/patches/server/0101-Unfreeze-MappedRegistry.patch b/patches/server/0099-Unfreeze-MappedRegistry.patch similarity index 100% rename from patches/server/0101-Unfreeze-MappedRegistry.patch rename to patches/server/0099-Unfreeze-MappedRegistry.patch diff --git a/patches/server/0102-Don-t-double-save-the-json-lists.patch b/patches/server/0100-Don-t-double-save-the-json-lists.patch similarity index 100% rename from patches/server/0102-Don-t-double-save-the-json-lists.patch rename to patches/server/0100-Don-t-double-save-the-json-lists.patch diff --git a/patches/server/0103-Don-t-wander-into-non-ticking-chunks.patch b/patches/server/0101-Don-t-wander-into-non-ticking-chunks.patch similarity index 100% rename from patches/server/0103-Don-t-wander-into-non-ticking-chunks.patch rename to patches/server/0101-Don-t-wander-into-non-ticking-chunks.patch diff --git a/patches/server/0104-Optimize-CraftServer.getWorld-UUID.patch b/patches/server/0102-Optimize-CraftServer.getWorld-UUID.patch similarity index 96% rename from patches/server/0104-Optimize-CraftServer.getWorld-UUID.patch rename to patches/server/0102-Optimize-CraftServer.getWorld-UUID.patch index 9a457b13..7dba09a6 100644 --- a/patches/server/0104-Optimize-CraftServer.getWorld-UUID.patch +++ b/patches/server/0102-Optimize-CraftServer.getWorld-UUID.patch @@ -7,7 +7,7 @@ Original license: GPLv3 Original project: https://github.com/MultiPaper/MultiPaper diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index d2478bda9e8395a8730a3416ce3133782ab9a8e9..cc9c5eecc4ef1d5dc4e814ad89a40a34f4d48a69 100644 +index 75dd4849f87689489cacdc90757f23a6ebe1cb12..f77c36ee502cc41b908e50368d0a55c198c3eefd 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java @@ -45,6 +45,8 @@ import java.util.logging.Level; diff --git a/patches/server/0105-Configurable-mobs-from-spawners-picking-up-loot.patch b/patches/server/0103-Configurable-mobs-from-spawners-picking-up-loot.patch similarity index 81% rename from patches/server/0105-Configurable-mobs-from-spawners-picking-up-loot.patch rename to patches/server/0103-Configurable-mobs-from-spawners-picking-up-loot.patch index 238974bc..af5c0784 100644 --- a/patches/server/0105-Configurable-mobs-from-spawners-picking-up-loot.patch +++ b/patches/server/0103-Configurable-mobs-from-spawners-picking-up-loot.patch @@ -5,26 +5,25 @@ Subject: [PATCH] Configurable mobs from spawners picking up loot diff --git a/src/main/java/dev/etil/mirai/MiraiConfig.java b/src/main/java/dev/etil/mirai/MiraiConfig.java -index 3cd738e0f8bd1fdb2ec5203f8f73daad1e230205..24e2c81fe0de5eb2e9a17554d81cfd14a36f90c4 100644 +index 523375618efaeca8f7cb51216a9cc4b48dc6b0d7..db7901672c113a85b3c7cfb32f5051ade4a9e492 100644 --- a/src/main/java/dev/etil/mirai/MiraiConfig.java +++ b/src/main/java/dev/etil/mirai/MiraiConfig.java -@@ -252,4 +252,15 @@ public class MiraiConfig { - "standing on a 1x1 block while being stuck."); +@@ -251,4 +251,15 @@ public class MiraiConfig { + "Whether or not villagers should be lobotomized when", + "standing on a 1x1 block while being stuck."); } - ++ + public static boolean skeletonPickupLoot; + public static boolean zombiePickupLoot; + private static void spawnersPickupLoot() { + skeletonPickupLoot = getBoolean("disable-spawners-pick-up-items.skeleton", false, -+ "Whether or not skeletons from spawners should be able to", -+ "pick up items on the ground."); ++ "Whether or not skeletons from spawners should be able to", ++ "pick up items on the ground."); + zombiePickupLoot = getBoolean("disable-spawners-pick-up-items.zombie", false, -+ "Whether or not zombies from spawners should be able to", -+ "pick up items on the ground."); ++ "Whether or not zombies from spawners should be able to", ++ "pick up items on the ground."); + } -+ } -\ No newline at end of file diff --git a/src/main/java/net/minecraft/world/entity/monster/AbstractSkeleton.java b/src/main/java/net/minecraft/world/entity/monster/AbstractSkeleton.java index b8abee145fc92faddef98da913eca7715b6bfc03..4f6d0ffb03a6490494327e9cc0cdf5f079075537 100644 --- a/src/main/java/net/minecraft/world/entity/monster/AbstractSkeleton.java @@ -45,10 +44,10 @@ index b8abee145fc92faddef98da913eca7715b6bfc03..4f6d0ffb03a6490494327e9cc0cdf5f0 LocalDate localdate = LocalDate.now(); int i = localdate.get(ChronoField.DAY_OF_MONTH); diff --git a/src/main/java/net/minecraft/world/entity/monster/Zombie.java b/src/main/java/net/minecraft/world/entity/monster/Zombie.java -index 97b3082dc020043fa38d9e5e4591102f97519ed3..7b74e2aade9a0b5fb41c48ee6affcb7a3d544ad8 100644 +index e0e16d3b4ba0afc3cfc66b93ecf5f889599f48dd..3093e55473696667056ea93b48f76f8e83a4c551 100644 --- a/src/main/java/net/minecraft/world/entity/monster/Zombie.java +++ b/src/main/java/net/minecraft/world/entity/monster/Zombie.java -@@ -514,7 +514,13 @@ public class Zombie extends Monster { +@@ -513,7 +513,13 @@ public class Zombie extends Monster { Object object = super.finalizeSpawn(world, difficulty, spawnReason, entityData, entityNbt); float f = difficulty.getSpecialMultiplier(); diff --git a/patches/server/0106-Async-Pathfinding.patch b/patches/server/0104-Async-Pathfinding.patch similarity index 99% rename from patches/server/0106-Async-Pathfinding.patch rename to patches/server/0104-Async-Pathfinding.patch index 60339b9d..15c6a448 100644 --- a/patches/server/0106-Async-Pathfinding.patch +++ b/patches/server/0104-Async-Pathfinding.patch @@ -8,27 +8,26 @@ This patch was ported downstream from the Petal fork. Makes most pathfinding-related work happen asynchronously diff --git a/src/main/java/dev/etil/mirai/MiraiConfig.java b/src/main/java/dev/etil/mirai/MiraiConfig.java -index 24e2c81fe0de5eb2e9a17554d81cfd14a36f90c4..8dffa2fadd615cfd59cc85630b4a1454c87e5aa9 100644 +index db7901672c113a85b3c7cfb32f5051ade4a9e492..5e667ac09cb3d8ec08f829704953926da50c650d 100644 --- a/src/main/java/dev/etil/mirai/MiraiConfig.java +++ b/src/main/java/dev/etil/mirai/MiraiConfig.java -@@ -263,4 +263,16 @@ public class MiraiConfig { - "pick up items on the ground."); +@@ -262,4 +262,16 @@ public class MiraiConfig { + "Whether or not zombies from spawners should be able to", + "pick up items on the ground."); } - ++ + public static boolean enableAsyncPathfinding; + public static boolean enableAsyncPathfindingInitialized; + private static void asyncPathfinding() { + boolean temp = getBoolean("enable-async-pathfinding", true, -+ "Whether or not async pathfinding should be enabled.", -+ "You may encounter issues with water interactions."); ++ "Whether or not async pathfinding should be enabled.", ++ "You may encounter issues with water interactions."); + if (!enableAsyncPathfindingInitialized) { + enableAsyncPathfindingInitialized = true; + enableAsyncPathfinding = temp; + } + } -+ } -\ No newline at end of file diff --git a/src/main/java/dev/etil/mirai/path/AsyncPath.java b/src/main/java/dev/etil/mirai/path/AsyncPath.java new file mode 100644 index 0000000000000000000000000000000000000000..2ecf19f9623a4c6c99a7b97e950387e8b9c7757a @@ -824,7 +823,7 @@ index f0248d839255763005ba333b0bfcf691407fb69b..dd627d720320b09ac909a19646f50435 @Override diff --git a/src/main/java/net/minecraft/world/entity/ai/navigation/PathNavigation.java b/src/main/java/net/minecraft/world/entity/ai/navigation/PathNavigation.java -index c1781c92ff59f0c9eb47cbbef01e3252c5e1a1bf..3803d5b79b4bb99d1a87c1af4d7e20ae4128a416 100644 +index 1d9d502e071324f50c8b7655790091c0c55263ba..6ae82fe9c7e0ba8755ded15508224ee02b32304d 100644 --- a/src/main/java/net/minecraft/world/entity/ai/navigation/PathNavigation.java +++ b/src/main/java/net/minecraft/world/entity/ai/navigation/PathNavigation.java @@ -150,6 +150,9 @@ public abstract class PathNavigation { diff --git a/patches/server/0107-Multithreaded-Tracker.patch b/patches/server/0105-Multithreaded-Tracker.patch similarity index 96% rename from patches/server/0107-Multithreaded-Tracker.patch rename to patches/server/0105-Multithreaded-Tracker.patch index e18e7acd..8ec981a5 100644 --- a/patches/server/0107-Multithreaded-Tracker.patch +++ b/patches/server/0105-Multithreaded-Tracker.patch @@ -13,27 +13,26 @@ Some things are too unsafe to run off the main thread so we don't attempt to do that. This multithreaded tracker remains accurate, non-breaking and fast. diff --git a/src/main/java/dev/etil/mirai/MiraiConfig.java b/src/main/java/dev/etil/mirai/MiraiConfig.java -index 8dffa2fadd615cfd59cc85630b4a1454c87e5aa9..4c8dd8b1a3355578f067d547ab1d0151314f7ddf 100644 +index 5e667ac09cb3d8ec08f829704953926da50c650d..a7b3a543251a34a733958c59956028fb1ed8fd38 100644 --- a/src/main/java/dev/etil/mirai/MiraiConfig.java +++ b/src/main/java/dev/etil/mirai/MiraiConfig.java -@@ -275,4 +275,16 @@ public class MiraiConfig { +@@ -274,4 +274,16 @@ public class MiraiConfig { + enableAsyncPathfinding = temp; } } - ++ + public static boolean enableAsyncEntityTracker; + public static boolean enableAsyncEntityTrackerInitialized; + private static void asyncEntityTracker() { + boolean temp = getBoolean("enable-async-entity-tracker", true, -+ "Whether or not async entity tracking should be enabled.", -+ "You may encounter issues with NPCs."); ++ "Whether or not async entity tracking should be enabled.", ++ "You may encounter issues with NPCs."); + if (!enableAsyncEntityTrackerInitialized) { + enableAsyncEntityTrackerInitialized = true; + enableAsyncEntityTracker = temp; + } + } -+ } -\ No newline at end of file diff --git a/src/main/java/dev/etil/mirai/tracker/MultithreadedTracker.java b/src/main/java/dev/etil/mirai/tracker/MultithreadedTracker.java new file mode 100644 index 0000000000000000000000000000000000000000..613bd104762755395e86101decaf1cb7dc74d2ad @@ -222,7 +221,7 @@ index 209c4f0b25470bff7278c0a8dcd30576900b9933..603eb6ca629796cfd00c831a509fb71a public ChunkHolder.FullChunkStatus status; diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java -index c01c22b6fda9e36a2336a992c760b813b71469ce..9f0fe4672abcfe417fd5f160ca497ad323434d5f 100644 +index 76795b9d30ddb1f938d86b40bcac54c88364dde5..0a1f27af53a65a88519a4b003d3088d9031fb481 100644 --- a/src/main/java/net/minecraft/server/level/ChunkMap.java +++ b/src/main/java/net/minecraft/server/level/ChunkMap.java @@ -1237,8 +1237,36 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider @@ -318,10 +317,10 @@ index ca42c2642a729b90d22b968af7258f3aee72e14b..c4d6d5be09c788bbc062c50d8547538e public boolean visible = true; diff --git a/src/main/java/net/minecraft/server/level/ServerEntity.java b/src/main/java/net/minecraft/server/level/ServerEntity.java -index 3a0ff721e01e5bb2b2d05459019f8bba5f5d0737..52697f4907d63b975c2d5045f7d11bc76dd6b78d 100644 +index 5a26a683fa5c896584f15effd97225775dc8d8b8..05d9a27c156f8c70f8bdd279227d65589e10a4b5 100644 --- a/src/main/java/net/minecraft/server/level/ServerEntity.java +++ b/src/main/java/net/minecraft/server/level/ServerEntity.java -@@ -266,14 +266,18 @@ public class ServerEntity { +@@ -267,14 +267,18 @@ public class ServerEntity { public void removePairing(ServerPlayer player) { this.entity.stopSeenByPlayer(player); @@ -342,7 +341,7 @@ index 3a0ff721e01e5bb2b2d05459019f8bba5f5d0737..52697f4907d63b975c2d5045f7d11bc7 this.entity.startSeenByPlayer(player); } -@@ -381,19 +385,30 @@ public class ServerEntity { +@@ -382,19 +386,30 @@ public class ServerEntity { SynchedEntityData datawatcher = this.entity.getEntityData(); if (datawatcher.isDirty()) { diff --git a/settings.gradle.kts b/settings.gradle.kts index d84af5c4..4b21e43d 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -1,7 +1,7 @@ pluginManagement { repositories { gradlePluginPortal() - maven("https://papermc.io/repo/repository/maven-public/") + maven("https://repo.papermc.io/repository/maven-public/") } }