diff --git a/gradle.properties b/gradle.properties index 1562f9b8..e59e354c 100644 --- a/gradle.properties +++ b/gradle.properties @@ -2,7 +2,7 @@ group = cn.dreeam.leaf mcVersion = 1.21 version = 1.21-R0.1-SNAPSHOT -galeCommit = d95dc9d8a01fabe3851dd697ca379526049605f6 +galeCommit = d4f0ad7103aeccf39a67153ff4a3df2a6b3693a0 org.gradle.caching = true org.gradle.parallel = true diff --git a/patches/api/0004-Purpur-API-Changes.patch b/patches/api/0004-Purpur-API-Changes.patch index c0697efa..abd12f5b 100644 --- a/patches/api/0004-Purpur-API-Changes.patch +++ b/patches/api/0004-Purpur-API-Changes.patch @@ -1108,10 +1108,10 @@ index 7fbfdb07585c7b28acea1f0c1f58ada0cc744441..21fcca092e2e31baa5ece0de9e44e3fa + // Purpur end } diff --git a/src/main/java/org/bukkit/entity/Villager.java b/src/main/java/org/bukkit/entity/Villager.java -index 48c8af31b2bdc849b5269784ff3829ba31fb3f47..431a62092380d30f27476eadbfa11833060e4a33 100644 +index 444744ea6f5921b0ae229995f8b15ea9d980c402..508bb3493e74a42ce8abf57bba05c08a715849dc 100644 --- a/src/main/java/org/bukkit/entity/Villager.java +++ b/src/main/java/org/bukkit/entity/Villager.java -@@ -328,4 +328,14 @@ public interface Villager extends AbstractVillager { +@@ -375,4 +375,14 @@ public interface Villager extends AbstractVillager { */ public void clearReputations(); // Paper end diff --git a/patches/server/0001-Rebrand.patch b/patches/server/0001-Rebrand.patch index fd71a0e5..bdc70090 100644 --- a/patches/server/0001-Rebrand.patch +++ b/patches/server/0001-Rebrand.patch @@ -176,10 +176,10 @@ index 11cf6a20550e252501a92be5bdffafcff007cbf9..54f7aa95cfbcf39bb86ad1b4eb0f9ff2 } diff --git a/src/main/java/org/bukkit/craftbukkit/scheduler/CraftScheduler.java b/src/main/java/org/bukkit/craftbukkit/scheduler/CraftScheduler.java -index 79192e3a0f27d48f35c0378b58e587212ed2c305..006adb2adb27c497ede69f87e78bc3e34499cbf8 100644 +index bdfb969f88e68d89a5cad4b145bbc1441a110bac..fba0558f46516f65c678635359f305f865336d3a 100644 --- a/src/main/java/org/bukkit/craftbukkit/scheduler/CraftScheduler.java +++ b/src/main/java/org/bukkit/craftbukkit/scheduler/CraftScheduler.java -@@ -503,7 +503,7 @@ public class CraftScheduler implements BukkitScheduler { +@@ -492,7 +492,7 @@ public class CraftScheduler implements BukkitScheduler { this.parsePending(); } else { // this.debugTail = this.debugTail.setNext(new CraftAsyncDebugger(currentTick + CraftScheduler.RECENT_TICKS, task.getOwner(), task.getTaskClass())); // Paper diff --git a/patches/server/0003-Leaf-Config.patch b/patches/server/0003-Leaf-Config.patch index abd0ead0..82781f8a 100644 --- a/patches/server/0003-Leaf-Config.patch +++ b/patches/server/0003-Leaf-Config.patch @@ -41,18 +41,19 @@ index f76ca394169d844a263a53c31c30e57de4381e0d..d2ea951c7e5899d0e2edb52064e35c23 DedicatedServerSettings dedicatedserversettings = new DedicatedServerSettings(optionset); // CraftBukkit - CLI argument support diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index b981f41c96944b3ddcb7455a74c332bd12a99e88..29c35af2dd3bbcc2527542d594316b9756c7c2a2 100644 +index 9fa8d9af5ff8c2f204793ce014375e7b2f220083..7b28d758afbefbd18b7cc914f52339aa400bbb36 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java -@@ -1216,6 +1216,8 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop 1) { diff --git a/patches/server/0010-Purpur-Server-Changes.patch b/patches/server/0010-Purpur-Server-Changes.patch index 6d383696..cd98a1fd 100644 --- a/patches/server/0010-Purpur-Server-Changes.patch +++ b/patches/server/0010-Purpur-Server-Changes.patch @@ -315,7 +315,7 @@ index a8e813ca89b033f061e695288b3383bdcf128531..1ab65af9359d19530bba7f985a604d2a } if (SysoutCatcher.NAG_INTERVAL > 0 || SysoutCatcher.NAG_TIMEOUT > 0) { diff --git a/src/main/java/io/papermc/paper/plugin/PluginInitializerManager.java b/src/main/java/io/papermc/paper/plugin/PluginInitializerManager.java -index 6f14cb9a73faa1d0ae2939d08809d9f6c2a99e1d..4e98745670032038f7b4f8e1adabc1e00e7f15bf 100644 +index 49d8e207795997e5deaf830eb971067f84bfc791..5a896f2fed9adf89840fdf9698389705f147afc6 100644 --- a/src/main/java/io/papermc/paper/plugin/PluginInitializerManager.java +++ b/src/main/java/io/papermc/paper/plugin/PluginInitializerManager.java @@ -112,6 +112,7 @@ public class PluginInitializerManager { @@ -699,7 +699,7 @@ index d2ea951c7e5899d0e2edb52064e35c23965c4230..b929842514a97ca993ead608d355a4af Bootstrap.bootStrap(); Bootstrap.validate(); diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 798e6473e33819d6c7a39e25dace3fc241571b0a..7de28d562fe93fcefd186b0d23c5776ba6be277b 100644 +index 6255de543275c78b503d49f4a162e629558c2659..51d67ded0c27825a6958c5622a777aeb214849c4 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -289,6 +289,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop 0 && !source.is(DamageTypeTags.BYPASSES_INVULNERABILITY)) { -@@ -1399,6 +1429,7 @@ public class ServerPlayer extends net.minecraft.world.entity.player.Player imple +@@ -1400,6 +1430,7 @@ public class ServerPlayer extends net.minecraft.world.entity.player.Player imple worldserver1.removePlayerImmediately(this, Entity.RemovalReason.CHANGED_DIMENSION); this.unsetRemoved(); // CraftBukkit end @@ -1366,7 +1366,7 @@ index a5ed3eef0f66a44a9ce1effff19dbde7c1caa4ab..c98389197ee11d4fb64625169f342f76 this.setServerLevel(worldserver); this.connection.teleport(exit); // CraftBukkit - use internal teleport without event this.connection.resetPosition(); -@@ -1502,7 +1533,7 @@ public class ServerPlayer extends net.minecraft.world.entity.player.Player imple +@@ -1503,7 +1534,7 @@ public class ServerPlayer extends net.minecraft.world.entity.player.Player imple return entitymonster.isPreventingPlayerRest(this); }); @@ -1375,7 +1375,7 @@ index a5ed3eef0f66a44a9ce1effff19dbde7c1caa4ab..c98389197ee11d4fb64625169f342f76 return Either.left(net.minecraft.world.entity.player.Player.BedSleepingProblem.NOT_SAFE); } } -@@ -1542,7 +1573,19 @@ public class ServerPlayer extends net.minecraft.world.entity.player.Player imple +@@ -1543,7 +1574,19 @@ public class ServerPlayer extends net.minecraft.world.entity.player.Player imple }); if (!this.serverLevel().canSleepThroughNights()) { @@ -1396,7 +1396,7 @@ index a5ed3eef0f66a44a9ce1effff19dbde7c1caa4ab..c98389197ee11d4fb64625169f342f76 } ((ServerLevel) this.level()).updateSleepingPlayerList(); -@@ -1664,6 +1707,7 @@ public class ServerPlayer extends net.minecraft.world.entity.player.Player imple +@@ -1665,6 +1708,7 @@ public class ServerPlayer extends net.minecraft.world.entity.player.Player imple @Override public void openTextEdit(SignBlockEntity sign, boolean front) { @@ -1404,7 +1404,7 @@ index a5ed3eef0f66a44a9ce1effff19dbde7c1caa4ab..c98389197ee11d4fb64625169f342f76 this.connection.send(new ClientboundBlockUpdatePacket(this.level(), sign.getBlockPos())); this.connection.send(new ClientboundOpenSignEditorPacket(sign.getBlockPos(), front)); } -@@ -2000,6 +2044,26 @@ public class ServerPlayer extends net.minecraft.world.entity.player.Player imple +@@ -2001,6 +2045,26 @@ public class ServerPlayer extends net.minecraft.world.entity.player.Player imple this.lastSentExp = -1; // CraftBukkit - Added to reset } @@ -1431,7 +1431,7 @@ index a5ed3eef0f66a44a9ce1effff19dbde7c1caa4ab..c98389197ee11d4fb64625169f342f76 @Override public void displayClientMessage(Component message, boolean overlay) { this.sendSystemMessage(message, overlay); -@@ -2340,8 +2404,68 @@ public class ServerPlayer extends net.minecraft.world.entity.player.Player imple +@@ -2341,8 +2405,68 @@ public class ServerPlayer extends net.minecraft.world.entity.player.Player imple public void resetLastActionTime() { this.lastActionTime = Util.getMillis(); @@ -1500,7 +1500,7 @@ index a5ed3eef0f66a44a9ce1effff19dbde7c1caa4ab..c98389197ee11d4fb64625169f342f76 public ServerStatsCounter getStats() { return this.stats; } -@@ -2945,4 +3069,50 @@ public class ServerPlayer extends net.minecraft.world.entity.player.Player imple +@@ -2946,4 +3070,50 @@ public class ServerPlayer extends net.minecraft.world.entity.player.Player imple return (CraftPlayer) super.getBukkitEntity(); } // CraftBukkit end @@ -1886,7 +1886,7 @@ index 1d11d0388b9763a0e0e5f3398425dafa2bb01488..72cf1372a7e685b3ff4cc852c3d38f7d } } catch (AuthenticationUnavailableException authenticationunavailableexception) { diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index 503eafc89cbbd7286108eb2edf32af01d5e5c57d..e3cc24c2c7eb9cc8928fe300137eb9baac70e91f 100644 +index 0f7a7d17a94c052111763bee00ba1b34442493d9..43a727475a787cd1ddc6345f366f1b2f477fcfde 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java @@ -494,6 +494,7 @@ public abstract class PlayerList { @@ -2228,7 +2228,7 @@ index f43bf280999ff3860cc702def50cc62b131eb1bd..66d9e99a351f5fc6cf58be3bee4397d9 } diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index b22fe825a8556a9ec6cb645b67a4335a6cb7f54e..173f4f3b046bb2566e33b5dc93c3e6e459410a43 100644 +index 25b75576d34e7d63222a500f21783c34f74ef7bc..82058eca78cde75755d1d657a834dc83abd4531e 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -169,6 +169,7 @@ import org.bukkit.plugin.PluginManager; @@ -2988,7 +2988,7 @@ index da8c5d45f50091946309afa4130f410e40c69a50..65d475803716ea30453ec2397403581d return slot != EquipmentSlot.HEAD && slot != EquipmentSlot.MAINHAND && slot != EquipmentSlot.OFFHAND ? SlotAccess.forEquipmentSlot(entity, slot, (itemstack) -> { return itemstack.isEmpty() || entity.getEquipmentSlotForItem(itemstack) == slot; diff --git a/src/main/java/net/minecraft/world/entity/Mob.java b/src/main/java/net/minecraft/world/entity/Mob.java -index a978b017a86da7f9bba80e88982c1c06acf03086..81367ccb4d804f3776645678959a9a8a085d2cea 100644 +index 6d88b2888d2028cb88e34dce3d7963dd818b58d7..9f50cd428bec118bf6317d90c66c0eabd5c83316 100644 --- a/src/main/java/net/minecraft/world/entity/Mob.java +++ b/src/main/java/net/minecraft/world/entity/Mob.java @@ -145,6 +145,7 @@ public abstract class Mob extends LivingEntity implements EquipmentUser, Leashab @@ -3010,7 +3010,7 @@ index a978b017a86da7f9bba80e88982c1c06acf03086..81367ccb4d804f3776645678959a9a8a this.jumpControl = new JumpControl(this); this.bodyRotationControl = this.createBodyControl(); this.navigation = this.createNavigation(world); -@@ -336,6 +337,7 @@ public abstract class Mob extends LivingEntity implements EquipmentUser, Leashab +@@ -334,6 +335,7 @@ public abstract class Mob extends LivingEntity implements EquipmentUser, Leashab entityliving = null; } } @@ -3018,7 +3018,7 @@ index a978b017a86da7f9bba80e88982c1c06acf03086..81367ccb4d804f3776645678959a9a8a this.target = entityliving; return true; // CraftBukkit end -@@ -375,8 +377,29 @@ public abstract class Mob extends LivingEntity implements EquipmentUser, Leashab +@@ -373,8 +375,29 @@ public abstract class Mob extends LivingEntity implements EquipmentUser, Leashab this.resetAmbientSoundTime(); this.playAmbientSound(); } @@ -3048,7 +3048,7 @@ index a978b017a86da7f9bba80e88982c1c06acf03086..81367ccb4d804f3776645678959a9a8a @Override protected void playHurtSound(DamageSource damageSource) { this.resetAmbientSoundTime(); -@@ -551,6 +574,7 @@ public abstract class Mob extends LivingEntity implements EquipmentUser, Leashab +@@ -549,6 +572,7 @@ public abstract class Mob extends LivingEntity implements EquipmentUser, Leashab } nbt.putBoolean("Bukkit.Aware", this.aware); // CraftBukkit @@ -3056,7 +3056,7 @@ index a978b017a86da7f9bba80e88982c1c06acf03086..81367ccb4d804f3776645678959a9a8a } @Override -@@ -628,6 +652,11 @@ public abstract class Mob extends LivingEntity implements EquipmentUser, Leashab +@@ -626,6 +650,11 @@ public abstract class Mob extends LivingEntity implements EquipmentUser, Leashab this.aware = nbt.getBoolean("Bukkit.Aware"); } // CraftBukkit end @@ -3068,7 +3068,7 @@ index a978b017a86da7f9bba80e88982c1c06acf03086..81367ccb4d804f3776645678959a9a8a } @Override -@@ -678,7 +707,7 @@ public abstract class Mob extends LivingEntity implements EquipmentUser, Leashab +@@ -676,7 +705,7 @@ public abstract class Mob extends LivingEntity implements EquipmentUser, Leashab @Override public void aiStep() { super.aiStep(); @@ -3077,7 +3077,7 @@ index a978b017a86da7f9bba80e88982c1c06acf03086..81367ccb4d804f3776645678959a9a8a Vec3i baseblockposition = this.getPickupReach(); List list = this.level().getEntitiesOfClass(ItemEntity.class, this.getBoundingBox().inflate((double) baseblockposition.getX(), (double) baseblockposition.getY(), (double) baseblockposition.getZ())); Iterator iterator = list.iterator(); -@@ -1385,7 +1414,7 @@ public abstract class Mob extends LivingEntity implements EquipmentUser, Leashab +@@ -1383,7 +1412,7 @@ public abstract class Mob extends LivingEntity implements EquipmentUser, Leashab attributemodifiable.addPermanentModifier(new AttributeModifier(Mob.RANDOM_SPAWN_BONUS_ID, randomsource.triangle(0.0D, 0.11485000000000001D), AttributeModifier.Operation.ADD_MULTIPLIED_BASE)); } @@ -3086,7 +3086,7 @@ index a978b017a86da7f9bba80e88982c1c06acf03086..81367ccb4d804f3776645678959a9a8a return entityData; } -@@ -1486,7 +1515,7 @@ public abstract class Mob extends LivingEntity implements EquipmentUser, Leashab +@@ -1484,7 +1513,7 @@ public abstract class Mob extends LivingEntity implements EquipmentUser, Leashab protected void onOffspringSpawnedFromEgg(Player player, Mob child) {} protected InteractionResult mobInteract(Player player, InteractionHand hand) { @@ -3095,7 +3095,7 @@ index a978b017a86da7f9bba80e88982c1c06acf03086..81367ccb4d804f3776645678959a9a8a } public boolean isWithinRestriction() { -@@ -1725,6 +1754,7 @@ public abstract class Mob extends LivingEntity implements EquipmentUser, Leashab +@@ -1723,6 +1752,7 @@ public abstract class Mob extends LivingEntity implements EquipmentUser, Leashab this.playAttackSound(); } @@ -3103,7 +3103,7 @@ index a978b017a86da7f9bba80e88982c1c06acf03086..81367ccb4d804f3776645678959a9a8a return flag; } -@@ -1736,28 +1766,8 @@ public abstract class Mob extends LivingEntity implements EquipmentUser, Leashab +@@ -1734,28 +1764,8 @@ public abstract class Mob extends LivingEntity implements EquipmentUser, Leashab // Gale end - JettPack - optimize sun burn tick - cache eye blockpos public boolean isSunBurnTick() { @@ -3134,7 +3134,7 @@ index a978b017a86da7f9bba80e88982c1c06acf03086..81367ccb4d804f3776645678959a9a8a } @Override -@@ -1800,4 +1810,56 @@ public abstract class Mob extends LivingEntity implements EquipmentUser, Leashab +@@ -1798,4 +1808,56 @@ public abstract class Mob extends LivingEntity implements EquipmentUser, Leashab return itemmonsteregg == null ? null : new ItemStack(itemmonsteregg); } @@ -6354,7 +6354,7 @@ index 4bfa947531c4a67989e18032754dabf4c69e989c..55d83c57d76e73d73dca1400f4c0c186 this.turtle.setSpeed(Mth.lerp(0.125F, this.turtle.getSpeed(), f1)); this.turtle.setDeltaMovement(this.turtle.getDeltaMovement().add(0.0D, (double) this.turtle.getSpeed() * d1 * 0.1D, 0.0D)); diff --git a/src/main/java/net/minecraft/world/entity/animal/Wolf.java b/src/main/java/net/minecraft/world/entity/animal/Wolf.java -index 31d7beca9797ab1a26792c3e30171a751c3846b1..3d032d3f53cc3281bad173f7f9d139101ef6beaa 100644 +index 22024d79b566ad5d388ceb644605ada3123ca608..ba6036633c1977b7f41b3bd0dd31370924b4bf35 100644 --- a/src/main/java/net/minecraft/world/entity/animal/Wolf.java +++ b/src/main/java/net/minecraft/world/entity/animal/Wolf.java @@ -107,6 +107,37 @@ public class Wolf extends TamableAnimal implements NeutralMob, VariantHolder entitytypes, Level world) { super(EntityType.ENDER_DRAGON, world); -@@ -129,6 +130,37 @@ public class EnderDragon extends Mob implements Enemy { +@@ -130,6 +131,37 @@ public class EnderDragon extends Mob implements Enemy { this.noCulling = true; this.phaseManager = new EnderDragonPhaseManager(this); this.explosionSource = new Explosion(world, this, null, null, Double.NaN, Double.NaN, Double.NaN, Float.NaN, true, Explosion.BlockInteraction.DESTROY, ParticleTypes.EXPLOSION, ParticleTypes.EXPLOSION_EMITTER, SoundEvents.GENERIC_EXPLODE); // CraftBukkit @@ -7801,7 +7801,7 @@ index 4d2fbade3a01ca26ff107f1323ae23db6dad8ef8..d17b67b8317fd9abcaadad5487abbcc8 } public void setDragonFight(EndDragonFight fight) { -@@ -143,6 +175,27 @@ public class EnderDragon extends Mob implements Enemy { +@@ -144,6 +176,27 @@ public class EnderDragon extends Mob implements Enemy { return this.fightOrigin; } @@ -7829,7 +7829,7 @@ index 4d2fbade3a01ca26ff107f1323ae23db6dad8ef8..d17b67b8317fd9abcaadad5487abbcc8 public static AttributeSupplier.Builder createAttributes() { return Mob.createMobAttributes().add(Attributes.MAX_HEALTH, 200.0D); } -@@ -204,6 +257,37 @@ public class EnderDragon extends Mob implements Enemy { +@@ -205,6 +258,37 @@ public class EnderDragon extends Mob implements Enemy { @Override public void aiStep() { @@ -7867,7 +7867,7 @@ index 4d2fbade3a01ca26ff107f1323ae23db6dad8ef8..d17b67b8317fd9abcaadad5487abbcc8 this.processFlappingMovement(); if (this.level().isClientSide) { this.setHealth(this.getHealth()); -@@ -230,6 +314,8 @@ public class EnderDragon extends Mob implements Enemy { +@@ -231,6 +315,8 @@ public class EnderDragon extends Mob implements Enemy { float f; if (this.isDeadOrDying()) { @@ -7876,7 +7876,7 @@ index 4d2fbade3a01ca26ff107f1323ae23db6dad8ef8..d17b67b8317fd9abcaadad5487abbcc8 float f1 = (this.random.nextFloat() - 0.5F) * 8.0F; f = (this.random.nextFloat() - 0.5F) * 4.0F; -@@ -242,9 +328,9 @@ public class EnderDragon extends Mob implements Enemy { +@@ -243,9 +329,9 @@ public class EnderDragon extends Mob implements Enemy { f = 0.2F / ((float) vec3d.horizontalDistance() * 10.0F + 1.0F); f *= (float) Math.pow(2.0D, vec3d.y); @@ -7888,7 +7888,7 @@ index 4d2fbade3a01ca26ff107f1323ae23db6dad8ef8..d17b67b8317fd9abcaadad5487abbcc8 this.flapTime += f * 0.5F; } else { this.flapTime += f; -@@ -278,7 +364,7 @@ public class EnderDragon extends Mob implements Enemy { +@@ -279,7 +365,7 @@ public class EnderDragon extends Mob implements Enemy { } this.phaseManager.getCurrentPhase().doClientTick(); @@ -7897,7 +7897,7 @@ index 4d2fbade3a01ca26ff107f1323ae23db6dad8ef8..d17b67b8317fd9abcaadad5487abbcc8 DragonPhaseInstance idragoncontroller = this.phaseManager.getCurrentPhase(); idragoncontroller.doServerTick(); -@@ -352,7 +438,7 @@ public class EnderDragon extends Mob implements Enemy { +@@ -353,7 +439,7 @@ public class EnderDragon extends Mob implements Enemy { if (world1 instanceof ServerLevel) { ServerLevel worldserver1 = (ServerLevel) world1; @@ -7906,7 +7906,7 @@ index 4d2fbade3a01ca26ff107f1323ae23db6dad8ef8..d17b67b8317fd9abcaadad5487abbcc8 this.knockBack(worldserver1, worldserver1.getEntities((Entity) this, this.wing1.getBoundingBox().inflate(4.0D, 2.0D, 4.0D).move(0.0D, -2.0D, 0.0D), EntitySelector.NO_CREATIVE_OR_SPECTATOR)); this.knockBack(worldserver1, worldserver1.getEntities((Entity) this, this.wing2.getBoundingBox().inflate(4.0D, 2.0D, 4.0D).move(0.0D, -2.0D, 0.0D), EntitySelector.NO_CREATIVE_OR_SPECTATOR)); this.hurt(worldserver1.getEntities((Entity) this, this.head.getBoundingBox().inflate(1.0D), EntitySelector.NO_CREATIVE_OR_SPECTATOR)); -@@ -397,7 +483,7 @@ public class EnderDragon extends Mob implements Enemy { +@@ -398,7 +484,7 @@ public class EnderDragon extends Mob implements Enemy { } if (!this.level().isClientSide) { @@ -7915,7 +7915,7 @@ index 4d2fbade3a01ca26ff107f1323ae23db6dad8ef8..d17b67b8317fd9abcaadad5487abbcc8 if (this.dragonFight != null) { this.dragonFight.updateDragon(this); } -@@ -539,7 +625,7 @@ public class EnderDragon extends Mob implements Enemy { +@@ -540,7 +626,7 @@ public class EnderDragon extends Mob implements Enemy { BlockState iblockdata = this.level().getBlockState(blockposition); if (!iblockdata.isAir() && !iblockdata.is(BlockTags.DRAGON_TRANSPARENT)) { @@ -7924,7 +7924,7 @@ index 4d2fbade3a01ca26ff107f1323ae23db6dad8ef8..d17b67b8317fd9abcaadad5487abbcc8 // CraftBukkit start - Add blocks to list rather than destroying them // flag1 = this.level().removeBlock(blockposition, false) || flag1; flag1 = true; -@@ -683,7 +769,7 @@ public class EnderDragon extends Mob implements Enemy { +@@ -682,7 +768,7 @@ public class EnderDragon extends Mob implements Enemy { boolean flag = this.level().getGameRules().getBoolean(GameRules.RULE_DOMOBLOOT); short short0 = 500; @@ -7933,7 +7933,7 @@ index 4d2fbade3a01ca26ff107f1323ae23db6dad8ef8..d17b67b8317fd9abcaadad5487abbcc8 short0 = 12000; } -@@ -1119,6 +1205,7 @@ public class EnderDragon extends Mob implements Enemy { +@@ -1118,6 +1204,7 @@ public class EnderDragon extends Mob implements Enemy { @Override protected boolean canRide(Entity entity) { @@ -7941,7 +7941,7 @@ index 4d2fbade3a01ca26ff107f1323ae23db6dad8ef8..d17b67b8317fd9abcaadad5487abbcc8 return false; } -@@ -1145,6 +1232,6 @@ public class EnderDragon extends Mob implements Enemy { +@@ -1144,6 +1231,6 @@ public class EnderDragon extends Mob implements Enemy { @Override protected float sanitizeScale(float scale) { @@ -9908,10 +9908,10 @@ index d85a1587a11e735b97107c53ac540cdbe2923ed0..e749050be1e2e7b0e5babb86bbcf88db @Override diff --git a/src/main/java/net/minecraft/world/entity/monster/Monster.java b/src/main/java/net/minecraft/world/entity/monster/Monster.java -index 759839e912c54598b257ad738481364940f88a18..e60e6b3e5ae5a468cfe649ed2222412f3bc8b268 100644 +index e7bfce0534c7ef3a1480a1082ae8514caf78778b..6511b8c737a57fbc72122dd04e2b544987a49b92 100644 --- a/src/main/java/net/minecraft/world/entity/monster/Monster.java +++ b/src/main/java/net/minecraft/world/entity/monster/Monster.java -@@ -88,6 +88,14 @@ public abstract class Monster extends PathfinderMob implements Enemy { +@@ -87,6 +87,14 @@ public abstract class Monster extends PathfinderMob implements Enemy { } public static boolean isDarkEnoughToSpawn(ServerLevelAccessor world, BlockPos pos, RandomSource random) { @@ -14451,7 +14451,7 @@ index 141b748abe80402731cdaf14a3d36aa7cef4f4bd..d5d2a6467b48bcf8e5322dd5938f6e4f if (range < 0.0 || d < range * range) { return true; diff --git a/src/main/java/net/minecraft/world/level/Explosion.java b/src/main/java/net/minecraft/world/level/Explosion.java -index d6e43a9b061a45c8e785ab93bafc8a9721fca7d0..8c79bbd7dde436915f1aeedef1b71379674c8e25 100644 +index 0c9c75e3c094e22aad926977545d2ae7075e33ad..dbebbc1d611728dbcb42a94f366969913a077cb4 100644 --- a/src/main/java/net/minecraft/world/level/Explosion.java +++ b/src/main/java/net/minecraft/world/level/Explosion.java @@ -340,7 +340,7 @@ public class Explosion { @@ -16519,7 +16519,7 @@ index 205e223c356634bd6bc6bd58c6f0b7fda61a6f5f..bea05cb928d540a2f19b51bb7352d032 } diff --git a/src/main/java/net/minecraft/world/level/block/state/BlockBehaviour.java b/src/main/java/net/minecraft/world/level/block/state/BlockBehaviour.java -index 0f289d8f9bda2fb2ca2cd2dfd667a975529b3e4c..ef2a3ed8e95de4cbbe85803f0146ab3901b26947 100644 +index ded6d148110fe3fbb6272ce44582a28472dd49a6..80d68b91ea4e4eb97e31d1df0c430740fb56bd74 100644 --- a/src/main/java/net/minecraft/world/level/block/state/BlockBehaviour.java +++ b/src/main/java/net/minecraft/world/level/block/state/BlockBehaviour.java @@ -85,7 +85,7 @@ public abstract class BlockBehaviour implements FeatureElement { @@ -16975,7 +16975,7 @@ index 9d93130f23addb18b97d7f5ec013faef17a74529..29d2fb87a65778926aea2cfc7a5b486c + // Purpur end - OfflinePlayer API } diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index b77455f84acc4b17087b2f973bf9c26cd62fb117..4878f26e9daf98858e45e14abb37b27b6f3f9c0a 100644 +index b653eefc2b3bf1f2eea963b2944b7344ddf5a38c..3786ee6f97fb857649b31139152a77c2ec26494f 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java @@ -414,6 +414,20 @@ public final class CraftServer implements Server { @@ -16999,7 +16999,7 @@ index b77455f84acc4b17087b2f973bf9c26cd62fb117..4878f26e9daf98858e45e14abb37b27b CraftRegistry.setMinecraftRegistry(console.registryAccess()); -@@ -1064,6 +1078,7 @@ public final class CraftServer implements Server { +@@ -1073,6 +1087,7 @@ public final class CraftServer implements Server { org.spigotmc.SpigotConfig.init((File) this.console.options.valueOf("spigot-settings")); // Spigot this.console.paperConfigurations.reloadConfigs(this.console); this.console.galeConfigurations.reloadConfigs(this.console); // Gale - Gale configuration @@ -17007,7 +17007,7 @@ index b77455f84acc4b17087b2f973bf9c26cd62fb117..4878f26e9daf98858e45e14abb37b27b for (ServerLevel world : this.console.getAllLevels()) { // world.serverLevelData.setDifficulty(config.difficulty); // Paper - per level difficulty world.setSpawnSettings(world.serverLevelData.getDifficulty() != Difficulty.PEACEFUL && config.spawnMonsters, config.spawnAnimals); // Paper - per level difficulty (from MinecraftServer#setDifficulty(ServerLevel, Difficulty, boolean)) -@@ -1079,6 +1094,7 @@ public final class CraftServer implements Server { +@@ -1088,6 +1103,7 @@ public final class CraftServer implements Server { } } world.spigotConfig.init(); // Spigot @@ -17015,7 +17015,7 @@ index b77455f84acc4b17087b2f973bf9c26cd62fb117..4878f26e9daf98858e45e14abb37b27b } Plugin[] pluginClone = pluginManager.getPlugins().clone(); // Paper -@@ -1095,6 +1111,7 @@ public final class CraftServer implements Server { +@@ -1104,6 +1120,7 @@ public final class CraftServer implements Server { this.reloadData(); org.spigotmc.SpigotConfig.registerCommands(); // Spigot io.papermc.paper.command.PaperCommands.registerCommands(this.console); // Paper @@ -17023,7 +17023,7 @@ index b77455f84acc4b17087b2f973bf9c26cd62fb117..4878f26e9daf98858e45e14abb37b27b this.overrideAllCommandBlockCommands = this.commandsConfiguration.getStringList("command-block-overrides").contains("*"); this.ignoreVanillaPermissions = this.commandsConfiguration.getBoolean("ignore-vanilla-permissions"); -@@ -1604,6 +1621,55 @@ public final class CraftServer implements Server { +@@ -1613,6 +1630,55 @@ public final class CraftServer implements Server { return true; } @@ -17079,7 +17079,7 @@ index b77455f84acc4b17087b2f973bf9c26cd62fb117..4878f26e9daf98858e45e14abb37b27b @Override public List getRecipesFor(ItemStack result) { Preconditions.checkArgument(result != null, "ItemStack cannot be null"); -@@ -2995,6 +3061,18 @@ public final class CraftServer implements Server { +@@ -3004,6 +3070,18 @@ public final class CraftServer implements Server { } // Gale end - Gale configuration - API @@ -17098,7 +17098,7 @@ index b77455f84acc4b17087b2f973bf9c26cd62fb117..4878f26e9daf98858e45e14abb37b27b @Override public void restart() { org.spigotmc.RestartCommand.restart(); -@@ -3277,4 +3355,15 @@ public final class CraftServer implements Server { +@@ -3286,4 +3364,15 @@ public final class CraftServer implements Server { } // Gale end - YAPFA - last tick time - API @@ -17168,7 +17168,7 @@ index 1f354c6c09bc49e57a69db7cfa4f2a331dd02bdb..b251b057ec6e0bb90d140be8f4d24a6c public Collection getStructures(int x, int z) { return this.getStructures(x, z, struct -> true); diff --git a/src/main/java/org/bukkit/craftbukkit/Main.java b/src/main/java/org/bukkit/craftbukkit/Main.java -index 909ccbc3c57ef384284a40761da291146bd7f3de..d26f85511bb091a54d2059ef8f59f5df3093ccde 100644 +index fa01567c64dc929951931807adb88165e49c83bc..68eb9935f09ad38157d50c07c1539d51138e2f3d 100644 --- a/src/main/java/org/bukkit/craftbukkit/Main.java +++ b/src/main/java/org/bukkit/craftbukkit/Main.java @@ -197,6 +197,14 @@ public class Main { @@ -17696,10 +17696,10 @@ index 4ce2373ff71c3c1b8951646e057587a3ab09e145..4f7f6cf6ca24406570d2d29dc63dc894 + // Purpur end } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftVillager.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftVillager.java -index 6c15d40979fd3e3d246a447c432b321fbf29ada3..6ace76a829c88e2e747dbbcce0a6582c615fc56d 100644 +index bd2987fa1fb194a581567134ed980e8fc043f435..bdd345595ed71a8018349e184afe8582a24f3622 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftVillager.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftVillager.java -@@ -252,4 +252,11 @@ public class CraftVillager extends CraftAbstractVillager implements Villager { +@@ -374,4 +374,11 @@ public class CraftVillager extends CraftAbstractVillager implements Villager { getHandle().getGossips().gossips.clear(); } // Paper end @@ -17755,10 +17755,10 @@ index 86574da257731de7646a712ed73384955fe35aa3..e223234dd64b0e41441c3b9f649f0b64 + // Purpur end } diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -index 9c7cd9387f90d061aec76f7f0451a1da8b42ea3d..995ea2b3ddcab384a0de5a344f8509ed47a08dc6 100644 +index 0ab53d46f0b8f3f3791dd01766738522c86932e8..98891112f992978c97b21ab0d7d54228819b7536 100644 --- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java +++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -@@ -594,6 +594,15 @@ public class CraftEventFactory { +@@ -597,6 +597,15 @@ public class CraftEventFactory { // Paper end craftServer.getPluginManager().callEvent(event); @@ -17774,7 +17774,7 @@ index 9c7cd9387f90d061aec76f7f0451a1da8b42ea3d..995ea2b3ddcab384a0de5a344f8509ed return event; } -@@ -1124,7 +1133,7 @@ public class CraftEventFactory { +@@ -1127,7 +1136,7 @@ public class CraftEventFactory { return CraftEventFactory.callEntityDamageEvent(source.getDirectBlock(), source.getDirectBlockState(), entity, DamageCause.LAVA, bukkitDamageSource, modifiers, modifierFunctions, cancelled); } else if (source.getDirectBlock() != null) { DamageCause cause; @@ -17783,7 +17783,7 @@ index 9c7cd9387f90d061aec76f7f0451a1da8b42ea3d..995ea2b3ddcab384a0de5a344f8509ed cause = DamageCause.CONTACT; } else if (source.is(DamageTypes.HOT_FLOOR)) { cause = DamageCause.HOT_FLOOR; -@@ -1184,6 +1193,7 @@ public class CraftEventFactory { +@@ -1187,6 +1196,7 @@ public class CraftEventFactory { EntityDamageEvent event; if (damager != null) { event = new EntityDamageByEntityEvent(damager.getBukkitEntity(), damagee.getBukkitEntity(), cause, bukkitDamageSource, modifiers, modifierFunctions, critical); diff --git a/patches/server/0011-Fix-Pufferfish-and-Purpur-patches.patch b/patches/server/0011-Fix-Pufferfish-and-Purpur-patches.patch index c230ba92..9bffa124 100644 --- a/patches/server/0011-Fix-Pufferfish-and-Purpur-patches.patch +++ b/patches/server/0011-Fix-Pufferfish-and-Purpur-patches.patch @@ -27,7 +27,7 @@ index e94224ed280247ee69dfdff8dc960f2b8729be33..5b9725a9a81c0850dc2809c150529e5f for (Component component : formatProviders(spigotPlugins, sender)) { // Purpur diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 7de28d562fe93fcefd186b0d23c5776ba6be277b..cff5d0f3193b62f7b7f983c4ac33f98cfedc754c 100644 +index 51d67ded0c27825a6958c5622a777aeb214849c4..4aca88ae4efa4807c2b984dddd0922b36583e379 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -300,7 +300,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop list = this.level().getEntitiesOfClass(ItemEntity.class, this.getBoundingBox().inflate((double) baseblockposition.getX(), (double) baseblockposition.getY(), (double) baseblockposition.getZ())); Iterator iterator = list.iterator(); -@@ -1760,11 +1760,6 @@ public abstract class Mob extends LivingEntity implements EquipmentUser, Leashab +@@ -1758,11 +1758,6 @@ public abstract class Mob extends LivingEntity implements EquipmentUser, Leashab protected void playAttackSound() {} diff --git a/patches/server/0014-Remove-Timings.patch b/patches/server/0014-Remove-Timings.patch index 2b47800d..94978246 100644 --- a/patches/server/0014-Remove-Timings.patch +++ b/patches/server/0014-Remove-Timings.patch @@ -905,7 +905,7 @@ index e2c24813f59c2fd075c740ac1842a38f20ed8554..1f7f68aad97ee73763c042837f239bdc } catch (Exception exception) { if (exception instanceof ReportedException) { diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 08c8aae84042619a65c33db9d000e4088319b54e..aa40039353b9b825370fb01d1da31c157590b046 100644 +index 5e591de2fae3b18aa7bd859ccc95f0c9fdee3c4d..c4c8111bd85e6a8acbffea093d209710cb63b2f8 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -187,8 +187,6 @@ import org.bukkit.craftbukkit.CraftRegistry; @@ -1043,7 +1043,7 @@ index 08c8aae84042619a65c33db9d000e4088319b54e..aa40039353b9b825370fb01d1da31c15 iterator = this.playerList.getPlayers().iterator(); diff --git a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java -index e9d6f0cdb5b1f15e1536844b6a8637f3e7d21c6f..020a0f033f64875bb04d1dead332d471d480935f 100644 +index 5d5659a4514402edfd474e176534d363c56e0496..eef6f0533310a4d1f6e34250e0030e41bec2325a 100644 --- a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java +++ b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java @@ -69,7 +69,6 @@ import org.apache.logging.log4j.Level; @@ -1096,7 +1096,7 @@ index e9d6f0cdb5b1f15e1536844b6a8637f3e7d21c6f..020a0f033f64875bb04d1dead332d471 // Paper start if (waitableArray[0] != null) { diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java -index 41648e29c8f90d1a0a0ebc54be03890383ff15f1..d31a2c3f1ff62f60a058148760fb6dbf92e46a76 100644 +index 84d5891ed67e9123f9b8f029fb14f944e34c3332..10479df72c815e235f5eef9eeae3bdd32f1ef665 100644 --- a/src/main/java/net/minecraft/server/level/ChunkMap.java +++ b/src/main/java/net/minecraft/server/level/ChunkMap.java @@ -1,6 +1,5 @@ @@ -1392,7 +1392,7 @@ index ac323393d7fe0b77bafb0728b7eb545930136e6e..b97f3ec10552941892b2b6edd53a873e } diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index e3cc24c2c7eb9cc8928fe300137eb9baac70e91f..d34e31c6f7591bfdd34a6f2fe9376a515f20c3b7 100644 +index 43a727475a787cd1ddc6345f366f1b2f477fcfde..adb9956f3350f1e58cbe5d26602412c0043e0d62 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java @@ -1,6 +1,5 @@ @@ -1402,7 +1402,7 @@ index e3cc24c2c7eb9cc8928fe300137eb9baac70e91f..d34e31c6f7591bfdd34a6f2fe9376a51 import com.google.common.collect.Lists; import com.google.common.collect.Maps; import com.google.common.collect.Sets; -@@ -1289,7 +1288,6 @@ public abstract class PlayerList { +@@ -1290,7 +1289,6 @@ public abstract class PlayerList { public void saveAll(int interval) { io.papermc.paper.util.MCUtil.ensureMain("Save Players" , () -> { // Paper - Ensure main @@ -1410,7 +1410,7 @@ index e3cc24c2c7eb9cc8928fe300137eb9baac70e91f..d34e31c6f7591bfdd34a6f2fe9376a51 int numSaved = 0; long now = MinecraftServer.currentTick; for (int i = 0; i < this.players.size(); ++i) { -@@ -1300,7 +1298,6 @@ public abstract class PlayerList { +@@ -1301,7 +1299,6 @@ public abstract class PlayerList { } // Paper end - Incremental chunk and player saving } @@ -1706,7 +1706,7 @@ index 36540053590c30a902b9986dcf2e74375157822d..fb0ffd302ec87516cd7f28b8b4c6a8e9 @Override diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index 4878f26e9daf98858e45e14abb37b27b6f3f9c0a..6cd292c92486a807ab651f784171793d763e43d4 100644 +index 3786ee6f97fb857649b31139152a77c2ec26494f..5d10f4f9e36c0ef448110788ff54df70256c065c 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java @@ -477,7 +477,6 @@ public final class CraftServer implements Server { @@ -1717,7 +1717,7 @@ index 4878f26e9daf98858e45e14abb37b27b6f3f9c0a..6cd292c92486a807ab651f784171793d this.overrideSpawnLimits(); console.autosavePeriod = this.configuration.getInt("ticks-per.autosave"); this.warningState = WarningState.value(this.configuration.getString("settings.deprecated-verbose")); -@@ -1024,10 +1023,8 @@ public final class CraftServer implements Server { +@@ -1033,10 +1032,8 @@ public final class CraftServer implements Server { commands.performCommand(results, commandLine, commandLine, true); } catch (CommandException ex) { this.pluginManager.callEvent(new com.destroystokyo.paper.event.server.ServerExceptionEvent(new com.destroystokyo.paper.exception.ServerCommandException(ex, target, sender, args))); // Paper @@ -1729,7 +1729,7 @@ index 4878f26e9daf98858e45e14abb37b27b6f3f9c0a..6cd292c92486a807ab651f784171793d this.pluginManager.callEvent(new com.destroystokyo.paper.event.server.ServerExceptionEvent(new com.destroystokyo.paper.exception.ServerCommandException(ex, target, sender, args))); // Paper throw new CommandException(msg, ex); diff --git a/src/main/java/org/bukkit/craftbukkit/scheduler/CraftScheduler.java b/src/main/java/org/bukkit/craftbukkit/scheduler/CraftScheduler.java -index 006adb2adb27c497ede69f87e78bc3e34499cbf8..4ee1c3461d21feab3a54e76a7c2ab80b6ea2ab38 100644 +index fba0558f46516f65c678635359f305f865336d3a..e1ff5511d4694c13249443da0f127456d53e5543 100644 --- a/src/main/java/org/bukkit/craftbukkit/scheduler/CraftScheduler.java +++ b/src/main/java/org/bukkit/craftbukkit/scheduler/CraftScheduler.java @@ -1,6 +1,5 @@ @@ -1739,7 +1739,7 @@ index 006adb2adb27c497ede69f87e78bc3e34499cbf8..4ee1c3461d21feab3a54e76a7c2ab80b import com.google.common.base.Preconditions; import com.google.common.util.concurrent.ThreadFactoryBuilder; import java.util.ArrayList; -@@ -304,7 +303,7 @@ public class CraftScheduler implements BukkitScheduler { +@@ -297,7 +296,7 @@ public class CraftScheduler implements BukkitScheduler { } return false; } @@ -1748,7 +1748,7 @@ index 006adb2adb27c497ede69f87e78bc3e34499cbf8..4ee1c3461d21feab3a54e76a7c2ab80b this.handle(task, 0L); for (CraftTask taskPending = this.head.getNext(); taskPending != null; taskPending = taskPending.getNext()) { if (taskPending == task) { -@@ -344,7 +343,7 @@ public class CraftScheduler implements BukkitScheduler { +@@ -337,7 +336,7 @@ public class CraftScheduler implements BukkitScheduler { } } } @@ -1757,7 +1757,7 @@ index 006adb2adb27c497ede69f87e78bc3e34499cbf8..4ee1c3461d21feab3a54e76a7c2ab80b this.handle(task, 0L); for (CraftTask taskPending = this.head.getNext(); taskPending != null; taskPending = taskPending.getNext()) { if (taskPending == task) { -@@ -515,10 +514,8 @@ public class CraftScheduler implements BukkitScheduler { +@@ -504,10 +503,8 @@ public class CraftScheduler implements BukkitScheduler { this.runners.remove(task.getTaskId()); } } @@ -1768,7 +1768,7 @@ index 006adb2adb27c497ede69f87e78bc3e34499cbf8..4ee1c3461d21feab3a54e76a7c2ab80b //this.debugHead = this.debugHead.getNextHead(currentTick); // Paper } -@@ -561,7 +558,6 @@ public class CraftScheduler implements BukkitScheduler { +@@ -550,7 +547,6 @@ public class CraftScheduler implements BukkitScheduler { } void parsePending() { // Paper @@ -1776,7 +1776,7 @@ index 006adb2adb27c497ede69f87e78bc3e34499cbf8..4ee1c3461d21feab3a54e76a7c2ab80b CraftTask head = this.head; CraftTask task = head.getNext(); CraftTask lastTask = head; -@@ -580,7 +576,6 @@ public class CraftScheduler implements BukkitScheduler { +@@ -569,7 +565,6 @@ public class CraftScheduler implements BukkitScheduler { task.setNext(null); } this.head = lastTask; @@ -1785,7 +1785,7 @@ index 006adb2adb27c497ede69f87e78bc3e34499cbf8..4ee1c3461d21feab3a54e76a7c2ab80b private boolean isReady(final int currentTick) { diff --git a/src/main/java/org/bukkit/craftbukkit/scheduler/CraftTask.java b/src/main/java/org/bukkit/craftbukkit/scheduler/CraftTask.java -index ea26d9464644b5217879b8c21b4da28e57708dcb..cee5c35ac2ba48d092f4227119c915e641a498c6 100644 +index ba369f3dcfdf498e971dc4405d39657a9b6e97cc..bb6b5c0f331096fe2d1d08b2b8268662fd675e07 100644 --- a/src/main/java/org/bukkit/craftbukkit/scheduler/CraftTask.java +++ b/src/main/java/org/bukkit/craftbukkit/scheduler/CraftTask.java @@ -2,15 +2,10 @@ package org.bukkit.craftbukkit.scheduler; @@ -1812,20 +1812,7 @@ index ea26d9464644b5217879b8c21b4da28e57708dcb..cee5c35ac2ba48d092f4227119c915e6 private final Plugin plugin; private final int id; private final long createdAt = System.nanoTime(); -@@ -50,12 +44,10 @@ public class CraftTask implements BukkitTask, Runnable { // Spigot - this.rTask = (Runnable) task; - this.cTask = null; - this.plugin = CraftScheduler.MINECRAFT; -- this.taskName = taskName; - this.internal = true; - this.id = id; - this.period = CraftTask.NO_REPEATING; - this.taskName = taskName; -- this.timings = MinecraftTimings.getInternalTaskName(taskName); - } - // Paper end - -@@ -76,7 +68,6 @@ public class CraftTask implements BukkitTask, Runnable { // Spigot +@@ -61,7 +55,6 @@ public class CraftTask implements BukkitTask, Runnable { // Spigot } this.id = id; this.period = period; @@ -1833,7 +1820,7 @@ index ea26d9464644b5217879b8c21b4da28e57708dcb..cee5c35ac2ba48d092f4227119c915e6 } @Override -@@ -96,13 +87,11 @@ public class CraftTask implements BukkitTask, Runnable { // Spigot +@@ -81,13 +74,11 @@ public class CraftTask implements BukkitTask, Runnable { // Spigot @Override public void run() { @@ -1869,10 +1856,10 @@ index b3e1adeb932da9b3bed16acd94e2f16da48a7c72..e9798517b9211c50a20ea5c69603aab3 } } diff --git a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java -index 150769691fd0c6abad77a4823b5f7dd667a032d1..b008e7ad153753228206ca969f86cb528676e278 100644 +index 51e30d84080c8d32138217e0e8eda181f7f737db..024dc051986ebb9d83f4bf9b020b586f6219f6b0 100644 --- a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java +++ b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java -@@ -215,9 +215,7 @@ public final class CraftMagicNumbers implements UnsafeValues { +@@ -199,9 +199,7 @@ public final class CraftMagicNumbers implements UnsafeValues { // ======================================================================== // Paper start @Override @@ -1883,7 +1870,7 @@ index 150769691fd0c6abad77a4823b5f7dd667a032d1..b008e7ad153753228206ca969f86cb52 // Paper end public static byte toLegacyData(BlockState data) { -@@ -493,7 +491,7 @@ public final class CraftMagicNumbers implements UnsafeValues { +@@ -482,7 +480,7 @@ public final class CraftMagicNumbers implements UnsafeValues { // Paper start @Override public String getTimingsServerName() { diff --git a/patches/server/0027-Slice-Smooth-Teleports.patch b/patches/server/0027-Slice-Smooth-Teleports.patch index 0904a771..51656d21 100644 --- a/patches/server/0027-Slice-Smooth-Teleports.patch +++ b/patches/server/0027-Slice-Smooth-Teleports.patch @@ -7,10 +7,10 @@ Original license: MIT Original project: https://github.com/Cryptite/Slice diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index c98389197ee11d4fb64625169f342f762287ee94..55c3e652be4d45c2c36c3b2dcef931b63270718b 100644 +index 1d0044693dafce42921af0a44175b164d7321114..d954c8e0cefe7337059bda5d5c1429a445a633d0 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java -@@ -306,6 +306,7 @@ public class ServerPlayer extends net.minecraft.world.entity.player.Player imple +@@ -307,6 +307,7 @@ public class ServerPlayer extends net.minecraft.world.entity.player.Player imple private boolean tpsBar = false; // Purpur private boolean compassBar = false; // Purpur private boolean ramBar = false; // Purpur @@ -19,7 +19,7 @@ index c98389197ee11d4fb64625169f342f762287ee94..55c3e652be4d45c2c36c3b2dcef931b6 // Paper start - rewrite chunk system private ca.spottedleaf.moonrise.patches.chunk_system.player.RegionizedPlayerChunkLoader.PlayerChunkLoaderData chunkLoader; diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index d34e31c6f7591bfdd34a6f2fe9376a515f20c3b7..442b5ccc446d0dfc69f2d2e88003a77647af78f6 100644 +index adb9956f3350f1e58cbe5d26602412c0043e0d62..b309541c4a29015ad51e05bb341462bcf247f1eb 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java @@ -900,10 +900,10 @@ public abstract class PlayerList { diff --git a/patches/server/0030-Leaves-Protocol-Core.patch b/patches/server/0030-Leaves-Protocol-Core.patch index 66bda92f..77266cab 100644 --- a/patches/server/0030-Leaves-Protocol-Core.patch +++ b/patches/server/0030-Leaves-Protocol-Core.patch @@ -51,7 +51,7 @@ index 1967c43ee3a12e63365cc40ee6565307e2fd73cf..6e376d0db5321d8e9b6e0b54617ffd17 assert isValidPath(path); diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index aa40039353b9b825370fb01d1da31c157590b046..59983594f1128b82230d8e8572438f2be8002966 100644 +index c4c8111bd85e6a8acbffea093d209710cb63b2f8..c5fa13527dc1729f7cbb15067b4edf449c2f6fb1 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -1802,6 +1802,8 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop 0 ? split[0] : "").replace(org.purpurmc.purpur.PurpurConfig.afkTabListPrefix, ""); String suffix = (split.length > 1 ? split[1] : "").replace(org.purpurmc.purpur.PurpurConfig.afkTabListSuffix, ""); if (afk) { @@ -86,7 +86,7 @@ index e099fb784d4bc0b5820778c1bbc899d718739093..7d691af2d3e1baa046dd3ab2ba70f8cf // CraftBukkit start - SPIGOT-7346: Prevent disconnected players from executing commands if (this.player.hasDisconnected()) { diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index 0d6236637b2fc27b2aa5d20fe404b6202e3fb012..79a5d3846c1e73614f4bc82447f96b7e71811cab 100644 +index cebff1c2ff7f957a588d1eee9db44fad99a0ac68..c5c0494fde702e12c320bffe21530c2155766459 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java @@ -615,6 +615,7 @@ public abstract class PlayerList { diff --git a/patches/server/0064-Mirai-Configurable-chat-message-signatures.patch b/patches/server/0064-Mirai-Configurable-chat-message-signatures.patch index 5ff861e9..c211c462 100644 --- a/patches/server/0064-Mirai-Configurable-chat-message-signatures.patch +++ b/patches/server/0064-Mirai-Configurable-chat-message-signatures.patch @@ -71,7 +71,7 @@ index 50dc68a005490415b88780397ef6c26859596dd5..162115048cffc824376e54b7f60ae071 public static record Favicon(byte[] iconBytes) { private static final String PREFIX = "data:image/png;base64,"; diff --git a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java -index 020a0f033f64875bb04d1dead332d471d480935f..f26cec20aa9f52b5dd090107fa76fcd390fc1067 100644 +index eef6f0533310a4d1f6e34250e0030e41bec2325a..5cafa643d2338b8904ad320c520205e9dc3e29cc 100644 --- a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java +++ b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java @@ -709,6 +709,7 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface @@ -117,10 +117,10 @@ index ae0d0310d50f1ada082e045a58a24a43f8079da8..eea19f895588c51bce86f20b3ec505fd if (packet == null || this.processedDisconnect) { // Spigot return; diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index 79a5d3846c1e73614f4bc82447f96b7e71811cab..e8d44e6d5293e4b616597e0d63dda1f379c91a2d 100644 +index c5c0494fde702e12c320bffe21530c2155766459..14d0a5468cb4502ed2def4e92fb70e70e929dbfe 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java -@@ -1486,7 +1486,7 @@ public abstract class PlayerList { +@@ -1487,7 +1487,7 @@ public abstract class PlayerList { // Paper end boolean flag = this.verifyChatTrusted(message); @@ -129,7 +129,7 @@ index 79a5d3846c1e73614f4bc82447f96b7e71811cab..e8d44e6d5293e4b616597e0d63dda1f3 OutgoingChatMessage outgoingchatmessage = OutgoingChatMessage.create(message); boolean flag1 = false; -@@ -1515,6 +1515,7 @@ public abstract class PlayerList { +@@ -1516,6 +1516,7 @@ public abstract class PlayerList { } public boolean verifyChatTrusted(PlayerChatMessage message) { // Paper - private -> public diff --git a/patches/server/0068-Matter-Secure-Seed.patch b/patches/server/0068-Matter-Secure-Seed.patch index d64c418a..045b4bc9 100644 --- a/patches/server/0068-Matter-Secure-Seed.patch +++ b/patches/server/0068-Matter-Secure-Seed.patch @@ -450,10 +450,10 @@ index 45e262308aebafa377a2353661acdd122933b99e..96b9e91997bba777ebe868ca5ab5e5e9 @Override diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index a3af7fa8d85bf09ae1a35e1fbc4fc9a1774aaff5..86e5a54d7b8bd66b1b8ab6391cce37f04598f7e1 100644 +index 17ad1c108dc4567c750890b39edd25ee350dc4a3..85e7442e2ff74fd7884e4e6e74c5637be729b9b8 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -@@ -1387,7 +1387,11 @@ public final class CraftServer implements Server { +@@ -1396,7 +1396,11 @@ public final class CraftServer implements Server { iregistrycustom_dimension = leveldataanddimensions.dimensions().dimensionsRegistryAccess(); } else { LevelSettings worldsettings; diff --git a/patches/server/0076-Configurable-connection-message.patch b/patches/server/0076-Configurable-connection-message.patch index 5e123c73..f7c21ef5 100644 --- a/patches/server/0076-Configurable-connection-message.patch +++ b/patches/server/0076-Configurable-connection-message.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Configurable connection message diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index e8d44e6d5293e4b616597e0d63dda1f379c91a2d..e7d5610de6bda486e512f18bf0684686ed9c08df 100644 +index 14d0a5468cb4502ed2def4e92fb70e70e929dbfe..eaf81d2fdebae94c3ba5eead84a3ebf1c09fa7ad 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java @@ -26,6 +26,7 @@ import java.util.UUID; @@ -43,7 +43,7 @@ index e8d44e6d5293e4b616597e0d63dda1f379c91a2d..e7d5610de6bda486e512f18bf0684686 this.cserver.getPluginManager().callEvent(playerQuitEvent); entityplayer.getBukkitEntity().disconnect(playerQuitEvent.getQuitMessage()); -@@ -1659,4 +1660,29 @@ public abstract class PlayerList { +@@ -1660,4 +1661,29 @@ public abstract class PlayerList { public boolean isAllowCommandsForAllPlayers() { return this.allowCommandsForAllPlayers; } diff --git a/patches/server/0077-Remove-stream-in-BlockBehaviour-cache-blockstate.patch b/patches/server/0077-Remove-stream-in-BlockBehaviour-cache-blockstate.patch index 40b2b092..ee616272 100644 --- a/patches/server/0077-Remove-stream-in-BlockBehaviour-cache-blockstate.patch +++ b/patches/server/0077-Remove-stream-in-BlockBehaviour-cache-blockstate.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Remove stream in BlockBehaviour cache blockstate diff --git a/src/main/java/net/minecraft/world/level/block/state/BlockBehaviour.java b/src/main/java/net/minecraft/world/level/block/state/BlockBehaviour.java -index ef2a3ed8e95de4cbbe85803f0146ab3901b26947..4120d015f82b6a2ff4ac2c72dfca11da1e8037cb 100644 +index 80d68b91ea4e4eb97e31d1df0c430740fb56bd74..46c410763edba2399b080ca72937a9883f295bfb 100644 --- a/src/main/java/net/minecraft/world/level/block/state/BlockBehaviour.java +++ b/src/main/java/net/minecraft/world/level/block/state/BlockBehaviour.java -@@ -1390,7 +1390,7 @@ public abstract class BlockBehaviour implements FeatureElement { +@@ -1384,7 +1384,7 @@ public abstract class BlockBehaviour implements FeatureElement { @Nullable final VoxelShape[] occlusionShapes; protected final VoxelShape collisionShape; @@ -17,7 +17,7 @@ index ef2a3ed8e95de4cbbe85803f0146ab3901b26947..4120d015f82b6a2ff4ac2c72dfca11da private final boolean[] faceSturdy; protected final boolean isCollisionShapeFullBlock; -@@ -1422,9 +1422,14 @@ public abstract class BlockBehaviour implements FeatureElement { +@@ -1416,9 +1416,14 @@ public abstract class BlockBehaviour implements FeatureElement { if (!this.collisionShape.isEmpty() && state.hasOffsetFunction()) { throw new IllegalStateException(String.format(Locale.ROOT, "%s has a collision shape and an offset type, but is not marked as dynamicShape in its properties.", BuiltInRegistries.BLOCK.getKey(block))); } else { diff --git a/patches/server/0083-Fix-MC-119417.patch b/patches/server/0083-Fix-MC-119417.patch index df877b08..fd35fa11 100644 --- a/patches/server/0083-Fix-MC-119417.patch +++ b/patches/server/0083-Fix-MC-119417.patch @@ -6,10 +6,10 @@ Subject: [PATCH] Fix-MC-119417 Related MC issue: https://bugs.mojang.com/browse/MC-119417 diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index ca5e8d86ca046a63462362330960501e82bb98ae..dc14cd61df226675d6c0d8e6d6ac387c0c07c80c 100644 +index 2f4096cb2bf93f880d01283df8d10bf996e72bb9..723f03aedc66cfc0e7d6f5b2a1c541f9055601b6 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java -@@ -2256,6 +2256,7 @@ public class ServerPlayer extends net.minecraft.world.entity.player.Player imple +@@ -2257,6 +2257,7 @@ public class ServerPlayer extends net.minecraft.world.entity.player.Player imple this.connection.send(new ClientboundGameEventPacket(ClientboundGameEventPacket.CHANGE_GAME_MODE, (float) gameMode.getId())); if (gameMode == GameType.SPECTATOR) { this.removeEntitiesOnShoulder();