diff --git a/gradle.properties b/gradle.properties index 7d0d74c0c7..f4aab830a2 100644 --- a/gradle.properties +++ b/gradle.properties @@ -2,7 +2,7 @@ group=dev.folia version=1.20.1-R0.1-SNAPSHOT mcVersion=1.20.1 -paperRef=4179b8f3fa86437aa1d9742930fd8ca6d23515a0 +paperRef=33bec7f20a5d3e20d9a8c0a16a1e5276add5d4fb org.gradle.caching=true org.gradle.parallel=true diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar index ccebba7710..7f93135c49 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 bdc9a83b1e..d11cdd907d 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,7 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-8.0.2-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.3-all.zip networkTimeout=10000 +validateDistributionUrl=true zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/gradlew b/gradlew index 79a61d421c..0adc8e1a53 100755 --- a/gradlew +++ b/gradlew @@ -83,10 +83,8 @@ done # 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"' +# Discard cd standard output in case $CDPATH is set (https://github.com/gradle/gradle/issues/25036) +APP_HOME=$( cd "${APP_HOME:-./}" > /dev/null && pwd -P ) || exit # Use the maximum available, or set MAX_FD != -1 to use that value. MAX_FD=maximum @@ -133,10 +131,13 @@ location of your Java installation." fi else JAVACMD=java - which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. + if ! command -v java >/dev/null 2>&1 + then + die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. Please set the JAVA_HOME variable in your environment to match the location of your Java installation." + fi fi # Increase the maximum file descriptors if we can. @@ -197,6 +198,10 @@ if "$cygwin" || "$msys" ; then done fi + +# 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"' + # Collect all arguments for the java command; # * $DEFAULT_JVM_OPTS, $JAVA_OPTS, and $GRADLE_OPTS can contain fragments of # shell script including quotes and variable substitutions, so put them in diff --git a/patches/api/0005-Add-API-for-checking-ownership-of-region-by-position.patch b/patches/api/0005-Add-API-for-checking-ownership-of-region-by-position.patch index 95532a4f02..92056cc985 100644 --- a/patches/api/0005-Add-API-for-checking-ownership-of-region-by-position.patch +++ b/patches/api/0005-Add-API-for-checking-ownership-of-region-by-position.patch @@ -11,10 +11,10 @@ the schedulers depending on the result of the ownership check. diff --git a/src/main/java/org/bukkit/Bukkit.java b/src/main/java/org/bukkit/Bukkit.java -index f380a518bc444bfdfbbedf38805c7684e53a5629..c54d5f254a4e7055470a4868187de3a18c21d0e5 100644 +index f78b5fd3c3347d28da58777bff88903d2eb140f6..26b32a5935aaed9b1fe356af0208a778144aac87 100644 --- a/src/main/java/org/bukkit/Bukkit.java +++ b/src/main/java/org/bukkit/Bukkit.java -@@ -2709,6 +2709,14 @@ public final class Bukkit { +@@ -2751,6 +2751,14 @@ public final class Bukkit { return server.isOwnedByCurrentRegion(entity); } // Paper end - Folia region threading API @@ -30,10 +30,10 @@ index f380a518bc444bfdfbbedf38805c7684e53a5629..c54d5f254a4e7055470a4868187de3a1 @NotNull public static Server.Spigot spigot() { diff --git a/src/main/java/org/bukkit/Server.java b/src/main/java/org/bukkit/Server.java -index 68206cf0178c26c0f528a1e14a5fb4e9ad410369..f77553fc70bc1f3f18af50e53c0041bbaaebab9a 100644 +index 8d8fe04e6b09d2a5b1cc05002073df5c58cdcb96..b6a8217b97842cd07af24fadb21e0e44226e5bb9 100644 --- a/src/main/java/org/bukkit/Server.java +++ b/src/main/java/org/bukkit/Server.java -@@ -2364,4 +2364,10 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi +@@ -2404,4 +2404,10 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi */ boolean isOwnedByCurrentRegion(@NotNull Entity entity); // Paper end - Folia region threading API diff --git a/patches/server/0001-Build-changes.patch b/patches/server/0001-Build-changes.patch index 0e03c2c06b..7227a9431a 100644 --- a/patches/server/0001-Build-changes.patch +++ b/patches/server/0001-Build-changes.patch @@ -93,10 +93,10 @@ index 9d687da5bdf398bb3f6c84cdf1249a7213d09f2e..e2f704c115fd6e00960bb56bb0779f11 ).openBufferedStream()) { JsonObject json = new Gson().fromJson(reader, JsonObject.class); diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 3238cbcba567b1242c77e41f6b6f19a8d157fb4e..f2bda376d64296cf41e44b03e83bc6fe000edb88 100644 +index 67ee3a4ca8a6cdeb275653d492a1fea8037c51fb..211408450ab4bf714860a52a9deff63e75ec20d1 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java -@@ -1693,7 +1693,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop COMMANDS = new HashMap<>(); - static { +@@ -19,6 +19,7 @@ public final class PaperCommands { COMMANDS.put("paper", new PaperCommand("paper")); -- COMMANDS.put("mspt", new MSPTCommand("mspt")); + COMMANDS.put("callback", new CallbackCommand("callback")); + COMMANDS.put("mspt", new MSPTCommand("mspt")); + COMMANDS.put("tps", new io.papermc.paper.threadedregions.commands.CommandServerHealth()); // Folia - region threading } @@ -2952,13 +2951,14 @@ index bd68139ae635f2ad7ec8e7a21e0056a139c4c62e..48a43341b17247355a531164019d5cc9 } diff --git a/src/main/java/io/papermc/paper/configuration/GlobalConfiguration.java b/src/main/java/io/papermc/paper/configuration/GlobalConfiguration.java -index d7f541d94941a341a70dfac025a3d3601dd1aca8..6f42d7dd68621e124a11698afaa82d3adea70910 100644 +index 019d3bbd78fb0b06861979d223915fedb6c99442..4588b2d7b97347cbf4202f110fbc5036ccd5b1e0 100644 --- a/src/main/java/io/papermc/paper/configuration/GlobalConfiguration.java +++ b/src/main/java/io/papermc/paper/configuration/GlobalConfiguration.java -@@ -287,6 +287,19 @@ public class GlobalConfiguration extends ConfigurationPart { - public boolean disableTripwireUpdates = false; +@@ -326,4 +326,17 @@ public class GlobalConfiguration extends ConfigurationPart { + public boolean disableChorusPlantUpdates = false; + public boolean disableMushroomBlockUpdates = false; } - ++ + // Folia start - threaded regions + public ThreadedRegions threadedRegions; + public class ThreadedRegions extends Post { @@ -2971,15 +2971,12 @@ index d7f541d94941a341a70dfac025a3d3601dd1aca8..6f42d7dd68621e124a11698afaa82d3a + } + } + // Folia end - threaded regions -+ - public ChunkLoadingBasic chunkLoadingBasic; - - public class ChunkLoadingBasic extends ConfigurationPart { + } diff --git a/src/main/java/io/papermc/paper/configuration/WorldConfiguration.java b/src/main/java/io/papermc/paper/configuration/WorldConfiguration.java -index a33de97340f14219291c4175e9194914cdf441db..a00201eca053ef69b8d903fdb9538444baf85465 100644 +index da7c899fbab162ee197a0593f455ebd9c5286d3c..571c18117d7f85eddff31d535c09b46e0e9e4341 100644 --- a/src/main/java/io/papermc/paper/configuration/WorldConfiguration.java +++ b/src/main/java/io/papermc/paper/configuration/WorldConfiguration.java -@@ -134,7 +134,7 @@ public class WorldConfiguration extends ConfigurationPart { +@@ -145,7 +145,7 @@ public class WorldConfiguration extends ConfigurationPart { public boolean filterBadTileEntityNbtFromFallingBlocks = true; public List filteredEntityTagNbtPaths = NbtPathSerializer.fromString(List.of("Pos", "Motion", "SleepingX", "SleepingY", "SleepingZ")); public boolean disableMobSpawnerSpawnEggTransformation = false; @@ -2988,7 +2985,7 @@ index a33de97340f14219291c4175e9194914cdf441db..a00201eca053ef69b8d903fdb9538444 public boolean scanForLegacyEnderDragon = true; @MergeMap public Reference2IntMap spawnLimits = Util.make(new Reference2IntOpenHashMap<>(NaturalSpawner.SPAWNING_CATEGORIES.length), map -> Arrays.stream(NaturalSpawner.SPAWNING_CATEGORIES).forEach(mobCategory -> map.put(mobCategory, -1))); -@@ -411,7 +411,14 @@ public class WorldConfiguration extends ConfigurationPart { +@@ -459,7 +459,14 @@ public class WorldConfiguration extends ConfigurationPart { public Chunks chunks; @@ -5472,10 +5469,10 @@ index 0000000000000000000000000000000000000000..112d24a93bddf3d81c9176c05340c94e +} diff --git a/src/main/java/io/papermc/paper/threadedregions/TeleportUtils.java b/src/main/java/io/papermc/paper/threadedregions/TeleportUtils.java new file mode 100644 -index 0000000000000000000000000000000000000000..84b4ff07735fb84e28ee8966ffdedb1bb3d07dff +index 0000000000000000000000000000000000000000..7b31c4ea6d01f936271bdadc3626201dcf32a683 --- /dev/null +++ b/src/main/java/io/papermc/paper/threadedregions/TeleportUtils.java -@@ -0,0 +1,60 @@ +@@ -0,0 +1,70 @@ +package io.papermc.paper.threadedregions; + +import ca.spottedleaf.concurrentutil.completable.Completable; @@ -5496,7 +5493,9 @@ index 0000000000000000000000000000000000000000..84b4ff07735fb84e28ee8966ffdedb1b + positionCompletable.addWaiter( + (final Location loc, final Throwable thr) -> { + if (loc == null) { -+ onComplete.accept(null); ++ if (onComplete != null) { ++ onComplete.accept(null); ++ } + return; + } + final boolean scheduled = from.getBukkitEntity().taskScheduler.schedule( @@ -5510,12 +5509,16 @@ index 0000000000000000000000000000000000000000..84b4ff07735fb84e28ee8966ffdedb1b + ); + }, + (final Entity retired) -> { -+ onComplete.accept(null); ++ if (onComplete != null) { ++ onComplete.accept(null); ++ } + }, + 1L + ); + if (!scheduled) { -+ onComplete.accept(null); ++ if (onComplete != null) { ++ onComplete.accept(null); ++ } + } + } + ); @@ -5525,12 +5528,16 @@ index 0000000000000000000000000000000000000000..84b4ff07735fb84e28ee8966ffdedb1b + positionCompletable.complete(target.getBukkitEntity().getLocation()); + }, + (final Entity retired) -> { -+ onComplete.accept(null); ++ if (onComplete != null) { ++ onComplete.accept(null); ++ } + }, + 1L + ); + if (!scheduled) { -+ onComplete.accept(null); ++ if (onComplete != null) { ++ onComplete.accept(null); ++ } + } + } + @@ -9239,18 +9246,10 @@ index 413e4b6da027876dbbe8eb78f2568a440f431547..3a7dbcb9964723b8ed5e6b0a1ee42679 throw new RuntimeException(); } diff --git a/src/main/java/io/papermc/paper/util/MCUtil.java b/src/main/java/io/papermc/paper/util/MCUtil.java -index cb4379268b191d331c71be44642baac381ffaaf6..ff6716210d13db4472c67a56003b24c7b0af8224 100644 +index c69088a2ec374b2d236fec61e267f42afa2967b1..cadb91c7f5ef80aac8513f246fdf481947fa0a17 100644 --- a/src/main/java/io/papermc/paper/util/MCUtil.java +++ b/src/main/java/io/papermc/paper/util/MCUtil.java -@@ -29,6 +29,7 @@ import net.minecraft.world.level.ClipContext; - import net.minecraft.world.level.Level; - import net.minecraft.world.level.chunk.ChunkAccess; - import net.minecraft.world.level.chunk.ChunkStatus; -+import net.minecraft.world.phys.Vec3; - import org.apache.commons.lang.exception.ExceptionUtils; - import com.mojang.authlib.GameProfile; - import org.bukkit.Location; -@@ -334,6 +335,7 @@ public final class MCUtil { +@@ -338,6 +338,7 @@ public final class MCUtil { */ public static void ensureMain(String reason, Runnable run) { if (!isMainThread()) { @@ -9258,7 +9257,7 @@ index cb4379268b191d331c71be44642baac381ffaaf6..ff6716210d13db4472c67a56003b24c7 if (reason != null) { MinecraftServer.LOGGER.warn("Asynchronous " + reason + "!", new IllegalStateException()); } -@@ -474,6 +476,30 @@ public final class MCUtil { +@@ -478,6 +479,30 @@ public final class MCUtil { return new Location(world.getWorld(), pos.getX(), pos.getY(), pos.getZ()); } @@ -10451,7 +10450,7 @@ index d2f0a0755317f5fa9a1ccf7db346aa77fd287d80..b07df826a3028c14b48b09dbaeccc907 // CraftBukkit start - SPIGOT-5477, MC-142590 } else if (MinecraftServer.getServer().hasStopped() || (listener instanceof ServerGamePacketListenerImpl && ((ServerGamePacketListenerImpl) listener).processedDisconnect)) { diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index f2bda376d64296cf41e44b03e83bc6fe000edb88..056dc0df81c056672ee59664def01ed726b8f710 100644 +index 211408450ab4bf714860a52a9deff63e75ec20d1..99f1e6c72c734079dfc2c2a8b8093554e945fc6a 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -242,7 +242,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop processQueue = new java.util.concurrent.ConcurrentLinkedQueue(); public int autosavePeriod; public Commands vanillaCommandDispatcher; -@@ -306,12 +306,40 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop S spin(Function serverFactory) { AtomicReference atomicreference = new AtomicReference(); Thread thread = new io.papermc.paper.util.TickThread(() -> { // Paper - rewrite chunk system -@@ -603,7 +631,21 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop { return worldserver + " " + worldserver.dimension().location(); -@@ -1554,7 +1673,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop { + Waitable[] waitableArray = new Waitable[1]; // Paper + rconConsoleSource.prepareForCommand(); + final java.util.concurrent.atomic.AtomicReference command = new java.util.concurrent.atomic.AtomicReference<>(s); // Paper diff --git a/src/main/java/net/minecraft/server/level/ChunkHolder.java b/src/main/java/net/minecraft/server/level/ChunkHolder.java index e2202389a2c4133a183cca59c4e909fc419379ab..18f438eec03cabc1614ab807081cff6b18fb09a8 100644 --- a/src/main/java/net/minecraft/server/level/ChunkHolder.java @@ -12548,7 +12547,7 @@ index e2202389a2c4133a183cca59c4e909fc419379ab..18f438eec03cabc1614ab807081cff6b // Paper end - optimise chunk tick iteration diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java -index 469083208110d5735e1bbda7a15c55a032d0e8cc..779c03f17769039cbaaa1210bd0e95163c9386b1 100644 +index 65d947df910d60f478e7a449eb161e5105e2c0c9..475edb726964f3757957474856c61ac89812c15e 100644 --- a/src/main/java/net/minecraft/server/level/ChunkMap.java +++ b/src/main/java/net/minecraft/server/level/ChunkMap.java @@ -147,21 +147,21 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider @@ -12792,10 +12791,11 @@ index 469083208110d5735e1bbda7a15c55a032d0e8cc..779c03f17769039cbaaa1210bd0e9516 // Paper end - optimise checkDespawn } -@@ -457,28 +357,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -456,49 +356,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider + }); } - // Paper start +- // Paper start - public void updatePlayerMobTypeMap(Entity entity) { - if (!this.level.paperConfig().entities.spawning.perPlayerMobSpawns) { - return; @@ -12815,14 +12815,34 @@ index 469083208110d5735e1bbda7a15c55a032d0e8cc..779c03f17769039cbaaa1210bd0e9516 - } - } - +- // Paper start - per player mob count backoff +- public void updateFailurePlayerMobTypeMap(int chunkX, int chunkZ, net.minecraft.world.entity.MobCategory mobCategory) { +- if (!this.level.paperConfig().entities.spawning.perPlayerMobSpawns) { +- return; +- } +- int idx = mobCategory.ordinal(); +- final com.destroystokyo.paper.util.misc.PooledLinkedHashSets.PooledObjectLinkedOpenHashSet inRange = this.playerMobDistanceMap.getObjectsInRange(chunkX, chunkZ); +- if (inRange != null) { +- final Object[] set = inRange.getBackingSet(); +- for (int i = 0; i < set.length; i++) { +- if (!(set[i] instanceof ServerPlayer serverPlayer)) { +- continue; +- } +- ++serverPlayer.mobBackoffCounts[idx]; +- } +- } +- } +- // Paper end - per player mob count backoff +- - public int getMobCountNear(ServerPlayer entityPlayer, net.minecraft.world.entity.MobCategory mobCategory) { -- return entityPlayer.mobCounts[mobCategory.ordinal()]; +- return entityPlayer.mobCounts[mobCategory.ordinal()] + entityPlayer.mobBackoffCounts[mobCategory.ordinal()]; // Paper - per player mob count backoff - } +- // Paper end + // Folia - region threading - revert per player mob caps - // Paper end private static double euclideanDistanceSquared(ChunkPos pos, Entity entity) { -@@ -747,6 +626,12 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider + double d0 = (double) SectionPos.sectionToBlockCoord(pos.x, 8); +@@ -766,6 +624,12 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider // Paper start // rets true if to prevent the entity from being added public static boolean checkDupeUUID(ServerLevel level, Entity entity) { @@ -12835,7 +12855,7 @@ index 469083208110d5735e1bbda7a15c55a032d0e8cc..779c03f17769039cbaaa1210bd0e9516 io.papermc.paper.configuration.WorldConfiguration.Entities.Spawning.DuplicateUUID.DuplicateUUIDMode mode = level.paperConfig().entities.spawning.duplicateUuid.mode; if (mode != io.papermc.paper.configuration.WorldConfiguration.Entities.Spawning.DuplicateUUID.DuplicateUUIDMode.WARN && mode != io.papermc.paper.configuration.WorldConfiguration.Entities.Spawning.DuplicateUUID.DuplicateUUIDMode.DELETE -@@ -1011,6 +896,38 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -1030,6 +894,38 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider } final boolean anyPlayerCloseEnoughForSpawning(ChunkHolder playerchunk, ChunkPos chunkcoordintpair, boolean reducedRange) { @@ -12874,7 +12894,7 @@ index 469083208110d5735e1bbda7a15c55a032d0e8cc..779c03f17769039cbaaa1210bd0e9516 // this function is so hot that removing the map lookup call can have an order of magnitude impact on its performance // tested and confirmed via System.nanoTime() com.destroystokyo.paper.util.misc.PooledLinkedHashSets.PooledObjectLinkedOpenHashSet playersInRange = reducedRange ? playerchunk.playersInMobSpawnRange : playerchunk.playersInChunkTickRange; -@@ -1056,7 +973,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -1075,7 +971,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider return List.of(); } else { Builder builder = ImmutableList.builder(); @@ -12883,7 +12903,7 @@ index 469083208110d5735e1bbda7a15c55a032d0e8cc..779c03f17769039cbaaa1210bd0e9516 while (iterator.hasNext()) { ServerPlayer entityplayer = (ServerPlayer) iterator.next(); -@@ -1085,25 +1002,18 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -1104,25 +1000,18 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider } void updatePlayerStatus(ServerPlayer player, boolean added) { @@ -12914,7 +12934,7 @@ index 469083208110d5735e1bbda7a15c55a032d0e8cc..779c03f17769039cbaaa1210bd0e9516 this.removePlayerFromDistanceMaps(player); // Paper - distance maps } -@@ -1122,44 +1032,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -1141,44 +1030,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider public void move(ServerPlayer player) { // Paper - delay this logic for the entity tracker tick, no need to duplicate it @@ -12960,7 +12980,7 @@ index 469083208110d5735e1bbda7a15c55a032d0e8cc..779c03f17769039cbaaa1210bd0e9516 // Paper - replaced by PlayerChunkLoader -@@ -1182,9 +1055,9 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -1201,9 +1053,9 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider public void addEntity(Entity entity) { org.spigotmc.AsyncCatcher.catchOp("entity track"); // Spigot // Paper start - ignore and warn about illegal addEntity calls instead of crashing server @@ -12972,7 +12992,7 @@ index 469083208110d5735e1bbda7a15c55a032d0e8cc..779c03f17769039cbaaa1210bd0e9516 return; } if (entity instanceof ServerPlayer && ((ServerPlayer) entity).supressTrackerForLogin) return; // Delay adding to tracker until after list packets -@@ -1197,27 +1070,25 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -1216,27 +1068,25 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider if (i != 0) { int j = entitytypes.updateInterval(); @@ -13008,7 +13028,7 @@ index 469083208110d5735e1bbda7a15c55a032d0e8cc..779c03f17769039cbaaa1210bd0e9516 } } -@@ -1231,16 +1102,16 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -1250,16 +1100,16 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider ServerPlayer entityplayer = (ServerPlayer) entity; this.updatePlayerStatus(entityplayer, false); @@ -13032,7 +13052,7 @@ index 469083208110d5735e1bbda7a15c55a032d0e8cc..779c03f17769039cbaaa1210bd0e9516 if (playerchunkmap_entitytracker1 != null) { playerchunkmap_entitytracker1.broadcastRemoved(); -@@ -1250,25 +1121,18 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -1269,25 +1119,18 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider // Paper start - optimised tracker private final void processTrackQueue() { @@ -13068,7 +13088,7 @@ index 469083208110d5735e1bbda7a15c55a032d0e8cc..779c03f17769039cbaaa1210bd0e9516 } // Paper end - optimised tracker -@@ -1279,51 +1143,12 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -1298,51 +1141,12 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider return; } // Paper end - optimized tracker @@ -13122,7 +13142,7 @@ index 469083208110d5735e1bbda7a15c55a032d0e8cc..779c03f17769039cbaaa1210bd0e9516 if (playerchunkmap_entitytracker != null) { playerchunkmap_entitytracker.broadcast(packet); -@@ -1332,7 +1157,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -1351,7 +1155,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider } protected void broadcastAndSend(Entity entity, Packet packet) { @@ -13131,7 +13151,7 @@ index 469083208110d5735e1bbda7a15c55a032d0e8cc..779c03f17769039cbaaa1210bd0e9516 if (playerchunkmap_entitytracker != null) { playerchunkmap_entitytracker.broadcastAndSend(packet); -@@ -1440,41 +1265,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -1459,41 +1263,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider this.lastSectionPos = SectionPos.of((EntityAccess) entity); } @@ -13174,7 +13194,7 @@ index 469083208110d5735e1bbda7a15c55a032d0e8cc..779c03f17769039cbaaa1210bd0e9516 public boolean equals(Object object) { return object instanceof ChunkMap.TrackedEntity ? ((ChunkMap.TrackedEntity) object).entity.getId() == this.entity.getId() : false; -@@ -1521,6 +1312,28 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -1540,6 +1310,28 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider } } @@ -13203,23 +13223,22 @@ index 469083208110d5735e1bbda7a15c55a032d0e8cc..779c03f17769039cbaaa1210bd0e9516 public void updatePlayer(ServerPlayer player) { org.spigotmc.AsyncCatcher.catchOp("player tracker update"); // Spigot -@@ -1537,10 +1350,15 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider - boolean flag = d1 <= d2 && this.entity.broadcastToPlayer(player); +@@ -1563,9 +1355,14 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider + } + } + // Paper end - check Y ++ // Folia start - region threading ++ if (flag && (this.entity instanceof ServerPlayer thisEntity) && thisEntity.broadcastedDeath) { ++ flag = false; ++ } ++ // Folia end - region threading // CraftBukkit start - respect vanish API - if (!player.getBukkitEntity().canSee(this.entity.getBukkitEntity())) { -+ if (!io.papermc.paper.util.TickThread.isTickThreadFor(player) || !player.getBukkitEntity().canSee(this.entity.getBukkitEntity())) { // Folia - region threading ++ if (flag && !io.papermc.paper.util.TickThread.isTickThreadFor(player) || !player.getBukkitEntity().canSee(this.entity.getBukkitEntity())) { // Folia - region threading flag = false; } // CraftBukkit end -+ // Folia start - region threading -+ if ((this.entity instanceof ServerPlayer thisEntity) && thisEntity.broadcastedDeath) { -+ flag = false; -+ } -+ // Folia end - region threading - if (flag) { - if (this.seenBy.add(player.connection)) { - this.serverEntity.addPairing(player); diff --git a/src/main/java/net/minecraft/server/level/DistanceManager.java b/src/main/java/net/minecraft/server/level/DistanceManager.java index ae4a4710ba07614be42cdcbf52cee04cfa08466b..e17baf04afe5140427df40450a6e0c116d1236f5 100644 --- a/src/main/java/net/minecraft/server/level/DistanceManager.java @@ -13242,7 +13261,7 @@ index ae4a4710ba07614be42cdcbf52cee04cfa08466b..e17baf04afe5140427df40450a6e0c11 } diff --git a/src/main/java/net/minecraft/server/level/ServerChunkCache.java b/src/main/java/net/minecraft/server/level/ServerChunkCache.java -index 488a253e218409b5f0b4a872cee0928578fa7582..af35fd63b090aa3d89bc60cb9cb7694b5f502681 100644 +index acbcdc8cb1523044b1657e03a141fae6389a3686..af35fd63b090aa3d89bc60cb9cb7694b5f502681 100644 --- a/src/main/java/net/minecraft/server/level/ServerChunkCache.java +++ b/src/main/java/net/minecraft/server/level/ServerChunkCache.java @@ -61,73 +61,42 @@ public class ServerChunkCache extends ChunkSource { @@ -13300,12 +13319,12 @@ index 488a253e218409b5f0b4a872cee0928578fa7582..af35fd63b090aa3d89bc60cb9cb7694b - } finally { - this.loadedChunkMapSeqLock.releaseWrite(); - } -+ } // Folia - region threading - +- - // rewrite cache if we have to - // we do this since we also cache null chunks - int cacheKey = getChunkCacheKey(chunk.locX, chunk.locZ); -- ++ } // Folia - region threading + - LevelChunk cachedChunk = this.lastLoadedChunks[cacheKey]; - if (cachedChunk != null && cachedChunk.coordinateKey == chunk.coordinateKey) { - this.lastLoadedChunks[cacheKey] = null; @@ -13426,7 +13445,7 @@ index 488a253e218409b5f0b4a872cee0928578fa7582..af35fd63b090aa3d89bc60cb9cb7694b player.lastEntitySpawnRadiusSquared = (double)((range << 4) * (range << 4)); // used in anyPlayerCloseEnoughForSpawning player.playerNaturallySpawnedEvent = event; } -@@ -554,26 +508,19 @@ public class ServerChunkCache extends ChunkSource { +@@ -554,36 +508,19 @@ public class ServerChunkCache extends ChunkSource { gameprofilerfiller.push("pollingChunks"); int k = this.level.getGameRules().getInt(GameRules.RULE_RANDOMTICKING); @@ -13441,7 +13460,17 @@ index 488a253e218409b5f0b4a872cee0928578fa7582..af35fd63b090aa3d89bc60cb9cb7694b - if ((this.spawnFriendlies || this.spawnEnemies) && this.chunkMap.playerMobDistanceMap != null) { // don't count mobs when animals and monsters are disabled - // re-set mob counts - for (ServerPlayer player : this.level.players) { -- Arrays.fill(player.mobCounts, 0); +- // Paper start - per player mob spawning backoff +- for (int ii = 0; ii < ServerPlayer.MOBCATEGORY_TOTAL_ENUMS; ii++) { +- player.mobCounts[ii] = 0; +- +- int newBackoff = player.mobBackoffCounts[ii] - 1; // TODO make configurable bleed // TODO use nonlinear algorithm? +- if (newBackoff < 0) { +- newBackoff = 0; +- } +- player.mobBackoffCounts[ii] = newBackoff; +- } +- // Paper end - per player mob spawning backoff - } - spawnercreature_d = NaturalSpawner.createState(l, this.level.getAllEntities(), this::getFullChunk, null, true); - } else { @@ -13458,7 +13487,7 @@ index 488a253e218409b5f0b4a872cee0928578fa7582..af35fd63b090aa3d89bc60cb9cb7694b gameprofilerfiller.popPush("filteringLoadedChunks"); // Paper - moved down this.level.timings.chunkTicks.startTiming(); // Paper -@@ -581,18 +528,18 @@ public class ServerChunkCache extends ChunkSource { +@@ -591,18 +528,18 @@ public class ServerChunkCache extends ChunkSource { // Paper - moved down gameprofilerfiller.popPush("spawnAndTick"); @@ -13482,7 +13511,7 @@ index 488a253e218409b5f0b4a872cee0928578fa7582..af35fd63b090aa3d89bc60cb9cb7694b while (iterator1.hasNext()) { shuffled.add(iterator1.next()); } -@@ -642,14 +589,19 @@ public class ServerChunkCache extends ChunkSource { +@@ -652,14 +589,19 @@ public class ServerChunkCache extends ChunkSource { // Paper start - use set of chunks requiring updates, rather than iterating every single one loaded gameprofilerfiller.popPush("broadcast"); this.level.timings.broadcastChunkUpdates.startTiming(); // Paper - timing @@ -13508,7 +13537,7 @@ index 488a253e218409b5f0b4a872cee0928578fa7582..af35fd63b090aa3d89bc60cb9cb7694b } } } -@@ -657,8 +609,8 @@ public class ServerChunkCache extends ChunkSource { +@@ -667,8 +609,8 @@ public class ServerChunkCache extends ChunkSource { gameprofilerfiller.pop(); // Paper end - use set of chunks requiring updates, rather than iterating every single one loaded // Paper start - controlled flush for entity tracker packets @@ -13519,7 +13548,7 @@ index 488a253e218409b5f0b4a872cee0928578fa7582..af35fd63b090aa3d89bc60cb9cb7694b net.minecraft.server.network.ServerGamePacketListenerImpl connection = player.connection; if (connection != null) { connection.connection.disableAutomaticFlush(); -@@ -731,14 +683,19 @@ public class ServerChunkCache extends ChunkSource { +@@ -741,14 +683,19 @@ public class ServerChunkCache extends ChunkSource { @Override public void onLightUpdate(LightLayer type, SectionPos pos) { @@ -13541,7 +13570,7 @@ index 488a253e218409b5f0b4a872cee0928578fa7582..af35fd63b090aa3d89bc60cb9cb7694b } public void addRegionTicket(TicketType ticketType, ChunkPos pos, int radius, T argument) { -@@ -810,7 +767,8 @@ public class ServerChunkCache extends ChunkSource { +@@ -820,7 +767,8 @@ public class ServerChunkCache extends ChunkSource { @Nullable @VisibleForDebug public NaturalSpawner.SpawnState getLastSpawnState() { @@ -13551,7 +13580,7 @@ index 488a253e218409b5f0b4a872cee0928578fa7582..af35fd63b090aa3d89bc60cb9cb7694b } public void removeTicketsOnClosing() { -@@ -843,8 +801,43 @@ public class ServerChunkCache extends ChunkSource { +@@ -853,8 +801,43 @@ public class ServerChunkCache extends ChunkSource { return ServerChunkCache.this.mainThread; } @@ -13595,7 +13624,7 @@ index 488a253e218409b5f0b4a872cee0928578fa7582..af35fd63b090aa3d89bc60cb9cb7694b ServerChunkCache.this.level.getProfiler().incrementCounter("runTask"); super.doRunTask(task); } -@@ -852,10 +845,15 @@ public class ServerChunkCache extends ChunkSource { +@@ -862,10 +845,15 @@ public class ServerChunkCache extends ChunkSource { @Override // CraftBukkit start - process pending Chunk loadCallback() and unloadCallback() after each run task public boolean pollTask() { @@ -14677,7 +14706,7 @@ index 18aac3da3c88f33b1a71a5920a8daa27e9723913..bb07ad1bb895297356b88dfc4cd17e5e for (ServerPlayer player : ServerLevel.this.players) { player.getBukkitEntity().onEntityRemove(entity); diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index dc5fda83a66afbfeb7897fc20b4742899d8aca08..c85192fae74c97fc790b8eb613a5dcda99058b59 100644 +index b382da838acc04a1c5d89064b4fa43bcdd38ae71..587934b8e96a3d8b8a57cda8730eb331aa63ef65 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java @@ -190,7 +190,7 @@ import org.bukkit.inventory.MainHand; @@ -14689,20 +14718,21 @@ index dc5fda83a66afbfeb7897fc20b4742899d8aca08..c85192fae74c97fc790b8eb613a5dcda private static final int NEUTRAL_MOB_DEATH_NOTIFICATION_RADII_XZ = 32; private static final int NEUTRAL_MOB_DEATH_NOTIFICATION_RADII_Y = 10; public ServerGamePacketListenerImpl connection; -@@ -251,11 +251,7 @@ public class ServerPlayer extends Player { +@@ -251,12 +251,7 @@ public class ServerPlayer extends Player { public boolean queueHealthUpdatePacket = false; public net.minecraft.network.protocol.game.ClientboundSetHealthPacket queuedHealthUpdatePacket; // Paper end - // Paper start - mob spawning rework - public static final int MOBCATEGORY_TOTAL_ENUMS = net.minecraft.world.entity.MobCategory.values().length; - public final int[] mobCounts = new int[MOBCATEGORY_TOTAL_ENUMS]; // Paper +- public final int[] mobBackoffCounts = new int[MOBCATEGORY_TOTAL_ENUMS]; // Paper - per player mob count backoff - public final com.destroystokyo.paper.util.PooledHashSets.PooledObjectLinkedOpenHashSet cachedSingleMobDistanceMap; - // Paper end + // Folia - region threading - revert per player mob caps // CraftBukkit start public String displayName; -@@ -416,7 +412,7 @@ public class ServerPlayer extends Player { +@@ -417,7 +412,7 @@ public class ServerPlayer extends Player { this.adventure$displayName = net.kyori.adventure.text.Component.text(this.getScoreboardName()); // Paper this.bukkitPickUpLoot = true; this.maxHealthCache = this.getMaxHealth(); @@ -14711,7 +14741,7 @@ index dc5fda83a66afbfeb7897fc20b4742899d8aca08..c85192fae74c97fc790b8eb613a5dcda } // Yes, this doesn't match Vanilla, but it's the best we can do for now. -@@ -458,51 +454,152 @@ public class ServerPlayer extends Player { +@@ -459,51 +454,152 @@ public class ServerPlayer extends Player { } // CraftBukkit end @@ -14894,7 +14924,7 @@ index dc5fda83a66afbfeb7897fc20b4742899d8aca08..c85192fae74c97fc790b8eb613a5dcda return horizontalSpawnArea <= 16 ? horizontalSpawnArea - 1 : 17; } -@@ -1161,6 +1258,344 @@ public class ServerPlayer extends Player { +@@ -1162,6 +1258,344 @@ public class ServerPlayer extends Player { } } @@ -15239,7 +15269,7 @@ index dc5fda83a66afbfeb7897fc20b4742899d8aca08..c85192fae74c97fc790b8eb613a5dcda @Nullable @Override public Entity changeDimension(ServerLevel destination) { -@@ -1170,6 +1605,11 @@ public class ServerPlayer extends Player { +@@ -1171,6 +1605,11 @@ public class ServerPlayer extends Player { @Nullable public Entity changeDimension(ServerLevel worldserver, PlayerTeleportEvent.TeleportCause cause) { @@ -15251,7 +15281,7 @@ index dc5fda83a66afbfeb7897fc20b4742899d8aca08..c85192fae74c97fc790b8eb613a5dcda // CraftBukkit end if (this.isSleeping()) return this; // CraftBukkit - SPIGOT-3154 // this.isChangingDimension = true; // CraftBukkit - Moved down and into PlayerList#changeDimension -@@ -2114,6 +2554,12 @@ public class ServerPlayer extends Player { +@@ -2120,6 +2559,12 @@ public class ServerPlayer extends Player { public void setCamera(@Nullable Entity entity) { Entity entity1 = this.getCamera(); @@ -15264,7 +15294,7 @@ index dc5fda83a66afbfeb7897fc20b4742899d8aca08..c85192fae74c97fc790b8eb613a5dcda this.camera = (Entity) (entity == null ? this : entity); if (entity1 != this.camera) { // Paper start - Add PlayerStartSpectatingEntityEvent and PlayerStopSpectatingEntity Event -@@ -2307,7 +2753,7 @@ public class ServerPlayer extends Player { +@@ -2313,7 +2758,7 @@ public class ServerPlayer extends Player { } public void untrackChunk(ChunkPos chunkPos) { @@ -15273,7 +15303,7 @@ index dc5fda83a66afbfeb7897fc20b4742899d8aca08..c85192fae74c97fc790b8eb613a5dcda this.connection.send(new ClientboundForgetLevelChunkPacket(chunkPos.x, chunkPos.z)); // Paper start if(io.papermc.paper.event.packet.PlayerChunkUnloadEvent.getHandlerList().getRegisteredListeners().length > 0){ -@@ -2626,7 +3072,7 @@ public class ServerPlayer extends Player { +@@ -2632,7 +3077,7 @@ public class ServerPlayer extends Player { this.experienceLevel = this.newLevel; this.totalExperience = this.newTotalExp; this.experienceProgress = 0; @@ -15283,7 +15313,7 @@ index dc5fda83a66afbfeb7897fc20b4742899d8aca08..c85192fae74c97fc790b8eb613a5dcda this.removeAllEffects(org.bukkit.event.entity.EntityPotionEffectEvent.Cause.DEATH); this.effectsDirty = true; diff --git a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java -index baf3e79489e310f443788bc917c553ae7ea86c89..73dbc9384119856b93665562611bf15ca6a41e03 100644 +index 618ab9a2903f6d4139acd4aaa2e6db0a26e88ba9..82e9307e4c95edc30c9dd78cd3fefa8725140361 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayerGameMode.java @@ -124,11 +124,11 @@ public class ServerPlayerGameMode { @@ -15486,7 +15516,7 @@ index 44d99e89226adb6234b9405f25ac9dab9bd84297..072634e26d32ca0b3438a5d3a03be367 Collections.shuffle( this.connections ); } diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 80e050603e36134754136a8ee2bd14624f976e91..d4111fe99be800a87f0a7b2575a0e7ea861d7be9 100644 +index 3c0651fa5a5db880202c9a3805a6455269c5f16d..0114f9e669d3d54a61e909ff2a706d4fe27d53bc 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -327,10 +327,10 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic @@ -15709,7 +15739,7 @@ index 80e050603e36134754136a8ee2bd14624f976e91..d4111fe99be800a87f0a7b2575a0e7ea ParseResults parseresults = this.server.getCommands().getDispatcher().parse(stringreader, this.player.createCommandSourceStack()); this.server.getCommands().getDispatcher().getCompletionSuggestions(parseresults).thenAccept((suggestions) -> { -@@ -927,7 +949,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -932,7 +954,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic this.connection.send(new ClientboundCommandSuggestionsPacket(packet.getId(), suggestEvent.getSuggestions())); // Paper end - Brigadier API }); @@ -15718,7 +15748,7 @@ index 80e050603e36134754136a8ee2bd14624f976e91..d4111fe99be800a87f0a7b2575a0e7ea } } else if (!completions.isEmpty()) { final com.mojang.brigadier.suggestion.SuggestionsBuilder builder0 = new com.mojang.brigadier.suggestion.SuggestionsBuilder(command, stringreader.getTotalLength()); -@@ -1232,7 +1254,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -1244,7 +1266,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic int byteLength = testString.getBytes(java.nio.charset.StandardCharsets.UTF_8).length; if (byteLength > 256 * 4) { ServerGamePacketListenerImpl.LOGGER.warn(this.player.getScoreboardName() + " tried to send a book with with a page too large!"); @@ -15727,7 +15757,7 @@ index 80e050603e36134754136a8ee2bd14624f976e91..d4111fe99be800a87f0a7b2575a0e7ea return; } byteTotal += byteLength; -@@ -1255,17 +1277,17 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -1267,17 +1289,17 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic if (byteTotal > byteAllowed) { ServerGamePacketListenerImpl.LOGGER.warn(this.player.getScoreboardName() + " tried to send too large of a book. Book Size: " + byteTotal + " - Allowed: "+ byteAllowed + " - Pages: " + pageList.size()); @@ -15749,7 +15779,7 @@ index 80e050603e36134754136a8ee2bd14624f976e91..d4111fe99be800a87f0a7b2575a0e7ea // CraftBukkit end int i = packet.getSlot(); -@@ -1285,7 +1307,19 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -1297,7 +1319,19 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic this.updateBookContents(list1, i); }; @@ -15770,7 +15800,7 @@ index 80e050603e36134754136a8ee2bd14624f976e91..d4111fe99be800a87f0a7b2575a0e7ea } } -@@ -1451,9 +1485,10 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -1463,9 +1497,10 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic int i = this.receivedMovePacketCount - this.knownMovePacketCount; // CraftBukkit start - handle custom speeds and skipped ticks @@ -15783,7 +15813,7 @@ index 80e050603e36134754136a8ee2bd14624f976e91..d4111fe99be800a87f0a7b2575a0e7ea if (i > Math.max(this.allowedPlayerTicks, 5)) { ServerGamePacketListenerImpl.LOGGER.debug("{} is sending move packets too frequently ({} packets since last tick)", this.player.getName().getString(), i); -@@ -1639,7 +1674,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -1651,7 +1686,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic // If the event is cancelled we move the player back to their old location. if (event.isCancelled()) { @@ -15792,7 +15822,7 @@ index 80e050603e36134754136a8ee2bd14624f976e91..d4111fe99be800a87f0a7b2575a0e7ea return; } -@@ -1647,7 +1682,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -1659,7 +1694,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic // there to avoid any 'Moved wrongly' or 'Moved too quickly' errors. // We only do this if the Event was not cancelled. if (!oldTo.equals(event.getTo()) && !event.isCancelled()) { @@ -15801,7 +15831,7 @@ index 80e050603e36134754136a8ee2bd14624f976e91..d4111fe99be800a87f0a7b2575a0e7ea return; } -@@ -1873,9 +1908,9 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -1885,9 +1920,9 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic if (!this.player.isSpectator()) { // limit how quickly items can be dropped // If the ticks aren't the same then the count starts from 0 and we update the lastDropTick. @@ -15813,7 +15843,7 @@ index 80e050603e36134754136a8ee2bd14624f976e91..d4111fe99be800a87f0a7b2575a0e7ea } else { // Else we increment the drop count and check the amount. this.dropCount++; -@@ -1903,7 +1938,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -1915,7 +1950,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic case ABORT_DESTROY_BLOCK: case STOP_DESTROY_BLOCK: // Paper start - Don't allow digging in unloaded chunks @@ -15822,7 +15852,7 @@ index 80e050603e36134754136a8ee2bd14624f976e91..d4111fe99be800a87f0a7b2575a0e7ea this.player.connection.ackBlockChangesUpTo(packet.getSequence()); return; } -@@ -1987,7 +2022,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -1999,7 +2034,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic BlockPos blockposition = movingobjectpositionblock.getBlockPos(); Vec3 vec3d1 = Vec3.atCenterOf(blockposition); @@ -15831,7 +15861,7 @@ index 80e050603e36134754136a8ee2bd14624f976e91..d4111fe99be800a87f0a7b2575a0e7ea Vec3 vec3d2 = vec3d.subtract(vec3d1); double d0 = 1.0000001D; -@@ -2101,7 +2136,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -2113,7 +2148,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic Entity entity = packet.getEntity(worldserver); if (entity != null) { @@ -15840,7 +15870,7 @@ index 80e050603e36134754136a8ee2bd14624f976e91..d4111fe99be800a87f0a7b2575a0e7ea return; } } -@@ -2164,6 +2199,8 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -2176,6 +2211,8 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic this.player.disconnect(); // Paper start - Adventure quitMessage = quitMessage == null ? this.server.getPlayerList().remove(this.player) : this.server.getPlayerList().remove(this.player, quitMessage); // Paper - pass in quitMessage to fix kick message not being used @@ -15849,7 +15879,7 @@ index 80e050603e36134754136a8ee2bd14624f976e91..d4111fe99be800a87f0a7b2575a0e7ea if ((quitMessage != null) && !quitMessage.equals(net.kyori.adventure.text.Component.empty())) { this.server.getPlayerList().broadcastSystemMessage(PaperAdventure.asVanilla(quitMessage), false); // Paper end -@@ -2249,9 +2286,9 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -2261,9 +2298,9 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic } // CraftBukkit end if (ServerGamePacketListenerImpl.isChatMessageIllegal(packet.message())) { @@ -15861,7 +15891,7 @@ index 80e050603e36134754136a8ee2bd14624f976e91..d4111fe99be800a87f0a7b2575a0e7ea } else { Optional optional = this.tryHandleChat(packet.message(), packet.timeStamp(), packet.lastSeenMessages()); -@@ -2285,23 +2322,22 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -2297,23 +2334,22 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic @Override public void handleChatCommand(ServerboundChatCommandPacket packet) { if (ServerGamePacketListenerImpl.isChatMessageIllegal(packet.command())) { @@ -15889,7 +15919,7 @@ index 80e050603e36134754136a8ee2bd14624f976e91..d4111fe99be800a87f0a7b2575a0e7ea } } -@@ -2375,9 +2411,9 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -2387,9 +2423,9 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic private Optional tryHandleChat(String message, Instant timestamp, LastSeenMessages.Update acknowledgment) { if (!this.updateChatOrder(timestamp)) { ServerGamePacketListenerImpl.LOGGER.warn("{} sent out-of-order chat: '{}': {} > {}", this.player.getName().getString(), message, this.lastChatTimeStamp.get().getEpochSecond(), timestamp.getEpochSecond()); // Paper @@ -15901,7 +15931,7 @@ index 80e050603e36134754136a8ee2bd14624f976e91..d4111fe99be800a87f0a7b2575a0e7ea return Optional.empty(); } else { Optional optional = this.unpackAndApplyLastSeen(acknowledgment); -@@ -2452,7 +2488,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -2464,7 +2500,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic String originalFormat = event.getFormat(), originalMessage = event.getMessage(); this.cserver.getPluginManager().callEvent(event); @@ -15910,7 +15940,7 @@ index 80e050603e36134754136a8ee2bd14624f976e91..d4111fe99be800a87f0a7b2575a0e7ea // Evil plugins still listening to deprecated event final PlayerChatEvent queueEvent = new PlayerChatEvent(player, event.getMessage(), event.getFormat(), event.getRecipients()); queueEvent.setCancelled(event.isCancelled()); -@@ -2524,6 +2560,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -2536,6 +2572,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic public void handleCommand(String s) { // Paper - private -> public // Paper Start if (!org.spigotmc.AsyncCatcher.shuttingDown && !org.bukkit.Bukkit.isPrimaryThread()) { @@ -15918,7 +15948,7 @@ index 80e050603e36134754136a8ee2bd14624f976e91..d4111fe99be800a87f0a7b2575a0e7ea LOGGER.error("Command Dispatched Async: " + s); LOGGER.error("Please notify author of plugin causing this execution to fix this bug! see: http://bit.ly/1oSiM6C", new Throwable()); Waitable wait = new Waitable<>() { -@@ -2584,6 +2621,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -2596,6 +2633,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic if (s.isEmpty()) { ServerGamePacketListenerImpl.LOGGER.warn(this.player.getScoreboardName() + " tried to send an empty message"); } else if (this.getCraftPlayer().isConversing()) { @@ -15926,7 +15956,7 @@ index 80e050603e36134754136a8ee2bd14624f976e91..d4111fe99be800a87f0a7b2575a0e7ea final String conversationInput = s; this.server.processQueue.add(new Runnable() { @Override -@@ -2835,7 +2873,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -2847,7 +2885,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic this.player.resetLastActionTime(); this.player.setShiftKeyDown(packet.isUsingSecondaryAction()); @@ -15935,7 +15965,7 @@ index 80e050603e36134754136a8ee2bd14624f976e91..d4111fe99be800a87f0a7b2575a0e7ea if (!worldserver.getWorldBorder().isWithinBounds(entity.blockPosition())) { return; } -@@ -2975,6 +3013,12 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -2988,6 +3026,12 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic switch (packetplayinclientcommand_enumclientcommand) { case PERFORM_RESPAWN: if (this.player.wonGame) { @@ -15948,7 +15978,7 @@ index 80e050603e36134754136a8ee2bd14624f976e91..d4111fe99be800a87f0a7b2575a0e7ea this.player.wonGame = false; this.player = this.server.getPlayerList().respawn(this.player, this.server.getLevel(this.player.getRespawnDimension()), true, null, true, RespawnReason.END_PORTAL, org.bukkit.event.player.PlayerRespawnEvent.RespawnFlag.END_PORTAL); // Paper - add isEndCreditsRespawn argument CriteriaTriggers.CHANGED_DIMENSION.trigger(this.player, Level.END, Level.OVERWORLD); -@@ -2983,6 +3027,18 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -2996,6 +3040,18 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic return; } @@ -15967,7 +15997,7 @@ index 80e050603e36134754136a8ee2bd14624f976e91..d4111fe99be800a87f0a7b2575a0e7ea this.player = this.server.getPlayerList().respawn(this.player, false, RespawnReason.DEATH); if (this.server.isHardcore()) { this.player.setGameMode(GameType.SPECTATOR, org.bukkit.event.player.PlayerGameModeChangeEvent.Cause.HARDCORE_DEATH, null); // Paper -@@ -3336,7 +3392,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -3349,7 +3405,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic // Paper start if (!org.bukkit.Bukkit.isPrimaryThread()) { if (this.recipeSpamPackets.addAndGet(io.papermc.paper.configuration.GlobalConfiguration.get().spamLimiter.recipeSpamIncrement) > io.papermc.paper.configuration.GlobalConfiguration.get().spamLimiter.recipeSpamLimit) { @@ -15976,7 +16006,7 @@ index 80e050603e36134754136a8ee2bd14624f976e91..d4111fe99be800a87f0a7b2575a0e7ea return; } } -@@ -3505,7 +3561,18 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -3518,7 +3574,18 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic this.filterTextPacket(list).thenAcceptAsync((list1) -> { this.updateSignText(packet, list1); @@ -15996,7 +16026,7 @@ index 80e050603e36134754136a8ee2bd14624f976e91..d4111fe99be800a87f0a7b2575a0e7ea } private void updateSignText(ServerboundSignUpdatePacket packet, List signText) { -@@ -3538,9 +3605,9 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -3551,9 +3618,9 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic this.keepAlivePending = false; } else if (!this.isSingleplayerOwner()) { // Paper start - This needs to be handled on the main thread for plugins @@ -16217,7 +16247,7 @@ index 7edd4b88eb0476f0630630bc4681e859bd145b2b..f3586a5c5b5d4cae817aa7c15fc0c2fc date1 = fallback; } diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index 640e9bd618dc8286933318744c2064ede1fd9b5f..a4bf2bd466bbe306b6ecec43c8bd797ebfdc34c5 100644 +index f097ec5b4e3ad6b1a7c464a8cff4f8b2568fcf4f..82c7235ad9f4bc4a9f6e018c9905d49790396918 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java @@ -139,10 +139,10 @@ public abstract class PlayerList { @@ -16368,7 +16398,7 @@ index 640e9bd618dc8286933318744c2064ede1fd9b5f..a4bf2bd466bbe306b6ecec43c8bd797e final net.kyori.adventure.text.Component jm = playerJoinEvent.joinMessage(); @@ -354,8 +423,7 @@ public abstract class PlayerList { - ClientboundPlayerInfoUpdatePacket packet = ClientboundPlayerInfoUpdatePacket.createPlayerInitializing(List.of(player)); + ClientboundPlayerInfoUpdatePacket packet = ClientboundPlayerInfoUpdatePacket.createPlayerInitializing(List.of(player)); // Paper final List onlinePlayers = Lists.newArrayListWithExpectedSize(this.players.size() - 1); // Paper - use single player info update packet - for (int i = 0; i < this.players.size(); ++i) { @@ -16376,8 +16406,8 @@ index 640e9bd618dc8286933318744c2064ede1fd9b5f..a4bf2bd466bbe306b6ecec43c8bd797e + for (ServerPlayer entityplayer1 : this.players) { // Folia - region threadingv if (entityplayer1.getBukkitEntity().canSee(bukkitPlayer)) { - entityplayer1.connection.send(packet); -@@ -472,7 +540,7 @@ public abstract class PlayerList { + // Paper start +@@ -480,7 +548,7 @@ public abstract class PlayerList { // Paper start - Add to collideRule team if needed final Scoreboard scoreboard = this.getServer().getLevel(Level.OVERWORLD).getScoreboard(); final PlayerTeam collideRuleTeam = scoreboard.getPlayerTeam(this.collideRuleTeamName); @@ -16386,7 +16416,7 @@ index 640e9bd618dc8286933318744c2064ede1fd9b5f..a4bf2bd466bbe306b6ecec43c8bd797e scoreboard.addPlayerToTeam(player.getScoreboardName(), collideRuleTeam); } // Paper end -@@ -563,7 +631,7 @@ public abstract class PlayerList { +@@ -571,7 +639,7 @@ public abstract class PlayerList { protected void save(ServerPlayer player) { if (!player.getBukkitEntity().isPersistent()) return; // CraftBukkit @@ -16395,7 +16425,7 @@ index 640e9bd618dc8286933318744c2064ede1fd9b5f..a4bf2bd466bbe306b6ecec43c8bd797e this.playerIo.save(player); ServerStatsCounter serverstatisticmanager = (ServerStatsCounter) player.getStats(); // CraftBukkit -@@ -603,7 +671,7 @@ public abstract class PlayerList { +@@ -611,7 +679,7 @@ public abstract class PlayerList { // CraftBukkit end // Paper start - Remove from collideRule team if needed @@ -16404,7 +16434,7 @@ index 640e9bd618dc8286933318744c2064ede1fd9b5f..a4bf2bd466bbe306b6ecec43c8bd797e final Scoreboard scoreBoard = this.server.getLevel(Level.OVERWORLD).getScoreboard(); final PlayerTeam team = scoreBoard.getPlayersTeam(this.collideRuleTeamName); if (entityplayer.getTeam() == team && team != null) { -@@ -662,8 +730,7 @@ public abstract class PlayerList { +@@ -670,8 +738,7 @@ public abstract class PlayerList { // CraftBukkit start // this.broadcastAll(new ClientboundPlayerInfoRemovePacket(List.of(entityplayer.getUUID()))); ClientboundPlayerInfoRemovePacket packet = new ClientboundPlayerInfoRemovePacket(List.of(entityplayer.getUUID())); @@ -16414,7 +16444,7 @@ index 640e9bd618dc8286933318744c2064ede1fd9b5f..a4bf2bd466bbe306b6ecec43c8bd797e if (entityplayer2.getBukkitEntity().canSee(entityplayer.getBukkitEntity())) { entityplayer2.connection.send(packet); -@@ -688,19 +755,13 @@ public abstract class PlayerList { +@@ -696,19 +763,13 @@ public abstract class PlayerList { ServerPlayer entityplayer; @@ -16436,7 +16466,7 @@ index 640e9bd618dc8286933318744c2064ede1fd9b5f..a4bf2bd466bbe306b6ecec43c8bd797e } // Instead of kicking then returning, we need to store the kick reason -@@ -719,7 +780,7 @@ public abstract class PlayerList { +@@ -727,7 +788,7 @@ public abstract class PlayerList { ichatmutablecomponent = Component.translatable("multiplayer.disconnect.banned.reason", gameprofilebanentry.getReason()); if (gameprofilebanentry.getExpires() != null) { @@ -16445,7 +16475,7 @@ index 640e9bd618dc8286933318744c2064ede1fd9b5f..a4bf2bd466bbe306b6ecec43c8bd797e } // return chatmessage; -@@ -732,14 +793,14 @@ public abstract class PlayerList { +@@ -740,14 +801,14 @@ public abstract class PlayerList { ichatmutablecomponent = Component.translatable("multiplayer.disconnect.banned_ip.reason", ipbanentry.getReason()); if (ipbanentry.getExpires() != null) { @@ -16462,7 +16492,7 @@ index 640e9bd618dc8286933318744c2064ede1fd9b5f..a4bf2bd466bbe306b6ecec43c8bd797e event.disallow(PlayerLoginEvent.Result.KICK_FULL, net.kyori.adventure.text.serializer.legacy.LegacyComponentSerializer.legacySection().deserialize(org.spigotmc.SpigotConfig.serverFullMessage)); // Spigot // Paper - Adventure } } -@@ -797,6 +858,11 @@ public abstract class PlayerList { +@@ -805,6 +866,11 @@ public abstract class PlayerList { public ServerPlayer respawn(ServerPlayer entityplayer, ServerLevel worldserver, boolean flag, Location location, boolean avoidSuffocation, RespawnReason reason, org.bukkit.event.player.PlayerRespawnEvent.RespawnFlag...respawnFlags) { // Paper end @@ -16474,7 +16504,7 @@ index 640e9bd618dc8286933318744c2064ede1fd9b5f..a4bf2bd466bbe306b6ecec43c8bd797e entityplayer.stopRiding(); // CraftBukkit this.players.remove(entityplayer); this.playersByName.remove(entityplayer.getScoreboardName().toLowerCase(java.util.Locale.ROOT)); // Spigot -@@ -991,10 +1057,10 @@ public abstract class PlayerList { +@@ -999,10 +1065,10 @@ public abstract class PlayerList { public void tick() { if (++this.sendAllPlayerInfoIn > 600) { // CraftBukkit start @@ -16488,7 +16518,7 @@ index 640e9bd618dc8286933318744c2064ede1fd9b5f..a4bf2bd466bbe306b6ecec43c8bd797e @Override public boolean test(ServerPlayer input) { return target.getBukkitEntity().canSee(input.getBukkitEntity()); -@@ -1020,18 +1086,17 @@ public abstract class PlayerList { +@@ -1028,18 +1094,17 @@ public abstract class PlayerList { // CraftBukkit start - add a world/entity limited version public void broadcastAll(Packet packet, net.minecraft.world.entity.player.Player entityhuman) { @@ -16511,7 +16541,7 @@ index 640e9bd618dc8286933318744c2064ede1fd9b5f..a4bf2bd466bbe306b6ecec43c8bd797e } } -@@ -1075,8 +1140,7 @@ public abstract class PlayerList { +@@ -1083,8 +1148,7 @@ public abstract class PlayerList { if (scoreboardteambase == null) { this.broadcastSystemMessage(message, false); } else { @@ -16521,7 +16551,7 @@ index 640e9bd618dc8286933318744c2064ede1fd9b5f..a4bf2bd466bbe306b6ecec43c8bd797e if (entityplayer.getTeam() != scoreboardteambase) { entityplayer.sendSystemMessage(message); -@@ -1087,10 +1151,12 @@ public abstract class PlayerList { +@@ -1095,10 +1159,12 @@ public abstract class PlayerList { } public String[] getPlayerNamesArray() { @@ -16537,7 +16567,7 @@ index 640e9bd618dc8286933318744c2064ede1fd9b5f..a4bf2bd466bbe306b6ecec43c8bd797e } return astring; -@@ -1109,7 +1175,9 @@ public abstract class PlayerList { +@@ -1117,7 +1183,9 @@ public abstract class PlayerList { ServerPlayer entityplayer = this.getPlayer(profile.getId()); if (entityplayer != null) { @@ -16547,7 +16577,7 @@ index 640e9bd618dc8286933318744c2064ede1fd9b5f..a4bf2bd466bbe306b6ecec43c8bd797e } } -@@ -1119,7 +1187,10 @@ public abstract class PlayerList { +@@ -1127,7 +1195,10 @@ public abstract class PlayerList { ServerPlayer entityplayer = this.getPlayer(profile.getId()); if (entityplayer != null) { @@ -16558,7 +16588,7 @@ index 640e9bd618dc8286933318744c2064ede1fd9b5f..a4bf2bd466bbe306b6ecec43c8bd797e } } -@@ -1180,8 +1251,7 @@ public abstract class PlayerList { +@@ -1188,8 +1259,7 @@ public abstract class PlayerList { } public void broadcast(@Nullable net.minecraft.world.entity.player.Player player, double x, double y, double z, double distance, ResourceKey worldKey, Packet packet) { @@ -16568,7 +16598,7 @@ index 640e9bd618dc8286933318744c2064ede1fd9b5f..a4bf2bd466bbe306b6ecec43c8bd797e // CraftBukkit start - Test if player receiving packet can see the source of the packet if (player != null && !entityplayer.getBukkitEntity().canSee(player.getBukkitEntity())) { -@@ -1211,12 +1281,21 @@ public abstract class PlayerList { +@@ -1219,12 +1289,21 @@ public abstract class PlayerList { io.papermc.paper.util.MCUtil.ensureMain("Save Players" , () -> { // Paper - Ensure main MinecraftTimings.savePlayers.startTiming(); // Paper int numSaved = 0; @@ -16595,7 +16625,7 @@ index 640e9bd618dc8286933318744c2064ede1fd9b5f..a4bf2bd466bbe306b6ecec43c8bd797e } // Paper end } -@@ -1333,6 +1412,20 @@ public abstract class PlayerList { +@@ -1341,6 +1420,20 @@ public abstract class PlayerList { } public void removeAll(boolean isRestarting) { @@ -16616,7 +16646,7 @@ index 640e9bd618dc8286933318744c2064ede1fd9b5f..a4bf2bd466bbe306b6ecec43c8bd797e // Paper end // CraftBukkit start - disconnect safely for (ServerPlayer player : this.players) { -@@ -1342,7 +1435,7 @@ public abstract class PlayerList { +@@ -1350,7 +1443,7 @@ public abstract class PlayerList { // CraftBukkit end // Paper start - Remove collideRule team if it exists @@ -16780,7 +16810,7 @@ index ea27b46eec01bda427653335f922ccd068cffcb5..e551d3b875eab6851b75041f418c9a08 return blockToFallLocation(blockState); } else { diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 2edab21bb271405f200de5a19e9c748bb14aba7d..6b101ccddc811483cc1b8652685313baa06cae30 100644 +index e8485fb900b25e911a858678a833852731cb2ace..71830b5fbeda3c7c63460c7cee05217dcc084882 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -166,7 +166,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { @@ -16801,7 +16831,7 @@ index 2edab21bb271405f200de5a19e9c748bb14aba7d..6b101ccddc811483cc1b8652685313ba public @org.jetbrains.annotations.Nullable net.minecraft.server.level.ChunkMap.TrackedEntity tracker; // Paper public @Nullable Throwable addedToWorldStack; // Paper - entity debug -@@ -507,28 +507,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { +@@ -508,28 +508,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { this.isLegacyTrackingEntity = isLegacyTrackingEntity; } @@ -16831,7 +16861,7 @@ index 2edab21bb271405f200de5a19e9c748bb14aba7d..6b101ccddc811483cc1b8652685313ba // Paper end - optimise entity tracking // Paper start - make end portalling safe public BlockPos portalBlock; -@@ -560,6 +539,25 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { +@@ -561,6 +540,25 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { this.teleportTo(worldserver, null); } // Paper end - make end portalling safe @@ -16857,7 +16887,7 @@ index 2edab21bb271405f200de5a19e9c748bb14aba7d..6b101ccddc811483cc1b8652685313ba public Entity(EntityType type, Level world) { this.id = Entity.ENTITY_COUNTER.incrementAndGet(); -@@ -801,6 +799,12 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { +@@ -803,6 +801,12 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { // CraftBukkit start public void postTick() { @@ -16870,7 +16900,7 @@ index 2edab21bb271405f200de5a19e9c748bb14aba7d..6b101ccddc811483cc1b8652685313ba // No clean way to break out of ticking once the entity has been copied to a new world, so instead we move the portalling later in the tick cycle if (!(this instanceof ServerPlayer) && this.isAlive()) { // Paper - don't attempt to teleport dead entities this.handleNetherPortal(); -@@ -823,7 +827,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { +@@ -825,7 +829,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { this.walkDistO = this.walkDist; this.xRotO = this.getXRot(); this.yRotO = this.getYRot(); @@ -16879,7 +16909,7 @@ index 2edab21bb271405f200de5a19e9c748bb14aba7d..6b101ccddc811483cc1b8652685313ba if (this.canSpawnSprintParticle()) { this.spawnSprintParticle(); } -@@ -932,11 +936,11 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { +@@ -934,11 +938,11 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { // This will be called every single tick the entity is in lava, so don't throw an event this.setSecondsOnFire(15, false); } @@ -16893,7 +16923,7 @@ index 2edab21bb271405f200de5a19e9c748bb14aba7d..6b101ccddc811483cc1b8652685313ba // CraftBukkit end - we also don't throw an event unless the object in lava is living, to save on some event calls } -@@ -1081,8 +1085,8 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { +@@ -1083,8 +1087,8 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { } else { this.wasOnFire = this.isOnFire(); if (movementType == MoverType.PISTON) { @@ -16904,7 +16934,7 @@ index 2edab21bb271405f200de5a19e9c748bb14aba7d..6b101ccddc811483cc1b8652685313ba movement = this.limitPistonMovement(movement); if (movement.equals(Vec3.ZERO)) { return; -@@ -3211,6 +3215,11 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { +@@ -3213,6 +3217,11 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { @Nullable public Team getTeam() { @@ -16916,7 +16946,7 @@ index 2edab21bb271405f200de5a19e9c748bb14aba7d..6b101ccddc811483cc1b8652685313ba if (!this.level().paperConfig().scoreboards.allowNonPlayerEntitiesOnScoreboards && !(this instanceof Player)) { return null; } // Paper return this.level().getScoreboard().getPlayersTeam(this.getScoreboardName()); } -@@ -3326,9 +3335,9 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { +@@ -3328,9 +3337,9 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { if (this.fireImmune()) { return; } @@ -16928,7 +16958,7 @@ index 2edab21bb271405f200de5a19e9c748bb14aba7d..6b101ccddc811483cc1b8652685313ba return; } // CraftBukkit end -@@ -3501,6 +3510,775 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { +@@ -3503,6 +3512,775 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { this.portalEntrancePos = original.portalEntrancePos; } @@ -17704,7 +17734,7 @@ index 2edab21bb271405f200de5a19e9c748bb14aba7d..6b101ccddc811483cc1b8652685313ba @Nullable public Entity changeDimension(ServerLevel destination) { // CraftBukkit start -@@ -3509,6 +4287,11 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { +@@ -3511,6 +4289,11 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { @Nullable public Entity teleportTo(ServerLevel worldserver, PositionImpl location) { @@ -17716,7 +17746,7 @@ index 2edab21bb271405f200de5a19e9c748bb14aba7d..6b101ccddc811483cc1b8652685313ba // CraftBukkit end // Paper start - fix bad state entities causing dupes if (!this.isAlive() || !this.valid) { -@@ -3597,6 +4380,12 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { +@@ -3599,6 +4382,12 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { } } @@ -17729,27 +17759,7 @@ index 2edab21bb271405f200de5a19e9c748bb14aba7d..6b101ccddc811483cc1b8652685313ba protected void removeAfterChangingDimensions() { this.setRemoved(Entity.RemovalReason.CHANGED_DIMENSION); } -@@ -4041,17 +4830,13 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { - - // Paper start - public void startSeenByPlayer(ServerPlayer player) { -- if (io.papermc.paper.event.player.PlayerTrackEntityEvent.getHandlerList().getRegisteredListeners().length > 0) { -- new io.papermc.paper.event.player.PlayerTrackEntityEvent(player.getBukkitEntity(), this.getBukkitEntity()).callEvent(); -- } -+ // Folia - region threading - no - } - // Paper end - - // Paper start - public void stopSeenByPlayer(ServerPlayer player) { -- if(io.papermc.paper.event.player.PlayerUntrackEntityEvent.getHandlerList().getRegisteredListeners().length > 0) { -- new io.papermc.paper.event.player.PlayerUntrackEntityEvent(player.getBukkitEntity(), this.getBukkitEntity()).callEvent(); -- } -+ // Folia - region threading - no - } - // Paper end - -@@ -4546,7 +5331,8 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { +@@ -4536,7 +5325,8 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { } } // Paper end - fix MC-4 @@ -17759,7 +17769,7 @@ index 2edab21bb271405f200de5a19e9c748bb14aba7d..6b101ccddc811483cc1b8652685313ba synchronized (this.posLock) { // Paper this.position = new Vec3(x, y, z); } // Paper -@@ -4567,7 +5353,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { +@@ -4557,7 +5347,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { // Paper start - never allow AABB to become desynced from position // hanging has its own special logic @@ -17768,7 +17778,7 @@ index 2edab21bb271405f200de5a19e9c748bb14aba7d..6b101ccddc811483cc1b8652685313ba this.setBoundingBox(this.makeBoundingBox()); } // Paper end -@@ -4654,6 +5440,12 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { +@@ -4644,6 +5434,12 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { return this.removalReason != null; } @@ -18364,10 +18374,10 @@ index d3c15d029d5f003cba3c89f7ea1f3ed4f943f2bd..5f0436a399178aa374a5178d5050ec60 private static class TurtleMoveControl extends MoveControl { diff --git a/src/main/java/net/minecraft/world/entity/decoration/ItemFrame.java b/src/main/java/net/minecraft/world/entity/decoration/ItemFrame.java -index dcf245387f59ce730cb2cfb5fc0e837a20d3dfe5..f4258bbc420e8f2405136236e0554c8c8b0e5923 100644 +index 759ecd79534a7706f7d4a63eb9dacbefcfe54674..0344b1f77f23274c2932b5dce01b0ea6887078cf 100644 --- a/src/main/java/net/minecraft/world/entity/decoration/ItemFrame.java +++ b/src/main/java/net/minecraft/world/entity/decoration/ItemFrame.java -@@ -302,8 +302,10 @@ public class ItemFrame extends HangingEntity { +@@ -303,8 +303,10 @@ public class ItemFrame extends HangingEntity { MapItemSavedData worldmap = MapItem.getSavedData(i, this.level()); if (worldmap != null) { @@ -18774,7 +18784,7 @@ index 8385eb1d60f377da94e3178ab506feefb43563fd..2f57e5025d0a0e720f49da1e5231a7d9 entityvillagertrader.setWanderTarget(blockposition1); entityvillagertrader.restrictTo(blockposition1, 16); diff --git a/src/main/java/net/minecraft/world/entity/projectile/AbstractArrow.java b/src/main/java/net/minecraft/world/entity/projectile/AbstractArrow.java -index 7226be19248a1ffb8ff2c89b55882529d33a6c0c..ea3d0a50ff4effdf61ec3c6c99c378cbd816c83c 100644 +index fa885337085348308604e50049ecc5bb52023884..270b37a34de47bc9846442d58827e8ff5e35178c 100644 --- a/src/main/java/net/minecraft/world/entity/projectile/AbstractArrow.java +++ b/src/main/java/net/minecraft/world/entity/projectile/AbstractArrow.java @@ -149,6 +149,11 @@ public abstract class AbstractArrow extends Projectile { @@ -20126,7 +20136,7 @@ index 12eaafdbd324fa36b3f46c3b644bc8117a4123ad..c8c358a2ce567567159039ed6a1ba804 @Deprecated default boolean hasChunksAt(int minX, int minZ, int maxX, int maxZ) { diff --git a/src/main/java/net/minecraft/world/level/NaturalSpawner.java b/src/main/java/net/minecraft/world/level/NaturalSpawner.java -index 089dd93d4cd4c1f72e63c4944b3b82c1e2ba732d..8903a2db824377c2c3232d02f075f4e267a64dbd 100644 +index e85ddf92b4f6f044e2b5834a172f37d78e702ef3..a60e63dce1869c41fe4ff97901b7143e54d1a090 100644 --- a/src/main/java/net/minecraft/world/level/NaturalSpawner.java +++ b/src/main/java/net/minecraft/world/level/NaturalSpawner.java @@ -115,11 +115,7 @@ public final class NaturalSpawner { @@ -20191,6 +20201,19 @@ index 089dd93d4cd4c1f72e63c4944b3b82c1e2ba732d..8903a2db824377c2c3232d02f075f4e2 } } +@@ -279,11 +251,7 @@ public final class NaturalSpawner { + + // Paper start + PreSpawnStatus doSpawning = isValidSpawnPostitionForType(world, group, structuremanager, chunkgenerator, biomesettingsmobs_c, blockposition_mutableblockposition, d2); +- // Paper start - mob count backoff +- if (doSpawning == PreSpawnStatus.ABORT || doSpawning == PreSpawnStatus.CANCELLED) { +- world.getChunkSource().chunkMap.updateFailurePlayerMobTypeMap(blockposition_mutableblockposition.getX() >> 4, blockposition_mutableblockposition.getZ() >> 4, group); +- } +- // Paper end - mob count backoff ++ // Folia - region threading - revert per player mob caps + if (doSpawning == PreSpawnStatus.ABORT) { + return j; // Paper + } diff --git a/src/main/java/net/minecraft/world/level/ServerLevelAccessor.java b/src/main/java/net/minecraft/world/level/ServerLevelAccessor.java index 3d377b9e461040405e0a7dcbd72d1506b48eb44e..782890e227ff9dab44dd92327979c201985f116e 100644 --- a/src/main/java/net/minecraft/world/level/ServerLevelAccessor.java @@ -20270,7 +20293,7 @@ index d40500f9a807cab0b2fb6fa9032f33f4fb74c895..824d89c2c70c64f6b37155dcc2aa0f7b } // CraftBukkit end diff --git a/src/main/java/net/minecraft/world/level/block/Block.java b/src/main/java/net/minecraft/world/level/block/Block.java -index 9522e646529f3d849471931b4b3c0d133e7fcfc5..52dda8e8074e0f894d9ef95b46bd937dae629f14 100644 +index fdd9c61b7248e92dbcbec91cd6fe4c6310bba237..5a216545781ac5929d497834a74ec0b0b635a6b2 100644 --- a/src/main/java/net/minecraft/world/level/block/Block.java +++ b/src/main/java/net/minecraft/world/level/block/Block.java @@ -382,8 +382,8 @@ public class Block extends BlockBehaviour implements ItemLike { @@ -20365,7 +20388,7 @@ index 4720b884e1e311f44a012f1219fe648a411247b4..911dc79ea7c6343273ecfe8fa049c115 } diff --git a/src/main/java/net/minecraft/world/level/block/DoublePlantBlock.java b/src/main/java/net/minecraft/world/level/block/DoublePlantBlock.java -index 9db66b393e057d93a8025b803ae0ad2a1bca61f6..bace9a699aa6aeaec417434730a7ca6dd9983946 100644 +index 030b38d5d5d2578d6ef482a239ef58787efa3b08..c93a125445107d97db2a647d7b57b5f871d7e97a 100644 --- a/src/main/java/net/minecraft/world/level/block/DoublePlantBlock.java +++ b/src/main/java/net/minecraft/world/level/block/DoublePlantBlock.java @@ -95,7 +95,7 @@ public class DoublePlantBlock extends BushBlock { @@ -20969,7 +20992,7 @@ index b11f51762ca289d99eaa49e66e31e58595bcea4e..1eebd3969735bff3e5559ed01ab4a2ec flag = true; } else if (HopperBlockEntity.canMergeItems(itemstack1, stack)) { diff --git a/src/main/java/net/minecraft/world/level/block/entity/SculkCatalystBlockEntity.java b/src/main/java/net/minecraft/world/level/block/entity/SculkCatalystBlockEntity.java -index 8b2a02f85085c91c51b61760de967a859bf5e4de..eb8099e463eaae6268c4cb349ba88c111ccfc1be 100644 +index c429990e83304951ac995556d0424479f7e83c64..9b1503574f3aba2290a00f5730e65df8c936aac4 100644 --- a/src/main/java/net/minecraft/world/level/block/entity/SculkCatalystBlockEntity.java +++ b/src/main/java/net/minecraft/world/level/block/entity/SculkCatalystBlockEntity.java @@ -35,9 +35,9 @@ public class SculkCatalystBlockEntity extends BlockEntity implements GameEventLi @@ -20985,10 +21008,10 @@ index 8b2a02f85085c91c51b61760de967a859bf5e4de..eb8099e463eaae6268c4cb349ba88c11 @Override diff --git a/src/main/java/net/minecraft/world/level/block/entity/TheEndGatewayBlockEntity.java b/src/main/java/net/minecraft/world/level/block/entity/TheEndGatewayBlockEntity.java -index d9baa85962236c42219cf09d4f3129be93ff069c..f23174be9d198c9aaf654ff39483ecec5104a9e1 100644 +index 1ec80f9c901dff1c9f29befa5a8e3c3f6f37aaf7..53f70401fbed7f60507559a8e3d6dcd2400a1179 100644 --- a/src/main/java/net/minecraft/world/level/block/entity/TheEndGatewayBlockEntity.java +++ b/src/main/java/net/minecraft/world/level/block/entity/TheEndGatewayBlockEntity.java -@@ -51,9 +51,12 @@ public class TheEndGatewayBlockEntity extends TheEndPortalBlockEntity { +@@ -50,9 +50,12 @@ public class TheEndGatewayBlockEntity extends TheEndPortalBlockEntity { public long age; private int teleportCooldown; @Nullable @@ -21002,7 +21025,7 @@ index d9baa85962236c42219cf09d4f3129be93ff069c..f23174be9d198c9aaf654ff39483ecec public TheEndGatewayBlockEntity(BlockPos pos, BlockState state) { super(BlockEntityType.END_GATEWAY, pos, state); } -@@ -128,7 +131,7 @@ public class TheEndGatewayBlockEntity extends TheEndPortalBlockEntity { +@@ -127,7 +130,7 @@ public class TheEndGatewayBlockEntity extends TheEndPortalBlockEntity { } public static boolean canEntityTeleport(Entity entity) { @@ -21011,7 +21034,7 @@ index d9baa85962236c42219cf09d4f3129be93ff069c..f23174be9d198c9aaf654ff39483ecec } public boolean isSpawning() { -@@ -176,8 +179,136 @@ public class TheEndGatewayBlockEntity extends TheEndPortalBlockEntity { +@@ -175,8 +178,136 @@ public class TheEndGatewayBlockEntity extends TheEndPortalBlockEntity { } } @@ -21148,7 +21171,7 @@ index d9baa85962236c42219cf09d4f3129be93ff069c..f23174be9d198c9aaf654ff39483ecec ServerLevel worldserver = (ServerLevel) world; blockEntity.teleportCooldown = 100; -@@ -281,6 +412,129 @@ public class TheEndGatewayBlockEntity extends TheEndPortalBlockEntity { +@@ -280,6 +411,129 @@ public class TheEndGatewayBlockEntity extends TheEndPortalBlockEntity { return TheEndGatewayBlockEntity.findTallestBlock(world, blockposition1, 16, true); } @@ -21443,10 +21466,10 @@ index 204f008dc36212e696fba781fede88044b2f735a..1bc2b24deba7a534478184a6a3f3d411 // Paper end 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 8bab3fcfc6aa6c0b37621474a69f15e94bda2113..dfae4b5bb0b7e0439c916bc470b32622e96187ea 100644 +index d5c2a608e1b4c8099c96b33d9d758e968350a46d..1a4da589142c515e713d879095b105de4b913bd3 100644 --- a/src/main/java/net/minecraft/world/level/chunk/ChunkGenerator.java +++ b/src/main/java/net/minecraft/world/level/chunk/ChunkGenerator.java -@@ -317,7 +317,7 @@ public abstract class ChunkGenerator { +@@ -320,7 +320,7 @@ public abstract class ChunkGenerator { } private static boolean tryAddReference(StructureManager structureAccessor, StructureStart start) { @@ -21668,7 +21691,7 @@ index 9c6a2884c34a9f6e775103da42480cd6b8c693b3..bc938c2a4cb30f3151b600ab88ca5c4e nbt.put("block_ticks", tickSchedulers.blocks().save(i, (block) -> { return BuiltInRegistries.BLOCK.getKey(block).toString(); diff --git a/src/main/java/net/minecraft/world/level/dimension/end/EndDragonFight.java b/src/main/java/net/minecraft/world/level/dimension/end/EndDragonFight.java -index 02d5a5b799bfe90993bc6868369d31f43d5b7fd6..df853355205164caf12cdf43f36c03d6150ce7ef 100644 +index 5b333bef255d7ef61c99510837536920c6fb6e8c..0ef4ccdb0b0468ac7c2f37635723f9b57914a9c4 100644 --- a/src/main/java/net/minecraft/world/level/dimension/end/EndDragonFight.java +++ b/src/main/java/net/minecraft/world/level/dimension/end/EndDragonFight.java @@ -76,7 +76,7 @@ public class EndDragonFight { @@ -21677,7 +21700,7 @@ index 02d5a5b799bfe90993bc6868369d31f43d5b7fd6..df853355205164caf12cdf43f36c03d6 public final ServerLevel level; - private final BlockPos origin; + public final BlockPos origin; // Folia - region threading - private final ObjectArrayList gateways; + public final ObjectArrayList gateways; private final BlockPattern exitPortalPattern; private int ticksSinceDragonSeen; @@ -152,7 +152,7 @@ public class EndDragonFight { @@ -21714,7 +21737,7 @@ index 02d5a5b799bfe90993bc6868369d31f43d5b7fd6..df853355205164caf12cdf43f36c03d6 return false; } -@@ -513,6 +518,11 @@ public class EndDragonFight { +@@ -531,6 +536,11 @@ public class EndDragonFight { } public void onCrystalDestroyed(EndCrystal enderCrystal, DamageSource source) { @@ -21726,10 +21749,10 @@ index 02d5a5b799bfe90993bc6868369d31f43d5b7fd6..df853355205164caf12cdf43f36c03d6 if (this.respawnStage != null && this.respawnCrystals.contains(enderCrystal)) { EndDragonFight.LOGGER.debug("Aborting respawn sequence"); this.respawnStage = null; -@@ -535,7 +545,7 @@ public class EndDragonFight { - } +@@ -559,7 +569,7 @@ public class EndDragonFight { - public boolean tryRespawn() { // CraftBukkit - return boolean + public boolean tryRespawn(@Nullable BlockPos placedEndCrystalPos) { // placedEndCrystalPos is null if the tryRespawn() call was not caused by a placed end crystal + // Paper end - if (this.dragonKilled && this.respawnStage == null) { + if (this.dragonKilled && this.respawnStage == null && io.papermc.paper.util.TickThread.isTickThreadFor(this.level, this.origin)) { // Folia - region threading BlockPos blockposition = this.portalLocation; @@ -21891,7 +21914,7 @@ index 6570e0b61d7602c57c61398ddce50418d0719ff2..bcee13beed247f7830ee85d099c367db protected int getMaxReferences() { diff --git a/src/main/java/net/minecraft/world/level/portal/PortalForcer.java b/src/main/java/net/minecraft/world/level/portal/PortalForcer.java -index 9b38f4c81ca9ef0f91f9d59fc2be4eecc1afc165..3e883ecd5debe122ed968f94f831d6f5e0ec79d3 100644 +index 42212d4533ce25d1cfcf4c58f1fc88791d546cff..fa33c8e40bad9411e1a03899d2c370806f6eba24 100644 --- a/src/main/java/net/minecraft/world/level/portal/PortalForcer.java +++ b/src/main/java/net/minecraft/world/level/portal/PortalForcer.java @@ -89,10 +89,10 @@ public class PortalForcer { @@ -21976,7 +21999,7 @@ index 9b2948b5150c8f039ca667a50765109721b93947..1b76e4edce628f2b25815e28cd4cb750 } } diff --git a/src/main/java/net/minecraft/world/level/saveddata/maps/MapItemSavedData.java b/src/main/java/net/minecraft/world/level/saveddata/maps/MapItemSavedData.java -index 3b12030b49b1c539684d75ca3896eb498400ef99..2b862066388cfede202a0c709f93ae89e2d17b30 100644 +index 50713f03c783c63f93710d986d94af544be0615a..cb5eaaa04fe9cc820b9f4f893e81ef0a73be3fe8 100644 --- a/src/main/java/net/minecraft/world/level/saveddata/maps/MapItemSavedData.java +++ b/src/main/java/net/minecraft/world/level/saveddata/maps/MapItemSavedData.java @@ -185,7 +185,7 @@ public class MapItemSavedData extends SavedData { @@ -22315,7 +22338,7 @@ index 1d7c663fa0e550bd0cfb9a4b83ccd7e2968666f0..f3df9c9b6cff85565514f990597f3fe5 LevelChunkTicks levelChunkTicks = this.allContainers.get(l); if (levelChunkTicks == null) { diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index 15b17004cd1430131caf36423d3fd1461f47b029..deb6836d57ae5bc5fed74fd9290c5a3abdc7f8ea 100644 +index 3cb207d02824af2c688e0ac9ea81860569042d65..a6ba1d101dc23b8c27a1498f3f0d21270dfcc18c 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java @@ -307,7 +307,7 @@ public final class CraftServer implements Server { @@ -22395,7 +22418,7 @@ index 15b17004cd1430131caf36423d3fd1461f47b029..deb6836d57ae5bc5fed74fd9290c5a3a // Paper Start if (!org.spigotmc.AsyncCatcher.shuttingDown && !Bukkit.isPrimaryThread()) { final CommandSender fSender = sender; -@@ -3090,7 +3131,7 @@ public final class CraftServer implements Server { +@@ -3120,7 +3161,7 @@ public final class CraftServer implements Server { @Override public int getCurrentTick() { @@ -22405,7 +22428,7 @@ index 15b17004cd1430131caf36423d3fd1461f47b029..deb6836d57ae5bc5fed74fd9290c5a3a @Override diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -index 550dcb7d595221b221e4710890d8a3cad789fc07..723ae4b75c84fe952377c02d42cf7a710f7047ea 100644 +index f857f490ffba2f25f7c06c5fb1a1905f0b51fbe2..2c19648e68c8d25bd295e2a37ce701bb3cf61e29 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java @@ -183,7 +183,7 @@ public class CraftWorld extends CraftRegionAccessor implements World { @@ -22859,7 +22882,7 @@ index a3d5e319473e2f6316b3ef8edf719296e02d85a1..55abed5fdf8dc699ade5b25b1f194941 tileentitybeehive.addOccupantWithPresetTicks(entitybee, false, random.nextInt(599)); } diff --git a/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java b/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java -index 5401ab9f8f6ce12e1c5368dbc3acc78a250b3822..66ee61f27dc435e27c4792b6cf4f320b91a54c57 100644 +index f3ac362b7b65a5273ff5fdad1d8065c5f654a53a..33274e865af871d0c5827681badf04abdf780af2 100644 --- a/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java +++ b/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java @@ -79,6 +79,11 @@ public class CraftBlock implements Block { @@ -23027,19 +23050,7 @@ index 5401ab9f8f6ce12e1c5368dbc3acc78a250b3822..66ee61f27dc435e27c4792b6cf4f320b Preconditions.checkArgument(data != null, "BlockData cannot be null"); net.minecraft.world.level.block.state.BlockState iblockdata = ((CraftBlockData) data).getState(); net.minecraft.world.level.Level world = this.world.getMinecraftWorld(); -@@ -734,6 +795,11 @@ public class CraftBlock implements Block { - - @Override - public float getDestroySpeed(ItemStack itemStack, boolean considerEnchants) { -+ // Folia start - region threading -+ if (world instanceof ServerLevel serverWorld) { -+ io.papermc.paper.util.TickThread.ensureTickThread(serverWorld, position, "Cannot read world asynchronously"); -+ } -+ // Folia end - region threading - net.minecraft.world.item.ItemStack nmsItemStack; - if (itemStack instanceof CraftItemStack) { - nmsItemStack = ((CraftItemStack) itemStack).handle; -@@ -759,6 +825,11 @@ public class CraftBlock implements Block { +@@ -738,6 +799,11 @@ public class CraftBlock implements Block { @Override public void tick() { @@ -23051,7 +23062,7 @@ index 5401ab9f8f6ce12e1c5368dbc3acc78a250b3822..66ee61f27dc435e27c4792b6cf4f320b net.minecraft.world.level.block.state.BlockState blockData = this.getNMS(); net.minecraft.server.level.ServerLevel level = this.world.getMinecraftWorld(); -@@ -767,6 +838,11 @@ public class CraftBlock implements Block { +@@ -746,6 +812,11 @@ public class CraftBlock implements Block { @Override public void randomTick() { @@ -23113,10 +23124,10 @@ index cd4ad8261e56365850068db1d83d6a8454026737..78f7e72f2912dae503c2dab7d1992b65 List offers = waitable.get(); if (offers == null) { diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java -index fc0dc8e607cc24020106ea1af92b4421a5f9393d..dafac02b73326aa04093f16ac2f142004abe26be 100644 +index 2dbe8b870fd39b4d22e9725912f443757ae70761..cba19dc27925b38f48182726a8ed6f3691ce87cc 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java -@@ -576,6 +576,11 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity { +@@ -582,6 +582,11 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity { @Override public boolean teleport(Location location, TeleportCause cause, io.papermc.paper.entity.TeleportFlag... flags) { @@ -23128,7 +23139,7 @@ index fc0dc8e607cc24020106ea1af92b4421a5f9393d..dafac02b73326aa04093f16ac2f14200 // Paper end Preconditions.checkArgument(location != null, "location cannot be null"); location.checkFinite(); -@@ -1252,7 +1257,7 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity { +@@ -1277,7 +1282,7 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity { } ServerLevel world = ((CraftWorld) this.getWorld()).getHandle(); @@ -23137,7 +23148,7 @@ index fc0dc8e607cc24020106ea1af92b4421a5f9393d..dafac02b73326aa04093f16ac2f14200 if (entityTracker == null) { return; -@@ -1316,30 +1321,43 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity { +@@ -1341,30 +1346,43 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity { Preconditions.checkArgument(location != null, "location"); location.checkFinite(); Location locationClone = location.clone(); // clone so we don't need to worry about mutations after this call. @@ -23202,10 +23213,10 @@ index fc0dc8e607cc24020106ea1af92b4421a5f9393d..dafac02b73326aa04093f16ac2f14200 @Override diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index 5bbded65095dccfadaf7576fc41b5f62974878b4..1da2e14d6fa557625835af7a3f003c4e9bb0f40e 100644 +index 4e6fea7cf11b1e29ae7c7098a6f5d06bb5f93cc2..2d9667e4af4629982d449249169bb55d2112dd26 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -@@ -582,7 +582,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -589,7 +589,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player { @Override public void kickPlayer(String message) { @@ -23214,7 +23225,7 @@ index 5bbded65095dccfadaf7576fc41b5f62974878b4..1da2e14d6fa557625835af7a3f003c4e if (this.getHandle().connection == null) return; this.getHandle().connection.disconnect(message == null ? "" : message, org.bukkit.event.player.PlayerKickEvent.Cause.PLUGIN); // Paper - kick event cause -@@ -1299,6 +1299,11 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -1306,6 +1306,11 @@ public class CraftPlayer extends CraftHumanEntity implements Player { @Override public boolean teleport(Location location, org.bukkit.event.player.PlayerTeleportEvent.TeleportCause cause, io.papermc.paper.entity.TeleportFlag... flags) { @@ -23226,7 +23237,7 @@ index 5bbded65095dccfadaf7576fc41b5f62974878b4..1da2e14d6fa557625835af7a3f003c4e java.util.Set relativeArguments; java.util.Set allFlags; if (flags.length == 0) { -@@ -1881,7 +1886,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -1888,7 +1893,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player { private void unregisterEntity(Entity other) { // Paper end ChunkMap tracker = ((ServerLevel) this.getHandle().level()).getChunkSource().chunkMap; @@ -23235,8 +23246,8 @@ index 5bbded65095dccfadaf7576fc41b5f62974878b4..1da2e14d6fa557625835af7a3f003c4e if (entry != null) { entry.removePlayer(this.getHandle()); } -@@ -1965,7 +1970,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player { - this.getHandle().connection.send(ClientboundPlayerInfoUpdatePacket.createPlayerInitializing(List.of(otherPlayer))); +@@ -1985,7 +1990,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player { + if (original != null) otherPlayer.setUUID(original); // Paper - uuid override } - ChunkMap.TrackedEntity entry = tracker.entityMap.get(other.getId()); @@ -23245,7 +23256,7 @@ index 5bbded65095dccfadaf7576fc41b5f62974878b4..1da2e14d6fa557625835af7a3f003c4e entry.updatePlayer(this.getHandle()); } diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -index 26e1a9002d675245d4cf91e6682605314b078fb2..3c4b6ebfaa706f2635f53f9382b288da3cae1699 100644 +index 090b1ee57ddef58ca71469ad860960f66da7d5a2..8bfb6899ee03e5aabfc4f49f14028a40dde4e4b6 100644 --- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java +++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java @@ -242,8 +242,8 @@ import org.bukkit.potion.PotionEffect; @@ -23344,7 +23355,7 @@ index 26e1a9002d675245d4cf91e6682605314b078fb2..3c4b6ebfaa706f2635f53f9382b288da if (source.is(DamageTypes.FALLING_STALACTITE) || source.is(DamageTypes.FALLING_BLOCK) || source.is(DamageTypes.FALLING_ANVIL)) { cause = DamageCause.FALLING_BLOCK; } else if (damager instanceof LightningStrike) { -@@ -2063,7 +2063,7 @@ public class CraftEventFactory { +@@ -2074,7 +2074,7 @@ public class CraftEventFactory { CraftItemStack craftItem = CraftItemStack.asCraftMirror(itemStack.copyWithCount(1)); org.bukkit.event.block.BlockDispenseEvent event = new org.bukkit.event.block.BlockDispenseEvent(bukkitBlock, craftItem.clone(), new org.bukkit.util.Vector(to.getX(), to.getY(), to.getZ())); @@ -23366,7 +23377,7 @@ index d7ce4971d9271dbeff4adb9d852e4e7bdf60bf03..eb84a8dd97f92de4a7dd3826d9e124a4 if (!this.isAsyncScheduler && !task.isSync()) { this.asyncScheduler.handle(task, delay); diff --git a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java -index 83cef5ec27c31f133a23cd27349f722799c786ea..61e40979a68017eb730f14a1a0978402f44c1865 100644 +index 719e7103f7dfdc30f1cefd24a3fa572fa0ac8b1e..a4880371e3ec097b8bea8ecb74cbf3b9422e5afe 100644 --- a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java +++ b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java @@ -373,6 +373,12 @@ public final class CraftMagicNumbers implements UnsafeValues { diff --git a/patches/server/0004-Max-pending-logins.patch b/patches/server/0004-Max-pending-logins.patch index a24aca1b1b..e657330d60 100644 --- a/patches/server/0004-Max-pending-logins.patch +++ b/patches/server/0004-Max-pending-logins.patch @@ -19,7 +19,7 @@ index 2e96377d628b3a07fb565020074d665f594f32e8..75b1877f8c3e4da3183437f327ef3376 } // Folia - region threading - remove delayed accept diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index a4bf2bd466bbe306b6ecec43c8bd797ebfdc34c5..92b30f5b61d1025d526c8bd7b820f83037fe8510 100644 +index 82c7235ad9f4bc4a9f6e018c9905d49790396918..1f70b0810ab992851662fe27c7522bc9eabf5f5f 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java @@ -180,6 +180,17 @@ public abstract class PlayerList { diff --git a/patches/server/0006-Make-CraftEntity-getHandle-and-overrides-perform-thr.patch b/patches/server/0006-Make-CraftEntity-getHandle-and-overrides-perform-thr.patch index 694b66d549..53f96d718c 100644 --- a/patches/server/0006-Make-CraftEntity-getHandle-and-overrides-perform-thr.patch +++ b/patches/server/0006-Make-CraftEntity-getHandle-and-overrides-perform-thr.patch @@ -29,10 +29,10 @@ index 41bf71d116ffc5431586ce54abba7f8def6c1dcf..519da6886613b8460e989767b1a21e31 } diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 6b101ccddc811483cc1b8652685313baa06cae30..8b28f6fed78cbad95b7943efb05099edd9eeed57 100644 +index 71830b5fbeda3c7c63460c7cee05217dcc084882..fa35d2c1c8de225acd68e08f15976c92f7ab82aa 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -2819,6 +2819,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { +@@ -2821,6 +2821,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { if (!force && (!this.canRide(entity) || !entity.canAddPassenger(this))) { return false; } else { @@ -40,7 +40,7 @@ index 6b101ccddc811483cc1b8652685313baa06cae30..8b28f6fed78cbad95b7943efb05099ed // CraftBukkit start if (entity.getBukkitEntity() instanceof Vehicle && this.getBukkitEntity() instanceof LivingEntity) { VehicleEnterEvent event = new VehicleEnterEvent((Vehicle) entity.getBukkitEntity(), this.getBukkitEntity()); -@@ -2840,6 +2841,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { +@@ -2842,6 +2843,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { if (event.isCancelled()) { return false; } @@ -48,7 +48,7 @@ index 6b101ccddc811483cc1b8652685313baa06cae30..8b28f6fed78cbad95b7943efb05099ed // Spigot end if (this.isPassenger()) { this.stopRiding(); -@@ -2922,6 +2924,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { +@@ -2924,6 +2926,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { throw new IllegalStateException("Use x.stopRiding(y), not y.removePassenger(x)"); } else { // CraftBukkit start @@ -56,7 +56,7 @@ index 6b101ccddc811483cc1b8652685313baa06cae30..8b28f6fed78cbad95b7943efb05099ed CraftEntity craft = (CraftEntity) entity.getBukkitEntity().getVehicle(); Entity orig = craft == null ? null : craft.getHandle(); if (this.getBukkitEntity() instanceof Vehicle && entity.getBukkitEntity() instanceof LivingEntity) { -@@ -2949,6 +2952,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { +@@ -2951,6 +2954,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { if (event.isCancelled()) { return false; } @@ -183,10 +183,10 @@ index f6d9ccc993a067e554d6a7ef98c5fff1392efaef..69118f8ff00755ba1c31845a2704dd95 } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftAllay.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftAllay.java -index debccfa7cb5517a877c06b13468db57534ace77e..18044b45cc001739406f8151c54f06b5d70d17e0 100644 +index dc19a0ad99deed9cc71c243322e375b740db7a9b..87f5073b02d5989ee0adde4f22becabb42a90651 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftAllay.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftAllay.java -@@ -17,8 +17,16 @@ public class CraftAllay extends CraftCreature implements org.bukkit.entity.Allay +@@ -16,8 +16,16 @@ public class CraftAllay extends CraftCreature implements org.bukkit.entity.Allay super(server, entity); } @@ -204,10 +204,10 @@ index debccfa7cb5517a877c06b13468db57534ace77e..18044b45cc001739406f8151c54f06b5 } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftAmbient.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftAmbient.java -index 91573773dba9ca008d209bb4f9c11e82b9d33d26..93d9b4c40aa545d57650a411316210d193a6d3d7 100644 +index 2a477dcd9d31a251868e342d1e7f5b9b58ddf66f..4ce13017e17bc327547ce4dd2dba7a5eff9e444f 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftAmbient.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftAmbient.java -@@ -10,8 +10,16 @@ public class CraftAmbient extends CraftMob implements Ambient { +@@ -9,8 +9,16 @@ public class CraftAmbient extends CraftMob implements Ambient { super(server, entity); } @@ -246,10 +246,10 @@ index 56bc26f227b97e8e935a20c6393d3f2eb806b285..5cf8ea3a7dd4e8ea96ca6061aa1aaefc } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftAreaEffectCloud.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftAreaEffectCloud.java -index c73a9c930c6fa3a7b85986048dca8dc11aa05238..fb5df44773c478c1418a63429b15b96e2efd5f9a 100644 +index 00201cf495355939a4f35306b0e7b130c07e5c02..fd0e0eee97c3872cebeb66dabf895ccfa40a6392 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftAreaEffectCloud.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftAreaEffectCloud.java -@@ -26,8 +26,16 @@ public class CraftAreaEffectCloud extends CraftEntity implements AreaEffectCloud +@@ -25,8 +25,16 @@ public class CraftAreaEffectCloud extends CraftEntity implements AreaEffectCloud super(server, entity); } @@ -267,11 +267,11 @@ index c73a9c930c6fa3a7b85986048dca8dc11aa05238..fb5df44773c478c1418a63429b15b96e } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftArmorStand.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftArmorStand.java -index 17d08d2c90047ebfc4098b087be091b83111a40f..f678c151938ddd3e5277a05d6d8884c12b114336 100644 +index dc26be80f2c1f058451c0d446165bc78a0ff8c47..774f0f90ad66a0f5f33d1008c036ff515937b18c 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftArmorStand.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftArmorStand.java -@@ -26,8 +26,16 @@ public class CraftArmorStand extends CraftLivingEntity implements ArmorStand { - return EntityType.ARMOR_STAND; +@@ -20,8 +20,16 @@ public class CraftArmorStand extends CraftLivingEntity implements ArmorStand { + return "CraftArmorStand"; } + // Folia start - region threading @@ -288,10 +288,10 @@ index 17d08d2c90047ebfc4098b087be091b83111a40f..f678c151938ddd3e5277a05d6d8884c1 } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftArrow.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftArrow.java -index 10e2d251ec398245786a0b3bd41f3bc7155a49fe..6050a3209d893dc4b1f65f14f815840390c14eb0 100644 +index 9f30946c7a198e2a277b65c02fcd75570c5dbad6..8c73acf622e04a7a43b1be3bf96a5420d4caa2e0 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftArrow.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftArrow.java -@@ -143,8 +143,16 @@ public class CraftArrow extends AbstractProjectile implements AbstractArrow { +@@ -142,8 +142,16 @@ public class CraftArrow extends AbstractProjectile implements AbstractArrow { this.getHandle().setShotFromCrossbow(shotFromCrossbow); } @@ -309,10 +309,10 @@ index 10e2d251ec398245786a0b3bd41f3bc7155a49fe..6050a3209d893dc4b1f65f14f8158403 } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftAxolotl.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftAxolotl.java -index a82acbbe62bf6aa497e627587e2f3b9be2fbf487..dec03f00091ca781f0eaa4063649883f47040b07 100644 +index cbfca242f820d238b112f8ce64e9de8398c48a1c..c5f0cd5e69a20f1fffcd017385bf9fab59630ffc 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftAxolotl.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftAxolotl.java -@@ -11,8 +11,16 @@ public class CraftAxolotl extends CraftAnimals implements Axolotl, io.papermc.pa +@@ -10,8 +10,16 @@ public class CraftAxolotl extends CraftAnimals implements Axolotl, io.papermc.pa super(server, entity); } @@ -330,10 +330,10 @@ index a82acbbe62bf6aa497e627587e2f3b9be2fbf487..dec03f00091ca781f0eaa4063649883f } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftBat.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftBat.java -index e405488ba5e0159ff84a72fac1d2da6e9c45238e..631250c15711d0912d2ae34efed02d78d20a0098 100644 +index 7592ecac3d0893974d9d22ce40c50f1008ab9695..83d5d7503f1c4988f057743331c6f1eb7c5b57d9 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftBat.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftBat.java -@@ -9,8 +9,16 @@ public class CraftBat extends CraftAmbient implements Bat { +@@ -8,8 +8,16 @@ public class CraftBat extends CraftAmbient implements Bat { super(server, entity); } @@ -351,10 +351,10 @@ index e405488ba5e0159ff84a72fac1d2da6e9c45238e..631250c15711d0912d2ae34efed02d78 } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftBee.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftBee.java -index e222a6ab6afbc43a3d358a79855a818b0e481fdb..1e636646e3baa7a77c008d9109e0dccfbc497d6e 100644 +index 17608e0e8cc5288905d2e42ae1429f7d947511fb..b486054e5e9c543cf5e6f2b4356a9f843242cd34 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftBee.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftBee.java -@@ -14,8 +14,16 @@ public class CraftBee extends CraftAnimals implements Bee { +@@ -13,8 +13,16 @@ public class CraftBee extends CraftAnimals implements Bee { super(server, entity); } @@ -372,10 +372,10 @@ index e222a6ab6afbc43a3d358a79855a818b0e481fdb..1e636646e3baa7a77c008d9109e0dccf } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftBlaze.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftBlaze.java -index 84cd915955188492696e5948fbb1c4eca0cca039..7dfbf7f7a94eae0c62d6830d459c34784a7e518c 100644 +index 6be071da0637a97123c5100c4e7a2af2c5e83d7e..28edb6913d70c18512fc117735260aa707c2224c 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftBlaze.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftBlaze.java -@@ -9,8 +9,16 @@ public class CraftBlaze extends CraftMonster implements Blaze { +@@ -8,8 +8,16 @@ public class CraftBlaze extends CraftMonster implements Blaze { super(server, entity); } @@ -393,10 +393,10 @@ index 84cd915955188492696e5948fbb1c4eca0cca039..7dfbf7f7a94eae0c62d6830d459c3478 } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftBlockDisplay.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftBlockDisplay.java -index 2592a838b1b1fe4db98b95327dfd4f9774a0390b..29ac4ef7d2ed35e10df539b055db087f741fe4b6 100644 +index dd91de8f24c27b9318c2a898a49991d74c100bff..d7c34f601ce66a6b090ec431a0503462865155a8 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftBlockDisplay.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftBlockDisplay.java -@@ -13,8 +13,16 @@ public class CraftBlockDisplay extends CraftDisplay implements BlockDisplay { +@@ -12,8 +12,16 @@ public class CraftBlockDisplay extends CraftDisplay implements BlockDisplay { super(server, entity); } @@ -414,10 +414,10 @@ index 2592a838b1b1fe4db98b95327dfd4f9774a0390b..29ac4ef7d2ed35e10df539b055db087f } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftBoat.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftBoat.java -index dd7076938b04d4b36e3360a883bae81ced455fda..6671a86496394a786034cab7defa8126b55e8d5e 100644 +index 338e5ec5a518f9542e82ad43efeaa2a8cf04af42..85842cdf946e69398e6f64fa1b6d2315519780e0 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftBoat.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftBoat.java -@@ -92,8 +92,16 @@ public class CraftBoat extends CraftVehicle implements Boat { +@@ -102,8 +102,16 @@ public class CraftBoat extends CraftVehicle implements Boat { return CraftBoat.boatStatusFromNms(this.getHandle().status); } @@ -435,10 +435,10 @@ index dd7076938b04d4b36e3360a883bae81ced455fda..6671a86496394a786034cab7defa8126 } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftCamel.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftCamel.java -index 509232424f6596d0ac43ba0d59b24e2bbdcbed0f..17dc189187e343db0e91f642a2edc782c6419ab9 100644 +index 80e571c977db5cdf43bfbfce035f37a3fa325c95..6fafba37dd7128a397ba046be7b33067c9e88f25 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftCamel.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftCamel.java -@@ -12,8 +12,16 @@ public class CraftCamel extends CraftAbstractHorse implements Camel { +@@ -11,8 +11,16 @@ public class CraftCamel extends CraftAbstractHorse implements Camel { super(server, entity); } @@ -456,10 +456,10 @@ index 509232424f6596d0ac43ba0d59b24e2bbdcbed0f..17dc189187e343db0e91f642a2edc782 } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftCat.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftCat.java -index 273a062090f4c6f6ffd5a4238623b32af497f6b6..d2d54ba55b65108c7fdff6e6850982351f6127a6 100644 +index 533a339a2c7369475f1a66ae2c8bb1df04914614..d4e3baefd84a10e29ce1156608d36ecffbd7b634 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftCat.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftCat.java -@@ -14,8 +14,16 @@ public class CraftCat extends CraftTameableAnimal implements Cat { +@@ -13,8 +13,16 @@ public class CraftCat extends CraftTameableAnimal implements Cat { super(server, entity); } @@ -477,10 +477,10 @@ index 273a062090f4c6f6ffd5a4238623b32af497f6b6..d2d54ba55b65108c7fdff6e685098235 } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftCaveSpider.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftCaveSpider.java -index f7e2b55ac149fa421d5733c2c6a103eb6ef45ef4..86fee0d40a9dc6a18ec19dc3d85978f38b8d1cd0 100644 +index 2d897ded3cb95d988aa3d99d69e904936c7ca8e7..8eaced8d8528d25d3b69816c8ec67e8f44030f6d 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftCaveSpider.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftCaveSpider.java -@@ -9,8 +9,16 @@ public class CraftCaveSpider extends CraftSpider implements CaveSpider { +@@ -8,8 +8,16 @@ public class CraftCaveSpider extends CraftSpider implements CaveSpider { super(server, entity); } @@ -498,10 +498,10 @@ index f7e2b55ac149fa421d5733c2c6a103eb6ef45ef4..86fee0d40a9dc6a18ec19dc3d85978f3 } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftChestBoat.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftChestBoat.java -index 06a96f027f90fd5bf05de72c8722ff5a81608b66..0c9400446c2c69e4bd95d167c61ffe22442b4d35 100644 +index c332e8504b96a4437325b5a64430c97c5afb6b4b..6f4ee6e3224a25a121a8075929597c5acb691fd2 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftChestBoat.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftChestBoat.java -@@ -19,8 +19,16 @@ public class CraftChestBoat extends CraftBoat implements org.bukkit.entity.Chest +@@ -18,8 +18,16 @@ public class CraftChestBoat extends CraftBoat implements org.bukkit.entity.Chest this.inventory = new CraftInventory(entity); } @@ -540,10 +540,10 @@ index 40ee96e31dea64ab3a77553dbb6daad001736f2e..1a9986acde12881e32db67b9e7263072 } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftChicken.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftChicken.java -index fd87f979ee207dac13e4028d76bdd40911509e56..7066741a251d24c754058aa2553b9430de5b42d3 100644 +index 5e0b611db52452c00bf3cd2fc07dd713f238a581..f4858d41c482cc91322cd68cf00a73e2d46cbe18 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftChicken.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftChicken.java -@@ -10,8 +10,16 @@ public class CraftChicken extends CraftAnimals implements Chicken { +@@ -9,8 +9,16 @@ public class CraftChicken extends CraftAnimals implements Chicken { super(server, entity); } @@ -561,10 +561,10 @@ index fd87f979ee207dac13e4028d76bdd40911509e56..7066741a251d24c754058aa2553b9430 } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftCod.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftCod.java -index 801ed8241cad4ac890a6d99cd19a3dd7490d9339..f3b587295e90f58b0885bc3c7070b62f3cf7805d 100644 +index 63e6b07e3b159c74d9ef17be20b5ab43d07f0f5f..7e3a560ff4a3d56e52534eb909eaf60424b84514 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftCod.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftCod.java -@@ -10,8 +10,16 @@ public class CraftCod extends io.papermc.paper.entity.PaperSchoolableFish implem +@@ -9,8 +9,16 @@ public class CraftCod extends io.papermc.paper.entity.PaperSchoolableFish implem super(server, entity); } @@ -582,10 +582,10 @@ index 801ed8241cad4ac890a6d99cd19a3dd7490d9339..f3b587295e90f58b0885bc3c7070b62f } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftComplexPart.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftComplexPart.java -index cdc000f3fd4d39c1f2ff9dc820eeb019c57bdfa0..54aaee0d0d72c76a02e1ab5d51c47b26b6d08b93 100644 +index c59bd22ba9df070e63e23372e52ba43686a06aa4..3a615a61fedaacb7845fe9c07d4aa3d9e76b2c51 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftComplexPart.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftComplexPart.java -@@ -33,8 +33,16 @@ public class CraftComplexPart extends CraftEntity implements ComplexEntityPart { +@@ -32,8 +32,16 @@ public class CraftComplexPart extends CraftEntity implements ComplexEntityPart { return this.getParent().isValid(); } @@ -603,10 +603,10 @@ index cdc000f3fd4d39c1f2ff9dc820eeb019c57bdfa0..54aaee0d0d72c76a02e1ab5d51c47b26 } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftCow.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftCow.java -index c7545c8a7272cb28d97e23c15a31e33477a7d96e..a8514a688a6fe4f19000f8f127b0a1277e4f754d 100644 +index b893974440b2f1e6976f52ca663244bf6e2bbc12..646415cf9da4148a32f4d703f009dbb48393897e 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftCow.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftCow.java -@@ -10,8 +10,16 @@ public class CraftCow extends CraftAnimals implements Cow { +@@ -9,8 +9,16 @@ public class CraftCow extends CraftAnimals implements Cow { super(server, entity); } @@ -645,10 +645,10 @@ index 5bc62af195a7b11182d411296c978b4f6f5f837f..062a625e178ac9bbbb26f3d6548fb663 } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftCreeper.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftCreeper.java -index 63a8188010f045d5c17a1ecb63e8081ec86c2960..24c6c26f0930940f88bdd0353d660ff31a0d7c33 100644 +index 6ccb32786b3abe1109dcc2d083cd231b70d8c6b4..c3a489167197ab6392491257d9d11d8077fe4957 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftCreeper.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftCreeper.java -@@ -80,8 +80,16 @@ public class CraftCreeper extends CraftMonster implements Creeper { +@@ -79,8 +79,16 @@ public class CraftCreeper extends CraftMonster implements Creeper { this.getHandle().ignite(); } @@ -666,10 +666,10 @@ index 63a8188010f045d5c17a1ecb63e8081ec86c2960..24c6c26f0930940f88bdd0353d660ff3 } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftDisplay.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftDisplay.java -index 2f7bf9963c3adfc9d2475a86e53a7dcf9f386bfe..e5ffc16d4d5595a7065119c97293f5b419b5a274 100644 +index 2fd4a8a495fd8f750fbac4fb3c571e1303fd1fab..979a26b3fc9989c0c61971fd20163f1630ddd9da 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftDisplay.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftDisplay.java -@@ -13,8 +13,16 @@ public class CraftDisplay extends CraftEntity implements Display { +@@ -12,8 +12,16 @@ public class CraftDisplay extends CraftEntity implements Display { super(server, entity); } @@ -687,10 +687,10 @@ index 2f7bf9963c3adfc9d2475a86e53a7dcf9f386bfe..e5ffc16d4d5595a7065119c97293f5b4 } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftDolphin.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftDolphin.java -index 18623159932df2dd5e43133b4396b43731693780..66f3a67ea0a81d4cfff8365ed055fff6967360b7 100644 +index f93f8f6509b12eb9b1e07c829278bb0822dd7988..c693daa86c2e44165ca6a293563670dc82f30eb2 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftDolphin.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftDolphin.java -@@ -10,8 +10,16 @@ public class CraftDolphin extends CraftWaterMob implements Dolphin { +@@ -9,8 +9,16 @@ public class CraftDolphin extends CraftWaterMob implements Dolphin { super(server, entity); } @@ -708,10 +708,10 @@ index 18623159932df2dd5e43133b4396b43731693780..66f3a67ea0a81d4cfff8365ed055fff6 } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftDrowned.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftDrowned.java -index 03e2acd4829da449a471b0fa1a311e74aee114d3..921a36e31f531ab43e9040463f66d8c081469ef4 100644 +index 14b575254171f66b8792033c93cf5a325a42b467..b7c805ab1b2e4c8abd2728bcd17afab0979efc2d 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftDrowned.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftDrowned.java -@@ -10,8 +10,16 @@ public class CraftDrowned extends CraftZombie implements Drowned, com.destroysto +@@ -9,8 +9,16 @@ public class CraftDrowned extends CraftZombie implements Drowned, com.destroysto super(server, entity); } @@ -729,10 +729,10 @@ index 03e2acd4829da449a471b0fa1a311e74aee114d3..921a36e31f531ab43e9040463f66d8c0 } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEgg.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEgg.java -index 6ac40fab0155f3b54a8ab7f492f42c952ee2377c..c439ab4e1db346d01c5de4ad9f2ce48e8830a081 100644 +index dbc27792bf84c07ca342b95231b4b34e90239da1..822f81ab0c790acde135080c0851dc2e4b408e82 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEgg.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEgg.java -@@ -10,8 +10,16 @@ public class CraftEgg extends CraftThrowableProjectile implements Egg { +@@ -9,8 +9,16 @@ public class CraftEgg extends CraftThrowableProjectile implements Egg { super(server, entity); } @@ -750,10 +750,10 @@ index 6ac40fab0155f3b54a8ab7f492f42c952ee2377c..c439ab4e1db346d01c5de4ad9f2ce48e } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEnderCrystal.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEnderCrystal.java -index 4c7f074a1f7aa43af6fe331bbd5d23929780ab25..d07b70f42c87a92fe662fc27a2eefa474db87bcc 100644 +index 5109fa0e665e484194eb9ccbafec7ff532ebd0fa..acb9be933c33566fe991ea90f7199d1f58262e5a 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEnderCrystal.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEnderCrystal.java -@@ -40,8 +40,16 @@ public class CraftEnderCrystal extends CraftEntity implements EnderCrystal { +@@ -39,8 +39,16 @@ public class CraftEnderCrystal extends CraftEntity implements EnderCrystal { } } @@ -771,10 +771,10 @@ index 4c7f074a1f7aa43af6fe331bbd5d23929780ab25..d07b70f42c87a92fe662fc27a2eefa47 } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEnderDragon.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEnderDragon.java -index 92bcc01b3b28062aa966a7aaca199d7a3be832f4..10b827cb126d937548cc29a1b052d5acfa244f67 100644 +index 492fdc855fe9735b614b6831aa5baaa6b252cfb6..57ab36ea7e973e8deb47240d2adad63d26ace04d 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEnderDragon.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEnderDragon.java -@@ -31,8 +31,16 @@ public class CraftEnderDragon extends CraftMob implements EnderDragon, CraftEnem +@@ -30,8 +30,16 @@ public class CraftEnderDragon extends CraftMob implements EnderDragon, CraftEnem return builder.build(); } @@ -813,10 +813,10 @@ index a407e802164603c74ec1f4ad3c98bc50398954bc..c1f73d89805eca8e13bdee80bcd89ef2 } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEnderPearl.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEnderPearl.java -index 21d5d8d4becee2709295d45b4b4fd2d1edbd3910..0cc66673866bd20ef74437866765134b0be503d3 100644 +index 03e2c43cdbd75a6c0127e1c3f708bbad3242d238..55b2d8ad3f1724793ee9631d3872cc9405759990 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEnderPearl.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEnderPearl.java -@@ -10,8 +10,16 @@ public class CraftEnderPearl extends CraftThrowableProjectile implements EnderPe +@@ -9,8 +9,16 @@ public class CraftEnderPearl extends CraftThrowableProjectile implements EnderPe super(server, entity); } @@ -834,10 +834,10 @@ index 21d5d8d4becee2709295d45b4b4fd2d1edbd3910..0cc66673866bd20ef74437866765134b } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEnderSignal.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEnderSignal.java -index e3688e941d9b63b5319faf9370b8f75e0e5828ae..631dce2beaa9c8d72d45349a436d72c5417e8de7 100644 +index 18712bfd46d3852bc1210c8f0dea7e9af3e55b4d..fb1009a7cd2a8440f9faeed3e12fe9daefea72e6 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEnderSignal.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEnderSignal.java -@@ -16,8 +16,16 @@ public class CraftEnderSignal extends CraftEntity implements EnderSignal { +@@ -15,8 +15,16 @@ public class CraftEnderSignal extends CraftEntity implements EnderSignal { super(server, entity); } @@ -855,10 +855,10 @@ index e3688e941d9b63b5319faf9370b8f75e0e5828ae..631dce2beaa9c8d72d45349a436d72c5 } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEnderman.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEnderman.java -index 57704564acc11ea688026aad8be4e612e36803ff..6061d0ea83479611d2c33cf0e001cd43e75c03c4 100644 +index 92eb829161079c4a96447698aee58cc6e7cbd29f..7299780db54c9a5acef2e8c0d24885991e80b6e3 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEnderman.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEnderman.java -@@ -63,8 +63,16 @@ public class CraftEnderman extends CraftMonster implements Enderman { +@@ -62,8 +62,16 @@ public class CraftEnderman extends CraftMonster implements Enderman { } // Paper end @@ -876,10 +876,10 @@ index 57704564acc11ea688026aad8be4e612e36803ff..6061d0ea83479611d2c33cf0e001cd43 } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEndermite.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEndermite.java -index 75c7645fb5732c43d1da15181cf5c7ee4c3ecd6c..6d3325436a77153438bc40aa86819562e65e6a9e 100644 +index d657fd2c507a5b215aeab0a5f3e9c2ee892a27c8..9fc90b162aab15a9cd60b02aba56318130b394c4 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEndermite.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEndermite.java -@@ -10,8 +10,16 @@ public class CraftEndermite extends CraftMonster implements Endermite { +@@ -9,8 +9,16 @@ public class CraftEndermite extends CraftMonster implements Endermite { super(server, entity); } @@ -897,10 +897,10 @@ index 75c7645fb5732c43d1da15181cf5c7ee4c3ecd6c..6d3325436a77153438bc40aa86819562 } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java -index dafac02b73326aa04093f16ac2f142004abe26be..19b47478d318edce1242c2a5ddd73da963a24595 100644 +index cba19dc27925b38f48182726a8ed6f3691ce87cc..ffc3c9908281a3018ca5b4e244690d459c456d83 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java -@@ -821,7 +821,7 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity { +@@ -827,7 +827,7 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity { @Override public UUID getUniqueId() { @@ -909,7 +909,7 @@ index dafac02b73326aa04093f16ac2f142004abe26be..19b47478d318edce1242c2a5ddd73da9 } @Override -@@ -836,6 +836,7 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity { +@@ -842,6 +842,7 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity { } public Entity getHandle() { @@ -918,10 +918,10 @@ index dafac02b73326aa04093f16ac2f142004abe26be..19b47478d318edce1242c2a5ddd73da9 } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEvoker.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEvoker.java -index 7e861636710aa44ed36e7f20c6320dabb809c35d..6d7f99943ae6453edeecaea06f4a906b7b20daaf 100644 +index b66dd5c5c5d98c9285e0d0a4ad4b99a66419f732..3d284b790c869fb30180b92b891b292006c7dad4 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEvoker.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEvoker.java -@@ -12,8 +12,16 @@ public class CraftEvoker extends CraftSpellcaster implements Evoker { +@@ -11,8 +11,16 @@ public class CraftEvoker extends CraftSpellcaster implements Evoker { super(server, entity); } @@ -939,10 +939,10 @@ index 7e861636710aa44ed36e7f20c6320dabb809c35d..6d7f99943ae6453edeecaea06f4a906b } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEvokerFangs.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEvokerFangs.java -index 0d186f37987edfd380dbce96252a45bdc2e8c26b..9fe7028cde18e4936cd2fc62a359feb6386596b3 100644 +index be52662bcaf7f7d1914ba0db7bd4b3f62974cc70..591e710d5296dddc0bdd7279a3c98c47c9e01239 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEvokerFangs.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEvokerFangs.java -@@ -11,8 +11,16 @@ public class CraftEvokerFangs extends CraftEntity implements EvokerFangs { +@@ -10,8 +10,16 @@ public class CraftEvokerFangs extends CraftEntity implements EvokerFangs { super(server, entity); } @@ -960,10 +960,10 @@ index 0d186f37987edfd380dbce96252a45bdc2e8c26b..9fe7028cde18e4936cd2fc62a359feb6 } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftExperienceOrb.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftExperienceOrb.java -index 84899284703baeb04bfc79251941265d52ac07e8..5b8333e342c639f33acf62e5f8eb72d0ba4a68c7 100644 +index 26c795983515580b30b5ef8c701faa95ab1aea8e..990709bd56a96a60df020947f99b4f30cbe4192e 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftExperienceOrb.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftExperienceOrb.java -@@ -31,8 +31,16 @@ public class CraftExperienceOrb extends CraftEntity implements ExperienceOrb { +@@ -30,8 +30,16 @@ public class CraftExperienceOrb extends CraftEntity implements ExperienceOrb { } // Paper end @@ -981,10 +981,10 @@ index 84899284703baeb04bfc79251941265d52ac07e8..5b8333e342c639f33acf62e5f8eb72d0 } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftFallingBlock.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftFallingBlock.java -index d17808d132b332d51189067fed245eb6bb904968..fc7d7c0645ff9a8b4d6a0bc78cf6bd64d1a0d858 100644 +index a39694a27e362312eb42a29fd7c833f9c7437d46..ede9068881ea75449ca24bff66ef754a2c17b152 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftFallingBlock.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftFallingBlock.java -@@ -15,8 +15,16 @@ public class CraftFallingBlock extends CraftEntity implements FallingBlock { +@@ -14,8 +14,16 @@ public class CraftFallingBlock extends CraftEntity implements FallingBlock { super(server, entity); } @@ -1002,10 +1002,10 @@ index d17808d132b332d51189067fed245eb6bb904968..fc7d7c0645ff9a8b4d6a0bc78cf6bd64 } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftFireball.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftFireball.java -index 1fdf52edc47591bf3d8bbcb9db9d41773aace42f..bd1ed5b1e58cb3ce40036a602acbb0b7a7e6322b 100644 +index e04500dcdc5b72cca7ac81b5d12e76822db9c8c5..f62d88821164ad2fac8d53598bcf1e1b6d350225 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftFireball.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftFireball.java -@@ -47,8 +47,16 @@ public class CraftFireball extends AbstractProjectile implements Fireball { +@@ -46,8 +46,16 @@ public class CraftFireball extends AbstractProjectile implements Fireball { update(); // SPIGOT-6579 } @@ -1023,10 +1023,10 @@ index 1fdf52edc47591bf3d8bbcb9db9d41773aace42f..bd1ed5b1e58cb3ce40036a602acbb0b7 } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftFirework.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftFirework.java -index d1c7ab67cba881d96b7a5e9220130d86d0514304..851cb3216184180667b068f36984bff4a7765c49 100644 +index 68c5af9b67a2834ee6e2f80ceefa19c3a982b8ed..2a0cb9ee40bd630d94f717ccd06d49f631034e7d 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftFirework.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftFirework.java -@@ -38,8 +38,16 @@ public class CraftFirework extends CraftProjectile implements Firework { +@@ -37,8 +37,16 @@ public class CraftFirework extends CraftProjectile implements Firework { // Paper End - Expose firework item directly } @@ -1065,10 +1065,10 @@ index 3c64461119391ec2e987fc936104e21ef0a95ce4..d702e34f65de28df677a9d3616f38b2c } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftFishHook.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftFishHook.java -index 41e8167766383a6fcb1e9fb78933d74784caddbb..d73d18e10d9a75a43f9352f5eebaa3be485e3572 100644 +index 96b6e537ec4493a0cdd98ccfe7816f7ffb69c7dd..ccb54c8da9f27666ec08347b3c4c738a6a1fe245 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftFishHook.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftFishHook.java -@@ -15,8 +15,16 @@ public class CraftFishHook extends CraftProjectile implements FishHook { +@@ -14,8 +14,16 @@ public class CraftFishHook extends CraftProjectile implements FishHook { super(server, entity); } @@ -1107,10 +1107,10 @@ index 8038e1bdac4166bfaf228118e87cb246cb49b9a1..e1e51f050959aa23bd85bb794a7098a5 } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftFox.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftFox.java -index 9e5c9b1c4299986b2fae7e191d7661549376a331..36997290fa276275bbcf890a7b368f40a9ad8e02 100644 +index 6149067a14b950e727d3387055016a19e55c0fc6..929c817b7101973c4cc9f8f5a23f1941d67508cb 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftFox.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftFox.java -@@ -15,8 +15,16 @@ public class CraftFox extends CraftAnimals implements Fox { +@@ -14,8 +14,16 @@ public class CraftFox extends CraftAnimals implements Fox { super(server, entity); } @@ -1128,10 +1128,10 @@ index 9e5c9b1c4299986b2fae7e191d7661549376a331..36997290fa276275bbcf890a7b368f40 } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftFrog.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftFrog.java -index d67884a83866cdfe14d4f5025e2ff159b6e3ee5d..67e24a4c1daf6c986e34c4a41fb45285809b348f 100644 +index 38f16446f21761d009974930d587dafc6f700e4d..43d4027af0a1408bcef71c0f381a629c9099fe97 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftFrog.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftFrog.java -@@ -15,8 +15,16 @@ public class CraftFrog extends CraftAnimals implements org.bukkit.entity.Frog { +@@ -14,8 +14,16 @@ public class CraftFrog extends CraftAnimals implements org.bukkit.entity.Frog { super(server, entity); } @@ -1149,10 +1149,10 @@ index d67884a83866cdfe14d4f5025e2ff159b6e3ee5d..67e24a4c1daf6c986e34c4a41fb45285 } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftGhast.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftGhast.java -index 814cded47a04c25391575af036f53dc409121813..308c39b5721dbf70ad256e5ccacc04831af398d5 100644 +index 3adcf36c7b4beb0f752f91b7333593a610ec118c..d8372cc3ff0f0cbfc5638cb0f4842bfcc54a9565 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftGhast.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftGhast.java -@@ -10,8 +10,16 @@ public class CraftGhast extends CraftFlying implements Ghast, CraftEnemy { +@@ -9,8 +9,16 @@ public class CraftGhast extends CraftFlying implements Ghast, CraftEnemy { super(server, entity); } @@ -1170,10 +1170,10 @@ index 814cded47a04c25391575af036f53dc409121813..308c39b5721dbf70ad256e5ccacc0483 } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftGiant.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftGiant.java -index ae6c37627bf6b31b207e65c07c6b3f9def222d1d..f0a04ca56bd58844b40101190772786457239151 100644 +index cf788207c3c81074d54b1ff69fe814a2e0adf55f..d65b641d1bbd325547c16e186f4ec2558bcdc5c4 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftGiant.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftGiant.java -@@ -10,8 +10,16 @@ public class CraftGiant extends CraftMonster implements Giant { +@@ -9,8 +9,16 @@ public class CraftGiant extends CraftMonster implements Giant { super(server, entity); } @@ -1191,10 +1191,10 @@ index ae6c37627bf6b31b207e65c07c6b3f9def222d1d..f0a04ca56bd58844b401011907727864 } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftGlowItemFrame.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftGlowItemFrame.java -index f507b6bd999985c26447810a59a8c73b294159ac..2450dc8a0f1fc526eb0b2ed917a5bbbebeadb7bc 100644 +index 7dd9d670a1436d2bbfcae6c3e597ca6c7b759623..47afda44cb474d9752cf97405b546a534382880a 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftGlowItemFrame.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftGlowItemFrame.java -@@ -10,8 +10,16 @@ public class CraftGlowItemFrame extends CraftItemFrame implements GlowItemFrame +@@ -9,8 +9,16 @@ public class CraftGlowItemFrame extends CraftItemFrame implements GlowItemFrame super(server, entity); } @@ -1212,10 +1212,10 @@ index f507b6bd999985c26447810a59a8c73b294159ac..2450dc8a0f1fc526eb0b2ed917a5bbbe } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftGlowSquid.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftGlowSquid.java -index 8d97c9d0a78c6258dd3dd6a832ee87cad283ee62..b5bac66ad28c0ed2bc41fa3ffe765c61817d6b8a 100644 +index 253a0d2f987163cbbb28d261674b47137cbbcbe2..ad0b9025e38926555b47dee1e056c7c8714c91fe 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftGlowSquid.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftGlowSquid.java -@@ -11,8 +11,16 @@ public class CraftGlowSquid extends CraftSquid implements GlowSquid { +@@ -10,8 +10,16 @@ public class CraftGlowSquid extends CraftSquid implements GlowSquid { super(server, entity); } @@ -1233,10 +1233,10 @@ index 8d97c9d0a78c6258dd3dd6a832ee87cad283ee62..b5bac66ad28c0ed2bc41fa3ffe765c61 } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftGoat.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftGoat.java -index e4be28b130e35ea263f85b3157898cd3a7e80561..8081d8ef5c2e773f7a716ef33cd842cc4a5458cc 100644 +index 2c21de478bff9cdf13ba46cd041831d54c11e924..ab87340df483787d59d8b1e2ce3a69235d39bba5 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftGoat.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftGoat.java -@@ -10,8 +10,16 @@ public class CraftGoat extends CraftAnimals implements Goat { +@@ -9,8 +9,16 @@ public class CraftGoat extends CraftAnimals implements Goat { super(server, entity); } @@ -1275,10 +1275,10 @@ index 79d2395b4a5efb042b80a315cc8e32d9c2521306..1ab70f244ed31eea22cc2614788072db } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftGuardian.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftGuardian.java -index 2977939c0e66fbb3976e8526db82af2ecc6ffee9..1280dd6ecc53d681bbb311b6099817b517bc50db 100644 +index 70e75921a20978d730ca02aea47186c79e1632d8..c11304434217a48400ec147f3b4e63d40d3b7280 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftGuardian.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftGuardian.java -@@ -14,8 +14,16 @@ public class CraftGuardian extends CraftMonster implements Guardian { +@@ -13,8 +13,16 @@ public class CraftGuardian extends CraftMonster implements Guardian { super(server, entity); } @@ -1296,10 +1296,10 @@ index 2977939c0e66fbb3976e8526db82af2ecc6ffee9..1280dd6ecc53d681bbb311b6099817b5 } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftHanging.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftHanging.java -index 62e11bf104b8d39ac73883e2a5d207e5f7393253..1797199729d018d103ccae1773fc0206b8381b8d 100644 +index 0ef629a7c76e7f3f24edd76bac3560bf7e55d663..0ea8bcfc368e519d1f4906654ad5c72f80e84a3f 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftHanging.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftHanging.java -@@ -58,8 +58,16 @@ public class CraftHanging extends CraftEntity implements Hanging { +@@ -57,8 +57,16 @@ public class CraftHanging extends CraftEntity implements Hanging { return CraftBlock.notchToBlockFace(direction); } @@ -1317,10 +1317,10 @@ index 62e11bf104b8d39ac73883e2a5d207e5f7393253..1797199729d018d103ccae1773fc0206 } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftHoglin.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftHoglin.java -index 5c83b20566cad98c47c8d1aa127a7d2659b952a8..1e312733b266e8350bc1a59113b195881c5a9e17 100644 +index e2d95c9b894ccac04fb552d2e934c8ec9efade55..e13f9b88dee6f0e98550dc39bb16373366aa97ce 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftHoglin.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftHoglin.java -@@ -52,8 +52,16 @@ public class CraftHoglin extends CraftAnimals implements Hoglin, CraftEnemy { +@@ -51,8 +51,16 @@ public class CraftHoglin extends CraftAnimals implements Hoglin, CraftEnemy { return this.getHandle().isConverting(); } @@ -1338,10 +1338,10 @@ index 5c83b20566cad98c47c8d1aa127a7d2659b952a8..1e312733b266e8350bc1a59113b19588 } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftHorse.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftHorse.java -index 794dc15d5e09d0b73b2d297a2da60d2b6b407f6c..a34608c74daced31ec45a96b643176a4d2ff72dc 100644 +index 8b13f6c315675bca8362be16f6511b5b7da34670..584703f2d7d14efd79568663cd833cb31f55c422 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftHorse.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftHorse.java -@@ -14,8 +14,16 @@ public class CraftHorse extends CraftAbstractHorse implements Horse { +@@ -13,8 +13,16 @@ public class CraftHorse extends CraftAbstractHorse implements Horse { super(server, entity); } @@ -1359,7 +1359,7 @@ index 794dc15d5e09d0b73b2d297a2da60d2b6b407f6c..a34608c74daced31ec45a96b643176a4 } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java -index 5fe9a0985432ac6cdd28a2a138854a24f10e42ba..16cf9cd20b400cdadac89152bdafd64b4e207a5e 100644 +index 7db63d9ef93902872937b69f431137336e4abc3a..5a2557570a78ef04270c2b418a63081cf3995cb7 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java @@ -291,8 +291,16 @@ public class CraftHumanEntity extends CraftLivingEntity implements HumanEntity { @@ -1401,10 +1401,10 @@ index fb3c518f02cb4c428f022523d2f838625841332b..7becaa4d26df7309984b7aa271a0ae6f } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftIllusioner.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftIllusioner.java -index bbf7189a0fc9921e7a6007494f91229d9fba0846..3ab7929aa11584ec0f86ff8ad441f2b9660cf9c6 100644 +index 5b2af80e584977683cd39e6f440e65a76e929be9..89c0121c40da1596a4bf5db6e1d7d611d5053153 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftIllusioner.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftIllusioner.java -@@ -10,8 +10,16 @@ public class CraftIllusioner extends CraftSpellcaster implements Illusioner, com +@@ -9,8 +9,16 @@ public class CraftIllusioner extends CraftSpellcaster implements Illusioner, com super(server, entity); } @@ -1422,10 +1422,10 @@ index bbf7189a0fc9921e7a6007494f91229d9fba0846..3ab7929aa11584ec0f86ff8ad441f2b9 } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftInteraction.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftInteraction.java -index cb7183b5d72e505762cfaf5c8694406a5ef2dd3b..7b7074a9418bbcd87c18217ea78efdbc7d01528a 100644 +index 0e6edf0723314693ec904078c8a557a4f18e2db1..ed741f77fbe8f5c40a3923b0a431da768104a1b5 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftInteraction.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftInteraction.java -@@ -13,8 +13,16 @@ public class CraftInteraction extends CraftEntity implements Interaction { +@@ -12,8 +12,16 @@ public class CraftInteraction extends CraftEntity implements Interaction { super(server, entity); } @@ -1443,10 +1443,10 @@ index cb7183b5d72e505762cfaf5c8694406a5ef2dd3b..7b7074a9418bbcd87c18217ea78efdbc } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftIronGolem.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftIronGolem.java -index 2966d4d466f44751b2f02afda2273a708c12b251..8c3818e8024ee25c29929368750dc346261db5d6 100644 +index 75d10b5322eb0a62bce2855c04a5151eb857d7de..a920bfcfa4a977b4107f5f34fe9e625039d3ad39 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftIronGolem.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftIronGolem.java -@@ -9,8 +9,16 @@ public class CraftIronGolem extends CraftGolem implements IronGolem { +@@ -8,8 +8,16 @@ public class CraftIronGolem extends CraftGolem implements IronGolem { super(server, entity); } @@ -1464,10 +1464,10 @@ index 2966d4d466f44751b2f02afda2273a708c12b251..8c3818e8024ee25c29929368750dc346 } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftItemDisplay.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftItemDisplay.java -index 9b7b98e21e757ab2caca68de20d0191d0011bc9d..06e2580653db00110b0f0a05cfda9d0e9baecdfa 100644 +index 787f91566fc53c2b4aeba1ec10d8f46ccf15cbe6..eb2b4272b09e5df06e49afc2ccf7063ebc3d42b8 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftItemDisplay.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftItemDisplay.java -@@ -14,8 +14,16 @@ public class CraftItemDisplay extends CraftDisplay implements ItemDisplay { +@@ -13,8 +13,16 @@ public class CraftItemDisplay extends CraftDisplay implements ItemDisplay { super(server, entity); } @@ -1485,10 +1485,10 @@ index 9b7b98e21e757ab2caca68de20d0191d0011bc9d..06e2580653db00110b0f0a05cfda9d0e } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftItemFrame.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftItemFrame.java -index 5c05ab52e6ea8ec23ff3778f4074ce21b87238db..9f5825c037d26528740ba02aaf9eb1e36d564f67 100644 +index 4dbe8af49fcb4d2c2f517083c013d83f64225b4b..3ef7e3eac107890af5f67a8d02dd6664d35f88b7 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftItemFrame.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftItemFrame.java -@@ -156,8 +156,16 @@ public class CraftItemFrame extends CraftHanging implements ItemFrame { +@@ -155,8 +155,16 @@ public class CraftItemFrame extends CraftHanging implements ItemFrame { this.getHandle().fixed = fixed; } @@ -1506,10 +1506,10 @@ index 5c05ab52e6ea8ec23ff3778f4074ce21b87238db..9f5825c037d26528740ba02aaf9eb1e3 } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftLargeFireball.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftLargeFireball.java -index 4bf68ae4c7417d2b97d2da93dffe2e0c3291129f..bbc439dab077bed605179129ae715f9989f2a181 100644 +index 16dd5a6fb7d97c8f42700be67de27369bfb0a69c..125e676efc79e582f19a44b68e5faea806f5dda4 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftLargeFireball.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftLargeFireball.java -@@ -15,8 +15,16 @@ public class CraftLargeFireball extends CraftSizedFireball implements LargeFireb +@@ -14,8 +14,16 @@ public class CraftLargeFireball extends CraftSizedFireball implements LargeFireb this.getHandle().explosionPower = (int) yield; } @@ -1527,10 +1527,10 @@ index 4bf68ae4c7417d2b97d2da93dffe2e0c3291129f..bbc439dab077bed605179129ae715f99 } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftLeash.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftLeash.java -index 2fc419c0c51c6d88addd98212b198546272b2b13..ffccc8f021cdef6ed00241189aefd8217bc82d1c 100644 +index c8379778adabb513ebac40e9b3308cd2c1623678..9829c809ec385e15bbb1ef48c1bda5ff0adb5774 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftLeash.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftLeash.java -@@ -25,8 +25,16 @@ public class CraftLeash extends CraftHanging implements LeashHitch { +@@ -24,8 +24,16 @@ public class CraftLeash extends CraftHanging implements LeashHitch { return BlockFace.SELF; } @@ -1548,10 +1548,10 @@ index 2fc419c0c51c6d88addd98212b198546272b2b13..ffccc8f021cdef6ed00241189aefd821 } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftLightningStrike.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftLightningStrike.java -index e515e819774bfb31ec03f05a5502921e66f2b0e2..80cac5d7362577e53ef5ca215ab3261898127b2f 100644 +index dbb435ec7a930c3b410fc4311f7eb0a4d2faa987..61f7630d2160411f35cc3ca33def30b9cea65408 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftLightningStrike.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftLightningStrike.java -@@ -15,8 +15,16 @@ public class CraftLightningStrike extends CraftEntity implements LightningStrike +@@ -14,8 +14,16 @@ public class CraftLightningStrike extends CraftEntity implements LightningStrike return this.getHandle().visualOnly; } @@ -1569,7 +1569,7 @@ index e515e819774bfb31ec03f05a5502921e66f2b0e2..80cac5d7362577e53ef5ca215ab32618 } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java -index 6095d43e08bc1ffc4e9a4796fc7adbd07d69d716..fae85d064bcea3589a69483ec6ac6c4cca73ad9a 100644 +index f0ce29d21fe9af803ce4e41b8c037b2ec5d1b124..ab53eab269b204a59b2c9a9bef4f6cf4098e0dfd 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java @@ -417,6 +417,13 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity { @@ -1595,10 +1595,10 @@ index 6095d43e08bc1ffc4e9a4796fc7adbd07d69d716..fae85d064bcea3589a69483ec6ac6c4c } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftLlama.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftLlama.java -index 4d7a2c4c1001aefe9fcd4be8dbcb414f721bfff9..bcb06f550033e346923026141dc96b032e9ff765 100644 +index 0ad16ee7b33582d214dab41eeee378d52c8e38ed..874c6690ec46d482757093296bbcf1864382e13b 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftLlama.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftLlama.java -@@ -15,8 +15,16 @@ public class CraftLlama extends CraftChestedHorse implements Llama, com.destroys +@@ -14,8 +14,16 @@ public class CraftLlama extends CraftChestedHorse implements Llama, com.destroys super(server, entity); } @@ -1616,10 +1616,10 @@ index 4d7a2c4c1001aefe9fcd4be8dbcb414f721bfff9..bcb06f550033e346923026141dc96b03 } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftLlamaSpit.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftLlamaSpit.java -index 9b92efb9bb6905032cee43299d0fdb226dd0e598..ce153695ce561664fa5e184bad0ca8895f0344f3 100644 +index 47633f05b4fab1dcabc2117e7645fe6d6949622a..f1e78960622b71aa63e172a1d856a757d6926a5a 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftLlamaSpit.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftLlamaSpit.java -@@ -11,8 +11,16 @@ public class CraftLlamaSpit extends AbstractProjectile implements LlamaSpit { +@@ -10,8 +10,16 @@ public class CraftLlamaSpit extends AbstractProjectile implements LlamaSpit { super(server, entity); } @@ -1637,10 +1637,10 @@ index 9b92efb9bb6905032cee43299d0fdb226dd0e598..ce153695ce561664fa5e184bad0ca889 } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftMagmaCube.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftMagmaCube.java -index b016d2c621707fe2562c560ef9e005866c087a41..e9fa1f544b7350d7537729768c1a0c3f846c18ac 100644 +index c99cbd36f9bd52cdd1fbcec60ed6981cdfecbeed..b55d9add57561339f86e9c54e1a9e135ee01e8f6 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftMagmaCube.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftMagmaCube.java -@@ -10,8 +10,16 @@ public class CraftMagmaCube extends CraftSlime implements MagmaCube { +@@ -9,8 +9,16 @@ public class CraftMagmaCube extends CraftSlime implements MagmaCube { super(server, entity); } @@ -1658,10 +1658,10 @@ index b016d2c621707fe2562c560ef9e005866c087a41..e9fa1f544b7350d7537729768c1a0c3f } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftMarker.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftMarker.java -index 1e794ec9fc4f75c740c4dc263058a130f57e4475..8f28ad0cc3feb4a1a034d916da1ccd892b2149de 100644 +index e6782a48d22ba1e683e3fe463e970e8a5ed60fbd..9c04388e9d38103b40a154b6f0e13920ede451f5 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftMarker.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftMarker.java -@@ -10,8 +10,16 @@ public class CraftMarker extends CraftEntity implements Marker { +@@ -9,8 +9,16 @@ public class CraftMarker extends CraftEntity implements Marker { super(server, entity); } @@ -1700,10 +1700,10 @@ index 067fcc1f44d59dd675a9cc5485234c87366ffe10..6cce3d64a4f506fcebbe34eae58163c5 } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftMinecartCommand.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftMinecartCommand.java -index b709a1d909c189f60d0c3aa97b4b96623e7c1db0..fd3eedcfa056c05761c53bccc62fb4dcd00fcb9b 100644 +index 2534abcdce426189ac15e0659ab62840b3d54762..9fe092113bf3db33527670ebc2a2a351960cf458 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftMinecartCommand.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftMinecartCommand.java -@@ -21,8 +21,16 @@ public class CraftMinecartCommand extends CraftMinecart implements CommandMineca +@@ -20,8 +20,16 @@ public class CraftMinecartCommand extends CraftMinecart implements CommandMineca super(server, entity); } @@ -1742,10 +1742,10 @@ index 0dd0ce9a9b3253e87eda12354249ec2fd2a33cf2..b7d0892953f357e58665e87fbcf794a7 } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftMinecartFurnace.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftMinecartFurnace.java -index b8378d5f3c2a08ab565dcb8cb200822b581c7dba..e7c303a0f8b4e2ca26cf28b4661b7bdf56f2498f 100644 +index 1027c915c0a2f981703908fdb2eb6beeb548f347..bff74243c147727087f4869d02ab31938afb16e3 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftMinecartFurnace.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftMinecartFurnace.java -@@ -12,8 +12,16 @@ public class CraftMinecartFurnace extends CraftMinecart implements PoweredMineca +@@ -11,8 +11,16 @@ public class CraftMinecartFurnace extends CraftMinecart implements PoweredMineca super(server, entity); } @@ -1763,10 +1763,10 @@ index b8378d5f3c2a08ab565dcb8cb200822b581c7dba..e7c303a0f8b4e2ca26cf28b4661b7bdf } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftMinecartHopper.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftMinecartHopper.java -index 67fe56cc4c2af24f6bd883c6e14851019b0b9523..31665297fc24f6d2e86e206ef1ddf46ded51782f 100644 +index fbabf86510c582e372b0b1ac5585c7287734c985..2e43d3667cc9ba35baf04658c13a8ed35b44e5cd 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftMinecartHopper.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftMinecartHopper.java -@@ -40,8 +40,17 @@ public final class CraftMinecartHopper extends CraftMinecartContainer implements +@@ -34,8 +34,17 @@ public final class CraftMinecartHopper extends CraftMinecartContainer implements ((MinecartHopper) getHandle()).setEnabled(enabled); } // Paper start @@ -1785,10 +1785,10 @@ index 67fe56cc4c2af24f6bd883c6e14851019b0b9523..31665297fc24f6d2e86e206ef1ddf46d } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftMinecartTNT.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftMinecartTNT.java -index e5cad4d149af18104266a6ccff55787891d31f0b..dce230dc9dc44040e925e9ab5ab95529561ba464 100644 +index 79b608e89d4d1f76a58868c585bb87c82e2689b1..7767a342b3d8bf9c07fbd73ad4ccacd8065c5869 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftMinecartTNT.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftMinecartTNT.java -@@ -43,8 +43,16 @@ public final class CraftMinecartTNT extends CraftMinecart implements ExplosiveMi +@@ -42,8 +42,16 @@ public final class CraftMinecartTNT extends CraftMinecart implements ExplosiveMi this.getHandle().explode(power); } @@ -1857,10 +1857,10 @@ index 11b23670cd80a643f266c59542a380b42b17dfbd..d3b655ab5adacd60f04f912187662c57 } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftMushroomCow.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftMushroomCow.java -index 4a6aae106de5eeeb80c078c5a167ef0484b13929..f3016d316c1dcee3f5d7c7221668280c7bd9a76e 100644 +index 1efc208dbb00b693de0c1d883e90b310cbf253e7..7c41ca305e4bb6e7aa858714763a3b6071ce2b18 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftMushroomCow.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftMushroomCow.java -@@ -11,8 +11,16 @@ public class CraftMushroomCow extends CraftCow implements MushroomCow, io.paperm +@@ -10,8 +10,16 @@ public class CraftMushroomCow extends CraftCow implements MushroomCow, io.paperm super(server, entity); } @@ -1878,10 +1878,10 @@ index 4a6aae106de5eeeb80c078c5a167ef0484b13929..f3016d316c1dcee3f5d7c7221668280c } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftOcelot.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftOcelot.java -index 7609c0e00b9eebcf00e21f6eb19d4175f4717179..e6ba1a905a14ae7113decc72b121175eb85d2b36 100644 +index b6c10507d4d62178cdf82033cc379d66d763aa9b..e0cc8454d7c2e6f3ae1805c686f3ee25dd5f0b9c 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftOcelot.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftOcelot.java -@@ -10,8 +10,16 @@ public class CraftOcelot extends CraftAnimals implements Ocelot { +@@ -9,8 +9,16 @@ public class CraftOcelot extends CraftAnimals implements Ocelot { super(server, ocelot); } @@ -1899,10 +1899,10 @@ index 7609c0e00b9eebcf00e21f6eb19d4175f4717179..e6ba1a905a14ae7113decc72b121175e } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPainting.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPainting.java -index b7610e880e857058b621228583c841b5d9338fc7..2fb654411b042159da97c79e69e8845e2b73c4bb 100644 +index 7f4b7ce6b85b4774f58be2c9afd4230a821dd9cc..1f1b4a7b7f6a74d9830402bfb03bf85335fd9825 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPainting.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPainting.java -@@ -52,8 +52,16 @@ public class CraftPainting extends CraftHanging implements Painting { +@@ -51,8 +51,16 @@ public class CraftPainting extends CraftHanging implements Painting { return false; } @@ -1920,10 +1920,10 @@ index b7610e880e857058b621228583c841b5d9338fc7..2fb654411b042159da97c79e69e8845e } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPanda.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPanda.java -index 1f6dcad764240e15083731d017f9bb1c5c84622f..71b307cd7029b8aeb511bfa6eb3f73736f2d0c91 100644 +index 56f9630dbe5d18d5ec33dc85f6531723022d6a3b..2683bcfea4812a0ec57b8c09758eb2b58c02d582 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPanda.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPanda.java -@@ -12,8 +12,16 @@ public class CraftPanda extends CraftAnimals implements Panda { +@@ -11,8 +11,16 @@ public class CraftPanda extends CraftAnimals implements Panda { super(server, entity); } @@ -1941,10 +1941,10 @@ index 1f6dcad764240e15083731d017f9bb1c5c84622f..71b307cd7029b8aeb511bfa6eb3f7373 } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftParrot.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftParrot.java -index d7e9b1d7460c0479ff94a2cb52e6c572a464420a..caee1abf4c057afa08be8495bf742f871b2d1eae 100644 +index f12b424c7d69b8a64075e1e48c2ac2d4e213d379..8cf5187ac315fdbff0df90fb612f4c9b7d52eccd 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftParrot.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftParrot.java -@@ -12,8 +12,16 @@ public class CraftParrot extends CraftTameableAnimal implements Parrot { +@@ -11,8 +11,16 @@ public class CraftParrot extends CraftTameableAnimal implements Parrot { super(server, parrot); } @@ -1962,10 +1962,10 @@ index d7e9b1d7460c0479ff94a2cb52e6c572a464420a..caee1abf4c057afa08be8495bf742f87 } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPhantom.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPhantom.java -index 63e31c237dc3cf37a5e06c1cf3f030c9f1df3d38..8c02dabbfee88ee6c3315c8174da7236eecdd8cc 100644 +index 8338effd39b1709dbe578e247710a8e58d83e3aa..1d998942280db00ba7dab1c9d9a0f818490fe328 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPhantom.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPhantom.java -@@ -10,8 +10,16 @@ public class CraftPhantom extends CraftFlying implements Phantom, CraftEnemy { +@@ -9,8 +9,16 @@ public class CraftPhantom extends CraftFlying implements Phantom, CraftEnemy { super(server, entity); } @@ -1983,10 +1983,10 @@ index 63e31c237dc3cf37a5e06c1cf3f030c9f1df3d38..8c02dabbfee88ee6c3315c8174da7236 } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPig.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPig.java -index 61613f38b39dfd4512e2d9caadaa3bb6b37d4e55..f94b45ba171fcbae718b50ab2ff60d38248e622c 100644 +index 2e7410678ffc3d742fb622f4d916df3974b661b1..33aad743e5e55881a1edefcf05d938a6a7301755 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPig.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPig.java -@@ -56,8 +56,16 @@ public class CraftPig extends CraftAnimals implements Pig { +@@ -55,8 +55,16 @@ public class CraftPig extends CraftAnimals implements Pig { return Material.CARROT_ON_A_STICK; } @@ -2004,10 +2004,10 @@ index 61613f38b39dfd4512e2d9caadaa3bb6b37d4e55..f94b45ba171fcbae718b50ab2ff60d38 } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPigZombie.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPigZombie.java -index a8a372dc15019ad720994e03f5a7109f31423f56..8e4874f1bf3511e3947c48987caa098712271977 100644 +index fd9a841ed8a0062ece142d0cd2591786104fdda7..45653b31d2b4febe8d14bc6e1b9aa86ab6d7d2be 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPigZombie.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPigZombie.java -@@ -31,8 +31,16 @@ public class CraftPigZombie extends CraftZombie implements PigZombie { +@@ -30,8 +30,16 @@ public class CraftPigZombie extends CraftZombie implements PigZombie { return this.getAnger() > 0; } @@ -2025,10 +2025,10 @@ index a8a372dc15019ad720994e03f5a7109f31423f56..8e4874f1bf3511e3947c48987caa0987 } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPiglin.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPiglin.java -index 48d0a4e42e1b90d1323784d1284acabfe9497dd6..3da995c2aa9fe947d059e76bb6e6410827f6888d 100644 +index f69c81e801569deae8a2536a1a57767cd2e3897f..35fab47b32808395b787d29cdfc686f5344b1bcd 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPiglin.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPiglin.java -@@ -76,8 +76,16 @@ public class CraftPiglin extends CraftPiglinAbstract implements Piglin, com.dest +@@ -75,8 +75,16 @@ public class CraftPiglin extends CraftPiglinAbstract implements Piglin, com.dest return new CraftInventory(this.getHandle().inventory); } @@ -2067,10 +2067,10 @@ index e7957d6051244ba410f8633f9c16eeb8c5ac3ce0..ce763867f9c6c2d4773d76387afc0ecb } } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPiglinBrute.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPiglinBrute.java -index 689c4ce62f604d023e2f293db17f423fd10acbaf..18416b48a05a8d564b7715ad00f947e4f4c70d9d 100644 +index be874dc973fe632e8ace86041392ca69beaefd16..6889b4599aac0bd03badeefd74c891857f566c30 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPiglinBrute.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPiglinBrute.java -@@ -10,8 +10,16 @@ public class CraftPiglinBrute extends CraftPiglinAbstract implements PiglinBrute +@@ -9,8 +9,16 @@ public class CraftPiglinBrute extends CraftPiglinAbstract implements PiglinBrute super(server, entity); } @@ -2088,10 +2088,10 @@ index 689c4ce62f604d023e2f293db17f423fd10acbaf..18416b48a05a8d564b7715ad00f947e4 } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPillager.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPillager.java -index beea227855f0b978e655efc298024120df8f4945..e1b7922ed298b6b3068c3f5fbe3b4030cff13484 100644 +index 2638c341bc02f201f7ab17fdebcdbdf3a7ec05bf..0f5c2d31a2dea13a46ba81e353393633d097dcc7 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPillager.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPillager.java -@@ -12,8 +12,16 @@ public class CraftPillager extends CraftIllager implements Pillager, com.destroy +@@ -11,8 +11,16 @@ public class CraftPillager extends CraftIllager implements Pillager, com.destroy super(server, entity); } @@ -2109,10 +2109,10 @@ index beea227855f0b978e655efc298024120df8f4945..e1b7922ed298b6b3068c3f5fbe3b4030 } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index 1da2e14d6fa557625835af7a3f003c4e9bb0f40e..36fc7444514a82532731026a0c4402d2ec04e9d2 100644 +index 2d9667e4af4629982d449249169bb55d2112dd26..8d63d9c4b2665fffcf019e69e837ba461ab017f6 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -@@ -602,7 +602,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -609,7 +609,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player { @Override public void kick(net.kyori.adventure.text.Component message, org.bukkit.event.player.PlayerKickEvent.Cause cause) { @@ -2121,7 +2121,7 @@ index 1da2e14d6fa557625835af7a3f003c4e9bb0f40e..36fc7444514a82532731026a0c4402d2 final ServerGamePacketListenerImpl connection = this.getHandle().connection; if (connection != null) { connection.disconnect(message == null ? net.kyori.adventure.text.Component.empty() : message, cause); -@@ -2086,9 +2086,16 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -2146,9 +2146,16 @@ public class CraftPlayer extends CraftHumanEntity implements Player { return this; } @@ -2139,7 +2139,7 @@ index 1da2e14d6fa557625835af7a3f003c4e9bb0f40e..36fc7444514a82532731026a0c4402d2 } public void setHandle(final ServerPlayer entity) { -@@ -3093,7 +3100,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -3148,7 +3155,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player { { if ( CraftPlayer.this.getHealth() <= 0 && CraftPlayer.this.isOnline() ) { @@ -2149,10 +2149,10 @@ index 1da2e14d6fa557625835af7a3f003c4e9bb0f40e..36fc7444514a82532731026a0c4402d2 } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPolarBear.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPolarBear.java -index 30a0eac179c86b0fe94a2a40b5bfcd3eee01e53b..23364bbd534a147954d72986a96aee836e0aa210 100644 +index 3c4cbde06c768912332edf57768eabe082e47345..fa4bb2533d17d2e97301ba959144df478b195449 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPolarBear.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPolarBear.java -@@ -9,8 +9,17 @@ public class CraftPolarBear extends CraftAnimals implements PolarBear { +@@ -8,8 +8,17 @@ public class CraftPolarBear extends CraftAnimals implements PolarBear { public CraftPolarBear(CraftServer server, net.minecraft.world.entity.animal.PolarBear entity) { super(server, entity); } @@ -2192,10 +2192,10 @@ index fd5beb956f643532e08613366ebd380d7999e79f..1521ad3c160062f22e6e17d2dacde5d8 } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPufferFish.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPufferFish.java -index bb9722a2cf5f05d1488f7fec2851644ea3e8b975..ed0e5d32a187dd41952b923e4a1734afa7d092b1 100644 +index 35a8219734633529325430810e88755b2dd23125..85ebd34ed143304c603078f2e949179a8e628ed2 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPufferFish.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPufferFish.java -@@ -11,8 +11,16 @@ public class CraftPufferFish extends CraftFish implements PufferFish { +@@ -10,8 +10,16 @@ public class CraftPufferFish extends CraftFish implements PufferFish { super(server, entity); } @@ -2213,10 +2213,10 @@ index bb9722a2cf5f05d1488f7fec2851644ea3e8b975..ed0e5d32a187dd41952b923e4a1734af } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftRabbit.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftRabbit.java -index 3cd6052ae1e2db15d26157679506ba63a9a59a2f..34a1b2853023006d3ef255651ffa58452ce4cc79 100644 +index 1a1dfb9e5164f9962059ebf11a9c3334a1987153..38972d1aec6b32aee12972cbca2411caeb823350 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftRabbit.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftRabbit.java -@@ -12,8 +12,16 @@ public class CraftRabbit extends CraftAnimals implements Rabbit { +@@ -11,8 +11,16 @@ public class CraftRabbit extends CraftAnimals implements Rabbit { super(server, entity); } @@ -2255,10 +2255,10 @@ index c3185e189ed06e27e518d29b8577b8f694220b12..cfb231848766414297a13fea16308597 } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftRavager.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftRavager.java -index 84899714b96a7ed31ceee10373a62c37cab2ad2a..0e08b2f7a21a09f61ff4800439346260ef96e2d9 100644 +index 09796ce15658e3f7c223a265a547a51ee729ed40..824db5f9f0b5c5f79bc073acaeb4f46aade740af 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftRavager.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftRavager.java -@@ -10,8 +10,16 @@ public class CraftRavager extends CraftRaider implements Ravager { +@@ -9,8 +9,16 @@ public class CraftRavager extends CraftRaider implements Ravager { super(server, entity); } @@ -2276,10 +2276,10 @@ index 84899714b96a7ed31ceee10373a62c37cab2ad2a..0e08b2f7a21a09f61ff4800439346260 } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftSalmon.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftSalmon.java -index c888415f9b4f19db69667525e37279ab8be794f6..3951fa2f21932dc1b4948fab08998afaf928b27d 100644 +index d4d8ce60098c74508e2de9541bf6534988779764..081d7f454b3556110f5a300602fbe9239d9b77c7 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftSalmon.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftSalmon.java -@@ -10,8 +10,16 @@ public class CraftSalmon extends io.papermc.paper.entity.PaperSchoolableFish imp +@@ -9,8 +9,16 @@ public class CraftSalmon extends io.papermc.paper.entity.PaperSchoolableFish imp super(server, entity); } @@ -2297,10 +2297,10 @@ index c888415f9b4f19db69667525e37279ab8be794f6..3951fa2f21932dc1b4948fab08998afa } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftSheep.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftSheep.java -index 81ccb4bde315c42409a0c04883f5cb4551398308..e3c6a74d267ea0a10be375fc83428415ad575fc2 100644 +index 19e8fc7fa6037b063bc1809c85c703996cd9b5ac..7aa1df10cafdaa778432dc43085b3e4502a2e79a 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftSheep.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftSheep.java -@@ -30,8 +30,16 @@ public class CraftSheep extends CraftAnimals implements Sheep, io.papermc.paper. +@@ -29,8 +29,16 @@ public class CraftSheep extends CraftAnimals implements Sheep, io.papermc.paper. this.getHandle().setSheared(flag); } @@ -2318,11 +2318,11 @@ index 81ccb4bde315c42409a0c04883f5cb4551398308..e3c6a74d267ea0a10be375fc83428415 } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftShulker.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftShulker.java -index 8113650fda221538d14b53664db2d0cf81f13476..ccf7fd9be8baeda0b47b7abf090f255842bc639c 100644 +index 147db69955ad3b8b2f50aae87aa9c8f446ac22d2..6332f85b8b604a2fecba460ceb16380a626ec971 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftShulker.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftShulker.java -@@ -24,8 +24,16 @@ public class CraftShulker extends CraftGolem implements Shulker, CraftEnemy { - return EntityType.SHULKER; +@@ -18,8 +18,16 @@ public class CraftShulker extends CraftGolem implements Shulker, CraftEnemy { + return "CraftShulker"; } + // Folia start - region threading @@ -2339,11 +2339,11 @@ index 8113650fda221538d14b53664db2d0cf81f13476..ccf7fd9be8baeda0b47b7abf090f2558 } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftShulkerBullet.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftShulkerBullet.java -index 43f52716c82863382cb0eb08cc0e174a19ffebdf..2435b081eb0587d155d8c4ffb8d67b7529965d85 100644 +index 807a498c2a80a5bd5eedf5322c699adebf25872f..d46d5c1c6934eb83ec46704573cf29d225429930 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftShulkerBullet.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftShulkerBullet.java -@@ -71,8 +71,16 @@ public class CraftShulkerBullet extends AbstractProjectile implements ShulkerBul - return EntityType.SHULKER_BULLET; +@@ -65,8 +65,16 @@ public class CraftShulkerBullet extends AbstractProjectile implements ShulkerBul + return "CraftShulkerBullet"; } + // Folia start - region threading @@ -2360,10 +2360,10 @@ index 43f52716c82863382cb0eb08cc0e174a19ffebdf..2435b081eb0587d155d8c4ffb8d67b75 } } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftSilverfish.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftSilverfish.java -index 81624189cb533bb9de57dc985095bd497a9a068a..a5a9d0daa0fd5641cbe10b5b269b26a0d589a5d5 100644 +index 598992e13586c38d6526ab496c773d5e5b39a7f2..a1ae5b9ffe97ee7fa55efc8b1cd04e7a682c5ee4 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftSilverfish.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftSilverfish.java -@@ -9,8 +9,16 @@ public class CraftSilverfish extends CraftMonster implements Silverfish { +@@ -8,8 +8,16 @@ public class CraftSilverfish extends CraftMonster implements Silverfish { super(server, entity); } @@ -2402,10 +2402,10 @@ index 5d16db88c243279a581092c98d37027aa6731485..c9bfe84cbd2c5835e070251ace2ef06c } } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftSkeleton.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftSkeleton.java -index 1737857424c5da885c46f39502cafd2a670d3be7..4aed90c5ed149cc84d91c417b57edec71042d7cc 100644 +index 16e6325a944c1eb21dd5a3835aa8a00d238e7b5d..9944be024fc0e0ceb12410d7168f0caf52a0728d 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftSkeleton.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftSkeleton.java -@@ -32,8 +32,16 @@ public class CraftSkeleton extends CraftAbstractSkeleton implements Skeleton { +@@ -31,8 +31,16 @@ public class CraftSkeleton extends CraftAbstractSkeleton implements Skeleton { } } @@ -2423,10 +2423,10 @@ index 1737857424c5da885c46f39502cafd2a670d3be7..4aed90c5ed149cc84d91c417b57edec7 } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftSkeletonHorse.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftSkeletonHorse.java -index 78bc77d9cc5797fa8edd189167bb60b75b7f920e..2744d69cc268c809457d730e0061ebfb6c6aee11 100644 +index bba6dcac6df4841561cf39b9ea0fc116f57a901b..72c43e1ee4f2df751402e4d95a411c1ae110d21a 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftSkeletonHorse.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftSkeletonHorse.java -@@ -26,8 +26,16 @@ public class CraftSkeletonHorse extends CraftAbstractHorse implements SkeletonHo +@@ -20,8 +20,16 @@ public class CraftSkeletonHorse extends CraftAbstractHorse implements SkeletonHo return Variant.SKELETON_HORSE; } @@ -2444,10 +2444,10 @@ index 78bc77d9cc5797fa8edd189167bb60b75b7f920e..2744d69cc268c809457d730e0061ebfb } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftSlime.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftSlime.java -index c580922c64f0e26177494fb87ecd0c1d086c5ef9..307a2b8015c9598083bedccb0c516ea64c4fc514 100644 +index 2b1211ee410a0246195053ad041eaa131f859bcd..a61121c6e103fce394e2fd93e60711d6e42c7ad1 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftSlime.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftSlime.java -@@ -20,8 +20,16 @@ public class CraftSlime extends CraftMob implements Slime, CraftEnemy { +@@ -19,8 +19,16 @@ public class CraftSlime extends CraftMob implements Slime, CraftEnemy { this.getHandle().setSize(size, /* true */ getHandle().isAlive()); // Paper - fix dead slime setSize invincibility } @@ -2465,10 +2465,10 @@ index c580922c64f0e26177494fb87ecd0c1d086c5ef9..307a2b8015c9598083bedccb0c516ea6 } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftSmallFireball.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftSmallFireball.java -index d8b4df1300791aaf310465ec1577b1b8c202901a..17b83eb8563586f1ddf252f438d52d554e946def 100644 +index 262e9abf0887c82876d8843504c2dec362e68e6f..74b20c726a0b055180f6385b8020c646939d6690 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftSmallFireball.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftSmallFireball.java -@@ -9,8 +9,16 @@ public class CraftSmallFireball extends CraftSizedFireball implements SmallFireb +@@ -8,8 +8,16 @@ public class CraftSmallFireball extends CraftSizedFireball implements SmallFireb super(server, entity); } @@ -2486,10 +2486,10 @@ index d8b4df1300791aaf310465ec1577b1b8c202901a..17b83eb8563586f1ddf252f438d52d55 } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftSniffer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftSniffer.java -index e9e8ee8c87285705366d54c23a59c136c612aaff..3549d9b0c8ed9d746c38bebedaa7c729717bed92 100644 +index 01328768ef2baba2aa7fea7e10b0eb9783497f4b..737b5ea7f6cbf3db6a8e5ee1bccbcd68191bbf32 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftSniffer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftSniffer.java -@@ -17,8 +17,16 @@ public class CraftSniffer extends CraftAnimals implements Sniffer { +@@ -16,8 +16,16 @@ public class CraftSniffer extends CraftAnimals implements Sniffer { super(server, entity); } @@ -2507,10 +2507,10 @@ index e9e8ee8c87285705366d54c23a59c136c612aaff..3549d9b0c8ed9d746c38bebedaa7c729 } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftSnowball.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftSnowball.java -index b747aa0fb5821988ea851273559182997abf9931..117cdf4b1315f2de32aa13844f0f4c46f21cc96d 100644 +index 1650bd74e37e6963becd9d510d2b640da5c3fede..f72decb7c43337130d3caee6a15ae91cdaf57522 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftSnowball.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftSnowball.java -@@ -9,8 +9,16 @@ public class CraftSnowball extends CraftThrowableProjectile implements Snowball +@@ -8,8 +8,16 @@ public class CraftSnowball extends CraftThrowableProjectile implements Snowball super(server, entity); } @@ -2528,10 +2528,10 @@ index b747aa0fb5821988ea851273559182997abf9931..117cdf4b1315f2de32aa13844f0f4c46 } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftSnowman.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftSnowman.java -index 42b7058d93fab8cbee49dba130734e1df9910096..00907c925fdb0d709ff421cdc8a1742282ad372f 100644 +index e4a14cdfeb91a3d32e622d27d612605b1bca08e2..b1b87ad34caf0d7888ddf59692c8c766358a6b85 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftSnowman.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftSnowman.java -@@ -20,8 +20,16 @@ public class CraftSnowman extends CraftGolem implements Snowman, com.destroystok +@@ -19,8 +19,16 @@ public class CraftSnowman extends CraftGolem implements Snowman, com.destroystok this.getHandle().setPumpkin(!derpMode); } @@ -2549,10 +2549,10 @@ index 42b7058d93fab8cbee49dba130734e1df9910096..00907c925fdb0d709ff421cdc8a17422 } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftSpectralArrow.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftSpectralArrow.java -index 8aced77e9a3c1b5c24bfd9d95a651cca90fdf0e1..f4bd0872dc725dc9040a89cbc627d86b786290df 100644 +index f6ff0e5b16812ae6f577ec30cd6cca337a534ce2..8d89889fafa153d16a8b0a39e8c5ef6b0323ac65 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftSpectralArrow.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftSpectralArrow.java -@@ -10,8 +10,16 @@ public class CraftSpectralArrow extends CraftArrow implements SpectralArrow { +@@ -9,8 +9,16 @@ public class CraftSpectralArrow extends CraftArrow implements SpectralArrow { super(server, entity); } @@ -2591,10 +2591,10 @@ index 525827f1747631fa108be7e1b7395b47d33aa397..3dbb5f7f88979d616e185980d96cc2c3 } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftSpider.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftSpider.java -index 994d8d815aa110bd6ac9939a4ce78f1bbad2662f..496fb0ac11cdf32701b0d5fb4761a0ada60a78ac 100644 +index 3da93b408a864e1663291ed22aaccfa6beba1280..3d09be063f750ecb79b1fc7f2bc4d65a3688e3c6 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftSpider.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftSpider.java -@@ -10,8 +10,16 @@ public class CraftSpider extends CraftMonster implements Spider { +@@ -9,8 +9,16 @@ public class CraftSpider extends CraftMonster implements Spider { super(server, entity); } @@ -2612,10 +2612,10 @@ index 994d8d815aa110bd6ac9939a4ce78f1bbad2662f..496fb0ac11cdf32701b0d5fb4761a0ad } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftSquid.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftSquid.java -index 3c0faedaac8cb8d70c0c0767361ebc563a3f0581..10875cdf36b426de512c52ae60ac7e2c8312114b 100644 +index 7f970e1a8d1b6d12cbfc1c6606ab537989655e5a..6f0197156e79fb34d8c54b4317ff6d66a19cb75b 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftSquid.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftSquid.java -@@ -10,8 +10,16 @@ public class CraftSquid extends CraftWaterMob implements Squid { +@@ -9,8 +9,16 @@ public class CraftSquid extends CraftWaterMob implements Squid { super(server, entity); } @@ -2633,10 +2633,10 @@ index 3c0faedaac8cb8d70c0c0767361ebc563a3f0581..10875cdf36b426de512c52ae60ac7e2c } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftStrider.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftStrider.java -index af5344b0edd1f8126d36a79d7497ca52112ce6d1..89cd22b73c38773961d6955d429564e816b8183a 100644 +index 09ca1e92b63507554a0801999a917f91375d9d59..796eca2bf20ec7a9de69027418d922473444e588 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftStrider.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftStrider.java -@@ -66,8 +66,16 @@ public class CraftStrider extends CraftAnimals implements Strider { +@@ -65,8 +65,16 @@ public class CraftStrider extends CraftAnimals implements Strider { return Material.WARPED_FUNGUS_ON_A_STICK; } @@ -2654,10 +2654,10 @@ index af5344b0edd1f8126d36a79d7497ca52112ce6d1..89cd22b73c38773961d6955d429564e8 } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftTNTPrimed.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftTNTPrimed.java -index 06540d3771949daff641e518219090559f363959..3be27209a4429c6ab618798418451bd527a2115b 100644 +index dc13deb1cea14f0650b292ddb6437fadefc0b8be..c433fda809e9452046ff07aabaa216be3199862b 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftTNTPrimed.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftTNTPrimed.java -@@ -43,8 +43,16 @@ public class CraftTNTPrimed extends CraftEntity implements TNTPrimed { +@@ -42,8 +42,16 @@ public class CraftTNTPrimed extends CraftEntity implements TNTPrimed { this.getHandle().setFuse(fuseTicks); } @@ -2675,10 +2675,10 @@ index 06540d3771949daff641e518219090559f363959..3be27209a4429c6ab618798418451bd5 } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftTadpole.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftTadpole.java -index 43c2d820d164d36a28c4920d70aea2fe5096763a..1fab7a34e4fe624d901c0264cda980fd91dbd8e0 100644 +index 730a25ef2fe934f64f65c21e4e007cf1dbab8bf2..57df8021ce87cb688f84b28156d3f0c41888705d 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftTadpole.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftTadpole.java -@@ -10,8 +10,16 @@ public class CraftTadpole extends CraftFish implements org.bukkit.entity.Tadpole +@@ -9,8 +9,16 @@ public class CraftTadpole extends CraftFish implements org.bukkit.entity.Tadpole super(server, entity); } @@ -2717,10 +2717,10 @@ index 428437970cac144be53cd0e30af7af0cd1ce603b..dc09e141ba2b12f1955bec521f2170d2 } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftTextDisplay.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftTextDisplay.java -index 7bfb83d3ac38c5c270d77d9794a55a363ac6302b..f973d6013eef71025fad3b74d6158561aafe508f 100644 +index 9ef939b76d06874b856e0c850addb364146f5a00..d3975a461778d9815f68f323e616e25c24bf649c 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftTextDisplay.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftTextDisplay.java -@@ -14,8 +14,16 @@ public class CraftTextDisplay extends CraftDisplay implements TextDisplay { +@@ -13,8 +13,16 @@ public class CraftTextDisplay extends CraftDisplay implements TextDisplay { super(server, entity); } @@ -2759,10 +2759,10 @@ index 989c5c499a52ad0777abecd14a1a9d5803ce1aaf..8e66e9ac17a8a06130d6b039f27868d4 } } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftThrownExpBottle.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftThrownExpBottle.java -index 00f8e1130620a3a167733ca3297cc90561cce1f0..34de9dcd6fa0e978c65bf48ae78923784bf575fd 100644 +index 6b3c381dbda3686b2644475fef2d373da4c2360a..40fe0132f877e8088b828744823981eb3351f650 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftThrownExpBottle.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftThrownExpBottle.java -@@ -10,8 +10,16 @@ public class CraftThrownExpBottle extends CraftThrowableProjectile implements Th +@@ -9,8 +9,16 @@ public class CraftThrownExpBottle extends CraftThrowableProjectile implements Th super(server, entity); } @@ -2780,10 +2780,10 @@ index 00f8e1130620a3a167733ca3297cc90561cce1f0..34de9dcd6fa0e978c65bf48ae7892378 } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftThrownPotion.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftThrownPotion.java -index 5c3bc680c4e4e6dc4b2d9edc666d6a8d95c2e7b7..6c15ba92215634a06a1d95fbd7d64bff2bb935dc 100644 +index 04bcb1f26db12556d70e41541a5df0700d20d964..6bbb6f2720ed8fc8b54edc3922d8423274ed8642 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftThrownPotion.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftThrownPotion.java -@@ -61,8 +61,17 @@ public class CraftThrownPotion extends CraftThrowableProjectile implements Throw +@@ -60,8 +60,17 @@ public class CraftThrownPotion extends CraftThrowableProjectile implements Throw this.getHandle().splash(null); } // Paper end @@ -2800,12 +2800,12 @@ index 5c3bc680c4e4e6dc4b2d9edc666d6a8d95c2e7b7..6c15ba92215634a06a1d95fbd7d64bff + io.papermc.paper.util.TickThread.ensureTickThread(this.entity, "Accessing entity state off owning region's thread"); // Folia - region threading return (net.minecraft.world.entity.projectile.ThrownPotion) entity; } - + } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftTippedArrow.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftTippedArrow.java -index 6dde7fdff3943e5d58d1dd5debadbf7de569f8e2..64058e89a029a75c112569c40d7216a4d349f3e8 100644 +index bf1de518b8429a1543fbc863cf72a2b1e23f05d4..a491a6d96cb267c661d9af9d8c6828e05adb23b2 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftTippedArrow.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftTippedArrow.java -@@ -22,8 +22,16 @@ public class CraftTippedArrow extends CraftArrow implements Arrow { +@@ -21,8 +21,16 @@ public class CraftTippedArrow extends CraftArrow implements Arrow { super(server, entity); } @@ -2823,10 +2823,10 @@ index 6dde7fdff3943e5d58d1dd5debadbf7de569f8e2..64058e89a029a75c112569c40d7216a4 } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftTraderLlama.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftTraderLlama.java -index 0f07a43896e0f677fb9e4ba5080466d22eddcfcb..124c78fcb7b59d6cb3d4de53609fb64f652c17e4 100644 +index 4b3a764114c8372e1549dadeeced26dc7727f2d1..04cbe165b99d348a864da5d342225fc929b2bfd0 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftTraderLlama.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftTraderLlama.java -@@ -10,8 +10,16 @@ public class CraftTraderLlama extends CraftLlama implements TraderLlama { +@@ -9,8 +9,16 @@ public class CraftTraderLlama extends CraftLlama implements TraderLlama { super(server, entity); } @@ -2844,10 +2844,10 @@ index 0f07a43896e0f677fb9e4ba5080466d22eddcfcb..124c78fcb7b59d6cb3d4de53609fb64f } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftTrident.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftTrident.java -index faf071201b7c1414225a33fe9641eac9477d53c7..4c69a367dfdf7c3b8e82dd44f005ed613e1fe0bf 100644 +index c8b65210d2416b5a293cb4bcc1b71f56ed365cd7..0e3045647382111066000fc03925596c1d757e6b 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftTrident.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftTrident.java -@@ -13,8 +13,16 @@ public class CraftTrident extends CraftArrow implements Trident { +@@ -12,8 +12,16 @@ public class CraftTrident extends CraftArrow implements Trident { super(server, entity); } @@ -2865,10 +2865,10 @@ index faf071201b7c1414225a33fe9641eac9477d53c7..4c69a367dfdf7c3b8e82dd44f005ed61 } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftTropicalFish.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftTropicalFish.java -index 4352af0a76ce4a4cd4afbea96f4851ef2b64ac7d..f8aa5bc3d846d2fd785c612dd3906b84686e0792 100644 +index d1d932dd27cff00e0ab69443a58715e3cbc1e57c..0deb1cb458d84f9321c4a020cb4bb26163b18fa7 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftTropicalFish.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftTropicalFish.java -@@ -14,8 +14,16 @@ public class CraftTropicalFish extends io.papermc.paper.entity.PaperSchoolableFi +@@ -13,8 +13,16 @@ public class CraftTropicalFish extends io.papermc.paper.entity.PaperSchoolableFi super(server, entity); } @@ -2886,10 +2886,10 @@ index 4352af0a76ce4a4cd4afbea96f4851ef2b64ac7d..f8aa5bc3d846d2fd785c612dd3906b84 } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftTurtle.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftTurtle.java -index d3546fb082a56b4ce077ded5d25909e15f7eb593..319efb68aebd6d1182dede7b2b6f368b3d7b62c2 100644 +index d44e6f4bb682d18c1497eee9fb2802f2bda6e840..f2d589721a335d1f92ab04ce70e7678a244314fd 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftTurtle.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftTurtle.java -@@ -10,8 +10,16 @@ public class CraftTurtle extends CraftAnimals implements Turtle { +@@ -9,8 +9,16 @@ public class CraftTurtle extends CraftAnimals implements Turtle { super(server, entity); } @@ -2907,10 +2907,10 @@ index d3546fb082a56b4ce077ded5d25909e15f7eb593..319efb68aebd6d1182dede7b2b6f368b } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftVex.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftVex.java -index bcfca66c7b99b9d514fe850d6cc6abd7e36ccaf7..90c295ff95bbee4f51fda1be2f58312d281925e5 100644 +index 6079581ba2eef8ac9272d0bbbf77e31f593edf0f..f89b72a75dc685c08641105c8445f4e14aa9ee35 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftVex.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftVex.java -@@ -14,8 +14,16 @@ public class CraftVex extends CraftMonster implements Vex { +@@ -13,8 +13,16 @@ public class CraftVex extends CraftMonster implements Vex { super(server, entity); } @@ -2928,10 +2928,10 @@ index bcfca66c7b99b9d514fe850d6cc6abd7e36ccaf7..90c295ff95bbee4f51fda1be2f58312d } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftVillager.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftVillager.java -index f21c715ea109164efa755cddb35ef656a9859759..4b4167edcf9e30d50a103c5b85685e7175842f4b 100644 +index f29e221e5b850516c169c03bfbd2b0885d1a841b..1e201709b65b7c74d43d1fbf37bb8f968385358d 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftVillager.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftVillager.java -@@ -30,8 +30,16 @@ public class CraftVillager extends CraftAbstractVillager implements Villager { +@@ -29,8 +29,16 @@ public class CraftVillager extends CraftAbstractVillager implements Villager { super(server, entity); } @@ -2949,10 +2949,10 @@ index f21c715ea109164efa755cddb35ef656a9859759..4b4167edcf9e30d50a103c5b85685e71 } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftVillagerZombie.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftVillagerZombie.java -index 7d63e9b8c92da089886ce9118bea07077f0541cd..6231a4948fd934d2e73f15b364035c64d7e03cc8 100644 +index 3c14554a6a657223441eee97258734ea05965bc7..bc2588621a80d81a757469a2b65675353da14828 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftVillagerZombie.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftVillagerZombie.java -@@ -19,8 +19,16 @@ public class CraftVillagerZombie extends CraftZombie implements ZombieVillager { +@@ -18,8 +18,16 @@ public class CraftVillagerZombie extends CraftZombie implements ZombieVillager { super(server, entity); } @@ -2970,10 +2970,10 @@ index 7d63e9b8c92da089886ce9118bea07077f0541cd..6231a4948fd934d2e73f15b364035c64 } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftVindicator.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftVindicator.java -index bea22e002a9d41b0e364eff1109d5a67c9824a00..fc7a87ed98801914d5cf3e6784f0025db30cf663 100644 +index bcd3370bc48520ea4bb53af25b892131d6ca0b33..c89dfec6f61d4f487bd6292d509a33922127162f 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftVindicator.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftVindicator.java -@@ -10,8 +10,16 @@ public class CraftVindicator extends CraftIllager implements Vindicator { +@@ -9,8 +9,16 @@ public class CraftVindicator extends CraftIllager implements Vindicator { super(server, entity); } @@ -2991,10 +2991,10 @@ index bea22e002a9d41b0e364eff1109d5a67c9824a00..fc7a87ed98801914d5cf3e6784f0025d } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftWanderingTrader.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftWanderingTrader.java -index f9a3d060ff4da6047d11f2b024d144572c513399..824e2c7aa9263195cb173da2b5612b3b8bc3a046 100644 +index fd6ac99dae7e54b90f2b0e01430ac6db9410ccd4..ff3458e986a1063b097b6ae65ba4b2653aca8888 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftWanderingTrader.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftWanderingTrader.java -@@ -10,8 +10,16 @@ public class CraftWanderingTrader extends CraftAbstractVillager implements Wande +@@ -9,8 +9,16 @@ public class CraftWanderingTrader extends CraftAbstractVillager implements Wande super(server, entity); } @@ -3012,10 +3012,10 @@ index f9a3d060ff4da6047d11f2b024d144572c513399..824e2c7aa9263195cb173da2b5612b3b } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftWarden.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftWarden.java -index 6ecdc4bf1f6b8f0363e667135ba463433be5c0fb..a4ede0f5973d18ed6b8ae3ee425c4445f39e86c4 100644 +index 46e3cc146a4b109c4baaf94f42d825646abade68..e41005b7df193d36bf11a12625d1774c8321cfd6 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftWarden.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftWarden.java -@@ -16,8 +16,16 @@ public class CraftWarden extends CraftMonster implements org.bukkit.entity.Warde +@@ -15,8 +15,16 @@ public class CraftWarden extends CraftMonster implements org.bukkit.entity.Warde super(server, entity); } @@ -3054,10 +3054,10 @@ index 684f983e95459f7065274e0b494e754fd317d42d..c03b8291bac77696daf24caaff3512d6 } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftWitch.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftWitch.java -index 9039db1a72009342063d4db08e18e6aee18836e8..c2bceaeabf13d37506eea540cb153d10ba18d817 100644 +index 0acb96ae2102ab6af4b5610254ab3a1408ed9822..f0cfe156924e036639e5ba368a91be3a382c4780 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftWitch.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftWitch.java -@@ -16,8 +16,16 @@ public class CraftWitch extends CraftRaider implements Witch, com.destroystokyo. +@@ -15,8 +15,16 @@ public class CraftWitch extends CraftRaider implements Witch, com.destroystokyo. super(server, entity); } @@ -3075,10 +3075,10 @@ index 9039db1a72009342063d4db08e18e6aee18836e8..c2bceaeabf13d37506eea540cb153d10 } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftWither.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftWither.java -index 1477c2c04d8f5c5639ce94808fe2a7029cedaeb2..a6dc41a1eac7aa08a4e13489a7dabb61cd4eadd7 100644 +index 5a97c92f9b044d8ab7bd3346ceb464455a09046e..c44a349c7dbb5e48f9476fbbda3a8277e8b59aa1 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftWither.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftWither.java -@@ -22,8 +22,16 @@ public class CraftWither extends CraftMonster implements Wither, com.destroystok +@@ -21,8 +21,16 @@ public class CraftWither extends CraftMonster implements Wither, com.destroystok } } @@ -3096,10 +3096,10 @@ index 1477c2c04d8f5c5639ce94808fe2a7029cedaeb2..a6dc41a1eac7aa08a4e13489a7dabb61 } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftWitherSkull.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftWitherSkull.java -index 01fb0ca4a0ecc57a1437885f96632644158c4446..d7b5dc3632e22003f80843882652a35d7306b9d9 100644 +index cb228731bdefd90776261cba29328d56e9217d04..ad8ac056ef9e6abe1afe21622ba187c2d7f9e3a7 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftWitherSkull.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftWitherSkull.java -@@ -19,8 +19,16 @@ public class CraftWitherSkull extends CraftFireball implements WitherSkull { +@@ -18,8 +18,16 @@ public class CraftWitherSkull extends CraftFireball implements WitherSkull { return this.getHandle().isDangerous(); } @@ -3117,10 +3117,10 @@ index 01fb0ca4a0ecc57a1437885f96632644158c4446..d7b5dc3632e22003f80843882652a35d } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftWolf.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftWolf.java -index e43fd3e59fd8c74828ae65965fade27f56beef65..05372166c2cc7b48184c18a4fdd788a242ec4682 100644 +index e16459c9cfcac790edd6d912750d32c68387cbbc..4100c8beb897b931ac0bf168a934286a4a43732a 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftWolf.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftWolf.java -@@ -24,8 +24,16 @@ public class CraftWolf extends CraftTameableAnimal implements Wolf { +@@ -23,8 +23,16 @@ public class CraftWolf extends CraftTameableAnimal implements Wolf { } } @@ -3138,10 +3138,10 @@ index e43fd3e59fd8c74828ae65965fade27f56beef65..05372166c2cc7b48184c18a4fdd788a2 } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftZoglin.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftZoglin.java -index 611e794d86ff63d725de9bb843802ec868f4b1fd..8195313de7a047e694c718609505a60b592f3565 100644 +index 24165f605708239076f839e4e1accd0560996f88..4af64566b17c39d21acc8f445eb993c9652f9928 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftZoglin.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftZoglin.java -@@ -20,8 +20,16 @@ public class CraftZoglin extends CraftMonster implements Zoglin { +@@ -19,8 +19,16 @@ public class CraftZoglin extends CraftMonster implements Zoglin { this.getHandle().setBaby(flag); } @@ -3159,10 +3159,10 @@ index 611e794d86ff63d725de9bb843802ec868f4b1fd..8195313de7a047e694c718609505a60b } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftZombie.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftZombie.java -index 9f4da46dce54fe4207e24b49402fe0d3fa548e29..631132549f454ffd6dc97e1bce2e994e7ce310d6 100644 +index ed211b123354ece21dd8beae7192a26727f5124f..323634b642f8af27ba0eb8647c01acab865d300e 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftZombie.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftZombie.java -@@ -13,8 +13,16 @@ public class CraftZombie extends CraftMonster implements Zombie { +@@ -12,8 +12,16 @@ public class CraftZombie extends CraftMonster implements Zombie { super(server, entity); } diff --git a/patches/server/0007-Disable-mid-tick-task-execution.patch b/patches/server/0007-Disable-mid-tick-task-execution.patch index 67228c63ca..eca4948ed4 100644 --- a/patches/server/0007-Disable-mid-tick-task-execution.patch +++ b/patches/server/0007-Disable-mid-tick-task-execution.patch @@ -10,10 +10,10 @@ the impact from scaling the region threads, but is not a fix to the underlying issue. diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 056dc0df81c056672ee59664def01ed726b8f710..355acd1dd3b2e9f2a086a8d95928cdebbf63d06f 100644 +index 99f1e6c72c734079dfc2c2a8b8093554e945fc6a..75eb95c330d6ab7ac1e4a69da13695bbd40f894e 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java -@@ -2875,6 +2875,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop getProvidedPlugins() { return this.provides; diff --git a/src/main/java/io/papermc/paper/plugin/provider/type/paper/PaperPluginProviderFactory.java b/src/main/java/io/papermc/paper/plugin/provider/type/paper/PaperPluginProviderFactory.java -index 1ba051931d3ce6ac0bef559911e4453044266aab..dc81e1a9faa54ba677bede6d7ca2414b1d7b6003 100644 +index 84305ea4bd21acf0ff2415808933552696686ac7..7858c88ffc505b7b79155f9c95316f825c5ee575 100644 --- a/src/main/java/io/papermc/paper/plugin/provider/type/paper/PaperPluginProviderFactory.java +++ b/src/main/java/io/papermc/paper/plugin/provider/type/paper/PaperPluginProviderFactory.java @@ -24,6 +24,11 @@ class PaperPluginProviderFactory implements PluginTypeFactory -Date: Fri, 11 Aug 2023 08:05:32 +0800 +From: FlyTeam <81072191+killerprojecte@users.noreply.github.com> +Date: Mon, 11 Sep 2023 10:47:44 +0000 Subject: [PATCH] Recode DirtyFolia @@ -612,29 +612,32 @@ index f1c68d9850ece7532a8607db955eaa4fc3a4bf05..a68d3ab3aa5c02d23545db4c9388e361 } static final class AsyncChunkSerializeTask implements Runnable { -diff --git a/src/main/java/io/papermc/paper/configuration/GlobalConfiguration.java b/src/main/java/io/papermc/paper/configuration/GlobalConfiguration.java -index 6f42d7dd68621e124a11698afaa82d3adea70910..d2271e586dd24d7a44108a80f450dc3273e597b8 100644 ---- a/src/main/java/io/papermc/paper/configuration/GlobalConfiguration.java -+++ b/src/main/java/io/papermc/paper/configuration/GlobalConfiguration.java -@@ -24,8 +24,10 @@ public class GlobalConfiguration extends ConfigurationPart { - public static GlobalConfiguration get() { - return instance; - } -+ public static String serverModName = "DirtyFolia"; - static void set(GlobalConfiguration instance) { - GlobalConfiguration.instance = instance; -+ serverModName = instance.misc.serverModName; - } - - @Setting(Configuration.VERSION_FIELD) -@@ -278,6 +280,7 @@ public class GlobalConfiguration extends ConfigurationPart { - public boolean lagCompensateBlockBreaking = true; - public boolean useDimensionTypeForCustomSpawners = false; - public boolean strictAdvancementDimensionCheck = false; -+ public String serverModName = "DirtyFolia"; - } - - public BlockUpdates blockUpdates; +diff --git a/src/main/java/io/papermc/paper/configuration/GlobalConfiguration.java.rej b/src/main/java/io/papermc/paper/configuration/GlobalConfiguration.java.rej +new file mode 100644 +index 0000000000000000000000000000000000000000..c9b0bfdf51888ebc48830979f16e57c884287a04 +--- /dev/null ++++ b/src/main/java/io/papermc/paper/configuration/GlobalConfiguration.java.rej +@@ -0,0 +1,20 @@ ++diff a/src/main/java/io/papermc/paper/configuration/GlobalConfiguration.java b/src/main/java/io/papermc/paper/configuration/GlobalConfiguration.java (rejected hunks) ++@@ -24,8 +24,10 @@ public class GlobalConfiguration extends ConfigurationPart { ++ public static GlobalConfiguration get() { ++ return instance; ++ } +++ public static String serverModName = "DirtyFolia"; ++ static void set(GlobalConfiguration instance) { ++ GlobalConfiguration.instance = instance; +++ serverModName = instance.misc.serverModName; ++ } ++ ++ @Setting(Configuration.VERSION_FIELD) ++@@ -278,6 +280,7 @@ public class GlobalConfiguration extends ConfigurationPart { ++ public boolean lagCompensateBlockBreaking = true; ++ public boolean useDimensionTypeForCustomSpawners = false; ++ public boolean strictAdvancementDimensionCheck = false; +++ public String serverModName = "DirtyFolia"; ++ } ++ ++ public BlockUpdates blockUpdates; diff --git a/src/main/java/io/papermc/paper/plugin/manager/PaperPluginInstanceManager.java b/src/main/java/io/papermc/paper/plugin/manager/PaperPluginInstanceManager.java index 3b5572662c53715cd63772db90904dd1bed32390..0a7eba09a24ba6a70a00cd8f75e4b7436b2f6c1e 100644 --- a/src/main/java/io/papermc/paper/plugin/manager/PaperPluginInstanceManager.java @@ -787,7 +790,7 @@ index 681cd79ce24fe5d952e987d46e2fd8df07a0f8a1..7dcf4e791b8d16fccc42450380bf35b2 TellRawCommand.register(this.dispatcher); TimeCommand.register(this.dispatcher); diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 355acd1dd3b2e9f2a086a8d95928cdebbf63d06f..01e00f9cf7a00660a283710d70f7f96f2c5b9bee 100644 +index 75eb95c330d6ab7ac1e4a69da13695bbd40f894e..efaa481c5d82cd475454814224da100d2e0e2382 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -14,6 +14,9 @@ import com.mojang.authlib.GameProfileRepository; @@ -808,7 +811,7 @@ index 355acd1dd3b2e9f2a086a8d95928cdebbf63d06f..01e00f9cf7a00660a283710d70f7f96f import org.slf4j.Logger; // CraftBukkit start -@@ -679,6 +683,35 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop { return BuiltInRegistries.BLOCK.getKey(block).toString(); diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index 9485d754ec6ce4031d88734e327abda240d9db90..fd5887fc9f3c8fe5f21a5f7b69ed4a5e374329a1 100644 +index a8bf1f542ab20eb7c40c80b5e42b55982677373d..874422fc018076fb03b4d2bb9992c659ec3f3662 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java @@ -265,7 +265,7 @@ import javax.annotation.Nullable; // Paper @@ -1301,7 +1304,7 @@ index 9485d754ec6ce4031d88734e327abda240d9db90..fd5887fc9f3c8fe5f21a5f7b69ed4a5e if (world == null) { return false; diff --git a/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java b/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java -index 66ee61f27dc435e27c4792b6cf4f320b91a54c57..937d0e3aed6dcc40514ed9e99bb9850c02c1a5ef 100644 +index 33274e865af871d0c5827681badf04abdf780af2..d1c844ae943e752157812d92b14d43a83b5322ef 100644 --- a/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java +++ b/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java @@ -80,9 +80,7 @@ public class CraftBlock implements Block { @@ -1381,10 +1384,10 @@ index 69118f8ff00755ba1c31845a2704dd95fa2aee6e..323d51ca72a2e3995ce101713a36114d } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftAllay.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftAllay.java -index 18044b45cc001739406f8151c54f06b5d70d17e0..c452671d7748302eea31169caa2c5b7de188892e 100644 +index 87f5073b02d5989ee0adde4f22becabb42a90651..19396b22ba38535ad3e7c7d3d17b70e4df2cc606 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftAllay.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftAllay.java -@@ -26,7 +26,7 @@ public class CraftAllay extends CraftCreature implements org.bukkit.entity.Allay +@@ -25,7 +25,7 @@ public class CraftAllay extends CraftCreature implements org.bukkit.entity.Allay @Override public Allay getHandle() { @@ -1394,10 +1397,10 @@ index 18044b45cc001739406f8151c54f06b5d70d17e0..c452671d7748302eea31169caa2c5b7d } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftAmbient.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftAmbient.java -index 93d9b4c40aa545d57650a411316210d193a6d3d7..84db9fbb652f53158682c6e78c1889c1c823209c 100644 +index 4ce13017e17bc327547ce4dd2dba7a5eff9e444f..1150e00e8f515a21201120ff31f2429ced93f809 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftAmbient.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftAmbient.java -@@ -19,7 +19,7 @@ public class CraftAmbient extends CraftMob implements Ambient { +@@ -18,7 +18,7 @@ public class CraftAmbient extends CraftMob implements Ambient { @Override public AmbientCreature getHandle() { @@ -1420,10 +1423,10 @@ index 5cf8ea3a7dd4e8ea96ca6061aa1aaefc7ac8fcce..2bd8a28dad2aeadbe025acc3b87725b1 } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftAreaEffectCloud.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftAreaEffectCloud.java -index fb5df44773c478c1418a63429b15b96e2efd5f9a..11edbeeb935ac8bfd5754f9144cab13e141878e7 100644 +index fd0e0eee97c3872cebeb66dabf895ccfa40a6392..20dc9e527abbe5bda70cda8d3498b2d45afa2fdd 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftAreaEffectCloud.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftAreaEffectCloud.java -@@ -35,7 +35,7 @@ public class CraftAreaEffectCloud extends CraftEntity implements AreaEffectCloud +@@ -34,7 +34,7 @@ public class CraftAreaEffectCloud extends CraftEntity implements AreaEffectCloud @Override public net.minecraft.world.entity.AreaEffectCloud getHandle() { @@ -1433,10 +1436,10 @@ index fb5df44773c478c1418a63429b15b96e2efd5f9a..11edbeeb935ac8bfd5754f9144cab13e } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftArmorStand.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftArmorStand.java -index f678c151938ddd3e5277a05d6d8884c12b114336..99d207913441695132e5ce016c8a9c1ad10d2895 100644 +index 774f0f90ad66a0f5f33d1008c036ff515937b18c..852bf41194fccbafd4a4f2f9792a5a08f9f5af87 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftArmorStand.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftArmorStand.java -@@ -35,7 +35,7 @@ public class CraftArmorStand extends CraftLivingEntity implements ArmorStand { +@@ -29,7 +29,7 @@ public class CraftArmorStand extends CraftLivingEntity implements ArmorStand { @Override public net.minecraft.world.entity.decoration.ArmorStand getHandle() { @@ -1446,10 +1449,10 @@ index f678c151938ddd3e5277a05d6d8884c12b114336..99d207913441695132e5ce016c8a9c1a } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftArrow.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftArrow.java -index 6050a3209d893dc4b1f65f14f815840390c14eb0..8a0e0905c525c7d38b47a13b5569d59979fb80b4 100644 +index 8c73acf622e04a7a43b1be3bf96a5420d4caa2e0..4eb6f1bcc85e76fb1209bfbfe87e3266973302a1 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftArrow.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftArrow.java -@@ -152,7 +152,7 @@ public class CraftArrow extends AbstractProjectile implements AbstractArrow { +@@ -151,7 +151,7 @@ public class CraftArrow extends AbstractProjectile implements AbstractArrow { @Override public net.minecraft.world.entity.projectile.AbstractArrow getHandle() { @@ -1459,10 +1462,10 @@ index 6050a3209d893dc4b1f65f14f815840390c14eb0..8a0e0905c525c7d38b47a13b5569d599 } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftAxolotl.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftAxolotl.java -index dec03f00091ca781f0eaa4063649883f47040b07..ec8f21265145b8c91753e71de89d53f953b66fc5 100644 +index c5f0cd5e69a20f1fffcd017385bf9fab59630ffc..503f8d21549aaa986522dc220b975c612b6f57f5 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftAxolotl.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftAxolotl.java -@@ -20,7 +20,7 @@ public class CraftAxolotl extends CraftAnimals implements Axolotl, io.papermc.pa +@@ -19,7 +19,7 @@ public class CraftAxolotl extends CraftAnimals implements Axolotl, io.papermc.pa @Override public net.minecraft.world.entity.animal.axolotl.Axolotl getHandle() { @@ -1472,10 +1475,10 @@ index dec03f00091ca781f0eaa4063649883f47040b07..ec8f21265145b8c91753e71de89d53f9 } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftBat.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftBat.java -index 631250c15711d0912d2ae34efed02d78d20a0098..af8510862ff36527c9327e64d5eca0898ec9b6bb 100644 +index 83d5d7503f1c4988f057743331c6f1eb7c5b57d9..e88927087dfff43392f00ef931f8ee2d95bf117f 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftBat.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftBat.java -@@ -18,7 +18,7 @@ public class CraftBat extends CraftAmbient implements Bat { +@@ -17,7 +17,7 @@ public class CraftBat extends CraftAmbient implements Bat { @Override public net.minecraft.world.entity.ambient.Bat getHandle() { @@ -1485,10 +1488,10 @@ index 631250c15711d0912d2ae34efed02d78d20a0098..af8510862ff36527c9327e64d5eca089 } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftBee.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftBee.java -index 1e636646e3baa7a77c008d9109e0dccfbc497d6e..8e0d8bf82c487e0f96430964522502bfc29044b0 100644 +index b486054e5e9c543cf5e6f2b4356a9f843242cd34..82d004ce214756c7dc91b94c36f7984596c79229 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftBee.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftBee.java -@@ -23,7 +23,7 @@ public class CraftBee extends CraftAnimals implements Bee { +@@ -22,7 +22,7 @@ public class CraftBee extends CraftAnimals implements Bee { @Override public net.minecraft.world.entity.animal.Bee getHandle() { @@ -1498,10 +1501,10 @@ index 1e636646e3baa7a77c008d9109e0dccfbc497d6e..8e0d8bf82c487e0f96430964522502bf } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftBlaze.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftBlaze.java -index 7dfbf7f7a94eae0c62d6830d459c34784a7e518c..14fa8482b5c3cdeaa9421a0e28eeb4d9b08cc646 100644 +index 28edb6913d70c18512fc117735260aa707c2224c..586fbacc2126fe165ae2513c30eccf758380d3b1 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftBlaze.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftBlaze.java -@@ -18,7 +18,7 @@ public class CraftBlaze extends CraftMonster implements Blaze { +@@ -17,7 +17,7 @@ public class CraftBlaze extends CraftMonster implements Blaze { @Override public net.minecraft.world.entity.monster.Blaze getHandle() { @@ -1511,10 +1514,10 @@ index 7dfbf7f7a94eae0c62d6830d459c34784a7e518c..14fa8482b5c3cdeaa9421a0e28eeb4d9 } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftBlockDisplay.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftBlockDisplay.java -index 29ac4ef7d2ed35e10df539b055db087f741fe4b6..c2b121941d8d2311730d31174072bab2b4a3cf3f 100644 +index d7c34f601ce66a6b090ec431a0503462865155a8..0df3b3215551a22ba50d4c2f5f25f3fa7f5e1f7e 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftBlockDisplay.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftBlockDisplay.java -@@ -22,7 +22,7 @@ public class CraftBlockDisplay extends CraftDisplay implements BlockDisplay { +@@ -21,7 +21,7 @@ public class CraftBlockDisplay extends CraftDisplay implements BlockDisplay { @Override public net.minecraft.world.entity.Display.BlockDisplay getHandle() { @@ -1524,10 +1527,10 @@ index 29ac4ef7d2ed35e10df539b055db087f741fe4b6..c2b121941d8d2311730d31174072bab2 } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftBoat.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftBoat.java -index 6671a86496394a786034cab7defa8126b55e8d5e..77ef2e46ff385ae295c16598767412da7bfd081c 100644 +index 85842cdf946e69398e6f64fa1b6d2315519780e0..46d503d1e70825fbe59b25c01c2f841048e96938 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftBoat.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftBoat.java -@@ -101,7 +101,7 @@ public class CraftBoat extends CraftVehicle implements Boat { +@@ -111,7 +111,7 @@ public class CraftBoat extends CraftVehicle implements Boat { @Override public net.minecraft.world.entity.vehicle.Boat getHandle() { @@ -1537,10 +1540,10 @@ index 6671a86496394a786034cab7defa8126b55e8d5e..77ef2e46ff385ae295c16598767412da } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftCamel.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftCamel.java -index 17dc189187e343db0e91f642a2edc782c6419ab9..9d7dda39ab6c3cb08df5ed1b1d2f4c045f8abf0f 100644 +index 6fafba37dd7128a397ba046be7b33067c9e88f25..31230ca50239aa8a7ecb6f7efc982101e7098d17 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftCamel.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftCamel.java -@@ -21,7 +21,7 @@ public class CraftCamel extends CraftAbstractHorse implements Camel { +@@ -20,7 +20,7 @@ public class CraftCamel extends CraftAbstractHorse implements Camel { @Override public net.minecraft.world.entity.animal.camel.Camel getHandle() { @@ -1550,10 +1553,10 @@ index 17dc189187e343db0e91f642a2edc782c6419ab9..9d7dda39ab6c3cb08df5ed1b1d2f4c04 } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftCat.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftCat.java -index d2d54ba55b65108c7fdff6e6850982351f6127a6..9aefbde86981a38ddb046ca86e62f047925e8d08 100644 +index d4e3baefd84a10e29ce1156608d36ecffbd7b634..8a4c89ad9a5865ce48a7b3b6093fe5178c1a9c20 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftCat.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftCat.java -@@ -23,7 +23,7 @@ public class CraftCat extends CraftTameableAnimal implements Cat { +@@ -22,7 +22,7 @@ public class CraftCat extends CraftTameableAnimal implements Cat { @Override public net.minecraft.world.entity.animal.Cat getHandle() { @@ -1563,10 +1566,10 @@ index d2d54ba55b65108c7fdff6e6850982351f6127a6..9aefbde86981a38ddb046ca86e62f047 } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftCaveSpider.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftCaveSpider.java -index 86fee0d40a9dc6a18ec19dc3d85978f38b8d1cd0..ebfa75c1e402850518734501cf97f6e9ac22d28b 100644 +index 8eaced8d8528d25d3b69816c8ec67e8f44030f6d..7083f554ea93ed78abd12f5eec6ddae58cd7288f 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftCaveSpider.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftCaveSpider.java -@@ -18,7 +18,7 @@ public class CraftCaveSpider extends CraftSpider implements CaveSpider { +@@ -17,7 +17,7 @@ public class CraftCaveSpider extends CraftSpider implements CaveSpider { @Override public net.minecraft.world.entity.monster.CaveSpider getHandle() { @@ -1576,10 +1579,10 @@ index 86fee0d40a9dc6a18ec19dc3d85978f38b8d1cd0..ebfa75c1e402850518734501cf97f6e9 } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftChestBoat.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftChestBoat.java -index 0c9400446c2c69e4bd95d167c61ffe22442b4d35..9739235c6321f0bf9b537d6e9943956113cd3564 100644 +index 6f4ee6e3224a25a121a8075929597c5acb691fd2..e2bf550f59e415af74cbe309519ee3a6b72698de 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftChestBoat.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftChestBoat.java -@@ -28,7 +28,7 @@ public class CraftChestBoat extends CraftBoat implements org.bukkit.entity.Chest +@@ -27,7 +27,7 @@ public class CraftChestBoat extends CraftBoat implements org.bukkit.entity.Chest @Override public ChestBoat getHandle() { @@ -1602,10 +1605,10 @@ index 1a9986acde12881e32db67b9e7263072871331cb..fe79f4be9c0e07d37281800f378ee83b } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftChicken.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftChicken.java -index 7066741a251d24c754058aa2553b9430de5b42d3..275f9e3edf4a4a505c6f55cb0afe0d9fd1023472 100644 +index f4858d41c482cc91322cd68cf00a73e2d46cbe18..054d3fb1320f7867546cc6aaccd2fe1725270e5b 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftChicken.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftChicken.java -@@ -19,7 +19,7 @@ public class CraftChicken extends CraftAnimals implements Chicken { +@@ -18,7 +18,7 @@ public class CraftChicken extends CraftAnimals implements Chicken { @Override public net.minecraft.world.entity.animal.Chicken getHandle() { @@ -1615,10 +1618,10 @@ index 7066741a251d24c754058aa2553b9430de5b42d3..275f9e3edf4a4a505c6f55cb0afe0d9f } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftCod.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftCod.java -index f3b587295e90f58b0885bc3c7070b62f3cf7805d..9d599733a60afc7133b213d1da3f92831f381d23 100644 +index 7e3a560ff4a3d56e52534eb909eaf60424b84514..58543514ea72a95c5a1fe1dc601e2ccdf0011b20 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftCod.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftCod.java -@@ -19,7 +19,7 @@ public class CraftCod extends io.papermc.paper.entity.PaperSchoolableFish implem +@@ -18,7 +18,7 @@ public class CraftCod extends io.papermc.paper.entity.PaperSchoolableFish implem @Override public net.minecraft.world.entity.animal.Cod getHandle() { @@ -1628,10 +1631,10 @@ index f3b587295e90f58b0885bc3c7070b62f3cf7805d..9d599733a60afc7133b213d1da3f9283 } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftComplexPart.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftComplexPart.java -index 54aaee0d0d72c76a02e1ab5d51c47b26b6d08b93..66358c1c20c4b198caa59985848219f687918854 100644 +index 3a615a61fedaacb7845fe9c07d4aa3d9e76b2c51..06e7444b97af83e8aa6afc496e2ced00b2fa36b9 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftComplexPart.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftComplexPart.java -@@ -42,7 +42,7 @@ public class CraftComplexPart extends CraftEntity implements ComplexEntityPart { +@@ -41,7 +41,7 @@ public class CraftComplexPart extends CraftEntity implements ComplexEntityPart { @Override public EnderDragonPart getHandle() { @@ -1641,10 +1644,10 @@ index 54aaee0d0d72c76a02e1ab5d51c47b26b6d08b93..66358c1c20c4b198caa59985848219f6 } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftCow.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftCow.java -index a8514a688a6fe4f19000f8f127b0a1277e4f754d..ee441fe61154793551427ff1e648e16b470723e9 100644 +index 646415cf9da4148a32f4d703f009dbb48393897e..8f37ae5b1c4da476498c65b59c07a79027973861 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftCow.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftCow.java -@@ -19,7 +19,7 @@ public class CraftCow extends CraftAnimals implements Cow { +@@ -18,7 +18,7 @@ public class CraftCow extends CraftAnimals implements Cow { @Override public net.minecraft.world.entity.animal.Cow getHandle() { @@ -1667,10 +1670,10 @@ index 062a625e178ac9bbbb26f3d6548fb663b01d889b..1eeffb81d6f76db7b993428ed96e9fe1 } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftCreeper.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftCreeper.java -index 24c6c26f0930940f88bdd0353d660ff31a0d7c33..bd3a95e82847e2f3e97dbc08825be321da667d78 100644 +index c3a489167197ab6392491257d9d11d8077fe4957..bf1b06097b57406c1c5a764606283c4a861c87c0 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftCreeper.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftCreeper.java -@@ -89,7 +89,7 @@ public class CraftCreeper extends CraftMonster implements Creeper { +@@ -88,7 +88,7 @@ public class CraftCreeper extends CraftMonster implements Creeper { @Override public net.minecraft.world.entity.monster.Creeper getHandle() { @@ -1680,10 +1683,10 @@ index 24c6c26f0930940f88bdd0353d660ff31a0d7c33..bd3a95e82847e2f3e97dbc08825be321 } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftDisplay.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftDisplay.java -index e5ffc16d4d5595a7065119c97293f5b419b5a274..7f40df73eaa196bc5274f484e3f56630937d1a83 100644 +index 979a26b3fc9989c0c61971fd20163f1630ddd9da..c18f200ce5e094b4ae2885b0934dfea6770ca18d 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftDisplay.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftDisplay.java -@@ -22,7 +22,7 @@ public class CraftDisplay extends CraftEntity implements Display { +@@ -21,7 +21,7 @@ public class CraftDisplay extends CraftEntity implements Display { @Override public net.minecraft.world.entity.Display getHandle() { @@ -1693,10 +1696,10 @@ index e5ffc16d4d5595a7065119c97293f5b419b5a274..7f40df73eaa196bc5274f484e3f56630 } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftDolphin.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftDolphin.java -index 66f3a67ea0a81d4cfff8365ed055fff6967360b7..e57590117c69e5c8dd40f404ce2b435cbb377bb0 100644 +index c693daa86c2e44165ca6a293563670dc82f30eb2..f361051a1234fbd53fb698d7a8860aa255672269 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftDolphin.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftDolphin.java -@@ -19,7 +19,7 @@ public class CraftDolphin extends CraftWaterMob implements Dolphin { +@@ -18,7 +18,7 @@ public class CraftDolphin extends CraftWaterMob implements Dolphin { @Override public net.minecraft.world.entity.animal.Dolphin getHandle() { @@ -1706,10 +1709,10 @@ index 66f3a67ea0a81d4cfff8365ed055fff6967360b7..e57590117c69e5c8dd40f404ce2b435c } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftDrowned.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftDrowned.java -index 921a36e31f531ab43e9040463f66d8c081469ef4..288e7d65dfaaa810947fdfaac1776709365b0ca7 100644 +index b7c805ab1b2e4c8abd2728bcd17afab0979efc2d..9a28a85a4134b15f3729dac9c755e7e748e13ebd 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftDrowned.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftDrowned.java -@@ -19,7 +19,7 @@ public class CraftDrowned extends CraftZombie implements Drowned, com.destroysto +@@ -18,7 +18,7 @@ public class CraftDrowned extends CraftZombie implements Drowned, com.destroysto @Override public net.minecraft.world.entity.monster.Drowned getHandle() { @@ -1719,10 +1722,10 @@ index 921a36e31f531ab43e9040463f66d8c081469ef4..288e7d65dfaaa810947fdfaac1776709 } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEgg.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEgg.java -index c439ab4e1db346d01c5de4ad9f2ce48e8830a081..8840069d3cfb07cad0a550e20e9d53eb1cf14692 100644 +index 822f81ab0c790acde135080c0851dc2e4b408e82..1ac3bac40f3e345ce452d2e484457b26834bcaf5 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEgg.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEgg.java -@@ -19,7 +19,7 @@ public class CraftEgg extends CraftThrowableProjectile implements Egg { +@@ -18,7 +18,7 @@ public class CraftEgg extends CraftThrowableProjectile implements Egg { @Override public ThrownEgg getHandle() { @@ -1732,10 +1735,10 @@ index c439ab4e1db346d01c5de4ad9f2ce48e8830a081..8840069d3cfb07cad0a550e20e9d53eb } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEnderCrystal.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEnderCrystal.java -index d07b70f42c87a92fe662fc27a2eefa474db87bcc..cb451fc6e2303d8410941ea1f884e50def21a7e9 100644 +index acb9be933c33566fe991ea90f7199d1f58262e5a..3e0c96707a7f749fa02978b66c813d34db92b1d0 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEnderCrystal.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEnderCrystal.java -@@ -49,7 +49,7 @@ public class CraftEnderCrystal extends CraftEntity implements EnderCrystal { +@@ -48,7 +48,7 @@ public class CraftEnderCrystal extends CraftEntity implements EnderCrystal { @Override public EndCrystal getHandle() { @@ -1745,10 +1748,10 @@ index d07b70f42c87a92fe662fc27a2eefa474db87bcc..cb451fc6e2303d8410941ea1f884e50d } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEnderDragon.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEnderDragon.java -index 10b827cb126d937548cc29a1b052d5acfa244f67..dc0c692766652d08105dc8728191632645802c59 100644 +index 57ab36ea7e973e8deb47240d2adad63d26ace04d..cc77547395569bced50b8cf3e9b70154b0a6205b 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEnderDragon.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEnderDragon.java -@@ -40,7 +40,7 @@ public class CraftEnderDragon extends CraftMob implements EnderDragon, CraftEnem +@@ -39,7 +39,7 @@ public class CraftEnderDragon extends CraftMob implements EnderDragon, CraftEnem @Override public net.minecraft.world.entity.boss.enderdragon.EnderDragon getHandle() { @@ -1771,10 +1774,10 @@ index c1f73d89805eca8e13bdee80bcd89ef23cc4b332..aad07d5f5074a96526d6c5b43d349ce9 } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEnderPearl.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEnderPearl.java -index 0cc66673866bd20ef74437866765134b0be503d3..e8534a6c59762e11864dca973693ec7a1e960415 100644 +index 55b2d8ad3f1724793ee9631d3872cc9405759990..7cc42c375f1d497524d8a3f854574a63db6557ba 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEnderPearl.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEnderPearl.java -@@ -19,7 +19,7 @@ public class CraftEnderPearl extends CraftThrowableProjectile implements EnderPe +@@ -18,7 +18,7 @@ public class CraftEnderPearl extends CraftThrowableProjectile implements EnderPe @Override public ThrownEnderpearl getHandle() { @@ -1784,10 +1787,10 @@ index 0cc66673866bd20ef74437866765134b0be503d3..e8534a6c59762e11864dca973693ec7a } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEnderSignal.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEnderSignal.java -index 631dce2beaa9c8d72d45349a436d72c5417e8de7..49f512a2a5892dfc384843e1056308b82852d521 100644 +index fb1009a7cd2a8440f9faeed3e12fe9daefea72e6..c0938ecd0b693bb0f374f972ade498c8fa22d4f7 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEnderSignal.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEnderSignal.java -@@ -25,7 +25,7 @@ public class CraftEnderSignal extends CraftEntity implements EnderSignal { +@@ -24,7 +24,7 @@ public class CraftEnderSignal extends CraftEntity implements EnderSignal { @Override public EyeOfEnder getHandle() { @@ -1797,10 +1800,10 @@ index 631dce2beaa9c8d72d45349a436d72c5417e8de7..49f512a2a5892dfc384843e1056308b8 } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEnderman.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEnderman.java -index 6061d0ea83479611d2c33cf0e001cd43e75c03c4..15a21bad8037871c44635216a188ac58adce8040 100644 +index 7299780db54c9a5acef2e8c0d24885991e80b6e3..d23e3ea1e77f81753b14c2ffd75aef54b96578a0 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEnderman.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEnderman.java -@@ -72,7 +72,7 @@ public class CraftEnderman extends CraftMonster implements Enderman { +@@ -71,7 +71,7 @@ public class CraftEnderman extends CraftMonster implements Enderman { @Override public EnderMan getHandle() { @@ -1810,10 +1813,10 @@ index 6061d0ea83479611d2c33cf0e001cd43e75c03c4..15a21bad8037871c44635216a188ac58 } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEndermite.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEndermite.java -index 6d3325436a77153438bc40aa86819562e65e6a9e..d15ae696d2b4d4699b3f2dfc12b137ab9fbb2269 100644 +index 9fc90b162aab15a9cd60b02aba56318130b394c4..c6e82fc1e0160841e6e2e969fed237a9303bc105 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEndermite.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEndermite.java -@@ -19,7 +19,7 @@ public class CraftEndermite extends CraftMonster implements Endermite { +@@ -18,7 +18,7 @@ public class CraftEndermite extends CraftMonster implements Endermite { @Override public net.minecraft.world.entity.monster.Endermite getHandle() { @@ -1823,10 +1826,10 @@ index 6d3325436a77153438bc40aa86819562e65e6a9e..d15ae696d2b4d4699b3f2dfc12b137ab } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java -index 19b47478d318edce1242c2a5ddd73da963a24595..e909e7d4c4abdd7a6fdd9c7063a5fe74965fe238 100644 +index ffc3c9908281a3018ca5b4e244690d459c456d83..4d844b4ff49014c445a6bd5420a83de5ce203b11 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java -@@ -577,10 +577,11 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity { +@@ -583,10 +583,11 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity { @Override public boolean teleport(Location location, TeleportCause cause, io.papermc.paper.entity.TeleportFlag... flags) { // Folia start - region threading @@ -1840,7 +1843,7 @@ index 19b47478d318edce1242c2a5ddd73da963a24595..e909e7d4c4abdd7a6fdd9c7063a5fe74 // Paper end Preconditions.checkArgument(location != null, "location cannot be null"); location.checkFinite(); -@@ -606,7 +607,7 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity { +@@ -612,7 +613,7 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity { // If this entity is riding another entity, we must dismount before teleporting. if (dismount) this.entity.stopRiding(); // Paper - Teleport passenger API @@ -1849,7 +1852,7 @@ index 19b47478d318edce1242c2a5ddd73da963a24595..e909e7d4c4abdd7a6fdd9c7063a5fe74 if (location.getWorld() != null && !location.getWorld().equals(this.getWorld())) { // Prevent teleportation to an other world during world generation Preconditions.checkState(!entity.generation, "Cannot teleport entity to an other world during world generation"); -@@ -617,9 +618,13 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity { +@@ -623,9 +624,13 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity { // entity.setLocation() throws no event, and so cannot be cancelled entity.moveTo(location.getX(), location.getY(), location.getZ(), location.getYaw(), location.getPitch()); // Paper - use proper moveTo, as per vanilla teleporting // SPIGOT-619: Force sync head rotation also @@ -1866,7 +1869,7 @@ index 19b47478d318edce1242c2a5ddd73da963a24595..e909e7d4c4abdd7a6fdd9c7063a5fe74 } @Override -@@ -836,7 +841,7 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity { +@@ -842,7 +847,7 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity { } public Entity getHandle() { @@ -1876,10 +1879,10 @@ index 19b47478d318edce1242c2a5ddd73da963a24595..e909e7d4c4abdd7a6fdd9c7063a5fe74 } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEvoker.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEvoker.java -index 6d7f99943ae6453edeecaea06f4a906b7b20daaf..98fd46c4807ccc8d34d90ce4cff11a2d9136c8a5 100644 +index 3d284b790c869fb30180b92b891b292006c7dad4..2ebcffd75343ed6ecd73cca32e84fc75cc479747 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEvoker.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEvoker.java -@@ -21,7 +21,7 @@ public class CraftEvoker extends CraftSpellcaster implements Evoker { +@@ -20,7 +20,7 @@ public class CraftEvoker extends CraftSpellcaster implements Evoker { @Override public net.minecraft.world.entity.monster.Evoker getHandle() { @@ -1889,10 +1892,10 @@ index 6d7f99943ae6453edeecaea06f4a906b7b20daaf..98fd46c4807ccc8d34d90ce4cff11a2d } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEvokerFangs.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEvokerFangs.java -index 9fe7028cde18e4936cd2fc62a359feb6386596b3..696648e435949f94c7c7fc07843e77a5705f3dbe 100644 +index 591e710d5296dddc0bdd7279a3c98c47c9e01239..6e50832a73a7e338cc1d78aa507915907399a536 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEvokerFangs.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEvokerFangs.java -@@ -20,7 +20,7 @@ public class CraftEvokerFangs extends CraftEntity implements EvokerFangs { +@@ -19,7 +19,7 @@ public class CraftEvokerFangs extends CraftEntity implements EvokerFangs { @Override public net.minecraft.world.entity.projectile.EvokerFangs getHandle() { @@ -1902,10 +1905,10 @@ index 9fe7028cde18e4936cd2fc62a359feb6386596b3..696648e435949f94c7c7fc07843e77a5 } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftExperienceOrb.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftExperienceOrb.java -index 5b8333e342c639f33acf62e5f8eb72d0ba4a68c7..e6b2262a307c2995fb1e64a8c6ccfd5ae32e3c33 100644 +index 990709bd56a96a60df020947f99b4f30cbe4192e..e518b6485a5acf0aa31b0d9cbd60f393fb3f852e 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftExperienceOrb.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftExperienceOrb.java -@@ -40,7 +40,7 @@ public class CraftExperienceOrb extends CraftEntity implements ExperienceOrb { +@@ -39,7 +39,7 @@ public class CraftExperienceOrb extends CraftEntity implements ExperienceOrb { @Override public net.minecraft.world.entity.ExperienceOrb getHandle() { @@ -1915,10 +1918,10 @@ index 5b8333e342c639f33acf62e5f8eb72d0ba4a68c7..e6b2262a307c2995fb1e64a8c6ccfd5a } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftFallingBlock.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftFallingBlock.java -index fc7d7c0645ff9a8b4d6a0bc78cf6bd64d1a0d858..8efa97c0b187fc2ded38c08f35089003baf2a9ab 100644 +index ede9068881ea75449ca24bff66ef754a2c17b152..6a863082cbdae28c1e650f924819285217fd2e55 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftFallingBlock.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftFallingBlock.java -@@ -24,7 +24,7 @@ public class CraftFallingBlock extends CraftEntity implements FallingBlock { +@@ -23,7 +23,7 @@ public class CraftFallingBlock extends CraftEntity implements FallingBlock { @Override public FallingBlockEntity getHandle() { @@ -1928,10 +1931,10 @@ index fc7d7c0645ff9a8b4d6a0bc78cf6bd64d1a0d858..8efa97c0b187fc2ded38c08f35089003 } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftFireball.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftFireball.java -index bd1ed5b1e58cb3ce40036a602acbb0b7a7e6322b..7da30887d41b7990f9e86eec914dcf3af35c16da 100644 +index f62d88821164ad2fac8d53598bcf1e1b6d350225..34e644c245182cadcd036544790e2933f0ec5fd8 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftFireball.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftFireball.java -@@ -56,7 +56,7 @@ public class CraftFireball extends AbstractProjectile implements Fireball { +@@ -55,7 +55,7 @@ public class CraftFireball extends AbstractProjectile implements Fireball { @Override public AbstractHurtingProjectile getHandle() { @@ -1941,10 +1944,10 @@ index bd1ed5b1e58cb3ce40036a602acbb0b7a7e6322b..7da30887d41b7990f9e86eec914dcf3a } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftFirework.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftFirework.java -index 851cb3216184180667b068f36984bff4a7765c49..dde288b1f1bd9d7a3adb2053560d3a43118d1f20 100644 +index 2a0cb9ee40bd630d94f717ccd06d49f631034e7d..e2e42eb0b138e6779f155e95369186ac5b340ebc 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftFirework.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftFirework.java -@@ -47,7 +47,7 @@ public class CraftFirework extends CraftProjectile implements Firework { +@@ -46,7 +46,7 @@ public class CraftFirework extends CraftProjectile implements Firework { @Override public FireworkRocketEntity getHandle() { @@ -1967,10 +1970,10 @@ index d702e34f65de28df677a9d3616f38b2cf9abfa23..5f70807cb8f8d83bea02e6cafa62e3e9 } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftFishHook.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftFishHook.java -index d73d18e10d9a75a43f9352f5eebaa3be485e3572..31091bf755106f56b586c8d28138f1ef9be59e25 100644 +index ccb54c8da9f27666ec08347b3c4c738a6a1fe245..f47afdf4c4961a24e1588ea5986957a61c9032fb 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftFishHook.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftFishHook.java -@@ -24,7 +24,7 @@ public class CraftFishHook extends CraftProjectile implements FishHook { +@@ -23,7 +23,7 @@ public class CraftFishHook extends CraftProjectile implements FishHook { @Override public FishingHook getHandle() { @@ -1993,10 +1996,10 @@ index e1e51f050959aa23bd85bb794a7098a549c819c8..4f552f8aaaa6d78e2641b5246a30da9d } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftFox.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftFox.java -index 36997290fa276275bbcf890a7b368f40a9ad8e02..85e006329af277aa40240218baf96171cae912f8 100644 +index 929c817b7101973c4cc9f8f5a23f1941d67508cb..5cf22599ca9330c49e44bdaa0e1dc6d63c302b13 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftFox.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftFox.java -@@ -24,7 +24,7 @@ public class CraftFox extends CraftAnimals implements Fox { +@@ -23,7 +23,7 @@ public class CraftFox extends CraftAnimals implements Fox { @Override public net.minecraft.world.entity.animal.Fox getHandle() { @@ -2006,10 +2009,10 @@ index 36997290fa276275bbcf890a7b368f40a9ad8e02..85e006329af277aa40240218baf96171 } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftFrog.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftFrog.java -index 67e24a4c1daf6c986e34c4a41fb45285809b348f..32e7bd9c664adae72ea80d4a50941e47e739491e 100644 +index 43d4027af0a1408bcef71c0f381a629c9099fe97..31e3cc085b0b15fa8ec0777f146046d7ff474237 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftFrog.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftFrog.java -@@ -24,7 +24,7 @@ public class CraftFrog extends CraftAnimals implements org.bukkit.entity.Frog { +@@ -23,7 +23,7 @@ public class CraftFrog extends CraftAnimals implements org.bukkit.entity.Frog { @Override public Frog getHandle() { @@ -2019,10 +2022,10 @@ index 67e24a4c1daf6c986e34c4a41fb45285809b348f..32e7bd9c664adae72ea80d4a50941e47 } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftGhast.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftGhast.java -index 308c39b5721dbf70ad256e5ccacc04831af398d5..dd92491285803adec478f422fa90ef035ed22ddc 100644 +index d8372cc3ff0f0cbfc5638cb0f4842bfcc54a9565..bd8be7c5d34530bf7b5c57621552dacd676bf311 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftGhast.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftGhast.java -@@ -19,7 +19,7 @@ public class CraftGhast extends CraftFlying implements Ghast, CraftEnemy { +@@ -18,7 +18,7 @@ public class CraftGhast extends CraftFlying implements Ghast, CraftEnemy { @Override public net.minecraft.world.entity.monster.Ghast getHandle() { @@ -2032,10 +2035,10 @@ index 308c39b5721dbf70ad256e5ccacc04831af398d5..dd92491285803adec478f422fa90ef03 } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftGiant.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftGiant.java -index f0a04ca56bd58844b40101190772786457239151..ccc1af2164e74c0b01926f65c51d156c524b6cd1 100644 +index d65b641d1bbd325547c16e186f4ec2558bcdc5c4..22244fa4b0ee2cd676cb9af38271f643b3386c84 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftGiant.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftGiant.java -@@ -19,7 +19,7 @@ public class CraftGiant extends CraftMonster implements Giant { +@@ -18,7 +18,7 @@ public class CraftGiant extends CraftMonster implements Giant { @Override public net.minecraft.world.entity.monster.Giant getHandle() { @@ -2045,10 +2048,10 @@ index f0a04ca56bd58844b40101190772786457239151..ccc1af2164e74c0b01926f65c51d156c } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftGlowItemFrame.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftGlowItemFrame.java -index 2450dc8a0f1fc526eb0b2ed917a5bbbebeadb7bc..b56eae202e8b357970793865898822dfd8f1d863 100644 +index 47afda44cb474d9752cf97405b546a534382880a..d0416fbf134550323c061e1ed8454b536bba36be 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftGlowItemFrame.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftGlowItemFrame.java -@@ -19,7 +19,7 @@ public class CraftGlowItemFrame extends CraftItemFrame implements GlowItemFrame +@@ -18,7 +18,7 @@ public class CraftGlowItemFrame extends CraftItemFrame implements GlowItemFrame @Override public net.minecraft.world.entity.decoration.GlowItemFrame getHandle() { @@ -2058,10 +2061,10 @@ index 2450dc8a0f1fc526eb0b2ed917a5bbbebeadb7bc..b56eae202e8b357970793865898822df } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftGlowSquid.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftGlowSquid.java -index b5bac66ad28c0ed2bc41fa3ffe765c61817d6b8a..cb77ca5763e92c336398350ead166c3615eadda8 100644 +index ad0b9025e38926555b47dee1e056c7c8714c91fe..34aa28f4703fd945f0f7a1a8a795605c44fe7219 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftGlowSquid.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftGlowSquid.java -@@ -20,7 +20,7 @@ public class CraftGlowSquid extends CraftSquid implements GlowSquid { +@@ -19,7 +19,7 @@ public class CraftGlowSquid extends CraftSquid implements GlowSquid { @Override public net.minecraft.world.entity.GlowSquid getHandle() { @@ -2071,10 +2074,10 @@ index b5bac66ad28c0ed2bc41fa3ffe765c61817d6b8a..cb77ca5763e92c336398350ead166c36 } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftGoat.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftGoat.java -index 8081d8ef5c2e773f7a716ef33cd842cc4a5458cc..dabc19332d542104ec819f430320577c15dbe36b 100644 +index ab87340df483787d59d8b1e2ce3a69235d39bba5..7f0474d527436b3426e6a283989f8be45c0ec780 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftGoat.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftGoat.java -@@ -19,7 +19,7 @@ public class CraftGoat extends CraftAnimals implements Goat { +@@ -18,7 +18,7 @@ public class CraftGoat extends CraftAnimals implements Goat { @Override public net.minecraft.world.entity.animal.goat.Goat getHandle() { @@ -2097,10 +2100,10 @@ index 1ab70f244ed31eea22cc2614788072dbf3b4bbb5..b8fdcb5f7bfa9cd4127f711f238f1f91 } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftGuardian.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftGuardian.java -index 1280dd6ecc53d681bbb311b6099817b517bc50db..6d4de0a6350e07b2eca53db5d532b64ea4de1822 100644 +index c11304434217a48400ec147f3b4e63d40d3b7280..58f4f22e61595bfee75a323723515523fb6084fa 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftGuardian.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftGuardian.java -@@ -23,7 +23,7 @@ public class CraftGuardian extends CraftMonster implements Guardian { +@@ -22,7 +22,7 @@ public class CraftGuardian extends CraftMonster implements Guardian { @Override public net.minecraft.world.entity.monster.Guardian getHandle() { @@ -2110,10 +2113,10 @@ index 1280dd6ecc53d681bbb311b6099817b517bc50db..6d4de0a6350e07b2eca53db5d532b64e } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftHanging.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftHanging.java -index 1797199729d018d103ccae1773fc0206b8381b8d..4e6ede68dc04ce56516f36e883e9ab4ce0836562 100644 +index 0ea8bcfc368e519d1f4906654ad5c72f80e84a3f..6f641f1c9f3e2924de016140d2ddb821f81daed7 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftHanging.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftHanging.java -@@ -67,7 +67,7 @@ public class CraftHanging extends CraftEntity implements Hanging { +@@ -66,7 +66,7 @@ public class CraftHanging extends CraftEntity implements Hanging { @Override public HangingEntity getHandle() { @@ -2123,10 +2126,10 @@ index 1797199729d018d103ccae1773fc0206b8381b8d..4e6ede68dc04ce56516f36e883e9ab4c } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftHoglin.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftHoglin.java -index 1e312733b266e8350bc1a59113b195881c5a9e17..9235eb1ddd4e371128460685617a17b10a740cb8 100644 +index e13f9b88dee6f0e98550dc39bb16373366aa97ce..f6c83d9ddd510815e270452fe87a19e4aa55ac88 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftHoglin.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftHoglin.java -@@ -61,7 +61,7 @@ public class CraftHoglin extends CraftAnimals implements Hoglin, CraftEnemy { +@@ -60,7 +60,7 @@ public class CraftHoglin extends CraftAnimals implements Hoglin, CraftEnemy { @Override public net.minecraft.world.entity.monster.hoglin.Hoglin getHandle() { @@ -2136,10 +2139,10 @@ index 1e312733b266e8350bc1a59113b195881c5a9e17..9235eb1ddd4e371128460685617a17b1 } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftHorse.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftHorse.java -index a34608c74daced31ec45a96b643176a4d2ff72dc..50192f87b6779d683f66d17d4093176664efb96b 100644 +index 584703f2d7d14efd79568663cd833cb31f55c422..811e32fec21a04f46939c19718ec220ab5945512 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftHorse.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftHorse.java -@@ -23,7 +23,7 @@ public class CraftHorse extends CraftAbstractHorse implements Horse { +@@ -22,7 +22,7 @@ public class CraftHorse extends CraftAbstractHorse implements Horse { @Override public net.minecraft.world.entity.animal.horse.Horse getHandle() { @@ -2149,7 +2152,7 @@ index a34608c74daced31ec45a96b643176a4d2ff72dc..50192f87b6779d683f66d17d40931766 } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java -index 16cf9cd20b400cdadac89152bdafd64b4e207a5e..fb18ba70713f61377385226d2d5ab4c8eaeb5380 100644 +index 5a2557570a78ef04270c2b418a63081cf3995cb7..38f6343d48deef5269e14b0c6078605ee535642f 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java @@ -300,7 +300,7 @@ public class CraftHumanEntity extends CraftLivingEntity implements HumanEntity { @@ -2175,10 +2178,10 @@ index 7becaa4d26df7309984b7aa271a0ae6f778acc0a..6f10b5373d8bcd3909ad67f260ff0f60 } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftIllusioner.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftIllusioner.java -index 3ab7929aa11584ec0f86ff8ad441f2b9660cf9c6..b38297cf92d623b6178cf8a4c7dbe341ba3785b8 100644 +index 89c0121c40da1596a4bf5db6e1d7d611d5053153..5cca9e2079e2da062d3e266701fa9ab9f4bd6c8b 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftIllusioner.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftIllusioner.java -@@ -19,7 +19,7 @@ public class CraftIllusioner extends CraftSpellcaster implements Illusioner, com +@@ -18,7 +18,7 @@ public class CraftIllusioner extends CraftSpellcaster implements Illusioner, com @Override public net.minecraft.world.entity.monster.Illusioner getHandle() { @@ -2188,10 +2191,10 @@ index 3ab7929aa11584ec0f86ff8ad441f2b9660cf9c6..b38297cf92d623b6178cf8a4c7dbe341 } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftInteraction.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftInteraction.java -index 7b7074a9418bbcd87c18217ea78efdbc7d01528a..994e413ca820de2d10063855a69ed52ddabc2db0 100644 +index ed741f77fbe8f5c40a3923b0a431da768104a1b5..10995f83ca1706ae1ae76a4c1e038b7f8cf536b1 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftInteraction.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftInteraction.java -@@ -22,7 +22,7 @@ public class CraftInteraction extends CraftEntity implements Interaction { +@@ -21,7 +21,7 @@ public class CraftInteraction extends CraftEntity implements Interaction { @Override public net.minecraft.world.entity.Interaction getHandle() { @@ -2201,10 +2204,10 @@ index 7b7074a9418bbcd87c18217ea78efdbc7d01528a..994e413ca820de2d10063855a69ed52d } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftIronGolem.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftIronGolem.java -index 8c3818e8024ee25c29929368750dc346261db5d6..1bd905090c2fc209e7041a74de73b094763a2a59 100644 +index a920bfcfa4a977b4107f5f34fe9e625039d3ad39..02d93944c5066934d5e11665c55daa62a50b8b41 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftIronGolem.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftIronGolem.java -@@ -18,7 +18,7 @@ public class CraftIronGolem extends CraftGolem implements IronGolem { +@@ -17,7 +17,7 @@ public class CraftIronGolem extends CraftGolem implements IronGolem { @Override public net.minecraft.world.entity.animal.IronGolem getHandle() { @@ -2214,10 +2217,10 @@ index 8c3818e8024ee25c29929368750dc346261db5d6..1bd905090c2fc209e7041a74de73b094 } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftItemDisplay.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftItemDisplay.java -index 06e2580653db00110b0f0a05cfda9d0e9baecdfa..7712093325cc76b5315335f6e9c682d683c46faf 100644 +index eb2b4272b09e5df06e49afc2ccf7063ebc3d42b8..74b74afba26a7a391e187261f917c347c9e53392 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftItemDisplay.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftItemDisplay.java -@@ -23,7 +23,7 @@ public class CraftItemDisplay extends CraftDisplay implements ItemDisplay { +@@ -22,7 +22,7 @@ public class CraftItemDisplay extends CraftDisplay implements ItemDisplay { @Override public net.minecraft.world.entity.Display.ItemDisplay getHandle() { @@ -2227,10 +2230,10 @@ index 06e2580653db00110b0f0a05cfda9d0e9baecdfa..7712093325cc76b5315335f6e9c682d6 } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftItemFrame.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftItemFrame.java -index 9f5825c037d26528740ba02aaf9eb1e36d564f67..0c0154bfd39cb4895054710acb65740dd92652de 100644 +index 3ef7e3eac107890af5f67a8d02dd6664d35f88b7..872c7b3c769486d65e6a3c17ac5e78a3f2ce92c5 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftItemFrame.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftItemFrame.java -@@ -165,7 +165,7 @@ public class CraftItemFrame extends CraftHanging implements ItemFrame { +@@ -164,7 +164,7 @@ public class CraftItemFrame extends CraftHanging implements ItemFrame { @Override public net.minecraft.world.entity.decoration.ItemFrame getHandle() { @@ -2240,10 +2243,10 @@ index 9f5825c037d26528740ba02aaf9eb1e36d564f67..0c0154bfd39cb4895054710acb65740d } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftLargeFireball.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftLargeFireball.java -index bbc439dab077bed605179129ae715f9989f2a181..934d19668a2cb47cbb3fc5450a67a949645bb74b 100644 +index 125e676efc79e582f19a44b68e5faea806f5dda4..0f86c634e221f7685417172f0e5a14103e833ba6 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftLargeFireball.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftLargeFireball.java -@@ -24,7 +24,7 @@ public class CraftLargeFireball extends CraftSizedFireball implements LargeFireb +@@ -23,7 +23,7 @@ public class CraftLargeFireball extends CraftSizedFireball implements LargeFireb @Override public net.minecraft.world.entity.projectile.LargeFireball getHandle() { @@ -2253,10 +2256,10 @@ index bbc439dab077bed605179129ae715f9989f2a181..934d19668a2cb47cbb3fc5450a67a949 } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftLeash.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftLeash.java -index ffccc8f021cdef6ed00241189aefd8217bc82d1c..ddf4bae8cd8336871f1780bb4442b329cb8b2a8c 100644 +index 9829c809ec385e15bbb1ef48c1bda5ff0adb5774..ba7964915eabecf89bf934f7d1064367b5c7617d 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftLeash.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftLeash.java -@@ -34,7 +34,7 @@ public class CraftLeash extends CraftHanging implements LeashHitch { +@@ -33,7 +33,7 @@ public class CraftLeash extends CraftHanging implements LeashHitch { @Override public LeashFenceKnotEntity getHandle() { @@ -2266,10 +2269,10 @@ index ffccc8f021cdef6ed00241189aefd8217bc82d1c..ddf4bae8cd8336871f1780bb4442b329 } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftLightningStrike.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftLightningStrike.java -index 80cac5d7362577e53ef5ca215ab3261898127b2f..146c2a0564b4fffad357aad330dd79ebd6bb2db5 100644 +index 61f7630d2160411f35cc3ca33def30b9cea65408..be0d22f81e3267747926ddeca0f0dfd163132754 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftLightningStrike.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftLightningStrike.java -@@ -24,7 +24,7 @@ public class CraftLightningStrike extends CraftEntity implements LightningStrike +@@ -23,7 +23,7 @@ public class CraftLightningStrike extends CraftEntity implements LightningStrike @Override public LightningBolt getHandle() { @@ -2279,7 +2282,7 @@ index 80cac5d7362577e53ef5ca215ab3261898127b2f..146c2a0564b4fffad357aad330dd79eb } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java -index fae85d064bcea3589a69483ec6ac6c4cca73ad9a..57c79786399066bad0bbf819165e25af7d02dcff 100644 +index ab53eab269b204a59b2c9a9bef4f6cf4098e0dfd..0a477d8e90a3804800083ae9ba927a4304b67cbc 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java @@ -437,7 +437,7 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity { @@ -2292,10 +2295,10 @@ index fae85d064bcea3589a69483ec6ac6c4cca73ad9a..57c79786399066bad0bbf819165e25af } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftLlama.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftLlama.java -index bcb06f550033e346923026141dc96b032e9ff765..fbc50b92a3abeae92c43dbcf55855fd00e213a7e 100644 +index 874c6690ec46d482757093296bbcf1864382e13b..07a3729a96b94dd57646ae326b0d7563bfa85385 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftLlama.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftLlama.java -@@ -24,7 +24,7 @@ public class CraftLlama extends CraftChestedHorse implements Llama, com.destroys +@@ -23,7 +23,7 @@ public class CraftLlama extends CraftChestedHorse implements Llama, com.destroys @Override public net.minecraft.world.entity.animal.horse.Llama getHandle() { @@ -2305,10 +2308,10 @@ index bcb06f550033e346923026141dc96b032e9ff765..fbc50b92a3abeae92c43dbcf55855fd0 } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftLlamaSpit.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftLlamaSpit.java -index ce153695ce561664fa5e184bad0ca8895f0344f3..11f439e18625c1f407cc525f808dd038277f82a2 100644 +index f1e78960622b71aa63e172a1d856a757d6926a5a..9d0230f62657c81b1760e8a0bf79679c88c7bce5 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftLlamaSpit.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftLlamaSpit.java -@@ -20,7 +20,7 @@ public class CraftLlamaSpit extends AbstractProjectile implements LlamaSpit { +@@ -19,7 +19,7 @@ public class CraftLlamaSpit extends AbstractProjectile implements LlamaSpit { @Override public net.minecraft.world.entity.projectile.LlamaSpit getHandle() { @@ -2318,10 +2321,10 @@ index ce153695ce561664fa5e184bad0ca8895f0344f3..11f439e18625c1f407cc525f808dd038 } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftMagmaCube.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftMagmaCube.java -index e9fa1f544b7350d7537729768c1a0c3f846c18ac..10e79742e5b586beaf0829c0be3ef0acb09bbb95 100644 +index b55d9add57561339f86e9c54e1a9e135ee01e8f6..63d4eeeeb8fc8db8355ae3c3c6c244115515fc1c 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftMagmaCube.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftMagmaCube.java -@@ -19,7 +19,7 @@ public class CraftMagmaCube extends CraftSlime implements MagmaCube { +@@ -18,7 +18,7 @@ public class CraftMagmaCube extends CraftSlime implements MagmaCube { @Override public net.minecraft.world.entity.monster.MagmaCube getHandle() { @@ -2331,10 +2334,10 @@ index e9fa1f544b7350d7537729768c1a0c3f846c18ac..10e79742e5b586beaf0829c0be3ef0ac } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftMarker.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftMarker.java -index 8f28ad0cc3feb4a1a034d916da1ccd892b2149de..54a394ab5c0144bbb8eb4e7935a5db4ae5d7aa8a 100644 +index 9c04388e9d38103b40a154b6f0e13920ede451f5..70c37a4bbcd6a0dc05ac3d09ee3868808ea433ba 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftMarker.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftMarker.java -@@ -19,7 +19,7 @@ public class CraftMarker extends CraftEntity implements Marker { +@@ -18,7 +18,7 @@ public class CraftMarker extends CraftEntity implements Marker { @Override public net.minecraft.world.entity.Marker getHandle() { @@ -2357,10 +2360,10 @@ index 6cce3d64a4f506fcebbe34eae58163c57d43137c..56b2da2a054b8600da23edd8a7a6d2dd } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftMinecartCommand.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftMinecartCommand.java -index fd3eedcfa056c05761c53bccc62fb4dcd00fcb9b..9d31768416c11d0191c420884a322ebefcb0cd0f 100644 +index 9fe092113bf3db33527670ebc2a2a351960cf458..274a30616d33e823b29ec625c04373312ee423b1 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftMinecartCommand.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftMinecartCommand.java -@@ -30,7 +30,7 @@ public class CraftMinecartCommand extends CraftMinecart implements CommandMineca +@@ -29,7 +29,7 @@ public class CraftMinecartCommand extends CraftMinecart implements CommandMineca @Override public MinecartCommandBlock getHandle() { @@ -2383,10 +2386,10 @@ index b7d0892953f357e58665e87fbcf794a75f1c0980..aa55ece97d50f313b0c80effc802465b } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftMinecartFurnace.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftMinecartFurnace.java -index e7c303a0f8b4e2ca26cf28b4661b7bdf56f2498f..36d98057f0f6db8d221d4024b2b553d1e4e0cd40 100644 +index bff74243c147727087f4869d02ab31938afb16e3..a06b552011316d97201164ad2ba911d103a04150 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftMinecartFurnace.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftMinecartFurnace.java -@@ -21,7 +21,7 @@ public class CraftMinecartFurnace extends CraftMinecart implements PoweredMineca +@@ -20,7 +20,7 @@ public class CraftMinecartFurnace extends CraftMinecart implements PoweredMineca @Override public MinecartFurnace getHandle() { @@ -2396,10 +2399,10 @@ index e7c303a0f8b4e2ca26cf28b4661b7bdf56f2498f..36d98057f0f6db8d221d4024b2b553d1 } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftMinecartHopper.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftMinecartHopper.java -index 31665297fc24f6d2e86e206ef1ddf46ded51782f..e072aa17e1689ce8734ba35d14889f5d63ca9ff9 100644 +index 2e43d3667cc9ba35baf04658c13a8ed35b44e5cd..caa9b2d019463f001e9ece94e7c43bb9de07f2f3 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftMinecartHopper.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftMinecartHopper.java -@@ -50,7 +50,7 @@ public final class CraftMinecartHopper extends CraftMinecartContainer implements +@@ -44,7 +44,7 @@ public final class CraftMinecartHopper extends CraftMinecartContainer implements @Override public net.minecraft.world.entity.vehicle.MinecartHopper getHandle() { @@ -2409,10 +2412,10 @@ index 31665297fc24f6d2e86e206ef1ddf46ded51782f..e072aa17e1689ce8734ba35d14889f5d } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftMinecartTNT.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftMinecartTNT.java -index dce230dc9dc44040e925e9ab5ab95529561ba464..c1d881b56ca2ebafb75bb471871631218d0eef3b 100644 +index 7767a342b3d8bf9c07fbd73ad4ccacd8065c5869..ae878feea552834cde458eed659305566979640c 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftMinecartTNT.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftMinecartTNT.java -@@ -52,7 +52,7 @@ public final class CraftMinecartTNT extends CraftMinecart implements ExplosiveMi +@@ -51,7 +51,7 @@ public final class CraftMinecartTNT extends CraftMinecart implements ExplosiveMi @Override public MinecartTNT getHandle() { @@ -2448,10 +2451,10 @@ index d3b655ab5adacd60f04f912187662c5717a72962..20783d2e8a7eb9de272182ce304bf2b9 } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftMushroomCow.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftMushroomCow.java -index f3016d316c1dcee3f5d7c7221668280c7bd9a76e..aaea9be8dff7875a04a8bbd20a5abe1df409708b 100644 +index 7c41ca305e4bb6e7aa858714763a3b6071ce2b18..4933519d020d7b6aa1e4ef6bbfaf0fca93671685 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftMushroomCow.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftMushroomCow.java -@@ -20,7 +20,7 @@ public class CraftMushroomCow extends CraftCow implements MushroomCow, io.paperm +@@ -19,7 +19,7 @@ public class CraftMushroomCow extends CraftCow implements MushroomCow, io.paperm @Override public net.minecraft.world.entity.animal.MushroomCow getHandle() { @@ -2461,10 +2464,10 @@ index f3016d316c1dcee3f5d7c7221668280c7bd9a76e..aaea9be8dff7875a04a8bbd20a5abe1d } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftOcelot.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftOcelot.java -index e6ba1a905a14ae7113decc72b121175eb85d2b36..1636ca443c8e53d70a14ed87fb16bc1c26562b17 100644 +index e0cc8454d7c2e6f3ae1805c686f3ee25dd5f0b9c..7c053f89eaf56495113ba9a00d3d191ec4508c6a 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftOcelot.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftOcelot.java -@@ -19,7 +19,7 @@ public class CraftOcelot extends CraftAnimals implements Ocelot { +@@ -18,7 +18,7 @@ public class CraftOcelot extends CraftAnimals implements Ocelot { @Override public net.minecraft.world.entity.animal.Ocelot getHandle() { @@ -2474,10 +2477,10 @@ index e6ba1a905a14ae7113decc72b121175eb85d2b36..1636ca443c8e53d70a14ed87fb16bc1c } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPainting.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPainting.java -index 2fb654411b042159da97c79e69e8845e2b73c4bb..1a25a401154dfb594fb0d79fa93266bc135067fc 100644 +index 1f1b4a7b7f6a74d9830402bfb03bf85335fd9825..cdd4f4cd7971a72ac2f3a54a9d47fad8cf13b7a3 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPainting.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPainting.java -@@ -61,7 +61,7 @@ public class CraftPainting extends CraftHanging implements Painting { +@@ -60,7 +60,7 @@ public class CraftPainting extends CraftHanging implements Painting { @Override public net.minecraft.world.entity.decoration.Painting getHandle() { @@ -2487,10 +2490,10 @@ index 2fb654411b042159da97c79e69e8845e2b73c4bb..1a25a401154dfb594fb0d79fa93266bc } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPanda.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPanda.java -index 71b307cd7029b8aeb511bfa6eb3f73736f2d0c91..c31a5d5626aae495962aa07e6451662af6e055a1 100644 +index 2683bcfea4812a0ec57b8c09758eb2b58c02d582..689d2b00d9c09a0bd11e663dca017065457fa168 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPanda.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPanda.java -@@ -21,7 +21,7 @@ public class CraftPanda extends CraftAnimals implements Panda { +@@ -20,7 +20,7 @@ public class CraftPanda extends CraftAnimals implements Panda { @Override public net.minecraft.world.entity.animal.Panda getHandle() { @@ -2500,10 +2503,10 @@ index 71b307cd7029b8aeb511bfa6eb3f73736f2d0c91..c31a5d5626aae495962aa07e6451662a } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftParrot.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftParrot.java -index caee1abf4c057afa08be8495bf742f871b2d1eae..6177fa523f110d14fde31fa5ef22c840652bde66 100644 +index 8cf5187ac315fdbff0df90fb612f4c9b7d52eccd..7d3bbe0f4b1ed57ba2be76d3e43509e078a7ac08 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftParrot.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftParrot.java -@@ -21,7 +21,7 @@ public class CraftParrot extends CraftTameableAnimal implements Parrot { +@@ -20,7 +20,7 @@ public class CraftParrot extends CraftTameableAnimal implements Parrot { @Override public net.minecraft.world.entity.animal.Parrot getHandle() { @@ -2513,10 +2516,10 @@ index caee1abf4c057afa08be8495bf742f871b2d1eae..6177fa523f110d14fde31fa5ef22c840 } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPhantom.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPhantom.java -index 8c02dabbfee88ee6c3315c8174da7236eecdd8cc..df786990c64974e2838423728c2580e2e44d31ee 100644 +index 1d998942280db00ba7dab1c9d9a0f818490fe328..0addfc53af978e748cac5cd687772e1383fd8776 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPhantom.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPhantom.java -@@ -19,7 +19,7 @@ public class CraftPhantom extends CraftFlying implements Phantom, CraftEnemy { +@@ -18,7 +18,7 @@ public class CraftPhantom extends CraftFlying implements Phantom, CraftEnemy { @Override public net.minecraft.world.entity.monster.Phantom getHandle() { @@ -2526,10 +2529,10 @@ index 8c02dabbfee88ee6c3315c8174da7236eecdd8cc..df786990c64974e2838423728c2580e2 } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPig.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPig.java -index f94b45ba171fcbae718b50ab2ff60d38248e622c..5687547fc77afe26e2afb19f638dba29940b9968 100644 +index 33aad743e5e55881a1edefcf05d938a6a7301755..3b33dded63682fde8fa79307c535105443102f91 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPig.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPig.java -@@ -65,7 +65,7 @@ public class CraftPig extends CraftAnimals implements Pig { +@@ -64,7 +64,7 @@ public class CraftPig extends CraftAnimals implements Pig { @Override public net.minecraft.world.entity.animal.Pig getHandle() { @@ -2539,10 +2542,10 @@ index f94b45ba171fcbae718b50ab2ff60d38248e622c..5687547fc77afe26e2afb19f638dba29 } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPigZombie.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPigZombie.java -index 8e4874f1bf3511e3947c48987caa098712271977..67d7863c1b76277598a3238b1c11807bc84053e4 100644 +index 45653b31d2b4febe8d14bc6e1b9aa86ab6d7d2be..0a90085aecdee8f6739c14d859f4126422dbcea1 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPigZombie.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPigZombie.java -@@ -40,7 +40,7 @@ public class CraftPigZombie extends CraftZombie implements PigZombie { +@@ -39,7 +39,7 @@ public class CraftPigZombie extends CraftZombie implements PigZombie { @Override public ZombifiedPiglin getHandle() { @@ -2552,10 +2555,10 @@ index 8e4874f1bf3511e3947c48987caa098712271977..67d7863c1b76277598a3238b1c11807b } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPiglin.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPiglin.java -index 3da995c2aa9fe947d059e76bb6e6410827f6888d..3bb97c38e3718724f2bb52e25384db04bed54dfe 100644 +index 35fab47b32808395b787d29cdfc686f5344b1bcd..70095c1f0a2e45e83bf71e1fe43f5d1dba2a34ea 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPiglin.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPiglin.java -@@ -85,7 +85,7 @@ public class CraftPiglin extends CraftPiglinAbstract implements Piglin, com.dest +@@ -84,7 +84,7 @@ public class CraftPiglin extends CraftPiglinAbstract implements Piglin, com.dest @Override public net.minecraft.world.entity.monster.piglin.Piglin getHandle() { @@ -2578,10 +2581,10 @@ index ce763867f9c6c2d4773d76387afc0ecb479b6259..8b1966ca5111a81ad8db096903f4ef5f } } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPiglinBrute.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPiglinBrute.java -index 18416b48a05a8d564b7715ad00f947e4f4c70d9d..6ee0d5689c9fdae6433132d7b3efe43828cee636 100644 +index 6889b4599aac0bd03badeefd74c891857f566c30..df0db259f1ea742485b3aceac185ecc0caa48eb2 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPiglinBrute.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPiglinBrute.java -@@ -19,7 +19,7 @@ public class CraftPiglinBrute extends CraftPiglinAbstract implements PiglinBrute +@@ -18,7 +18,7 @@ public class CraftPiglinBrute extends CraftPiglinAbstract implements PiglinBrute @Override public net.minecraft.world.entity.monster.piglin.PiglinBrute getHandle() { @@ -2591,10 +2594,10 @@ index 18416b48a05a8d564b7715ad00f947e4f4c70d9d..6ee0d5689c9fdae6433132d7b3efe438 } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPillager.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPillager.java -index e1b7922ed298b6b3068c3f5fbe3b4030cff13484..0a90315d19337faaac0f676ac6891d91d8c9298a 100644 +index 0f5c2d31a2dea13a46ba81e353393633d097dcc7..f9b399c3ce702bf70fb85e6fe6934785852917e5 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPillager.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPillager.java -@@ -21,7 +21,7 @@ public class CraftPillager extends CraftIllager implements Pillager, com.destroy +@@ -20,7 +20,7 @@ public class CraftPillager extends CraftIllager implements Pillager, com.destroy @Override public net.minecraft.world.entity.monster.Pillager getHandle() { @@ -2604,10 +2607,10 @@ index e1b7922ed298b6b3068c3f5fbe3b4030cff13484..0a90315d19337faaac0f676ac6891d91 } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPolarBear.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPolarBear.java -index 23364bbd534a147954d72986a96aee836e0aa210..768f7c9601c7b6cdf344f491d174ad30ee9eb514 100644 +index fa4bb2533d17d2e97301ba959144df478b195449..693917026da9aabf34eb168a1e14a0333196eb5a 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPolarBear.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPolarBear.java -@@ -19,7 +19,7 @@ public class CraftPolarBear extends CraftAnimals implements PolarBear { +@@ -18,7 +18,7 @@ public class CraftPolarBear extends CraftAnimals implements PolarBear { @Override public net.minecraft.world.entity.animal.PolarBear getHandle() { @@ -2630,10 +2633,10 @@ index 1521ad3c160062f22e6e17d2dacde5d8db5ccc00..56c2e5a121386244081e69e6cab8ba5f } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPufferFish.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPufferFish.java -index ed0e5d32a187dd41952b923e4a1734afa7d092b1..a0b628c2ae02f75352905182b585252618051ad0 100644 +index 85ebd34ed143304c603078f2e949179a8e628ed2..a47a94209b094aeb5738105a0385d0372ce38231 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPufferFish.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPufferFish.java -@@ -20,7 +20,7 @@ public class CraftPufferFish extends CraftFish implements PufferFish { +@@ -19,7 +19,7 @@ public class CraftPufferFish extends CraftFish implements PufferFish { @Override public Pufferfish getHandle() { @@ -2643,10 +2646,10 @@ index ed0e5d32a187dd41952b923e4a1734afa7d092b1..a0b628c2ae02f75352905182b5852526 } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftRabbit.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftRabbit.java -index 34a1b2853023006d3ef255651ffa58452ce4cc79..bf2ecb7de799b29d6067ea2cf953a9cb12e676de 100644 +index 38972d1aec6b32aee12972cbca2411caeb823350..ecbab2388adafabe5eb02ed29e2c40a2bb9303d1 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftRabbit.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftRabbit.java -@@ -21,7 +21,7 @@ public class CraftRabbit extends CraftAnimals implements Rabbit { +@@ -20,7 +20,7 @@ public class CraftRabbit extends CraftAnimals implements Rabbit { @Override public net.minecraft.world.entity.animal.Rabbit getHandle() { @@ -2669,10 +2672,10 @@ index cfb231848766414297a13fea16308597546c86ce..b329271ced725c8c9914137d3e621e80 } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftRavager.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftRavager.java -index 0e08b2f7a21a09f61ff4800439346260ef96e2d9..52bd3240fcadbfa0d4fa7523da71558c0d135d74 100644 +index 824db5f9f0b5c5f79bc073acaeb4f46aade740af..a4a57a70249e561cc810158fbbefea69e683d6b1 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftRavager.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftRavager.java -@@ -19,7 +19,7 @@ public class CraftRavager extends CraftRaider implements Ravager { +@@ -18,7 +18,7 @@ public class CraftRavager extends CraftRaider implements Ravager { @Override public net.minecraft.world.entity.monster.Ravager getHandle() { @@ -2682,10 +2685,10 @@ index 0e08b2f7a21a09f61ff4800439346260ef96e2d9..52bd3240fcadbfa0d4fa7523da71558c } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftSalmon.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftSalmon.java -index 3951fa2f21932dc1b4948fab08998afaf928b27d..b74aa564da3a3878c4bb0be315043a5c6c7ab0ab 100644 +index 081d7f454b3556110f5a300602fbe9239d9b77c7..adfd474c7b8433d02b7c0de60202f8a183dd156e 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftSalmon.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftSalmon.java -@@ -19,7 +19,7 @@ public class CraftSalmon extends io.papermc.paper.entity.PaperSchoolableFish imp +@@ -18,7 +18,7 @@ public class CraftSalmon extends io.papermc.paper.entity.PaperSchoolableFish imp @Override public net.minecraft.world.entity.animal.Salmon getHandle() { @@ -2695,10 +2698,10 @@ index 3951fa2f21932dc1b4948fab08998afaf928b27d..b74aa564da3a3878c4bb0be315043a5c } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftSheep.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftSheep.java -index e3c6a74d267ea0a10be375fc83428415ad575fc2..93422d1e6030ffadf4f011893106ff9ae2079c2c 100644 +index 7aa1df10cafdaa778432dc43085b3e4502a2e79a..eec2e47fa75296906f92f2eeef498249af7612d0 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftSheep.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftSheep.java -@@ -39,7 +39,7 @@ public class CraftSheep extends CraftAnimals implements Sheep, io.papermc.paper. +@@ -38,7 +38,7 @@ public class CraftSheep extends CraftAnimals implements Sheep, io.papermc.paper. @Override public net.minecraft.world.entity.animal.Sheep getHandle() { @@ -2708,10 +2711,10 @@ index e3c6a74d267ea0a10be375fc83428415ad575fc2..93422d1e6030ffadf4f011893106ff9a } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftShulker.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftShulker.java -index ccf7fd9be8baeda0b47b7abf090f255842bc639c..2a1a2ba2e6010729397b5b2cd78a776e10beab18 100644 +index 6332f85b8b604a2fecba460ceb16380a626ec971..69bbe53b1caca0f4fc84b800b83e370bbfe32b76 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftShulker.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftShulker.java -@@ -33,7 +33,7 @@ public class CraftShulker extends CraftGolem implements Shulker, CraftEnemy { +@@ -27,7 +27,7 @@ public class CraftShulker extends CraftGolem implements Shulker, CraftEnemy { @Override public net.minecraft.world.entity.monster.Shulker getHandle() { @@ -2721,10 +2724,10 @@ index ccf7fd9be8baeda0b47b7abf090f255842bc639c..2a1a2ba2e6010729397b5b2cd78a776e } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftShulkerBullet.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftShulkerBullet.java -index 2435b081eb0587d155d8c4ffb8d67b7529965d85..b169125caf170469838b0cdb4c9fa4b49e80c9c1 100644 +index d46d5c1c6934eb83ec46704573cf29d225429930..7e9d5009ed48ca37e1140c1d333dbaf501f37c8b 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftShulkerBullet.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftShulkerBullet.java -@@ -80,7 +80,7 @@ public class CraftShulkerBullet extends AbstractProjectile implements ShulkerBul +@@ -74,7 +74,7 @@ public class CraftShulkerBullet extends AbstractProjectile implements ShulkerBul @Override public net.minecraft.world.entity.projectile.ShulkerBullet getHandle() { @@ -2734,10 +2737,10 @@ index 2435b081eb0587d155d8c4ffb8d67b7529965d85..b169125caf170469838b0cdb4c9fa4b4 } } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftSilverfish.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftSilverfish.java -index a5a9d0daa0fd5641cbe10b5b269b26a0d589a5d5..f89f9bc8b418b591dceba6b7fe8baf1ce1b5b2ae 100644 +index a1ae5b9ffe97ee7fa55efc8b1cd04e7a682c5ee4..8c6f1ba4d4ca8d0afde6d0490912f00035590bbf 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftSilverfish.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftSilverfish.java -@@ -18,7 +18,7 @@ public class CraftSilverfish extends CraftMonster implements Silverfish { +@@ -17,7 +17,7 @@ public class CraftSilverfish extends CraftMonster implements Silverfish { @Override public net.minecraft.world.entity.monster.Silverfish getHandle() { @@ -2760,10 +2763,10 @@ index c9bfe84cbd2c5835e070251ace2ef06ccb7004cf..64877959c9c2dc963089527d12169a3d } } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftSkeleton.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftSkeleton.java -index 4aed90c5ed149cc84d91c417b57edec71042d7cc..0251c23c982eea6214cc746113630d7bc9386d86 100644 +index 9944be024fc0e0ceb12410d7168f0caf52a0728d..3fcb8a510b5fed7d311d936ae30822772233394e 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftSkeleton.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftSkeleton.java -@@ -41,7 +41,7 @@ public class CraftSkeleton extends CraftAbstractSkeleton implements Skeleton { +@@ -40,7 +40,7 @@ public class CraftSkeleton extends CraftAbstractSkeleton implements Skeleton { @Override public net.minecraft.world.entity.monster.Skeleton getHandle() { @@ -2773,10 +2776,10 @@ index 4aed90c5ed149cc84d91c417b57edec71042d7cc..0251c23c982eea6214cc746113630d7b } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftSkeletonHorse.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftSkeletonHorse.java -index 2744d69cc268c809457d730e0061ebfb6c6aee11..205d28e1770300bd77c63bdf2449abc415c992d2 100644 +index 72c43e1ee4f2df751402e4d95a411c1ae110d21a..1b6a9f01508f8e2286e11cb3448770c357020b37 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftSkeletonHorse.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftSkeletonHorse.java -@@ -35,7 +35,7 @@ public class CraftSkeletonHorse extends CraftAbstractHorse implements SkeletonHo +@@ -29,7 +29,7 @@ public class CraftSkeletonHorse extends CraftAbstractHorse implements SkeletonHo @Override public net.minecraft.world.entity.animal.horse.SkeletonHorse getHandle() { @@ -2786,10 +2789,10 @@ index 2744d69cc268c809457d730e0061ebfb6c6aee11..205d28e1770300bd77c63bdf2449abc4 } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftSlime.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftSlime.java -index 307a2b8015c9598083bedccb0c516ea64c4fc514..4f7c7d2d9be2a1509854916189d1f6c0d2fccfb9 100644 +index a61121c6e103fce394e2fd93e60711d6e42c7ad1..5aaf533c6fda171e537bfded9335eafbacd11c0c 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftSlime.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftSlime.java -@@ -29,7 +29,7 @@ public class CraftSlime extends CraftMob implements Slime, CraftEnemy { +@@ -28,7 +28,7 @@ public class CraftSlime extends CraftMob implements Slime, CraftEnemy { @Override public net.minecraft.world.entity.monster.Slime getHandle() { @@ -2799,10 +2802,10 @@ index 307a2b8015c9598083bedccb0c516ea64c4fc514..4f7c7d2d9be2a1509854916189d1f6c0 } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftSmallFireball.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftSmallFireball.java -index 17b83eb8563586f1ddf252f438d52d554e946def..b559c3cebed7eb840345b803610718370542598c 100644 +index 74b20c726a0b055180f6385b8020c646939d6690..bccfca4ecd0c31c9a9327506bb09c060dec441de 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftSmallFireball.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftSmallFireball.java -@@ -18,7 +18,7 @@ public class CraftSmallFireball extends CraftSizedFireball implements SmallFireb +@@ -17,7 +17,7 @@ public class CraftSmallFireball extends CraftSizedFireball implements SmallFireb @Override public net.minecraft.world.entity.projectile.SmallFireball getHandle() { @@ -2812,10 +2815,10 @@ index 17b83eb8563586f1ddf252f438d52d554e946def..b559c3cebed7eb840345b80361071837 } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftSniffer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftSniffer.java -index 3549d9b0c8ed9d746c38bebedaa7c729717bed92..0609990ad2849b7f5f64c2273133a1b7fe835e04 100644 +index 737b5ea7f6cbf3db6a8e5ee1bccbcd68191bbf32..2dba72b3e9a8c9575fe46d67281f817681d60932 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftSniffer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftSniffer.java -@@ -26,7 +26,7 @@ public class CraftSniffer extends CraftAnimals implements Sniffer { +@@ -25,7 +25,7 @@ public class CraftSniffer extends CraftAnimals implements Sniffer { @Override public net.minecraft.world.entity.animal.sniffer.Sniffer getHandle() { @@ -2825,10 +2828,10 @@ index 3549d9b0c8ed9d746c38bebedaa7c729717bed92..0609990ad2849b7f5f64c2273133a1b7 } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftSnowball.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftSnowball.java -index 117cdf4b1315f2de32aa13844f0f4c46f21cc96d..2b5aea01ae35b3f46e8b96f9043556fb103ce3b7 100644 +index f72decb7c43337130d3caee6a15ae91cdaf57522..e06f74681fe858e84950dce6461a26f1099be569 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftSnowball.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftSnowball.java -@@ -18,7 +18,7 @@ public class CraftSnowball extends CraftThrowableProjectile implements Snowball +@@ -17,7 +17,7 @@ public class CraftSnowball extends CraftThrowableProjectile implements Snowball @Override public net.minecraft.world.entity.projectile.Snowball getHandle() { @@ -2838,10 +2841,10 @@ index 117cdf4b1315f2de32aa13844f0f4c46f21cc96d..2b5aea01ae35b3f46e8b96f9043556fb } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftSnowman.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftSnowman.java -index 00907c925fdb0d709ff421cdc8a1742282ad372f..fc036094e384e4dc136b222808f0661c1cffecf3 100644 +index b1b87ad34caf0d7888ddf59692c8c766358a6b85..525582c20a011d2333fda34f2bc1479e3e2915d5 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftSnowman.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftSnowman.java -@@ -29,7 +29,7 @@ public class CraftSnowman extends CraftGolem implements Snowman, com.destroystok +@@ -28,7 +28,7 @@ public class CraftSnowman extends CraftGolem implements Snowman, com.destroystok @Override public SnowGolem getHandle() { @@ -2851,10 +2854,10 @@ index 00907c925fdb0d709ff421cdc8a1742282ad372f..fc036094e384e4dc136b222808f0661c } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftSpectralArrow.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftSpectralArrow.java -index f4bd0872dc725dc9040a89cbc627d86b786290df..75212e07204b5cdbcf7bbeb72b339e07a66ad3e1 100644 +index 8d89889fafa153d16a8b0a39e8c5ef6b0323ac65..956958eebfbbef79fb54dca4186ad48ddf24c973 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftSpectralArrow.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftSpectralArrow.java -@@ -19,7 +19,7 @@ public class CraftSpectralArrow extends CraftArrow implements SpectralArrow { +@@ -18,7 +18,7 @@ public class CraftSpectralArrow extends CraftArrow implements SpectralArrow { @Override public net.minecraft.world.entity.projectile.SpectralArrow getHandle() { @@ -2877,10 +2880,10 @@ index 3dbb5f7f88979d616e185980d96cc2c377977000..4fbca2b65dbe123cf08020774603b556 } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftSpider.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftSpider.java -index 496fb0ac11cdf32701b0d5fb4761a0ada60a78ac..c71138df9ae2139aa3dddaebd61ece4a6d5ce494 100644 +index 3d09be063f750ecb79b1fc7f2bc4d65a3688e3c6..97fc6ac567308c358284a7bb4de383d5d6b5ef47 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftSpider.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftSpider.java -@@ -19,7 +19,7 @@ public class CraftSpider extends CraftMonster implements Spider { +@@ -18,7 +18,7 @@ public class CraftSpider extends CraftMonster implements Spider { @Override public net.minecraft.world.entity.monster.Spider getHandle() { @@ -2890,10 +2893,10 @@ index 496fb0ac11cdf32701b0d5fb4761a0ada60a78ac..c71138df9ae2139aa3dddaebd61ece4a } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftSquid.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftSquid.java -index 10875cdf36b426de512c52ae60ac7e2c8312114b..df582f64868d8d03cb0785299d84ff07102c246f 100644 +index 6f0197156e79fb34d8c54b4317ff6d66a19cb75b..b5c6a8c06027e2230044f32ee1e2cef7eaaa6338 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftSquid.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftSquid.java -@@ -19,7 +19,7 @@ public class CraftSquid extends CraftWaterMob implements Squid { +@@ -18,7 +18,7 @@ public class CraftSquid extends CraftWaterMob implements Squid { @Override public net.minecraft.world.entity.animal.Squid getHandle() { @@ -2903,10 +2906,10 @@ index 10875cdf36b426de512c52ae60ac7e2c8312114b..df582f64868d8d03cb0785299d84ff07 } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftStrider.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftStrider.java -index 89cd22b73c38773961d6955d429564e816b8183a..065a4ed62f9781c07f0635c2f256b33cbc9d6a6d 100644 +index 796eca2bf20ec7a9de69027418d922473444e588..2cf8f0fead4434963942a1ddfc98d52add517f1d 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftStrider.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftStrider.java -@@ -75,7 +75,7 @@ public class CraftStrider extends CraftAnimals implements Strider { +@@ -74,7 +74,7 @@ public class CraftStrider extends CraftAnimals implements Strider { @Override public net.minecraft.world.entity.monster.Strider getHandle() { @@ -2916,10 +2919,10 @@ index 89cd22b73c38773961d6955d429564e816b8183a..065a4ed62f9781c07f0635c2f256b33c } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftTNTPrimed.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftTNTPrimed.java -index 3be27209a4429c6ab618798418451bd527a2115b..e98c5659cc8aa0b25efb85f04a8a42e93056a958 100644 +index c433fda809e9452046ff07aabaa216be3199862b..b21bbf8d8d8018a4f0b1690a59c536340e7e1ca8 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftTNTPrimed.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftTNTPrimed.java -@@ -52,7 +52,7 @@ public class CraftTNTPrimed extends CraftEntity implements TNTPrimed { +@@ -51,7 +51,7 @@ public class CraftTNTPrimed extends CraftEntity implements TNTPrimed { @Override public PrimedTnt getHandle() { @@ -2929,10 +2932,10 @@ index 3be27209a4429c6ab618798418451bd527a2115b..e98c5659cc8aa0b25efb85f04a8a42e9 } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftTadpole.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftTadpole.java -index 1fab7a34e4fe624d901c0264cda980fd91dbd8e0..8f8f1366595310a0f841d9a8d6529e552d69e7f2 100644 +index 57df8021ce87cb688f84b28156d3f0c41888705d..5c9255d3ef3a5a4a1caa3aaf96c411d919414535 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftTadpole.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftTadpole.java -@@ -19,7 +19,7 @@ public class CraftTadpole extends CraftFish implements org.bukkit.entity.Tadpole +@@ -18,7 +18,7 @@ public class CraftTadpole extends CraftFish implements org.bukkit.entity.Tadpole @Override public Tadpole getHandle() { @@ -2955,10 +2958,10 @@ index dc09e141ba2b12f1955bec521f2170d2fe4ba113..d5681887bb9490df491e4c437e6f0b19 } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftTextDisplay.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftTextDisplay.java -index f973d6013eef71025fad3b74d6158561aafe508f..db95d87ddf902ba8efb907dd25475d287c7f7c2a 100644 +index d3975a461778d9815f68f323e616e25c24bf649c..b21a4e20f7bf3860b132c9c29edfab44d54d0bc4 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftTextDisplay.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftTextDisplay.java -@@ -23,7 +23,7 @@ public class CraftTextDisplay extends CraftDisplay implements TextDisplay { +@@ -22,7 +22,7 @@ public class CraftTextDisplay extends CraftDisplay implements TextDisplay { @Override public net.minecraft.world.entity.Display.TextDisplay getHandle() { @@ -2981,10 +2984,10 @@ index 8e66e9ac17a8a06130d6b039f27868d42554f337..31db1bbdca32f2f71062016f49ef8f0e } } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftThrownExpBottle.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftThrownExpBottle.java -index 34de9dcd6fa0e978c65bf48ae78923784bf575fd..2546db98bf212c94f299f1bf369b2139420453a8 100644 +index 40fe0132f877e8088b828744823981eb3351f650..d0fe2b001cc62d4cf6bb6bdae96a4d8f6de1c278 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftThrownExpBottle.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftThrownExpBottle.java -@@ -19,7 +19,7 @@ public class CraftThrownExpBottle extends CraftThrowableProjectile implements Th +@@ -18,7 +18,7 @@ public class CraftThrownExpBottle extends CraftThrowableProjectile implements Th @Override public ThrownExperienceBottle getHandle() { @@ -2993,24 +2996,27 @@ index 34de9dcd6fa0e978c65bf48ae78923784bf575fd..2546db98bf212c94f299f1bf369b2139 return (ThrownExperienceBottle) entity; } -diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftThrownPotion.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftThrownPotion.java -index 6c15ba92215634a06a1d95fbd7d64bff2bb935dc..c625cacf685298e08982a5b48671110aa9a1221f 100644 ---- a/src/main/java/org/bukkit/craftbukkit/entity/CraftThrownPotion.java -+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftThrownPotion.java -@@ -71,7 +71,7 @@ public class CraftThrownPotion extends CraftThrowableProjectile implements Throw - - @Override - public net.minecraft.world.entity.projectile.ThrownPotion getHandle() { -- io.papermc.paper.util.TickThread.ensureTickThread(this.entity, "Accessing entity state off owning region's thread"); // Folia - region threading -+ //io.papermc.paper.util.TickThread.ensureTickThread(this.entity, "Accessing entity state off owning region's thread"); // Folia - region threading // DirtyFolia - Removed check - return (net.minecraft.world.entity.projectile.ThrownPotion) entity; - } - +diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftThrownPotion.java.rej b/src/main/java/org/bukkit/craftbukkit/entity/CraftThrownPotion.java.rej +new file mode 100644 +index 0000000000000000000000000000000000000000..cfd252a4e7c43caf40da4abbe1ce52bceb8fe484 +--- /dev/null ++++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftThrownPotion.java.rej +@@ -0,0 +1,10 @@ ++diff a/src/main/java/org/bukkit/craftbukkit/entity/CraftThrownPotion.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftThrownPotion.java (rejected hunks) ++@@ -71,7 +71,7 @@ public class CraftThrownPotion extends CraftThrowableProjectile implements Throw ++ ++ @Override ++ public net.minecraft.world.entity.projectile.ThrownPotion getHandle() { ++- io.papermc.paper.util.TickThread.ensureTickThread(this.entity, "Accessing entity state off owning region's thread"); // Folia - region threading +++ //io.papermc.paper.util.TickThread.ensureTickThread(this.entity, "Accessing entity state off owning region's thread"); // Folia - region threading // DirtyFolia - Removed check ++ return (net.minecraft.world.entity.projectile.ThrownPotion) entity; ++ } ++ diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftTippedArrow.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftTippedArrow.java -index 64058e89a029a75c112569c40d7216a4d349f3e8..b4d5844999a4f01d3a27b96466f55585fb6f71be 100644 +index a491a6d96cb267c661d9af9d8c6828e05adb23b2..7ae3d7db226aa6e9c75571d84d3375fc61368f4c 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftTippedArrow.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftTippedArrow.java -@@ -31,7 +31,7 @@ public class CraftTippedArrow extends CraftArrow implements Arrow { +@@ -30,7 +30,7 @@ public class CraftTippedArrow extends CraftArrow implements Arrow { @Override public net.minecraft.world.entity.projectile.Arrow getHandle() { @@ -3020,10 +3026,10 @@ index 64058e89a029a75c112569c40d7216a4d349f3e8..b4d5844999a4f01d3a27b96466f55585 } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftTraderLlama.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftTraderLlama.java -index 124c78fcb7b59d6cb3d4de53609fb64f652c17e4..f5383ebf57c838d2bf438144e274d3e6838da98b 100644 +index 04cbe165b99d348a864da5d342225fc929b2bfd0..80289453581f8049d7a184716c282dbd6af59ccb 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftTraderLlama.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftTraderLlama.java -@@ -19,7 +19,7 @@ public class CraftTraderLlama extends CraftLlama implements TraderLlama { +@@ -18,7 +18,7 @@ public class CraftTraderLlama extends CraftLlama implements TraderLlama { @Override public net.minecraft.world.entity.animal.horse.TraderLlama getHandle() { @@ -3033,10 +3039,10 @@ index 124c78fcb7b59d6cb3d4de53609fb64f652c17e4..f5383ebf57c838d2bf438144e274d3e6 } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftTrident.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftTrident.java -index 4c69a367dfdf7c3b8e82dd44f005ed613e1fe0bf..0fddb919d8cca232802483cd6ac46e30ff2ac3d8 100644 +index 0e3045647382111066000fc03925596c1d757e6b..0527820fcdff0c0c6e5bf29cf65b89d53c544770 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftTrident.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftTrident.java -@@ -22,7 +22,7 @@ public class CraftTrident extends CraftArrow implements Trident { +@@ -21,7 +21,7 @@ public class CraftTrident extends CraftArrow implements Trident { @Override public ThrownTrident getHandle() { @@ -3046,10 +3052,10 @@ index 4c69a367dfdf7c3b8e82dd44f005ed613e1fe0bf..0fddb919d8cca232802483cd6ac46e30 } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftTropicalFish.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftTropicalFish.java -index f8aa5bc3d846d2fd785c612dd3906b84686e0792..7782efac666fd89e536a34d7437e2719ee138101 100644 +index 0deb1cb458d84f9321c4a020cb4bb26163b18fa7..4af19cde92773396fd868ff8c69f07b62ab77489 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftTropicalFish.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftTropicalFish.java -@@ -23,7 +23,7 @@ public class CraftTropicalFish extends io.papermc.paper.entity.PaperSchoolableFi +@@ -22,7 +22,7 @@ public class CraftTropicalFish extends io.papermc.paper.entity.PaperSchoolableFi @Override public net.minecraft.world.entity.animal.TropicalFish getHandle() { @@ -3059,10 +3065,10 @@ index f8aa5bc3d846d2fd785c612dd3906b84686e0792..7782efac666fd89e536a34d7437e2719 } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftTurtle.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftTurtle.java -index 319efb68aebd6d1182dede7b2b6f368b3d7b62c2..1b9d0143b504d976a3bc6800d8ad497beb1cf928 100644 +index f2d589721a335d1f92ab04ce70e7678a244314fd..a3b6f2261a0f28aa19091747ec289fdb915fe9cc 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftTurtle.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftTurtle.java -@@ -19,7 +19,7 @@ public class CraftTurtle extends CraftAnimals implements Turtle { +@@ -18,7 +18,7 @@ public class CraftTurtle extends CraftAnimals implements Turtle { @Override public net.minecraft.world.entity.animal.Turtle getHandle() { @@ -3072,10 +3078,10 @@ index 319efb68aebd6d1182dede7b2b6f368b3d7b62c2..1b9d0143b504d976a3bc6800d8ad497b } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftVex.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftVex.java -index 90c295ff95bbee4f51fda1be2f58312d281925e5..bcb60c85b75abc266d472d19d66435831cd7c919 100644 +index f89b72a75dc685c08641105c8445f4e14aa9ee35..823ef14de3d4708c5a3ade3f3ad6b422380582ec 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftVex.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftVex.java -@@ -23,7 +23,7 @@ public class CraftVex extends CraftMonster implements Vex { +@@ -22,7 +22,7 @@ public class CraftVex extends CraftMonster implements Vex { @Override public net.minecraft.world.entity.monster.Vex getHandle() { @@ -3085,10 +3091,10 @@ index 90c295ff95bbee4f51fda1be2f58312d281925e5..bcb60c85b75abc266d472d19d6643583 } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftVillager.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftVillager.java -index 4b4167edcf9e30d50a103c5b85685e7175842f4b..d5708191d04f53334188df85cac5acd853d35c3a 100644 +index 1e201709b65b7c74d43d1fbf37bb8f968385358d..5cfc673f4bfbe97099cbd70b1d9b251e44d924c5 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftVillager.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftVillager.java -@@ -39,7 +39,7 @@ public class CraftVillager extends CraftAbstractVillager implements Villager { +@@ -38,7 +38,7 @@ public class CraftVillager extends CraftAbstractVillager implements Villager { @Override public net.minecraft.world.entity.npc.Villager getHandle() { @@ -3098,10 +3104,10 @@ index 4b4167edcf9e30d50a103c5b85685e7175842f4b..d5708191d04f53334188df85cac5acd8 } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftVillagerZombie.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftVillagerZombie.java -index 6231a4948fd934d2e73f15b364035c64d7e03cc8..d67387c1df3fc8f2653c6ec860d9c5a5d50e0d14 100644 +index bc2588621a80d81a757469a2b65675353da14828..b3967f5d243b1173ef4a4bfedf1643974acef1c3 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftVillagerZombie.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftVillagerZombie.java -@@ -28,7 +28,7 @@ public class CraftVillagerZombie extends CraftZombie implements ZombieVillager { +@@ -27,7 +27,7 @@ public class CraftVillagerZombie extends CraftZombie implements ZombieVillager { @Override public net.minecraft.world.entity.monster.ZombieVillager getHandle() { @@ -3111,10 +3117,10 @@ index 6231a4948fd934d2e73f15b364035c64d7e03cc8..d67387c1df3fc8f2653c6ec860d9c5a5 } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftVindicator.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftVindicator.java -index fc7a87ed98801914d5cf3e6784f0025db30cf663..ef2ea9bfde87f68aaddc149bb6f47d6561572869 100644 +index c89dfec6f61d4f487bd6292d509a33922127162f..921f0240ad9a9d5c929ff3a5090784bffb1967fb 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftVindicator.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftVindicator.java -@@ -19,7 +19,7 @@ public class CraftVindicator extends CraftIllager implements Vindicator { +@@ -18,7 +18,7 @@ public class CraftVindicator extends CraftIllager implements Vindicator { @Override public net.minecraft.world.entity.monster.Vindicator getHandle() { @@ -3124,10 +3130,10 @@ index fc7a87ed98801914d5cf3e6784f0025db30cf663..ef2ea9bfde87f68aaddc149bb6f47d65 } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftWanderingTrader.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftWanderingTrader.java -index 824e2c7aa9263195cb173da2b5612b3b8bc3a046..7271b2e0149750d8c3b67af427c8f0a46caca700 100644 +index ff3458e986a1063b097b6ae65ba4b2653aca8888..dcefde9fd76bffc5396affd8c139c49ec1182988 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftWanderingTrader.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftWanderingTrader.java -@@ -19,7 +19,7 @@ public class CraftWanderingTrader extends CraftAbstractVillager implements Wande +@@ -18,7 +18,7 @@ public class CraftWanderingTrader extends CraftAbstractVillager implements Wande @Override public net.minecraft.world.entity.npc.WanderingTrader getHandle() { @@ -3137,10 +3143,10 @@ index 824e2c7aa9263195cb173da2b5612b3b8bc3a046..7271b2e0149750d8c3b67af427c8f0a4 } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftWarden.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftWarden.java -index a4ede0f5973d18ed6b8ae3ee425c4445f39e86c4..6b326688680c5ea5faac62064af04d7b741efdeb 100644 +index e41005b7df193d36bf11a12625d1774c8321cfd6..7db966161315a2563b4e55120501fba4d6ed7e73 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftWarden.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftWarden.java -@@ -25,7 +25,7 @@ public class CraftWarden extends CraftMonster implements org.bukkit.entity.Warde +@@ -24,7 +24,7 @@ public class CraftWarden extends CraftMonster implements org.bukkit.entity.Warde @Override public Warden getHandle() { @@ -3163,10 +3169,10 @@ index c03b8291bac77696daf24caaff3512d6a0ba10db..5106644ccd397f8cb3d8e5cc6d1859b5 } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftWitch.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftWitch.java -index c2bceaeabf13d37506eea540cb153d10ba18d817..0eef06b2dc05dfec3de1d802d25536565d61d5f8 100644 +index f0cfe156924e036639e5ba368a91be3a382c4780..244e31f5b3ff526b8b4dca888239f364a771cd9d 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftWitch.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftWitch.java -@@ -25,7 +25,7 @@ public class CraftWitch extends CraftRaider implements Witch, com.destroystokyo. +@@ -24,7 +24,7 @@ public class CraftWitch extends CraftRaider implements Witch, com.destroystokyo. @Override public net.minecraft.world.entity.monster.Witch getHandle() { @@ -3176,10 +3182,10 @@ index c2bceaeabf13d37506eea540cb153d10ba18d817..0eef06b2dc05dfec3de1d802d2553656 } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftWither.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftWither.java -index a6dc41a1eac7aa08a4e13489a7dabb61cd4eadd7..ee8eb20f11116f6af5380f78555dede99c32babe 100644 +index c44a349c7dbb5e48f9476fbbda3a8277e8b59aa1..ec14a452b5147ca2f0ea5e159281d67bbe68020b 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftWither.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftWither.java -@@ -31,7 +31,7 @@ public class CraftWither extends CraftMonster implements Wither, com.destroystok +@@ -30,7 +30,7 @@ public class CraftWither extends CraftMonster implements Wither, com.destroystok @Override public WitherBoss getHandle() { @@ -3189,10 +3195,10 @@ index a6dc41a1eac7aa08a4e13489a7dabb61cd4eadd7..ee8eb20f11116f6af5380f78555dede9 } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftWitherSkull.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftWitherSkull.java -index d7b5dc3632e22003f80843882652a35d7306b9d9..09bd1152af679b851e40e6d917660b7687048225 100644 +index ad8ac056ef9e6abe1afe21622ba187c2d7f9e3a7..1f200d101e744d459ebb2ee5e4cf4d7c6aa02961 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftWitherSkull.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftWitherSkull.java -@@ -28,7 +28,7 @@ public class CraftWitherSkull extends CraftFireball implements WitherSkull { +@@ -27,7 +27,7 @@ public class CraftWitherSkull extends CraftFireball implements WitherSkull { @Override public net.minecraft.world.entity.projectile.WitherSkull getHandle() { @@ -3202,10 +3208,10 @@ index d7b5dc3632e22003f80843882652a35d7306b9d9..09bd1152af679b851e40e6d917660b76 } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftWolf.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftWolf.java -index 05372166c2cc7b48184c18a4fdd788a242ec4682..8c36f9dd949ab3b193ec07899b93e40fcb695999 100644 +index 4100c8beb897b931ac0bf168a934286a4a43732a..696877dd93a763a81aa6b5c2641d21fbf2398095 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftWolf.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftWolf.java -@@ -33,7 +33,7 @@ public class CraftWolf extends CraftTameableAnimal implements Wolf { +@@ -32,7 +32,7 @@ public class CraftWolf extends CraftTameableAnimal implements Wolf { @Override public net.minecraft.world.entity.animal.Wolf getHandle() { @@ -3215,10 +3221,10 @@ index 05372166c2cc7b48184c18a4fdd788a242ec4682..8c36f9dd949ab3b193ec07899b93e40f } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftZoglin.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftZoglin.java -index 8195313de7a047e694c718609505a60b592f3565..3c7b14dee7006bfce5484484c6854bee9c8a4244 100644 +index 4af64566b17c39d21acc8f445eb993c9652f9928..84840539f1c30bde23a9ac347424840ba45f108a 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftZoglin.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftZoglin.java -@@ -29,7 +29,7 @@ public class CraftZoglin extends CraftMonster implements Zoglin { +@@ -28,7 +28,7 @@ public class CraftZoglin extends CraftMonster implements Zoglin { @Override public net.minecraft.world.entity.monster.Zoglin getHandle() { @@ -3228,10 +3234,10 @@ index 8195313de7a047e694c718609505a60b592f3565..3c7b14dee7006bfce5484484c6854bee } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftZombie.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftZombie.java -index 631132549f454ffd6dc97e1bce2e994e7ce310d6..44890a0f5039f88454e27cced72bcc6946bea526 100644 +index 323634b642f8af27ba0eb8647c01acab865d300e..a9076ff5b1a896fe2f3b35ff63af1e3229acbb3f 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftZombie.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftZombie.java -@@ -22,7 +22,7 @@ public class CraftZombie extends CraftMonster implements Zombie { +@@ -21,7 +21,7 @@ public class CraftZombie extends CraftMonster implements Zombie { @Override public net.minecraft.world.entity.monster.Zombie getHandle() { diff --git a/patches/server/0023-Removed-some-checks-and-fix-getTickCount.patch b/patches/server/0023-Removed-some-checks-and-fix-getTickCount.patch index f33f0a1090..375641e7b8 100644 --- a/patches/server/0023-Removed-some-checks-and-fix-getTickCount.patch +++ b/patches/server/0023-Removed-some-checks-and-fix-getTickCount.patch @@ -1,6 +1,6 @@ From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: killerprojecte -Date: Fri, 11 Aug 2023 08:21:51 +0800 +From: FlyTeam <81072191+killerprojecte@users.noreply.github.com> +Date: Mon, 11 Sep 2023 10:48:17 +0000 Subject: [PATCH] Removed some checks and fix getTickCount @@ -18,49 +18,10 @@ index 519da6886613b8460e989767b1a21e3126cb1894..18f7d37c734957a05c5d682c9d187e3c } diff --git a/src/main/java/io/papermc/paper/util/MCUtil.java b/src/main/java/io/papermc/paper/util/MCUtil.java -index ff6716210d13db4472c67a56003b24c7b0af8224..489d78c6a48e7d1cb79bef5bcfe83696557e8ca5 100644 +index cadb91c7f5ef80aac8513f246fdf481947fa0a17..ea670791ee26c01b24cddaf32c761ac827f76b89 100644 --- a/src/main/java/io/papermc/paper/util/MCUtil.java +++ b/src/main/java/io/papermc/paper/util/MCUtil.java -@@ -3,35 +3,28 @@ package io.papermc.paper.util; - import com.destroystokyo.paper.profile.CraftPlayerProfile; - import com.destroystokyo.paper.profile.PlayerProfile; - import com.google.common.util.concurrent.ThreadFactoryBuilder; --import io.papermc.paper.math.Position; - import com.google.gson.JsonArray; - import com.google.gson.JsonObject; - import com.google.gson.internal.Streams; - import com.google.gson.stream.JsonWriter; --import com.mojang.datafixers.util.Either; -+import com.mojang.authlib.GameProfile; -+import io.papermc.paper.math.Position; - import it.unimi.dsi.fastutil.objects.ObjectRBTreeSet; --import java.lang.ref.Cleaner; - import it.unimi.dsi.fastutil.objects.ReferenceArrayList; - import net.minecraft.core.BlockPos; - import net.minecraft.core.Direction; --import net.minecraft.server.MinecraftServer; - import net.minecraft.nbt.CompoundTag; - import net.minecraft.network.chat.Component; -+import net.minecraft.server.MinecraftServer; - import net.minecraft.server.level.ChunkHolder; --import net.minecraft.server.level.ChunkMap; --import net.minecraft.server.level.DistanceManager; - import net.minecraft.server.level.ServerLevel; - import net.minecraft.server.level.ServerPlayer; --import net.minecraft.server.level.Ticket; - import net.minecraft.world.entity.Entity; - import net.minecraft.world.level.ChunkPos; --import net.minecraft.world.level.ClipContext; - import net.minecraft.world.level.Level; --import net.minecraft.world.level.chunk.ChunkAccess; - import net.minecraft.world.level.chunk.ChunkStatus; - import net.minecraft.world.phys.Vec3; - import org.apache.commons.lang.exception.ExceptionUtils; --import com.mojang.authlib.GameProfile; - import org.bukkit.Location; - import org.bukkit.block.BlockFace; - import org.bukkit.craftbukkit.CraftWorld; -@@ -42,16 +35,11 @@ import org.spigotmc.AsyncCatcher; +@@ -45,16 +45,11 @@ import org.spigotmc.AsyncCatcher; import javax.annotation.Nonnull; import javax.annotation.Nullable; import java.io.*; @@ -79,7 +40,7 @@ index ff6716210d13db4472c67a56003b24c7b0af8224..489d78c6a48e7d1cb79bef5bcfe83696 import java.util.concurrent.atomic.AtomicBoolean; import java.util.function.BiConsumer; import java.util.function.Consumer; -@@ -334,14 +322,15 @@ public final class MCUtil { +@@ -337,14 +332,15 @@ public final class MCUtil { * @return */ public static void ensureMain(String reason, Runnable run) { @@ -777,8 +738,54 @@ index 0000000000000000000000000000000000000000..9f3917396cb2761e54612ef7f8f61678 + return net.minecraft.server.level.ChunkMap.MAX_VIEW_DISTANCE + net.minecraft.world.level.chunk.ChunkStatus.getDistance(status); + } +} +diff --git a/src/main/java/io/papermc/paper/util/MCUtil.java.rej b/src/main/java/io/papermc/paper/util/MCUtil.java.rej +new file mode 100644 +index 0000000000000000000000000000000000000000..87f7f606379694d510da477e8b998e410cb008cd +--- /dev/null ++++ b/src/main/java/io/papermc/paper/util/MCUtil.java.rej +@@ -0,0 +1,40 @@ ++diff a/src/main/java/io/papermc/paper/util/MCUtil.java b/src/main/java/io/papermc/paper/util/MCUtil.java (rejected hunks) ++@@ -3,35 +3,28 @@ package io.papermc.paper.util; ++ import com.destroystokyo.paper.profile.CraftPlayerProfile; ++ import com.destroystokyo.paper.profile.PlayerProfile; ++ import com.google.common.util.concurrent.ThreadFactoryBuilder; ++-import io.papermc.paper.math.Position; ++ import com.google.gson.JsonArray; ++ import com.google.gson.JsonObject; ++ import com.google.gson.internal.Streams; ++ import com.google.gson.stream.JsonWriter; ++-import com.mojang.datafixers.util.Either; +++import com.mojang.authlib.GameProfile; +++import io.papermc.paper.math.Position; ++ import it.unimi.dsi.fastutil.objects.ObjectRBTreeSet; ++-import java.lang.ref.Cleaner; ++ import it.unimi.dsi.fastutil.objects.ReferenceArrayList; ++ import net.minecraft.core.BlockPos; ++ import net.minecraft.core.Direction; ++-import net.minecraft.server.MinecraftServer; ++ import net.minecraft.nbt.CompoundTag; ++ import net.minecraft.network.chat.Component; +++import net.minecraft.server.MinecraftServer; ++ import net.minecraft.server.level.ChunkHolder; ++-import net.minecraft.server.level.ChunkMap; ++-import net.minecraft.server.level.DistanceManager; ++ import net.minecraft.server.level.ServerLevel; ++ import net.minecraft.server.level.ServerPlayer; ++-import net.minecraft.server.level.Ticket; ++ import net.minecraft.world.entity.Entity; ++ import net.minecraft.world.level.ChunkPos; ++-import net.minecraft.world.level.ClipContext; ++ import net.minecraft.world.level.Level; ++-import net.minecraft.world.level.chunk.ChunkAccess; ++ import net.minecraft.world.level.chunk.ChunkStatus; ++ import net.minecraft.world.phys.Vec3; ++ import org.apache.commons.lang.exception.ExceptionUtils; ++-import com.mojang.authlib.GameProfile; ++ import org.bukkit.Location; ++ import org.bukkit.block.BlockFace; ++ import org.bukkit.craftbukkit.CraftWorld; diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 01e00f9cf7a00660a283710d70f7f96f2c5b9bee..67223e0dd26bc64f915327832c568f96f4cb99b8 100644 +index efaa481c5d82cd475454814224da100d2e0e2382..e18204d3f351198fbc41d5de9d9da9417775ade1 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -1,11 +1,9 @@ @@ -1003,7 +1010,7 @@ index 01e00f9cf7a00660a283710d70f7f96f2c5b9bee..67223e0dd26bc64f915327832c568f96 public abstract class MinecraftServer extends ReentrantBlockableEventLoop implements CommandSource, AutoCloseable { -@@ -321,25 +253,28 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop public // Paper Start if (!org.spigotmc.AsyncCatcher.shuttingDown && !org.bukkit.Bukkit.isPrimaryThread()) { @@ -1736,7 +1743,7 @@ index 88c57c1ef147045315e923a5ba3b6f9394900f92..816eaf7862b32e95f821a9e018ca62f6 LOGGER.error("Command Dispatched Async: " + s); LOGGER.error("Please notify author of plugin causing this execution to fix this bug! see: http://bit.ly/1oSiM6C", new Throwable()); Waitable wait = new Waitable<>() { -@@ -2621,7 +2482,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -2633,7 +2494,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic if (s.isEmpty()) { ServerGamePacketListenerImpl.LOGGER.warn(this.player.getScoreboardName() + " tried to send an empty message"); } else if (this.getCraftPlayer().isConversing()) { @@ -5390,7 +5397,7 @@ index 0000000000000000000000000000000000000000..57d45f029e650676e00f01232757ebed + } +} diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index f630badc621f6df3f6f144e059921a1b21ac8a00..3ae9e49e3ca9759745203c0d2437fc7eeb11a5bf 100644 +index bc4e1db0e00e564122418f155f35298a7c18c746..af07c9d24374b7d969f1e524ce0bbb2626a590b1 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -1,35 +1,12 @@ @@ -5552,7 +5559,7 @@ index f630badc621f6df3f6f144e059921a1b21ac8a00..3ae9e49e3ca9759745203c0d2437fc7e // CraftBukkit end public abstract class Entity implements Nameable, EntityAccess, CommandSource { -@@ -4314,9 +4267,10 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { +@@ -4316,9 +4269,10 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { @Nullable public Entity teleportTo(ServerLevel worldserver, PositionImpl location) { // Folia start - region threading @@ -5789,7 +5796,7 @@ index f3df9c9b6cff85565514f990597f3fe53652812c..b09b32d56bed38f3bb4c552331f02965 LevelChunkTicks levelChunkTicks = this.allContainers.get(l); if (levelChunkTicks == null) { diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -index 723ae4b75c84fe952377c02d42cf7a710f7047ea..677e4f83dab1a78ea4b09abf98313dbdbc456367 100644 +index 2c19648e68c8d25bd295e2a37ce701bb3cf61e29..359e63edc6b48134ad0d9e0b48cf83bec292d7d6 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java @@ -327,7 +327,7 @@ public class CraftWorld extends CraftRegionAccessor implements World { @@ -5865,7 +5872,7 @@ index 723ae4b75c84fe952377c02d42cf7a710f7047ea..677e4f83dab1a78ea4b09abf98313dbd net.minecraft.world.level.chunk.LevelChunk chunk = this.world.getChunkAt(pos); diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index 36fc7444514a82532731026a0c4402d2ec04e9d2..0edde7c9633bbed916600161889a4a1435dbacf7 100644 +index 8d63d9c4b2665fffcf019e69e837ba461ab017f6..a01fda754dae624c001901ab1f834e5cc416f4ce 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java @@ -31,6 +31,7 @@ import java.util.UUID; @@ -5884,7 +5891,7 @@ index 36fc7444514a82532731026a0c4402d2ec04e9d2..0edde7c9633bbed916600161889a4a14 import net.minecraft.network.protocol.game.ClientboundBlockDestructionPacket; import net.minecraft.network.protocol.game.ClientboundBlockUpdatePacket; import net.minecraft.network.protocol.game.ClientboundClearTitlesPacket; -@@ -1300,9 +1300,10 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -1307,9 +1307,10 @@ public class CraftPlayer extends CraftHumanEntity implements Player { @Override public boolean teleport(Location location, org.bukkit.event.player.PlayerTeleportEvent.TeleportCause cause, io.papermc.paper.entity.TeleportFlag... flags) { // Folia start - region threading diff --git a/patches/server/0027-fixup-Optimize-Hoppers.patch b/patches/server/0027-fixup-Optimize-Hoppers.patch new file mode 100644 index 0000000000..5c2a9fd2e0 --- /dev/null +++ b/patches/server/0027-fixup-Optimize-Hoppers.patch @@ -0,0 +1,201 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Spottedleaf +Date: Sun, 27 Aug 2023 01:07:34 -0700 +Subject: [PATCH] fixup! Optimize Hoppers + + +diff --git a/src/main/java/net/minecraft/world/level/block/entity/HopperBlockEntity.java b/src/main/java/net/minecraft/world/level/block/entity/HopperBlockEntity.java +index 1eebd3969735bff3e5559ed01ab4a2ec1c3c2de6..81d8de7c80bac16d874faf990cb08f1556a46adc 100644 +--- a/src/main/java/net/minecraft/world/level/block/entity/HopperBlockEntity.java ++++ b/src/main/java/net/minecraft/world/level/block/entity/HopperBlockEntity.java +@@ -151,6 +151,43 @@ public class HopperBlockEntity extends RandomizableContainerBlockEntity implemen + + } + ++ // Paper start - optimize hoppers ++ private static final int HOPPER_EMPTY = 0; ++ private static final int HOPPER_HAS_ITEMS = 1; ++ private static final int HOPPER_IS_FULL = 2; ++ ++ private static int getFullState(final HopperBlockEntity tileEntity) { ++ tileEntity.unpackLootTable(null); ++ ++ final List hopperItems = tileEntity.getItems(); ++ ++ boolean empty = true; ++ boolean full = true; ++ ++ for (int i = 0, len = hopperItems.size(); i < len; ++i) { ++ final ItemStack stack = hopperItems.get(i); ++ if (stack.isEmpty()) { ++ full = false; ++ continue; ++ } ++ ++ if (!full) { ++ // can't be full ++ return HOPPER_HAS_ITEMS; ++ } ++ ++ empty = false; ++ ++ if (stack.getCount() != stack.getMaxStackSize()) { ++ // can't be full or empty ++ return HOPPER_HAS_ITEMS; ++ } ++ } ++ ++ return empty ? HOPPER_EMPTY : (full ? HOPPER_IS_FULL : HOPPER_HAS_ITEMS); ++ } ++ // Paper end - optimize hoppers ++ + private static boolean tryMoveItems(Level world, BlockPos pos, BlockState state, HopperBlockEntity blockEntity, BooleanSupplier booleansupplier) { + if (world.isClientSide) { + return false; +@@ -158,11 +195,13 @@ public class HopperBlockEntity extends RandomizableContainerBlockEntity implemen + if (!blockEntity.isOnCooldown() && (Boolean) state.getValue(HopperBlock.ENABLED)) { + boolean flag = false; + +- if (!blockEntity.isEmpty()) { ++ int fullState = getFullState(blockEntity); // Paper - optimize hoppers ++ ++ if (fullState != HOPPER_EMPTY) { // Paper - optimize hoppers + flag = HopperBlockEntity.ejectItems(world, pos, state, (Container) blockEntity, blockEntity); // CraftBukkit + } + +- if (!blockEntity.inventoryFull()) { ++ if (fullState != HOPPER_IS_FULL || flag) { // Paper - optimize hoppers + flag |= booleansupplier.getAsBoolean(); + } + +@@ -454,7 +493,25 @@ public class HopperBlockEntity extends RandomizableContainerBlockEntity implemen + } + + private static boolean isFullContainer(Container inventory, Direction direction) { +- return allMatch(inventory, direction, STACK_SIZE_TEST); // Paper - no streams ++ // Paper start - optimize hoppers ++ if (inventory instanceof WorldlyContainer worldlyContainer) { ++ for (final int slot : worldlyContainer.getSlotsForFace(direction)) { ++ final ItemStack stack = inventory.getItem(slot); ++ if (stack.getCount() < stack.getMaxStackSize()) { ++ return false; ++ } ++ } ++ return true; ++ } else { ++ for (int slot = 0, max = inventory.getContainerSize(); slot < max; ++slot) { ++ final ItemStack stack = inventory.getItem(slot); ++ if (stack.getCount() < stack.getMaxStackSize()) { ++ return false; ++ } ++ } ++ return true; ++ } ++ // Paper end - optimize hoppers + } + + private static boolean isEmptyContainer(Container inv, Direction facing) { +@@ -470,29 +527,43 @@ public class HopperBlockEntity extends RandomizableContainerBlockEntity implemen + + // Paper start - optimize hoppers and remove streams + worldData.skipPullModeEventFire = worldData.skipHopperEvents; // Folia - region threading +- return !HopperBlockEntity.isEmptyContainer(iinventory, enumdirection) && anyMatch(iinventory, enumdirection, (item, i) -> { +- // Logic copied from below to avoid extra getItem calls +- if (!item.isEmpty() && canTakeItemFromContainer(hopper, iinventory, item, i, enumdirection)) { +- return hopperPull(world, hopper, iinventory, item, i); +- } else { +- return false; ++ // merge container isEmpty check and move logic into one loop ++ if (iinventory instanceof WorldlyContainer worldlyContainer) { ++ for (final int slot : worldlyContainer.getSlotsForFace(enumdirection)) { ++ ItemStack item = worldlyContainer.getItem(slot); ++ if (item.isEmpty() || !canTakeItemFromContainer(hopper, iinventory, item, slot, enumdirection)) { ++ continue; ++ } ++ if (hopperPull(world, hopper, iinventory, item, slot)) { ++ return true; ++ } + } +- // Paper end +- }); ++ return false; ++ } else { ++ for (int slot = 0, max = iinventory.getContainerSize(); slot < max; ++slot) { ++ ItemStack item = iinventory.getItem(slot); ++ if (item.isEmpty() || !canTakeItemFromContainer(hopper, iinventory, item, slot, enumdirection)) { ++ continue; ++ } ++ if (hopperPull(world, hopper, iinventory, item, slot)) { ++ return true; ++ } ++ } ++ return false; ++ } ++ // Paper end + } else { +- Iterator iterator = HopperBlockEntity.getItemsAtAndAbove(world, hopper).iterator(); ++ final List items = HopperBlockEntity.getItemsAtAndAbove(world, hopper); // Paper - optimize hoppers + +- ItemEntity entityitem; +- +- do { +- if (!iterator.hasNext()) { +- return false; ++ // Paper start - optimize hoppers ++ for (int i = 0, len = items.size(); i < len; ++i) { ++ if (HopperBlockEntity.addItem(hopper, items.get(i))) { ++ return true; + } ++ } + +- entityitem = (ItemEntity) iterator.next(); +- } while (!HopperBlockEntity.addItem(hopper, entityitem)); +- +- return true; ++ return false; ++ // Paper end - optimize hoppers + } + } + +@@ -550,23 +621,25 @@ public class HopperBlockEntity extends RandomizableContainerBlockEntity implemen + public static boolean addItem(Container inventory, ItemEntity itemEntity) { + boolean flag = false; + // CraftBukkit start ++ if (InventoryPickupItemEvent.getHandlerList().getRegisteredListeners().length > 0) { // Paper - optimize hoppers + InventoryPickupItemEvent event = new InventoryPickupItemEvent(getInventory(inventory), (org.bukkit.entity.Item) itemEntity.getBukkitEntity()); // Paper - use getInventory() to avoid snapshot creation + itemEntity.level().getCraftServer().getPluginManager().callEvent(event); + if (event.isCancelled()) { + return false; + } + // CraftBukkit end ++ } // Paper - optimize hoppers + ItemStack itemstack = itemEntity.getItem().copy(); + ItemStack itemstack1 = HopperBlockEntity.addItem((Container) null, inventory, itemstack, (Direction) null); + ++ // Paper start - optimize hoppers ++ itemEntity.setItem(itemstack1); + if (itemstack1.isEmpty()) { +- flag = true; + itemEntity.discard(); +- } else { +- itemEntity.setItem(itemstack1); ++ return true; + } +- +- return flag; ++ return false; ++ // Paper end - optimize hoppers + } + + public static ItemStack addItem(@Nullable Container from, Container to, ItemStack stack, @Nullable Direction side) { +@@ -786,8 +859,8 @@ public class HopperBlockEntity extends RandomizableContainerBlockEntity implemen + } + } + +- if (object == null && (!optimizeEntities || !world.paperConfig().hopper.ignoreOccludingBlocks || !org.bukkit.craftbukkit.util.CraftMagicNumbers.getMaterial(block).isOccluding())) { // Paper +- List list = world.getEntities((Entity) null, new AABB(x - 0.5D, y - 0.5D, z - 0.5D, x + 0.5D, y + 0.5D, z + 0.5D), EntitySelector.CONTAINER_ENTITY_SELECTOR); ++ if (object == null && (!optimizeEntities || !world.paperConfig().hopper.ignoreOccludingBlocks || !iblockdata.getBukkitMaterial().isOccluding())) { // Paper ++ List list = world.getEntitiesOfClass((Class)Container.class, new AABB(x - 0.5D, y - 0.5D, z - 0.5D, x + 0.5D, y + 0.5D, z + 0.5D), EntitySelector.CONTAINER_ENTITY_SELECTOR); // Paper - optimize hoppers, use getEntitiesOfClass + + if (!list.isEmpty()) { + object = (Container) list.get(world.random.nextInt(list.size())); diff --git a/patches/server/0027-fixup-Rewrite-chunk-system.patch b/patches/server/0028-fixup-Rewrite-chunk-system.patch similarity index 97% rename from patches/server/0027-fixup-Rewrite-chunk-system.patch rename to patches/server/0028-fixup-Rewrite-chunk-system.patch index 7a1722148e..75886bdfca 100644 --- a/patches/server/0027-fixup-Rewrite-chunk-system.patch +++ b/patches/server/0028-fixup-Rewrite-chunk-system.patch @@ -117,10 +117,10 @@ index a68d3ab3aa5c02d23545db4c9388e361835e3099..c88e0fb3efc500f53bf224c84760893e } diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java -index 779c03f17769039cbaaa1210bd0e95163c9386b1..f1f52f9d9f8eafd65b50e3c06c92bcd8fda64286 100644 +index 475edb726964f3757957474856c61ac89812c15e..6885961c7eaa07b8b25e48ca0e33e310379f6114 100644 --- a/src/main/java/net/minecraft/server/level/ChunkMap.java +++ b/src/main/java/net/minecraft/server/level/ChunkMap.java -@@ -597,7 +597,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -595,7 +595,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider return chunkstatus1; } @@ -129,7 +129,7 @@ index 779c03f17769039cbaaa1210bd0e95163c9386b1..f1f52f9d9f8eafd65b50e3c06c92bcd8 if (!nbt.isEmpty()) { // CraftBukkit start - these are spawned serialized (DefinedStructure) and we don't call an add event below at the moment due to ordering complexities world.addWorldGenChunkEntities(EntityType.loadEntitiesRecursive(nbt, world).filter((entity) -> { -@@ -613,7 +613,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -611,7 +611,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider } checkDupeUUID(world, entity); // Paper return !needsRemoval; diff --git a/patches/server/0028-Bad-idea-to-remove-thread-check-and-restore-entityMa.patch b/patches/server/0029-Bad-idea-to-remove-thread-check-and-restore-entityMa.patch similarity index 94% rename from patches/server/0028-Bad-idea-to-remove-thread-check-and-restore-entityMa.patch rename to patches/server/0029-Bad-idea-to-remove-thread-check-and-restore-entityMa.patch index facd234e0f..1ac743e456 100644 --- a/patches/server/0028-Bad-idea-to-remove-thread-check-and-restore-entityMa.patch +++ b/patches/server/0029-Bad-idea-to-remove-thread-check-and-restore-entityMa.patch @@ -1,6 +1,6 @@ From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: killerprojecte -Date: Fri, 11 Aug 2023 08:42:04 +0800 +From: FlyTeam <81072191+killerprojecte@users.noreply.github.com> +Date: Mon, 11 Sep 2023 10:50:08 +0000 Subject: [PATCH] Bad idea to remove thread check and restore entityMap @@ -253,7 +253,7 @@ index 65c4e158d81ac5c5788cf4dcb379061aebd23dcd..0b3bd5abbcd40ffc2c374cff92833a76 (this.tickingBlockEntities ? this.pendingBlockEntityTickers : this.blockEntityTickers).add(ticker); } diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java -index f1f52f9d9f8eafd65b50e3c06c92bcd8fda64286..b485af434d376cd79edfe44740def7aed8ec5cca 100644 +index 6885961c7eaa07b8b25e48ca0e33e310379f6114..8d37807ccb2dc09a35b8e9ff8e73c493b0fd8467 100644 --- a/src/main/java/net/minecraft/server/level/ChunkMap.java +++ b/src/main/java/net/minecraft/server/level/ChunkMap.java @@ -148,7 +148,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider @@ -274,7 +274,7 @@ index f1f52f9d9f8eafd65b50e3c06c92bcd8fda64286..b485af434d376cd79edfe44740def7ae this.chunkTypeCache = new Long2ByteOpenHashMap(); this.chunkSaveCooldowns = new Long2LongOpenHashMap(); this.unloadQueue = Queues.newConcurrentLinkedQueue(); -@@ -718,8 +718,8 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -716,8 +716,8 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider } public void updateChunkTracking(ServerPlayer player, ChunkPos pos, MutableObject> packet, boolean oldWithinViewDistance, boolean newWithinViewDistance) { // Paper - public // Paper - Anti-Xray - Bypass @@ -285,7 +285,7 @@ index f1f52f9d9f8eafd65b50e3c06c92bcd8fda64286..b485af434d376cd79edfe44740def7ae if (player.level() == this.level) { ChunkHolder playerchunk = this.getVisibleChunkIfPresent(pos.toLong()); // Paper - replace chunk loader system - move up if (newWithinViewDistance && !oldWithinViewDistance) { -@@ -1076,6 +1076,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -1074,6 +1074,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider ChunkMap.TrackedEntity playerchunkmap_entitytracker = new ChunkMap.TrackedEntity(entity, i, j, entitytypes.trackDeltas()); entity.tracker = playerchunkmap_entitytracker; // Paper - Fast access to tracker @@ -293,7 +293,7 @@ index f1f52f9d9f8eafd65b50e3c06c92bcd8fda64286..b485af434d376cd79edfe44740def7ae // Folia - region threading playerchunkmap_entitytracker.updatePlayers(this.level.getLocalPlayers()); // Paper - don't search all players // Folia - region threading if (entity instanceof ServerPlayer) { -@@ -1086,6 +1087,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -1084,6 +1085,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider for (Entity possible : this.level.getCurrentWorldData().getLocalEntities()) { if (possible.tracker != null) { possible.tracker.updatePlayer(entityplayer); @@ -301,7 +301,7 @@ index f1f52f9d9f8eafd65b50e3c06c92bcd8fda64286..b485af434d376cd79edfe44740def7ae } } // Folia end - region threading -@@ -1131,6 +1133,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -1129,6 +1131,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider tracker.updatePlayers(players); tracker.removeNonTickThreadPlayers(); tracker.serverEntity.sendChanges(); @@ -323,7 +323,7 @@ index 364229c0a2945cf093bc448b7c3d9fafebab418f..9159d89d14ac80dd9b08d2a63a74c09a io.papermc.paper.chunk.system.scheduling.NewChunkHolder chunkHolder = this.level.chunkTaskScheduler.chunkHolderManager.getChunkHolder(chunkX, chunkZ); diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index cbb6bd505b0cd87f38bd55fd933ae1ce1edea6ed..5c7e917abff8781cfa28c9474114412a6cf55ce2 100644 +index 24cbb385822eac5c8dd7959b06148ad2d96715ed..aa66467f99a626934d4fca99f11c4f570c1a1270 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java @@ -1295,7 +1295,7 @@ public class ServerPlayer extends Player { @@ -345,10 +345,10 @@ index cbb6bd505b0cd87f38bd55fd933ae1ce1edea6ed..5c7e917abff8781cfa28c9474114412a if (this.level().getTypeKey() == LevelStem.END) { if (!this.canPortalAsync(false)) { diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 3ae9e49e3ca9759745203c0d2437fc7eeb11a5bf..e82645d9148041f1c05952d134ffda4ae9b7cba1 100644 +index af07c9d24374b7d969f1e524ce0bbb2626a590b1..765500366e432748949bfc129f6162d6fb126a42 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -1025,7 +1025,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { +@@ -1027,7 +1027,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { public void move(MoverType movementType, Vec3 movement) { // Paper start - detailed watchdog information @@ -357,7 +357,7 @@ index 3ae9e49e3ca9759745203c0d2437fc7eeb11a5bf..e82645d9148041f1c05952d134ffda4a synchronized (this.posLock) { this.moveStartX = this.getX(); this.moveStartY = this.getY(); -@@ -3575,7 +3575,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { +@@ -3577,7 +3577,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { } protected EntityTreeNode makePassengerTree() { @@ -366,7 +366,7 @@ index 3ae9e49e3ca9759745203c0d2437fc7eeb11a5bf..e82645d9148041f1c05952d134ffda4a EntityTreeNode root = new EntityTreeNode(null, this); java.util.ArrayDeque queue = new java.util.ArrayDeque<>(); -@@ -3601,7 +3601,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { +@@ -3603,7 +3603,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { } protected EntityTreeNode detachPassengers() { @@ -375,7 +375,7 @@ index 3ae9e49e3ca9759745203c0d2437fc7eeb11a5bf..e82645d9148041f1c05952d134ffda4a EntityTreeNode root = new EntityTreeNode(null, this); java.util.ArrayDeque queue = new java.util.ArrayDeque<>(); -@@ -3783,7 +3783,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { +@@ -3785,7 +3785,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { public final boolean teleportAsync(ServerLevel destination, Vec3 pos, Float yaw, Float pitch, Vec3 speedDirectionUpdate, org.bukkit.event.player.PlayerTeleportEvent.TeleportCause cause, long teleportFlags, java.util.function.Consumer teleportComplete) { @@ -384,7 +384,7 @@ index 3ae9e49e3ca9759745203c0d2437fc7eeb11a5bf..e82645d9148041f1c05952d134ffda4a if (!ServerLevel.isInSpawnableBounds(new BlockPos(io.papermc.paper.util.CoordinateUtils.getBlockX(pos), io.papermc.paper.util.CoordinateUtils.getBlockY(pos), io.papermc.paper.util.CoordinateUtils.getBlockZ(pos)))) { return false; -@@ -3899,7 +3899,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { +@@ -3901,7 +3901,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { } protected boolean tryEndPortal() { @@ -393,7 +393,7 @@ index 3ae9e49e3ca9759745203c0d2437fc7eeb11a5bf..e82645d9148041f1c05952d134ffda4a BlockPos pos = this.portalBlock; ServerLevel world = this.portalWorld; this.portalBlock = null; -@@ -3917,7 +3917,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { +@@ -3919,7 +3919,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { } protected boolean tryNetherPortal() { @@ -402,7 +402,7 @@ index 3ae9e49e3ca9759745203c0d2437fc7eeb11a5bf..e82645d9148041f1c05952d134ffda4a int portalWaitTime = this.getPortalWaitTime(); -@@ -3940,7 +3940,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { +@@ -3942,7 +3942,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { } public boolean endPortalLogicAsync() { @@ -411,7 +411,7 @@ index 3ae9e49e3ca9759745203c0d2437fc7eeb11a5bf..e82645d9148041f1c05952d134ffda4a ServerLevel destination = this.getServer().getLevel(this.level().getTypeKey() == LevelStem.END ? Level.OVERWORLD : Level.END); EntityPortalReadyEvent event = new io.papermc.paper.event.entity.EntityPortalReadyEvent(this.getBukkitEntity(), destination == null ? null : destination.getWorld(), org.bukkit.PortalType.ENDER); -@@ -3958,7 +3958,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { +@@ -3960,7 +3960,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { } public boolean netherPortalLogicAsync() { @@ -420,7 +420,7 @@ index 3ae9e49e3ca9759745203c0d2437fc7eeb11a5bf..e82645d9148041f1c05952d134ffda4a ServerLevel destination = this.getServer().getLevel(this.level().getTypeKey() == LevelStem.NETHER ? Level.OVERWORLD : Level.NETHER); EntityPortalReadyEvent event = new io.papermc.paper.event.entity.EntityPortalReadyEvent(this.getBukkitEntity(), destination == null ? null : destination.getWorld(), org.bukkit.PortalType.NETHER); -@@ -4185,7 +4185,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { +@@ -4187,7 +4187,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { protected boolean portalToAsync(ServerLevel destination, boolean takePassengers, PortalType type, java.util.function.Consumer teleportComplete) { @@ -429,7 +429,7 @@ index 3ae9e49e3ca9759745203c0d2437fc7eeb11a5bf..e82645d9148041f1c05952d134ffda4a if (!this.canPortalAsync(takePassengers)) { return false; } -@@ -5434,7 +5434,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { +@@ -5428,7 +5428,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { @Override public final void setRemoved(Entity.RemovalReason reason) { // Paper start - rewrite chunk system @@ -514,7 +514,7 @@ index 3698bae85063baec031a61d24ef3286703a9d04c..bf997ee6950e8771cd73fd805275532f // Folia end diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index fd5887fc9f3c8fe5f21a5f7b69ed4a5e374329a1..2aebb9be55af22746ea62e0531bfbf1742064d2f 100644 +index 874422fc018076fb03b4d2bb9992c659ec3f3662..dc71085cf58682e79a7fb5a2c15d2ec883749346 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java @@ -1014,7 +1014,7 @@ public final class CraftServer implements Server { @@ -527,7 +527,7 @@ index fd5887fc9f3c8fe5f21a5f7b69ed4a5e374329a1..2aebb9be55af22746ea62e0531bfbf17 io.papermc.paper.threadedregions.RegionizedServer.ensureGlobalTickThread("Dispatching command async"); } else { diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -index 677e4f83dab1a78ea4b09abf98313dbdbc456367..008536007477761fbb6ec753b763f541656f2146 100644 +index 359e63edc6b48134ad0d9e0b48cf83bec292d7d6..4804ae17f038363d968d703a5d59d6ca1e0c6d93 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java @@ -916,13 +916,13 @@ public class CraftWorld extends CraftRegionAccessor implements World { @@ -556,7 +556,7 @@ index 677e4f83dab1a78ea4b09abf98313dbdbc456367..008536007477761fbb6ec753b763f541 getHandle().gameEvent(sourceEntity != null ? ((CraftEntity) sourceEntity).getHandle(): null, net.minecraft.core.registries.BuiltInRegistries.GAME_EVENT.get(org.bukkit.craftbukkit.util.CraftNamespacedKey.toMinecraft(gameEvent.getKey())), org.bukkit.craftbukkit.util.CraftVector.toBlockPos(position)); } diff --git a/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java b/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java -index 937d0e3aed6dcc40514ed9e99bb9850c02c1a5ef..6e3170c01b7038a1fd02f4cba7e0b63cfbae107d 100644 +index d1c844ae943e752157812d92b14d43a83b5322ef..a880377194e5659240c4e448d7418f1fc444d9a4 100644 --- a/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java +++ b/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java @@ -160,7 +160,7 @@ public class CraftBlock implements Block { @@ -658,16 +658,7 @@ index 937d0e3aed6dcc40514ed9e99bb9850c02c1a5ef..6e3170c01b7038a1fd02f4cba7e0b63c } // Folia end - region threading Preconditions.checkArgument(data != null, "BlockData cannot be null"); -@@ -795,7 +795,7 @@ public class CraftBlock implements Block { - public float getDestroySpeed(ItemStack itemStack, boolean considerEnchants) { - // Folia start - region threading - if (world instanceof ServerLevel serverWorld) { -- io.papermc.paper.util.TickThread.ensureTickThread(serverWorld, position, "Cannot read world asynchronously"); -+ //io.papermc.paper.util.TickThread.ensureTickThread(serverWorld, position, "Cannot read world asynchronously"); - } - // Folia end - region threading - net.minecraft.world.item.ItemStack nmsItemStack; -@@ -825,7 +825,7 @@ public class CraftBlock implements Block { +@@ -799,7 +799,7 @@ public class CraftBlock implements Block { public void tick() { // Folia start - region threading if (world instanceof ServerLevel serverWorld) { @@ -676,7 +667,7 @@ index 937d0e3aed6dcc40514ed9e99bb9850c02c1a5ef..6e3170c01b7038a1fd02f4cba7e0b63c } // Folia end - region threading net.minecraft.world.level.block.state.BlockState blockData = this.getNMS(); -@@ -838,7 +838,7 @@ public class CraftBlock implements Block { +@@ -812,7 +812,7 @@ public class CraftBlock implements Block { public void randomTick() { // Folia start - region threading if (world instanceof ServerLevel serverWorld) { @@ -685,6 +676,22 @@ index 937d0e3aed6dcc40514ed9e99bb9850c02c1a5ef..6e3170c01b7038a1fd02f4cba7e0b63c } // Folia end - region threading net.minecraft.world.level.block.state.BlockState blockData = this.getNMS(); +diff --git a/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java.rej b/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java.rej +new file mode 100644 +index 0000000000000000000000000000000000000000..59dae7af74e21c8afda8795388e0e91232b646da +--- /dev/null ++++ b/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java.rej +@@ -0,0 +1,10 @@ ++diff a/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java b/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java (rejected hunks) ++@@ -795,7 +795,7 @@ public class CraftBlock implements Block { ++ public float getDestroySpeed(ItemStack itemStack, boolean considerEnchants) { ++ // Folia start - region threading ++ if (world instanceof ServerLevel serverWorld) { ++- io.papermc.paper.util.TickThread.ensureTickThread(serverWorld, position, "Cannot read world asynchronously"); +++ //io.papermc.paper.util.TickThread.ensureTickThread(serverWorld, position, "Cannot read world asynchronously"); ++ } ++ // Folia end - region threading ++ net.minecraft.world.item.ItemStack nmsItemStack; diff --git a/src/main/java/org/bukkit/craftbukkit/block/CraftBlockState.java b/src/main/java/org/bukkit/craftbukkit/block/CraftBlockState.java index 38b4d0870d21467e415d5e84457706df80c15e23..002f5136815328d5b7f92c4ca5d6cc8ab0971acc 100644 --- a/src/main/java/org/bukkit/craftbukkit/block/CraftBlockState.java diff --git a/patches/server/0029-Sync-vehicle-position-to-player-position-on-player-d.patch b/patches/server/0030-Sync-vehicle-position-to-player-position-on-player-d.patch similarity index 91% rename from patches/server/0029-Sync-vehicle-position-to-player-position-on-player-d.patch rename to patches/server/0030-Sync-vehicle-position-to-player-position-on-player-d.patch index 1a4fc53e38..14fe6c04ea 100644 --- a/patches/server/0029-Sync-vehicle-position-to-player-position-on-player-d.patch +++ b/patches/server/0030-Sync-vehicle-position-to-player-position-on-player-d.patch @@ -7,10 +7,10 @@ This allows the player to be re-positioned before logging into the world without causing thread checks to trip on Folia. diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index b3f759046df3500e4b1da23c1424620bd867826a..dde8377c2e1a1c84f6c7e3cb594699ff9c8c28e4 100644 +index 1f43919266ef7b79f05ebb70e2fbdd64e1b4811b..1094efe825797e78f848d3a4dcd0c709bfae2a30 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java -@@ -498,7 +498,13 @@ public abstract class PlayerList { +@@ -506,7 +506,13 @@ public abstract class PlayerList { CompoundTag nbttagcompound1 = nbttagcompound.getCompound("RootVehicle"); // CraftBukkit start ServerLevel finalWorldServer = worldserver1; diff --git a/patches/server/0030-Cache-world-data-when-it-not-null.patch b/patches/server/0031-Cache-world-data-when-it-not-null.patch similarity index 100% rename from patches/server/0030-Cache-world-data-when-it-not-null.patch rename to patches/server/0031-Cache-world-data-when-it-not-null.patch diff --git a/patches/server/0031-Add-an-option-to-turn-off-checks.patch b/patches/server/0032-Add-an-option-to-turn-off-checks.patch similarity index 100% rename from patches/server/0031-Add-an-option-to-turn-off-checks.patch rename to patches/server/0032-Add-an-option-to-turn-off-checks.patch diff --git a/patches/server/0032-Cache-world-data-when-world-loading.patch b/patches/server/0033-Cache-world-data-when-world-loading.patch similarity index 95% rename from patches/server/0032-Cache-world-data-when-world-loading.patch rename to patches/server/0033-Cache-world-data-when-world-loading.patch index e134f916c8..60ba39e6c3 100644 --- a/patches/server/0032-Cache-world-data-when-world-loading.patch +++ b/patches/server/0033-Cache-world-data-when-world-loading.patch @@ -26,7 +26,7 @@ index ee9f5e1f3387998cddbeb1dc6dc6e2b1ea7cd670..70cc11031e5ed5d9c4c5e68aca9a1b79 tickThreadRunner.currentTickingWorldRegionizedData = null; } diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 67223e0dd26bc64f915327832c568f96f4cb99b8..e27e347b08cc62e11981686d3eb37a1766f322a2 100644 +index e18204d3f351198fbc41d5de9d9da9417775ade1..7115d199d6b2effef9a50900767d4cf920d4f0bc 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -1,5 +1,6 @@ @@ -44,7 +44,7 @@ index 67223e0dd26bc64f915327832c568f96f4cb99b8..e27e347b08cc62e11981686d3eb37a17 import org.bukkit.command.ConsoleCommandSender; import org.bukkit.event.server.ServerLoadEvent; import org.slf4j.Logger; -@@ -1453,6 +1455,10 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop { // Folia (Third Party) diff --git a/patches/server/0035-Recover-currentTick-field.patch b/patches/server/0037-Recover-currentTick-field.patch similarity index 58% rename from patches/server/0035-Recover-currentTick-field.patch rename to patches/server/0037-Recover-currentTick-field.patch index 1f69d66be2..f0231954b9 100644 --- a/patches/server/0035-Recover-currentTick-field.patch +++ b/patches/server/0037-Recover-currentTick-field.patch @@ -1,6 +1,6 @@ From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: killerprojecte -Date: Tue, 4 Jul 2023 13:09:39 +0800 +From: FlyTeam <81072191+killerprojecte@users.noreply.github.com> +Date: Mon, 11 Sep 2023 10:53:09 +0000 Subject: [PATCH] Recover currentTick field @@ -22,19 +22,19 @@ index ae9b199bf36dd98a8e30ea679b79127184dc7d19..6135ff463327a4753bf06d2481fdff5a } diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 1bfdfb1dd51517a067b068d50d8b6ab5e4da915c..635126af6eca3465c8ffc7a970ff3bacc18c70c9 100644 +index 53ea21e04529a6f2cabfaa5c46b1d39d566f4859..0358f7d026c3fd519b9871515f55b1965f43fd93 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java -@@ -231,7 +231,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop processQueue = new java.util.concurrent.ConcurrentLinkedQueue(); public int autosavePeriod; public Commands vanillaCommandDispatcher; -@@ -244,7 +244,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop processQueue = new java.util.concurrent.ConcurrentLinkedQueue(); ++ public int autosavePeriod; ++ public Commands vanillaCommandDispatcher; diff --git a/patches/server/0037-Try-resolve-high-cpu-problem.patch b/patches/server/0038-Try-resolve-high-cpu-problem.patch similarity index 96% rename from patches/server/0037-Try-resolve-high-cpu-problem.patch rename to patches/server/0038-Try-resolve-high-cpu-problem.patch index 7a0db2f5ac..521c0fec54 100644 --- a/patches/server/0037-Try-resolve-high-cpu-problem.patch +++ b/patches/server/0038-Try-resolve-high-cpu-problem.patch @@ -39,10 +39,10 @@ index c3a2f62cbb87d23f9ed21eabd9eb43973c85cb7f..4042062f6303a02448e6548bc61ba11b } else { tickThreadRunner.currentTickingWorldRegionizedData = null; diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 19bbd89d168ca6b1d50d58c828f20b03a09e6c17..4f2043e24c7947be0f010ec13d789dfe07d2cc2a 100644 +index 0358f7d026c3fd519b9871515f55b1965f43fd93..77ea6cf7b702675e89aab67d4d9994c94f36d3dc 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java -@@ -1500,8 +1500,6 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop -Date: Sat, 12 Aug 2023 01:58:07 +0800 +From: FlyTeam <81072191+killerprojecte@users.noreply.github.com> +Date: Mon, 11 Sep 2023 10:54:59 +0000 Subject: [PATCH] Support six rows enderChests and barrels diff --git a/src/main/java/io/papermc/paper/configuration/GlobalConfiguration.java b/src/main/java/io/papermc/paper/configuration/GlobalConfiguration.java -index d2271e586dd24d7a44108a80f450dc3273e597b8..00a0d8e3dd82f857d3f9ba7d961b441814f91ae3 100644 +index 4588b2d7b97347cbf4202f110fbc5036ccd5b1e0..dcc25a312b10e291edfa46033976726c25bbe354 100644 --- a/src/main/java/io/papermc/paper/configuration/GlobalConfiguration.java +++ b/src/main/java/io/papermc/paper/configuration/GlobalConfiguration.java @@ -7,6 +7,7 @@ import net.kyori.adventure.text.Component; @@ -16,34 +16,7 @@ index d2271e586dd24d7a44108a80f450dc3273e597b8..00a0d8e3dd82f857d3f9ba7d961b4418 import org.checkerframework.checker.nullness.qual.Nullable; import org.spongepowered.configurate.objectmapping.ConfigSerializable; import org.spongepowered.configurate.objectmapping.meta.Comment; -@@ -25,9 +26,26 @@ public class GlobalConfiguration extends ConfigurationPart { - return instance; - } - public static String serverModName = "DirtyFolia"; -+ public static boolean enderChestSixRows = false; -+ public static int barrelRows = 3; - static void set(GlobalConfiguration instance) { - GlobalConfiguration.instance = instance; - serverModName = instance.misc.serverModName; -+ enderChestSixRows = instance.unsupportedSettings.enderChestSixRows; -+ barrelRows = instance.unsupportedSettings.barrelRows; -+ if (barrelRows < 1 || barrelRows > 6) { -+ Bukkit.getLogger().severe("unsupportedSettings.barrelRows must be 1-6, resetting to default"); -+ barrelRows = 3; -+ } -+ org.bukkit.event.inventory.InventoryType.BARREL.setDefaultSize(switch (barrelRows) { -+ case 6 -> 54; -+ case 5 -> 45; -+ case 4 -> 36; -+ case 2 -> 18; -+ case 1 -> 9; -+ default -> 27; -+ }); -+ org.bukkit.event.inventory.InventoryType.ENDER_CHEST.setDefaultSize(enderChestSixRows ? 54 : 27); - } - - @Setting(Configuration.VERSION_FIELD) -@@ -138,6 +156,12 @@ public class GlobalConfiguration extends ConfigurationPart { +@@ -175,6 +176,12 @@ public class GlobalConfiguration extends ConfigurationPart { ZLIB, NONE } @@ -433,8 +406,53 @@ index 0000000000000000000000000000000000000000..e3bc84e9ab615c381da25448332e3cd1 + public int playerMaxConcurrentChunkGenerates = 0; + } +} +diff --git a/src/main/java/io/papermc/paper/configuration/GlobalConfiguration.java.rej b/src/main/java/io/papermc/paper/configuration/GlobalConfiguration.java.rej +index c9b0bfdf51888ebc48830979f16e57c884287a04..fbe2a274fa650c35f3fbd4341a1c514993b4ee52 100644 +--- a/src/main/java/io/papermc/paper/configuration/GlobalConfiguration.java.rej ++++ b/src/main/java/io/papermc/paper/configuration/GlobalConfiguration.java.rej +@@ -1,20 +1,28 @@ + diff a/src/main/java/io/papermc/paper/configuration/GlobalConfiguration.java b/src/main/java/io/papermc/paper/configuration/GlobalConfiguration.java (rejected hunks) +-@@ -24,8 +24,10 @@ public class GlobalConfiguration extends ConfigurationPart { +- public static GlobalConfiguration get() { ++@@ -25,9 +26,26 @@ public class GlobalConfiguration extends ConfigurationPart { + return instance; + } +-+ public static String serverModName = "DirtyFolia"; ++ public static String serverModName = "DirtyFolia"; +++ public static boolean enderChestSixRows = false; +++ public static int barrelRows = 3; + static void set(GlobalConfiguration instance) { + GlobalConfiguration.instance = instance; +-+ serverModName = instance.misc.serverModName; ++ serverModName = instance.misc.serverModName; +++ enderChestSixRows = instance.unsupportedSettings.enderChestSixRows; +++ barrelRows = instance.unsupportedSettings.barrelRows; +++ if (barrelRows < 1 || barrelRows > 6) { +++ Bukkit.getLogger().severe("unsupportedSettings.barrelRows must be 1-6, resetting to default"); +++ barrelRows = 3; +++ } +++ org.bukkit.event.inventory.InventoryType.BARREL.setDefaultSize(switch (barrelRows) { +++ case 6 -> 54; +++ case 5 -> 45; +++ case 4 -> 36; +++ case 2 -> 18; +++ case 1 -> 9; +++ default -> 27; +++ }); +++ org.bukkit.event.inventory.InventoryType.ENDER_CHEST.setDefaultSize(enderChestSixRows ? 54 : 27); + } + + @Setting(Configuration.VERSION_FIELD) +-@@ -278,6 +280,7 @@ public class GlobalConfiguration extends ConfigurationPart { +- public boolean lagCompensateBlockBreaking = true; +- public boolean useDimensionTypeForCustomSpawners = false; +- public boolean strictAdvancementDimensionCheck = false; +-+ public String serverModName = "DirtyFolia"; +- } +- +- public BlockUpdates blockUpdates; diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index dde8377c2e1a1c84f6c7e3cb594699ff9c8c28e4..c090c9a46d0d8836c4b48b478380b8e621cc169b 100644 +index 1094efe825797e78f848d3a4dcd0c709bfae2a30..aff2cc5373f6cb1e04072e036d5022b8c5c1ec5a 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java @@ -27,6 +27,8 @@ import java.util.UUID; @@ -446,7 +464,7 @@ index dde8377c2e1a1c84f6c7e3cb594699ff9c8c28e4..c090c9a46d0d8836c4b48b478380b8e6 import net.minecraft.ChatFormatting; import net.minecraft.FileUtil; import net.minecraft.commands.CommandSourceStack; -@@ -1237,6 +1239,15 @@ public abstract class PlayerList { +@@ -1245,6 +1247,15 @@ public abstract class PlayerList { player.getBukkitEntity().recalculatePermissions(); // CraftBukkit this.server.getCommands().sendCommands(player); } // Paper diff --git a/patches/server/0041-addEntity-in-region-thread.patch b/patches/server/0042-addEntity-in-region-thread.patch similarity index 100% rename from patches/server/0041-addEntity-in-region-thread.patch rename to patches/server/0042-addEntity-in-region-thread.patch diff --git a/patches/server/0042-bypass-global-tick-thread-check.patch b/patches/server/0043-bypass-global-tick-thread-check.patch similarity index 100% rename from patches/server/0042-bypass-global-tick-thread-check.patch rename to patches/server/0043-bypass-global-tick-thread-check.patch diff --git a/patches/server/0043-Force-kick-when-safety-kicking-failed.patch b/patches/server/0044-Force-kick-when-safety-kicking-failed.patch similarity index 95% rename from patches/server/0043-Force-kick-when-safety-kicking-failed.patch rename to patches/server/0044-Force-kick-when-safety-kicking-failed.patch index abe935629f..de6b3d7075 100644 --- a/patches/server/0043-Force-kick-when-safety-kicking-failed.patch +++ b/patches/server/0044-Force-kick-when-safety-kicking-failed.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Force kick when safety kicking failed diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index 0edde7c9633bbed916600161889a4a1435dbacf7..3d6b2d54ebfb39eee2f4a7bf5abce300a2340419 100644 +index a01fda754dae624c001901ab1f834e5cc416f4ce..2ee54c4a41032f55d5c7b1ab6a5d67a99577d2e7 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java @@ -7,6 +7,8 @@ import com.google.common.io.BaseEncoding; @@ -41,7 +41,7 @@ index 0edde7c9633bbed916600161889a4a1435dbacf7..3d6b2d54ebfb39eee2f4a7bf5abce300 import net.minecraft.server.PlayerAdvancements; import net.minecraft.server.level.ChunkMap; import net.minecraft.server.level.ServerLevel; -@@ -605,7 +610,14 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -612,7 +617,14 @@ public class CraftPlayer extends CraftHumanEntity implements Player { //org.spigotmc.AsyncCatcher.catchOp("player kick"); // Folia - region threading - no longer needed final ServerGamePacketListenerImpl connection = this.getHandle().connection; if (connection != null) { diff --git a/patches/server/0044-Fix-addEntityTickingEntity.patch b/patches/server/0045-Fix-addEntityTickingEntity.patch similarity index 100% rename from patches/server/0044-Fix-addEntityTickingEntity.patch rename to patches/server/0045-Fix-addEntityTickingEntity.patch diff --git a/patches/server/0045-Brand-DirtyFolia.patch b/patches/server/0046-Brand-DirtyFolia.patch similarity index 100% rename from patches/server/0045-Brand-DirtyFolia.patch rename to patches/server/0046-Brand-DirtyFolia.patch diff --git a/patches/server/0046-Fix-TickThread-bypass.patch b/patches/server/0047-Fix-TickThread-bypass.patch similarity index 100% rename from patches/server/0046-Fix-TickThread-bypass.patch rename to patches/server/0047-Fix-TickThread-bypass.patch diff --git a/patches/server/0048-Fix-configuration.patch b/patches/server/0048-Fix-configuration.patch new file mode 100644 index 0000000000..1d6b674a5a --- /dev/null +++ b/patches/server/0048-Fix-configuration.patch @@ -0,0 +1,530 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: FlyTeam <81072191+killerprojecte@users.noreply.github.com> +Date: Mon, 11 Sep 2023 11:09:05 +0000 +Subject: [PATCH] Fix configuration + + +diff --git a/src/main/java/io/papermc/paper/configuration/GlobalConfiguration.java b/src/main/java/io/papermc/paper/configuration/GlobalConfiguration.java +index dcc25a312b10e291edfa46033976726c25bbe354..00f4d86f28c7bce36989e34f65859b5ee04d7da0 100644 +--- a/src/main/java/io/papermc/paper/configuration/GlobalConfiguration.java ++++ b/src/main/java/io/papermc/paper/configuration/GlobalConfiguration.java +@@ -323,6 +323,7 @@ public class GlobalConfiguration extends ConfigurationPart { + public boolean useAlternativeLuckFormula = false; + public boolean useDimensionTypeForCustomSpawners = false; + public boolean strictAdvancementDimensionCheck = false; ++ public String serverModName = "DirtyFolia"; + } + + public BlockUpdates blockUpdates; +diff --git a/src/main/java/io/papermc/paper/configuration/GlobalConfiguration.java.orig b/src/main/java/io/papermc/paper/configuration/GlobalConfiguration.java.orig +deleted file mode 100644 +index e3bc84e9ab615c381da25448332e3cd1b8e354ed..0000000000000000000000000000000000000000 +--- a/src/main/java/io/papermc/paper/configuration/GlobalConfiguration.java.orig ++++ /dev/null +@@ -1,371 +0,0 @@ +-package io.papermc.paper.configuration; +- +-import co.aikar.timings.MinecraftTimings; +-import io.papermc.paper.configuration.constraint.Constraint; +-import io.papermc.paper.configuration.constraint.Constraints; +-import net.kyori.adventure.text.Component; +-import net.kyori.adventure.text.format.NamedTextColor; +-import net.minecraft.network.protocol.Packet; +-import net.minecraft.network.protocol.game.ServerboundPlaceRecipePacket; +-import org.bukkit.Bukkit; +-import org.checkerframework.checker.nullness.qual.Nullable; +-import org.spongepowered.configurate.objectmapping.ConfigSerializable; +-import org.spongepowered.configurate.objectmapping.meta.Comment; +-import org.spongepowered.configurate.objectmapping.meta.Required; +-import org.spongepowered.configurate.objectmapping.meta.Setting; +- +-import java.util.List; +-import java.util.Map; +-import java.util.Objects; +- +-@SuppressWarnings({"CanBeFinal", "FieldCanBeLocal", "FieldMayBeFinal", "NotNullFieldNotInitialized", "InnerClassMayBeStatic"}) +-public class GlobalConfiguration extends ConfigurationPart { +- static final int CURRENT_VERSION = 28; +- private static GlobalConfiguration instance; +- public static GlobalConfiguration get() { +- return instance; +- } +- public static String serverModName = "DirtyFolia"; +- public static boolean enderChestSixRows = false; +- public static int barrelRows = 3; +- static void set(GlobalConfiguration instance) { +- GlobalConfiguration.instance = instance; +- serverModName = instance.misc.serverModName; +- enderChestSixRows = instance.unsupportedSettings.enderChestSixRows; +- barrelRows = instance.unsupportedSettings.barrelRows; +- if (barrelRows < 1 || barrelRows > 6) { +- Bukkit.getLogger().severe("unsupportedSettings.barrelRows must be 1-6, resetting to default"); +- barrelRows = 3; +- } +- org.bukkit.event.inventory.InventoryType.BARREL.setDefaultSize(switch (barrelRows) { +- case 6 -> 54; +- case 5 -> 45; +- case 4 -> 36; +- case 2 -> 18; +- case 1 -> 9; +- default -> 27; +- }); +- org.bukkit.event.inventory.InventoryType.ENDER_CHEST.setDefaultSize(enderChestSixRows ? 54 : 27); +- } +- +- @Setting(Configuration.VERSION_FIELD) +- public int version = CURRENT_VERSION; +- +- public Messages messages; +- +- public class Messages extends ConfigurationPart { +- public Kick kick; +- +- public class Kick extends ConfigurationPart { +- public Component authenticationServersDown = Component.translatable("multiplayer.disconnect.authservers_down"); +- public Component connectionThrottle = Component.text("Connection throttled! Please wait before reconnecting."); +- public Component flyingPlayer = Component.translatable("multiplayer.disconnect.flying"); +- public Component flyingVehicle = Component.translatable("multiplayer.disconnect.flying"); +- } +- +- public Component noPermission = Component.text("I'm sorry, but you do not have permission to perform this command. Please contact the server administrators if you believe that this is in error.", NamedTextColor.RED); +- public boolean useDisplayNameInQuitMessage = false; +- } +- +- public Timings timings; +- +- public class Timings extends ConfigurationPart.Post { +- public boolean enabled = true; +- public boolean verbose = true; +- public String url = "https://timings.aikar.co/"; +- public boolean serverNamePrivacy = false; +- public List hiddenConfigEntries = List.of( +- "database", +- "proxies.velocity.secret" +- ); +- public int historyInterval = 300; +- public int historyLength = 3600; +- public String serverName = "Unknown Server"; +- +- @Override +- public void postProcess() { +- MinecraftTimings.processConfig(this); +- } +- } +- +- public Proxies proxies; +- +- public class Proxies extends ConfigurationPart { +- public BungeeCord bungeeCord; +- +- public class BungeeCord extends ConfigurationPart { +- public boolean onlineMode = true; +- } +- +- @Constraint(Constraints.Velocity.class) +- public Velocity velocity; +- +- public class Velocity extends ConfigurationPart { +- public boolean enabled = false; +- public boolean onlineMode = false; +- public String secret = ""; +- } +- public boolean proxyProtocol = false; +- public boolean isProxyOnlineMode() { +- return org.bukkit.Bukkit.getOnlineMode() || (org.spigotmc.SpigotConfig.bungee && this.bungeeCord.onlineMode) || (this.velocity.enabled && this.velocity.onlineMode); +- } +- } +- +- public Console console; +- +- public class Console extends ConfigurationPart { +- public boolean enableBrigadierHighlighting = true; +- public boolean enableBrigadierCompletions = true; +- public boolean hasAllPermissions = false; +- } +- +- public Watchdog watchdog; +- +- public class Watchdog extends ConfigurationPart { +- public int earlyWarningEvery = 5000; +- public int earlyWarningDelay = 10000; +- } +- +- public SpamLimiter spamLimiter; +- +- public class SpamLimiter extends ConfigurationPart { +- public int tabSpamIncrement = 1; +- public int tabSpamLimit = 500; +- public int recipeSpamIncrement = 1; +- public int recipeSpamLimit = 20; +- public int incomingPacketThreshold = 300; +- } +- +- public UnsupportedSettings unsupportedSettings; +- +- public class UnsupportedSettings extends ConfigurationPart { +- @Comment("This setting controls if players should be able to break bedrock, end portals and other intended to be permanent blocks.") +- public boolean allowPermanentBlockBreakExploits = false; +- @Comment("This setting controls if player should be able to use TNT duplication, but this also allows duplicating carpet, rails and potentially other items") +- public boolean allowPistonDuplication = false; +- public boolean performUsernameValidation = true; +- @Comment("This setting controls if players should be able to create headless pistons.") +- public boolean allowHeadlessPistons = false; +- @Comment("This setting controls if grindstones should be able to output overstacked items (such as cursed books).") +- public boolean allowGrindstoneOverstacking = false; +-<<<<<<< HEAD +- @Comment("This setting controls what compression format is used for region files.") +- public CompressionFormat compressionFormat = CompressionFormat.ZLIB; +- +- public enum CompressionFormat { +- GZIP, +- ZLIB, +- NONE +- } +-======= +- +- @Comment("Enable Purpur six rows enderChest feature") +- public boolean enderChestSixRows = false; +- +- @Comment("Enable Purpur custom rows barrel feature") +- public int barrelRows = 3; +->>>>>>> Support six rows enderChests and barrels +- } +- +- public Commands commands; +- +- public class Commands extends ConfigurationPart { +- public boolean suggestPlayerNamesWhenNullTabCompletions = true; +- public boolean fixTargetSelectorTagCompletion = true; +- public boolean timeCommandAffectsAllWorlds = false; +- } +- +- public Logging logging; +- +- public class Logging extends ConfigurationPart { +- public boolean logPlayerIpAddresses = true; +- public boolean deobfuscateStacktraces = true; +- } +- +- public Scoreboards scoreboards; +- +- public class Scoreboards extends ConfigurationPart { +- public boolean trackPluginScoreboards = false; +- public boolean saveEmptyScoreboardTeams = false; +- } +- +- public ChunkSystem chunkSystem; +- +- public class ChunkSystem extends ConfigurationPart.Post { +- +- public int ioThreads = -1; +- public int workerThreads = -1; +- public String genParallelism = "default"; +- +- @Override +- public void postProcess() { +- io.papermc.paper.chunk.system.scheduling.ChunkTaskScheduler.init(this); +- } +- } +- +- public ItemValidation itemValidation; +- +- public class ItemValidation extends ConfigurationPart { +- public int displayName = 8192; +- public int loreLine = 8192; +- public Book book; +- +- public class Book extends ConfigurationPart { +- public int title = 8192; +- public int author = 8192; +- public int page = 16384; +- } +- +- public BookSize bookSize; +- +- public class BookSize extends ConfigurationPart { +- public int pageMax = 2560; // TODO this appears to be a duplicate setting with one above +- public double totalMultiplier = 0.98D; // TODO this should probably be merged into the above inner class +- } +- public boolean resolveSelectorsInBooks = false; +- } +- +- public PacketLimiter packetLimiter; +- +- public class PacketLimiter extends ConfigurationPart { +- public Component kickMessage = Component.translatable("disconnect.exceeded_packet_rate", NamedTextColor.RED); +- public PacketLimit allPackets = new PacketLimit(7.0, 500.0, PacketLimit.ViolateAction.KICK); +- public Map>, PacketLimit> overrides = Map.of(ServerboundPlaceRecipePacket.class, new PacketLimit(4.0, 5.0, PacketLimit.ViolateAction.DROP)); +- +- @ConfigSerializable +- public record PacketLimit(@Required double interval, @Required double maxPacketRate, ViolateAction action) { +- public PacketLimit(final double interval, final double maxPacketRate, final @Nullable ViolateAction action) { +- this.interval = interval; +- this.maxPacketRate = maxPacketRate; +- this.action = Objects.requireNonNullElse(action, ViolateAction.KICK); +- } +- +- public boolean isEnabled() { +- return this.interval > 0.0 && this.maxPacketRate > 0.0; +- } +- +- public enum ViolateAction { +- KICK, +- DROP; +- } +- } +- } +- +- public Collisions collisions; +- +- public class Collisions extends ConfigurationPart { +- public boolean enablePlayerCollisions = true; +- public boolean sendFullPosForHardCollidingEntities = true; +- } +- +- public PlayerAutoSave playerAutoSave; +- +- +- public class PlayerAutoSave extends ConfigurationPart { +- public int rate = -1; +- private int maxPerTick = -1; +- public int maxPerTick() { +- if (this.maxPerTick < 0) { +- return (this.rate == 1 || this.rate > 100) ? 10 : 20; +- } +- return this.maxPerTick; +- } +- } +- +- public Misc misc; +- +- public class Misc extends ConfigurationPart { +- +- public ChatThreads chatThreads; +- public class ChatThreads extends ConfigurationPart.Post { +- private int chatExecutorCoreSize = -1; +- private int chatExecutorMaxSize = -1; +- +- @Override +- public void postProcess() { +- //noinspection ConstantConditions +- if (net.minecraft.server.MinecraftServer.getServer() == null) return; // In testing env, this will be null here +- int _chatExecutorMaxSize = (chatExecutorMaxSize <= 0) ? Integer.MAX_VALUE : chatExecutorMaxSize; // This is somewhat dumb, but, this is the default, do we cap this?; +- int _chatExecutorCoreSize = Math.max(chatExecutorCoreSize, 0); +- +- if (_chatExecutorMaxSize < _chatExecutorCoreSize) { +- _chatExecutorMaxSize = _chatExecutorCoreSize; +- } +- +- java.util.concurrent.ThreadPoolExecutor executor = (java.util.concurrent.ThreadPoolExecutor) net.minecraft.server.MinecraftServer.getServer().chatExecutor; +- executor.setCorePoolSize(_chatExecutorCoreSize); +- executor.setMaximumPoolSize(_chatExecutorMaxSize); +- } +- } +- public int maxJoinsPerTick = 5; +- public boolean fixEntityPositionDesync = true; +- public boolean loadPermissionsYmlBeforePlugins = true; +- @Constraints.Min(4) +- public int regionFileCacheSize = 256; +- @Comment("See https://luckformula.emc.gs") +- public boolean useAlternativeLuckFormula = false; +- public boolean lagCompensateBlockBreaking = true; +- public boolean useDimensionTypeForCustomSpawners = false; +- public boolean strictAdvancementDimensionCheck = false; +- public String serverModName = "DirtyFolia"; +- } +- +- public BlockUpdates blockUpdates; +- +- public class BlockUpdates extends ConfigurationPart { +- public boolean disableNoteblockUpdates = false; +- public boolean disableTripwireUpdates = false; +- } +- +- // Folia start - threaded regions +- public ThreadedRegions threadedRegions; +- public class ThreadedRegions extends Post { +- +- public int threads = -1; +- +- @Override +- public void postProcess() { +- io.papermc.paper.threadedregions.TickRegions.init(this); +- } +- } +- // Folia end - threaded regions +- +- public ChunkLoadingBasic chunkLoadingBasic; +- +- public class ChunkLoadingBasic extends ConfigurationPart { +- @Comment("The maximum rate in chunks per second that the server will send to any individual player. Set to -1 to disable this limit.") +- public double playerMaxChunkSendRate = 75.0; +- +- @Comment( +- "The maximum rate at which chunks will load for any individual player. " + +- "Note that this setting also affects chunk generations, since a chunk load is always first issued to test if a" + +- "chunk is already generated. Set to -1 to disable this limit." +- ) +- public double playerMaxChunkLoadRate = 100.0; +- +- @Comment("The maximum rate at which chunks will generate for any individual player. Set to -1 to disable this limit.") +- public double playerMaxChunkGenerateRate = -1.0; +- } +- +- public ChunkLoadingAdvanced chunkLoadingAdvanced; +- +- public class ChunkLoadingAdvanced extends ConfigurationPart { +- @Comment( +- "Set to true if the server will match the chunk send radius that clients have configured" + +- "in their view distance settings if the client is less-than the server's send distance." +- ) +- public boolean autoConfigSendDistance = true; +- +- @Comment( +- "Specifies the maximum amount of concurrent chunk loads that an individual player can have." + +- "Set to 0 to let the server configure it automatically per player, or set it to -1 to disable the limit." +- ) +- public int playerMaxConcurrentChunkLoads = 0; +- +- @Comment( +- "Specifies the maximum amount of concurrent chunk generations that an individual player can have." + +- "Set to 0 to let the server configure it automatically per player, or set it to -1 to disable the limit." +- ) +- public int playerMaxConcurrentChunkGenerates = 0; +- } +-} +diff --git a/src/main/java/io/papermc/paper/configuration/GlobalConfiguration.java.rej b/src/main/java/io/papermc/paper/configuration/GlobalConfiguration.java.rej +deleted file mode 100644 +index fbe2a274fa650c35f3fbd4341a1c514993b4ee52..0000000000000000000000000000000000000000 +--- a/src/main/java/io/papermc/paper/configuration/GlobalConfiguration.java.rej ++++ /dev/null +@@ -1,28 +0,0 @@ +-diff a/src/main/java/io/papermc/paper/configuration/GlobalConfiguration.java b/src/main/java/io/papermc/paper/configuration/GlobalConfiguration.java (rejected hunks) +-@@ -25,9 +26,26 @@ public class GlobalConfiguration extends ConfigurationPart { +- return instance; +- } +- public static String serverModName = "DirtyFolia"; +-+ public static boolean enderChestSixRows = false; +-+ public static int barrelRows = 3; +- static void set(GlobalConfiguration instance) { +- GlobalConfiguration.instance = instance; +- serverModName = instance.misc.serverModName; +-+ enderChestSixRows = instance.unsupportedSettings.enderChestSixRows; +-+ barrelRows = instance.unsupportedSettings.barrelRows; +-+ if (barrelRows < 1 || barrelRows > 6) { +-+ Bukkit.getLogger().severe("unsupportedSettings.barrelRows must be 1-6, resetting to default"); +-+ barrelRows = 3; +-+ } +-+ org.bukkit.event.inventory.InventoryType.BARREL.setDefaultSize(switch (barrelRows) { +-+ case 6 -> 54; +-+ case 5 -> 45; +-+ case 4 -> 36; +-+ case 2 -> 18; +-+ case 1 -> 9; +-+ default -> 27; +-+ }); +-+ org.bukkit.event.inventory.InventoryType.ENDER_CHEST.setDefaultSize(enderChestSixRows ? 54 : 27); +- } +- +- @Setting(Configuration.VERSION_FIELD) +diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java +index 77ea6cf7b702675e89aab67d4d9994c94f36d3dc..0829ed685ba3bccc844edc57f306b3e8835d7e21 100644 +--- a/src/main/java/net/minecraft/server/MinecraftServer.java ++++ b/src/main/java/net/minecraft/server/MinecraftServer.java +@@ -1788,7 +1788,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop // Folia - Folia > // Paper - Paper > // Spigot - Spigot > // CraftBukkit - cb > vanilla! ++ return GlobalConfiguration.get().misc.serverModName; // DirtyFolia - Read from configuration > // Folia - Folia > // Paper - Paper > // Spigot - Spigot > // CraftBukkit - cb > vanilla! + } + + public SystemReport fillSystemReport(SystemReport details) { +diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java +index aff2cc5373f6cb1e04072e036d5022b8c5c1ec5a..e3f7cc73c20d6f6e2246b5318e4cfd700bf05d1e 100644 +--- a/src/main/java/net/minecraft/server/players/PlayerList.java ++++ b/src/main/java/net/minecraft/server/players/PlayerList.java +@@ -1249,7 +1249,7 @@ public abstract class PlayerList { + } // Paper + + // DirtyFolia (Purpur) - Start +- if (GlobalConfiguration.enderChestSixRows) { ++ if (GlobalConfiguration.get().unsupportedSettings.enderChestSixRows) { + org.bukkit.craftbukkit.entity.CraftHumanEntity bukkit = player.getBukkitEntity(); + player.sixRowEnderchestSlotCount = 54; + } else { +diff --git a/src/main/java/net/minecraft/world/inventory/PlayerEnderChestContainer.java b/src/main/java/net/minecraft/world/inventory/PlayerEnderChestContainer.java +index df9722620833e0e80432b557749f6445e293743a..197fed086ae27529860f37dff4ebae55501fe061 100644 +--- a/src/main/java/net/minecraft/world/inventory/PlayerEnderChestContainer.java ++++ b/src/main/java/net/minecraft/world/inventory/PlayerEnderChestContainer.java +@@ -33,7 +33,7 @@ public class PlayerEnderChestContainer extends SimpleContainer { + + public PlayerEnderChestContainer(Player owner) { + //super(27); +- super(GlobalConfiguration.enderChestSixRows ? 54 : 27); // DirtyFolia (Purpur) ++ super(GlobalConfiguration.get().unsupportedSettings.enderChestSixRows ? 54 : 27); // DirtyFolia (Purpur) + this.owner = owner; + // CraftBukkit end + } +diff --git a/src/main/java/net/minecraft/world/level/block/EnderChestBlock.java b/src/main/java/net/minecraft/world/level/block/EnderChestBlock.java +index 8c2e66b277ec5d9c6ddebeb0ea9876d87cb3c878..fd3ab29b2ead326ee1e1de8a8d00cfb92d035096 100644 +--- a/src/main/java/net/minecraft/world/level/block/EnderChestBlock.java ++++ b/src/main/java/net/minecraft/world/level/block/EnderChestBlock.java +@@ -88,7 +88,7 @@ public class EnderChestBlock extends AbstractChestBlock i + playerEnderChestContainer.setActiveChest(enderChestBlockEntity); + player.openMenu(new SimpleMenuProvider((syncId, inventory, playerx) -> { + // DirtyFolia (Purpur) - Start +- if (GlobalConfiguration.enderChestSixRows) { ++ if (GlobalConfiguration.get().unsupportedSettings.enderChestSixRows) { + return ChestMenu.sixRows(syncId, inventory, playerEnderChestContainer); + } + // DirtyFolia (Purpur) - End +diff --git a/src/main/java/net/minecraft/world/level/block/entity/BarrelBlockEntity.java b/src/main/java/net/minecraft/world/level/block/entity/BarrelBlockEntity.java +index 4d3cb2d027af0681c5add79518aab6930fb6bad2..9d8f567a2aed70a57236a571f00b74f8f4f5f608 100644 +--- a/src/main/java/net/minecraft/world/level/block/entity/BarrelBlockEntity.java ++++ b/src/main/java/net/minecraft/world/level/block/entity/BarrelBlockEntity.java +@@ -70,7 +70,7 @@ public class BarrelBlockEntity extends RandomizableContainerBlockEntity { + super(BlockEntityType.BARREL, pos, state); + //this.items = NonNullList.withSize(27, ItemStack.EMPTY); + // DirtyFolia (Purpur) - Start +- this.items = NonNullList.withSize(switch (GlobalConfiguration.barrelRows) { ++ this.items = NonNullList.withSize(switch (GlobalConfiguration.get().unsupportedSettings.barrelRows) { + case 6 -> 54; + case 5 -> 45; + case 4 -> 36; +@@ -131,7 +131,7 @@ public class BarrelBlockEntity extends RandomizableContainerBlockEntity { + public int getContainerSize() { + //return 27; + // DirtyFolia (Purpur) - Start +- return switch (GlobalConfiguration.barrelRows) { ++ return switch (GlobalConfiguration.get().unsupportedSettings.barrelRows) { + case 6 -> 54; + case 5 -> 45; + case 4 -> 36; +@@ -161,7 +161,7 @@ public class BarrelBlockEntity extends RandomizableContainerBlockEntity { + protected AbstractContainerMenu createMenu(int syncId, Inventory playerInventory) { + //return ChestMenu.threeRows(syncId, playerInventory, this); + // DirtyFolia (Purpur) - Start +- return switch (GlobalConfiguration.barrelRows) { ++ return switch (GlobalConfiguration.get().unsupportedSettings.barrelRows) { + case 6 -> ChestMenu.sixRows(syncId, playerInventory, this); + case 5 -> ChestMenu.fiveRows(syncId, playerInventory, this); + case 4 -> ChestMenu.fourRows(syncId, playerInventory, this); +diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftContainer.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftContainer.java +index e6985c38e9876c50534eb0cfcd4383528d09ed92..65aeb5a1e66d92fea91a2cad4053bb9b72a67397 100644 +--- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftContainer.java ++++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftContainer.java +@@ -183,11 +183,11 @@ public class CraftContainer extends AbstractContainerMenu { + case CHEST: + case ENDER_CHEST: + // Purpur start +- this.delegate = new ChestMenu(GlobalConfiguration.enderChestSixRows ? MenuType.GENERIC_9x6 : MenuType.GENERIC_9x3, windowId, bottom, top, top.getContainerSize() / 9); ++ this.delegate = new ChestMenu(GlobalConfiguration.get().unsupportedSettings.enderChestSixRows ? MenuType.GENERIC_9x6 : MenuType.GENERIC_9x3, windowId, bottom, top, top.getContainerSize() / 9); + break; + case BARREL: + //this.delegate = new ChestMenu(MenuType.GENERIC_9x3, windowId, bottom, top, top.getContainerSize() / 9); +- this.delegate = new ChestMenu(switch (GlobalConfiguration.barrelRows) { ++ this.delegate = new ChestMenu(switch (GlobalConfiguration.get().unsupportedSettings.barrelRows) { + case 6 -> MenuType.GENERIC_9x6; + case 5 -> MenuType.GENERIC_9x5; + case 4 -> MenuType.GENERIC_9x4;