From 5a6011c08c80fb2c7e0c7242bf272f8cde078cb2 Mon Sep 17 00:00:00 2001 From: Noah van der Aa Date: Thu, 24 Oct 2024 00:32:21 +0200 Subject: [PATCH] MOOOOOOOOOOOOOORE --- ...ix-force-opening-enchantment-tables.patch} | 2 +- .../0788-Add-Entity-Body-Yaw-API.patch} | 8 ++-- ...vent-sleeping-villagers-moving-towa.patch} | 2 +- .../0790-Add-EntityFertilizeEggEvent.patch} | 22 +++++------ ...ty-drop-not-updating-the-client-inv.patch} | 4 +- ...temEvent-and-EntityCompostItemEvent.patch} | 6 +-- ...ctly-handle-ArmorStand-invisibility.patch} | 2 +- ...ancement-triggers-for-entity-damage.patch} | 10 ++--- ...795-Fix-text-display-error-on-spawn.patch} | 4 +- ...nventories-returning-null-Locations.patch} | 4 +- .../0797-Add-Shearable-API.patch} | 2 +- ...Fix-SpawnEggMeta-get-setSpawnedType.patch} | 0 ...g-to-bad-recipes-in-furnace-like-ti.patch} | 10 ++--- ...ence-violations-like-they-should-be.patch} | 4 +- ...xpired-keys-from-impacting-new-join.patch} | 14 +++---- ...ts-being-fired-from-unloaded-chunks.patch} | 4 +- ...0803-Use-array-for-gamerule-storage.patch} | 37 +++++++------------ ...Fix-a-couple-of-upstream-bed-issues.patch} | 8 ++-- ...ix-demo-flag-not-enabling-demo-mode.patch} | 2 +- .../0806-Add-Mob-Experience-reward-API.patch} | 14 ++----- ...redstone-on-top-of-trap-doors-early.patch} | 4 +- ...Lazy-Initialization-for-Enum-Fields.patch} | 0 ...09-More-accurate-isInOpenWater-impl.patch} | 0 .../0810-Expand-PlayerItemMendEvent.patch} | 14 +++---- 24 files changed, 79 insertions(+), 98 deletions(-) rename patches/{unapplied/server/0792-Fix-force-opening-enchantment-tables.patch => server/0787-Fix-force-opening-enchantment-tables.patch} (94%) rename patches/{unapplied/server/0793-Add-Entity-Body-Yaw-API.patch => server/0788-Add-Entity-Body-Yaw-API.patch} (85%) rename patches/{unapplied/server/0794-Fix-MC-157464-Prevent-sleeping-villagers-moving-towa.patch => server/0789-Fix-MC-157464-Prevent-sleeping-villagers-moving-towa.patch} (93%) rename patches/{unapplied/server/0795-Add-EntityFertilizeEggEvent.patch => server/0790-Add-EntityFertilizeEggEvent.patch} (85%) rename patches/{unapplied/server/0796-Fix-HumanEntity-drop-not-updating-the-client-inv.patch => server/0791-Fix-HumanEntity-drop-not-updating-the-client-inv.patch} (90%) rename patches/{unapplied/server/0797-Add-CompostItemEvent-and-EntityCompostItemEvent.patch => server/0792-Add-CompostItemEvent-and-EntityCompostItemEvent.patch} (91%) rename patches/{unapplied/server/0798-Correctly-handle-ArmorStand-invisibility.patch => server/0793-Correctly-handle-ArmorStand-invisibility.patch} (91%) rename patches/{unapplied/server/0799-Fix-advancement-triggers-for-entity-damage.patch => server/0794-Fix-advancement-triggers-for-entity-damage.patch} (88%) rename patches/{unapplied/server/0800-Fix-text-display-error-on-spawn.patch => server/0795-Fix-text-display-error-on-spawn.patch} (85%) rename patches/{unapplied/server/0801-Fix-inventories-returning-null-Locations.patch => server/0796-Fix-inventories-returning-null-Locations.patch} (94%) rename patches/{unapplied/server/0802-Add-Shearable-API.patch => server/0797-Add-Shearable-API.patch} (98%) rename patches/{unapplied/server/0803-Fix-SpawnEggMeta-get-setSpawnedType.patch => server/0798-Fix-SpawnEggMeta-get-setSpawnedType.patch} (100%) rename patches/{unapplied/server/0804-Fix-crash-relating-to-bad-recipes-in-furnace-like-ti.patch => server/0799-Fix-crash-relating-to-bad-recipes-in-furnace-like-ti.patch} (67%) rename patches/{unapplied/server/0805-Treat-sequence-violations-like-they-should-be.patch => server/0800-Treat-sequence-violations-like-they-should-be.patch} (87%) rename patches/{unapplied/server/0806-Prevent-causing-expired-keys-from-impacting-new-join.patch => server/0801-Prevent-causing-expired-keys-from-impacting-new-join.patch} (88%) rename patches/{unapplied/server/0807-Prevent-GameEvents-being-fired-from-unloaded-chunks.patch => server/0802-Prevent-GameEvents-being-fired-from-unloaded-chunks.patch} (83%) rename patches/{unapplied/server/0808-Use-array-for-gamerule-storage.patch => server/0803-Use-array-for-gamerule-storage.patch} (60%) rename patches/{unapplied/server/0809-Fix-a-couple-of-upstream-bed-issues.patch => server/0804-Fix-a-couple-of-upstream-bed-issues.patch} (86%) rename patches/{unapplied/server/0810-Fix-demo-flag-not-enabling-demo-mode.patch => server/0805-Fix-demo-flag-not-enabling-demo-mode.patch} (91%) rename patches/{unapplied/server/0811-Add-Mob-Experience-reward-API.patch => server/0806-Add-Mob-Experience-reward-API.patch} (56%) rename patches/{unapplied/server/0812-Break-redstone-on-top-of-trap-doors-early.patch => server/0807-Break-redstone-on-top-of-trap-doors-early.patch} (93%) rename patches/{unapplied/server/0813-Avoid-Lazy-Initialization-for-Enum-Fields.patch => server/0808-Avoid-Lazy-Initialization-for-Enum-Fields.patch} (100%) rename patches/{unapplied/server/0814-More-accurate-isInOpenWater-impl.patch => server/0809-More-accurate-isInOpenWater-impl.patch} (100%) rename patches/{unapplied/server/0815-Expand-PlayerItemMendEvent.patch => server/0810-Expand-PlayerItemMendEvent.patch} (89%) diff --git a/patches/unapplied/server/0792-Fix-force-opening-enchantment-tables.patch b/patches/server/0787-Fix-force-opening-enchantment-tables.patch similarity index 94% rename from patches/unapplied/server/0792-Fix-force-opening-enchantment-tables.patch rename to patches/server/0787-Fix-force-opening-enchantment-tables.patch index 89326fc719..6ddc05bd3f 100644 --- a/patches/unapplied/server/0792-Fix-force-opening-enchantment-tables.patch +++ b/patches/server/0787-Fix-force-opening-enchantment-tables.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Fix force-opening enchantment tables diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java -index 049db909fbd8610ebb688d948f5d03c97ab23495..1ff114f792ca12bc5408cdd9ab0ad23c3158b99c 100644 +index df9d02eb1ffc3cc669e835e2c08d951283871db3..04fe27a84eb240f8e9bb0ed5b21fd60cfed619ad 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java @@ -411,7 +411,18 @@ public class CraftHumanEntity extends CraftLivingEntity implements HumanEntity { diff --git a/patches/unapplied/server/0793-Add-Entity-Body-Yaw-API.patch b/patches/server/0788-Add-Entity-Body-Yaw-API.patch similarity index 85% rename from patches/unapplied/server/0793-Add-Entity-Body-Yaw-API.patch rename to patches/server/0788-Add-Entity-Body-Yaw-API.patch index c1be71053d..bac79c9d69 100644 --- a/patches/unapplied/server/0793-Add-Entity-Body-Yaw-API.patch +++ b/patches/server/0788-Add-Entity-Body-Yaw-API.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Add Entity Body Yaw API diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java -index ac513d3162a0794f226abc80bff21c799fe5802c..7c7501b4b21530d0641774f64e87d7d1ca71a33c 100644 +index 5e413803f9bdc898a9a644cb123363cbdf447ad8..f473df7a5aea6a89fb1eed28c9071b7eb3269cf8 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java -@@ -1183,6 +1183,33 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity { +@@ -1184,6 +1184,33 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity { } // Paper end - entity powdered snow API @@ -43,10 +43,10 @@ index ac513d3162a0794f226abc80bff21c799fe5802c..7c7501b4b21530d0641774f64e87d7d1 @Override public boolean isInvisible() { // Paper - moved up from LivingEntity diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java -index 516ea1ec9ae5069c3c0e4708f62164a91960b627..a50803a9b41cf3c0b081eb6b786f952dd0ed284f 100644 +index 2fd4a3068d86a37cc18c9203448823c53d590ffb..203e06fdff824ba67dce0e026f7ea5b746d7f258 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java -@@ -1192,4 +1192,16 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity { +@@ -1211,4 +1211,16 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity { this.getHandle().frictionState = state; } // Paper end - friction API diff --git a/patches/unapplied/server/0794-Fix-MC-157464-Prevent-sleeping-villagers-moving-towa.patch b/patches/server/0789-Fix-MC-157464-Prevent-sleeping-villagers-moving-towa.patch similarity index 93% rename from patches/unapplied/server/0794-Fix-MC-157464-Prevent-sleeping-villagers-moving-towa.patch rename to patches/server/0789-Fix-MC-157464-Prevent-sleeping-villagers-moving-towa.patch index 962917dab8..9c1f7e2d47 100644 --- a/patches/unapplied/server/0794-Fix-MC-157464-Prevent-sleeping-villagers-moving-towa.patch +++ b/patches/server/0789-Fix-MC-157464-Prevent-sleeping-villagers-moving-towa.patch @@ -10,7 +10,7 @@ https://bugs.mojang.com/browse/MC-157464 https://github.com/PaperMC/Paper/issues/8569 diff --git a/src/main/java/net/minecraft/world/entity/ai/behavior/VillagerGoalPackages.java b/src/main/java/net/minecraft/world/entity/ai/behavior/VillagerGoalPackages.java -index 5a18bf854792339fcd54e32f8053d014f3d195a5..f000a6c1e61198e6dd06ae5f084d12fdf309f50a 100644 +index 1c5cec4e3dbf2daf9e06d8d7dfb30b3f7744a1f5..bb65d46967cb04f611b3c9c97d5732cfb21ede9b 100644 --- a/src/main/java/net/minecraft/world/entity/ai/behavior/VillagerGoalPackages.java +++ b/src/main/java/net/minecraft/world/entity/ai/behavior/VillagerGoalPackages.java @@ -38,7 +38,7 @@ public class VillagerGoalPackages { diff --git a/patches/unapplied/server/0795-Add-EntityFertilizeEggEvent.patch b/patches/server/0790-Add-EntityFertilizeEggEvent.patch similarity index 85% rename from patches/unapplied/server/0795-Add-EntityFertilizeEggEvent.patch rename to patches/server/0790-Add-EntityFertilizeEggEvent.patch index 07253994cb..7b48ce0ca2 100644 --- a/patches/unapplied/server/0795-Add-EntityFertilizeEggEvent.patch +++ b/patches/server/0790-Add-EntityFertilizeEggEvent.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Add EntityFertilizeEggEvent diff --git a/src/main/java/net/minecraft/world/entity/animal/Turtle.java b/src/main/java/net/minecraft/world/entity/animal/Turtle.java -index 34e6bf677a9f4548f3febe6d57e6af9602530271..2e5ef2a680e294b49f29e8d7ba8bd0ed023c393c 100644 +index ed7f5eb9b3b700c2f817d61ee0bf8a6952731510..8e91f930e19a91db44274e4ecd98841362867609 100644 --- a/src/main/java/net/minecraft/world/entity/animal/Turtle.java +++ b/src/main/java/net/minecraft/world/entity/animal/Turtle.java -@@ -441,6 +441,10 @@ public class Turtle extends Animal { +@@ -448,6 +448,10 @@ public class Turtle extends Animal { if (entityplayer == null && this.partner.getLoveCause() != null) { entityplayer = this.partner.getLoveCause(); } @@ -19,20 +19,20 @@ index 34e6bf677a9f4548f3febe6d57e6af9602530271..2e5ef2a680e294b49f29e8d7ba8bd0ed if (entityplayer != null) { entityplayer.awardStat(Stats.ANIMALS_BRED); -@@ -455,7 +459,7 @@ public class Turtle extends Animal { +@@ -462,7 +466,7 @@ public class Turtle extends Animal { RandomSource randomsource = this.animal.getRandom(); - if (this.level.getGameRules().getBoolean(GameRules.RULE_DOMOBLOOT)) { + if (getServerLevel((Level) this.level).getGameRules().getBoolean(GameRules.RULE_DOMOBLOOT)) { - this.level.addFreshEntity(new ExperienceOrb(this.level, this.animal.getX(), this.animal.getY(), this.animal.getZ(), randomsource.nextInt(7) + 1, org.bukkit.entity.ExperienceOrb.SpawnReason.BREED, entityplayer)); // Paper; -+ if (event.getExperience() > 0) this.level.addFreshEntity(new ExperienceOrb(this.level, this.animal.getX(), this.animal.getY(), this.animal.getZ(), event.getExperience(), org.bukkit.entity.ExperienceOrb.SpawnReason.BREED, entityplayer)); // Paper - Add EntityFertilizeEggEvent event ++ if (event.getExperience() > 0) this.level.addFreshEntity(new ExperienceOrb(this.level, this.animal.getX(), this.animal.getY(), this.animal.getZ(), randomsource.nextInt(7) + 1, org.bukkit.entity.ExperienceOrb.SpawnReason.BREED, entityplayer)); // Paper - Add EntityFertilizeEggEvent event } } diff --git a/src/main/java/net/minecraft/world/entity/animal/frog/Frog.java b/src/main/java/net/minecraft/world/entity/animal/frog/Frog.java -index a7af50ebc17abd829a7254c03785206da9624060..816977990639ec0559b652fc9666afd5046f0a5d 100644 +index 100be2ed533450eda32d9c4eb9eb1067846d1516..36846ba6b6c7494c745ebd8b221479a9d02ff318 100644 --- a/src/main/java/net/minecraft/world/entity/animal/frog/Frog.java +++ b/src/main/java/net/minecraft/world/entity/animal/frog/Frog.java -@@ -261,7 +261,12 @@ public class Frog extends Animal implements VariantHolder> { +@@ -270,7 +270,12 @@ public class Frog extends Animal implements VariantHolder> { @Override public void spawnChildFromBreeding(ServerLevel world, Animal other) { @@ -47,10 +47,10 @@ index a7af50ebc17abd829a7254c03785206da9624060..816977990639ec0559b652fc9666afd5 } diff --git a/src/main/java/net/minecraft/world/entity/animal/sniffer/Sniffer.java b/src/main/java/net/minecraft/world/entity/animal/sniffer/Sniffer.java -index d34d8fe70379dcad9540739ec0ae1c94f01fc46b..fadd341ff398886a4da102eefa1beb95a63bbd6d 100644 +index 0395b120590552518a85f36a46b68532e936de49..7f70237a274fde0fb97880c1d47246157e3b3415 100644 --- a/src/main/java/net/minecraft/world/entity/animal/sniffer/Sniffer.java +++ b/src/main/java/net/minecraft/world/entity/animal/sniffer/Sniffer.java -@@ -345,11 +345,16 @@ public class Sniffer extends Animal { +@@ -340,11 +340,16 @@ public class Sniffer extends Animal { @Override public void spawnChildFromBreeding(ServerLevel world, Animal other) { @@ -69,10 +69,10 @@ index d34d8fe70379dcad9540739ec0ae1c94f01fc46b..fadd341ff398886a4da102eefa1beb95 this.playSound(SoundEvents.SNIFFER_EGG_PLOP, 1.0F, (this.random.nextFloat() - this.random.nextFloat()) * 0.2F + 0.5F); } // Paper - Call EntityDropItemEvent diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -index b6cca72b4785d5cf009077c81c1cca718d8cfe28..a0b387ddf3cc1e3473c6b35175ac8b68c717cfbe 100644 +index cb05a94f2856a8bfb478bceb7c8712bc5e7ad5c2..145a278a1b6d9e79c27136e84d8ccea8834c07bc 100644 --- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java +++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -@@ -2197,4 +2197,28 @@ public class CraftEventFactory { +@@ -2195,4 +2195,28 @@ populateFields(victim, event); // Paper - make cancellable return event.callEvent(); } // Paper end diff --git a/patches/unapplied/server/0796-Fix-HumanEntity-drop-not-updating-the-client-inv.patch b/patches/server/0791-Fix-HumanEntity-drop-not-updating-the-client-inv.patch similarity index 90% rename from patches/unapplied/server/0796-Fix-HumanEntity-drop-not-updating-the-client-inv.patch rename to patches/server/0791-Fix-HumanEntity-drop-not-updating-the-client-inv.patch index b804a77828..21d4d0ad65 100644 --- a/patches/unapplied/server/0796-Fix-HumanEntity-drop-not-updating-the-client-inv.patch +++ b/patches/server/0791-Fix-HumanEntity-drop-not-updating-the-client-inv.patch @@ -7,10 +7,10 @@ Subject: [PATCH] Fix HumanEntity#drop not updating the client inv public net.minecraft.server.level.ServerPlayer containerSynchronizer diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java -index 1ff114f792ca12bc5408cdd9ab0ad23c3158b99c..b782cc64426a058881947ed62316c1cb8d332037 100644 +index 04fe27a84eb240f8e9bb0ed5b21fd60cfed619ad..7dddf4dd090fcd9e86b147d7e4ddeaa99800713e 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java -@@ -759,8 +759,15 @@ public class CraftHumanEntity extends CraftLivingEntity implements HumanEntity { +@@ -782,8 +782,15 @@ public class CraftHumanEntity extends CraftLivingEntity implements HumanEntity { // Paper end @Override public boolean dropItem(boolean dropAll) { diff --git a/patches/unapplied/server/0797-Add-CompostItemEvent-and-EntityCompostItemEvent.patch b/patches/server/0792-Add-CompostItemEvent-and-EntityCompostItemEvent.patch similarity index 91% rename from patches/unapplied/server/0797-Add-CompostItemEvent-and-EntityCompostItemEvent.patch rename to patches/server/0792-Add-CompostItemEvent-and-EntityCompostItemEvent.patch index 85321a4a5b..eba5cdc5c9 100644 --- a/patches/unapplied/server/0797-Add-CompostItemEvent-and-EntityCompostItemEvent.patch +++ b/patches/server/0792-Add-CompostItemEvent-and-EntityCompostItemEvent.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Add CompostItemEvent and EntityCompostItemEvent diff --git a/src/main/java/net/minecraft/world/level/block/ComposterBlock.java b/src/main/java/net/minecraft/world/level/block/ComposterBlock.java -index 19fa8a9f935e9063497f8c0bd7909036fa0af2b7..d3d12f9114173f4971f95d7ef895a4374705bd3f 100644 +index 60bf63c2cff3ce8a1892ba5c2303738c35b83d79..2d7712fae0801b6ae48d23cabd46a7700c0c0bec 100644 --- a/src/main/java/net/minecraft/world/level/block/ComposterBlock.java +++ b/src/main/java/net/minecraft/world/level/block/ComposterBlock.java -@@ -336,7 +336,21 @@ public class ComposterBlock extends Block implements WorldlyContainerHolder { +@@ -340,7 +340,21 @@ public class ComposterBlock extends Block implements WorldlyContainerHolder { int i = (Integer) iblockdata.getValue(ComposterBlock.LEVEL); float f = ComposterBlock.COMPOSTABLES.getFloat(itemstack.getItem()); @@ -31,7 +31,7 @@ index 19fa8a9f935e9063497f8c0bd7909036fa0af2b7..d3d12f9114173f4971f95d7ef895a437 return iblockdata; } else { int j = i + 1; -@@ -485,6 +499,11 @@ public class ComposterBlock extends Block implements WorldlyContainerHolder { +@@ -489,6 +503,11 @@ public class ComposterBlock extends Block implements WorldlyContainerHolder { if (!itemstack.isEmpty()) { this.changed = true; BlockState iblockdata = ComposterBlock.addItem((Entity) null, this.state, this.level, this.pos, itemstack); diff --git a/patches/unapplied/server/0798-Correctly-handle-ArmorStand-invisibility.patch b/patches/server/0793-Correctly-handle-ArmorStand-invisibility.patch similarity index 91% rename from patches/unapplied/server/0798-Correctly-handle-ArmorStand-invisibility.patch rename to patches/server/0793-Correctly-handle-ArmorStand-invisibility.patch index 34b66d686a..c3b0b191aa 100644 --- a/patches/unapplied/server/0798-Correctly-handle-ArmorStand-invisibility.patch +++ b/patches/server/0793-Correctly-handle-ArmorStand-invisibility.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Correctly handle ArmorStand invisibility diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftArmorStand.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftArmorStand.java -index 1087840331f68ffe79e79f6493137b2b894832f9..9fe85d6f807e64cf02d8e1921672e3196f6d606f 100644 +index e1cedcb95e9b2e2e9587b623256b5cffa7b08ce4..a2a0064ed86628494e80cb6f6357b4cd9f91f04b 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftArmorStand.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftArmorStand.java @@ -152,6 +152,14 @@ public class CraftArmorStand extends CraftLivingEntity implements ArmorStand { diff --git a/patches/unapplied/server/0799-Fix-advancement-triggers-for-entity-damage.patch b/patches/server/0794-Fix-advancement-triggers-for-entity-damage.patch similarity index 88% rename from patches/unapplied/server/0799-Fix-advancement-triggers-for-entity-damage.patch rename to patches/server/0794-Fix-advancement-triggers-for-entity-damage.patch index 94c53ab61c..fff5e6ce25 100644 --- a/patches/unapplied/server/0799-Fix-advancement-triggers-for-entity-damage.patch +++ b/patches/server/0794-Fix-advancement-triggers-for-entity-damage.patch @@ -10,10 +10,10 @@ Fixes a couple places where the original damage and modified damage were passed in the reverse order to the advancement triggers diff --git a/src/main/java/net/minecraft/world/entity/Interaction.java b/src/main/java/net/minecraft/world/entity/Interaction.java -index 2ebbf7954dc5e0d6c9d53327d05b725eec310086..c5bd2e90ad74ba08910f65a2e07b6f76435df10f 100644 +index 821bb93e1b055ba38fafe3b7079d79aa062ebe8a..221d73676fe2fd240a47cf312c1179e049298cac 100644 --- a/src/main/java/net/minecraft/world/entity/Interaction.java +++ b/src/main/java/net/minecraft/world/entity/Interaction.java -@@ -156,7 +156,7 @@ public class Interaction extends Entity implements Attackable, Targeting { +@@ -159,7 +159,7 @@ public class Interaction extends Entity implements Attackable, Targeting { // CraftBukkit end this.attack = new Interaction.PlayerAction(entityhuman.getUUID(), this.level().getGameTime()); if (entityhuman instanceof ServerPlayer entityplayer) { @@ -23,10 +23,10 @@ index 2ebbf7954dc5e0d6c9d53327d05b725eec310086..c5bd2e90ad74ba08910f65a2e07b6f76 return !this.getResponse(); diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index 9e58a85a7de53b17fa149ae0b4951baa351d99db..4e96a65396b687d2823f2229744f5d448ba87512 100644 +index 447fb76a3eb1505b1ef1e1aed8a11239c0124f4f..95bbde31de42e1e12d722de86085e59050f1c3ae 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java -@@ -2388,7 +2388,7 @@ public abstract class LivingEntity extends Entity implements Attackable { +@@ -2465,7 +2465,7 @@ public abstract class LivingEntity extends Entity implements Attackable { // Duplicate triggers if blocking if (event.getDamage(DamageModifier.BLOCKING) < 0) { if (this instanceof ServerPlayer) { @@ -35,7 +35,7 @@ index 9e58a85a7de53b17fa149ae0b4951baa351d99db..4e96a65396b687d2823f2229744f5d44 f2 = (float) -event.getDamage(DamageModifier.BLOCKING); if (f2 > 0.0F && f2 < 3.4028235E37F) { ((ServerPlayer) this).awardStat(Stats.DAMAGE_BLOCKED_BY_SHIELD, Math.round(originalDamage * 10.0F)); -@@ -2396,7 +2396,7 @@ public abstract class LivingEntity extends Entity implements Attackable { +@@ -2473,7 +2473,7 @@ public abstract class LivingEntity extends Entity implements Attackable { } if (damagesource.getEntity() instanceof ServerPlayer) { diff --git a/patches/unapplied/server/0800-Fix-text-display-error-on-spawn.patch b/patches/server/0795-Fix-text-display-error-on-spawn.patch similarity index 85% rename from patches/unapplied/server/0800-Fix-text-display-error-on-spawn.patch rename to patches/server/0795-Fix-text-display-error-on-spawn.patch index 7f64cfe6d9..d783ac8eee 100644 --- a/patches/unapplied/server/0800-Fix-text-display-error-on-spawn.patch +++ b/patches/server/0795-Fix-text-display-error-on-spawn.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Fix text display error on spawn diff --git a/src/main/java/net/minecraft/world/entity/Display.java b/src/main/java/net/minecraft/world/entity/Display.java -index bd56721485b3b4ac81c97d60fc2a83bfc20977c0..a658943669cdfd49f66ba713505d11b33306ed86 100644 +index d7d940e6b397e52cb7d78bc6f5fc26e8096f9228..e6cbf4506c75046a89fad778e138b448fb4a29a9 100644 --- a/src/main/java/net/minecraft/world/entity/Display.java +++ b/src/main/java/net/minecraft/world/entity/Display.java -@@ -892,7 +892,7 @@ public abstract class Display extends Entity { +@@ -903,7 +903,7 @@ public abstract class Display extends Entity { b = loadFlag(b, nbt, "default_background", (byte)4); Optional optional = Display.TextDisplay.Align.CODEC .decode(NbtOps.INSTANCE, nbt.get("alignment")) diff --git a/patches/unapplied/server/0801-Fix-inventories-returning-null-Locations.patch b/patches/server/0796-Fix-inventories-returning-null-Locations.patch similarity index 94% rename from patches/unapplied/server/0801-Fix-inventories-returning-null-Locations.patch rename to patches/server/0796-Fix-inventories-returning-null-Locations.patch index 23413d6b03..1a65689fad 100644 --- a/patches/unapplied/server/0801-Fix-inventories-returning-null-Locations.patch +++ b/patches/server/0796-Fix-inventories-returning-null-Locations.patch @@ -9,7 +9,7 @@ when a block or entity location is readily available Co-authored-by: Lukas Planz diff --git a/src/main/java/net/minecraft/world/SimpleContainer.java b/src/main/java/net/minecraft/world/SimpleContainer.java -index c26161784359ea167e11de8aa58eda3b4851059c..6632cf24ebe6d147950a1fdb876660937da86b73 100644 +index 13a32ef8f86b678dcce83c41c78b47d9aab9f16b..b0963c534afe5be164701cb283f1849e32ae5a86 100644 --- a/src/main/java/net/minecraft/world/SimpleContainer.java +++ b/src/main/java/net/minecraft/world/SimpleContainer.java @@ -63,6 +63,16 @@ public class SimpleContainer implements Container, StackedContentsCompatible { @@ -30,7 +30,7 @@ index c26161784359ea167e11de8aa58eda3b4851059c..6632cf24ebe6d147950a1fdb87666093 } diff --git a/src/main/java/net/minecraft/world/inventory/BeaconMenu.java b/src/main/java/net/minecraft/world/inventory/BeaconMenu.java -index 8b0ebf659f6b219ce2a5d10b0d79f9b89b47c911..a735aeeb59f79154ce797c6e2f5600305f46d217 100644 +index 9db647cfbd3f9c884465cf3d3a1b911d46a3da58..c0dfa04511110be366ee5b0bd75efc51afcce2e4 100644 --- a/src/main/java/net/minecraft/world/inventory/BeaconMenu.java +++ b/src/main/java/net/minecraft/world/inventory/BeaconMenu.java @@ -52,6 +52,12 @@ public class BeaconMenu extends AbstractContainerMenu { diff --git a/patches/unapplied/server/0802-Add-Shearable-API.patch b/patches/server/0797-Add-Shearable-API.patch similarity index 98% rename from patches/unapplied/server/0802-Add-Shearable-API.patch rename to patches/server/0797-Add-Shearable-API.patch index 3cf9cf3015..5d99e92e0b 100644 --- a/patches/unapplied/server/0802-Add-Shearable-API.patch +++ b/patches/server/0797-Add-Shearable-API.patch @@ -45,7 +45,7 @@ index 0139e85c0751564bb4d2847b7b2e48f75fee9e53..e8e4704304504e69c7964dcd4df8ce5d public CraftBogged(CraftServer server, net.minecraft.world.entity.monster.Bogged entity) { super(server, entity); diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftMushroomCow.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftMushroomCow.java -index 986f7b18112ef183de3bbff269a92bf6ac945477..9cc81bcccbf1141f66fedada1359b7c0dfa8e22a 100644 +index 901b751c856dea677d5238db1ee70401a9d7bba5..bfe39c7a9d2910bee9b40cf5ab4c154711d5cbb0 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftMushroomCow.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftMushroomCow.java @@ -14,7 +14,7 @@ import org.bukkit.entity.MushroomCow; diff --git a/patches/unapplied/server/0803-Fix-SpawnEggMeta-get-setSpawnedType.patch b/patches/server/0798-Fix-SpawnEggMeta-get-setSpawnedType.patch similarity index 100% rename from patches/unapplied/server/0803-Fix-SpawnEggMeta-get-setSpawnedType.patch rename to patches/server/0798-Fix-SpawnEggMeta-get-setSpawnedType.patch diff --git a/patches/unapplied/server/0804-Fix-crash-relating-to-bad-recipes-in-furnace-like-ti.patch b/patches/server/0799-Fix-crash-relating-to-bad-recipes-in-furnace-like-ti.patch similarity index 67% rename from patches/unapplied/server/0804-Fix-crash-relating-to-bad-recipes-in-furnace-like-ti.patch rename to patches/server/0799-Fix-crash-relating-to-bad-recipes-in-furnace-like-ti.patch index d90e599897..05a14ce977 100644 --- a/patches/unapplied/server/0804-Fix-crash-relating-to-bad-recipes-in-furnace-like-ti.patch +++ b/patches/server/0799-Fix-crash-relating-to-bad-recipes-in-furnace-like-ti.patch @@ -6,14 +6,14 @@ Subject: [PATCH] Fix crash relating to bad recipes in furnace-like tile diff --git a/src/main/java/net/minecraft/world/level/block/entity/AbstractFurnaceBlockEntity.java b/src/main/java/net/minecraft/world/level/block/entity/AbstractFurnaceBlockEntity.java -index f1a7054a0ee1842e78338d8984f151b24c352849..65ab9b22f724877b68f4f25aad2831e2cb080b19 100644 +index 18f8b2c469feef659437684ce156a79ec3a3ce83..ecb9abc570ef87541184a8033cb33c82a4d1daf2 100644 --- a/src/main/java/net/minecraft/world/level/block/entity/AbstractFurnaceBlockEntity.java +++ b/src/main/java/net/minecraft/world/level/block/entity/AbstractFurnaceBlockEntity.java -@@ -616,6 +616,7 @@ public abstract class AbstractFurnaceBlockEntity extends BaseContainerBlockEntit - Entry entry = (Entry) objectiterator.next(); +@@ -499,6 +499,7 @@ public abstract class AbstractFurnaceBlockEntity extends BaseContainerBlockEntit + Entry>> entry = (Entry) objectiterator.next(); - worldserver.getRecipeManager().byKey((ResourceLocation) entry.getKey()).ifPresent((recipeholder) -> { + worldserver.recipeAccess().byKey(entry.getKey()).ifPresent((recipeholder) -> { // CraftBukkit - decompile error + if (!(recipeholder.value() instanceof AbstractCookingRecipe)) return; // Paper - don't process non-cooking recipes list.add(recipeholder); - AbstractFurnaceBlockEntity.createExperience(worldserver, vec3d, entry.getIntValue(), ((AbstractCookingRecipe) recipeholder.value()).getExperience(), blockposition, entityplayer, itemstack, amount); // CraftBukkit + AbstractFurnaceBlockEntity.createExperience(worldserver, vec3d, entry.getIntValue(), ((AbstractCookingRecipe) recipeholder.value()).experience(), blockposition, entityplayer, itemstack, amount); // CraftBukkit }); diff --git a/patches/unapplied/server/0805-Treat-sequence-violations-like-they-should-be.patch b/patches/server/0800-Treat-sequence-violations-like-they-should-be.patch similarity index 87% rename from patches/unapplied/server/0805-Treat-sequence-violations-like-they-should-be.patch rename to patches/server/0800-Treat-sequence-violations-like-they-should-be.patch index e0fce8efce..3cb7bfe536 100644 --- a/patches/unapplied/server/0805-Treat-sequence-violations-like-they-should-be.patch +++ b/patches/server/0800-Treat-sequence-violations-like-they-should-be.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Treat sequence violations like they should be diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index a6f58438badb0bdeab67706f4a8e519b202623fe..5a710de60a57c8af4eb083e17f03e801858dc2d9 100644 +index d77ab963802fcd7551058987a534ba54f080027a..74054e0acd2ecdc6d7ccdf035c9ec120872f6ef4 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -1976,6 +1976,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl +@@ -1989,6 +1989,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl public void ackBlockChangesUpTo(int sequence) { if (sequence < 0) { diff --git a/patches/unapplied/server/0806-Prevent-causing-expired-keys-from-impacting-new-join.patch b/patches/server/0801-Prevent-causing-expired-keys-from-impacting-new-join.patch similarity index 88% rename from patches/unapplied/server/0806-Prevent-causing-expired-keys-from-impacting-new-join.patch rename to patches/server/0801-Prevent-causing-expired-keys-from-impacting-new-join.patch index ee811c8ba6..8c461c04b6 100644 --- a/patches/unapplied/server/0806-Prevent-causing-expired-keys-from-impacting-new-join.patch +++ b/patches/server/0801-Prevent-causing-expired-keys-from-impacting-new-join.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Prevent causing expired keys from impacting new joins diff --git a/src/main/java/net/minecraft/network/protocol/game/ClientboundPlayerInfoUpdatePacket.java b/src/main/java/net/minecraft/network/protocol/game/ClientboundPlayerInfoUpdatePacket.java -index 68c062cbaa030d62d97c9c003651f8fc17a00a6b..6247a21c9c391abf1f6db3482c659593e4f29355 100644 +index d0b2a8b5ded71a9a41753f4addea1c49826b34a3..29b465fc1dc50e0e84ddb889c5303e80fe662874 100644 --- a/src/main/java/net/minecraft/network/protocol/game/ClientboundPlayerInfoUpdatePacket.java +++ b/src/main/java/net/minecraft/network/protocol/game/ClientboundPlayerInfoUpdatePacket.java -@@ -113,7 +113,15 @@ public class ClientboundPlayerInfoUpdatePacket implements Packet serialized.chatSession = buf.readNullable(RemoteChatSession.Data::read), @@ -26,18 +26,18 @@ index 68c062cbaa030d62d97c9c003651f8fc17a00a6b..6247a21c9c391abf1f6db3482c659593 UPDATE_GAME_MODE((serialized, buf) -> serialized.gameMode = GameType.byId(buf.readVarInt()), (buf, entry) -> buf.writeVarInt(entry.gameMode().getId())), UPDATE_LISTED((serialized, buf) -> serialized.listed = buf.readBoolean(), (buf, entry) -> buf.writeBoolean(entry.listed())), diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 5a710de60a57c8af4eb083e17f03e801858dc2d9..db9c04d74475e00983cc9df74d615e4b68f83688 100644 +index 74054e0acd2ecdc6d7ccdf035c9ec120872f6ef4..5d261106b0cd12e9ed737833b1f6d2572d15ab4e 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -295,6 +295,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl - private int knownMovePacketCount; +@@ -303,6 +303,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl + private boolean receivedMovementThisTick; @Nullable private RemoteChatSession chatSession; + private boolean hasLoggedExpiry = false; // Paper - Prevent causing expired keys from impacting new joins private SignedMessageChain.Decoder signedMessageDecoder; private final LastSeenMessagesValidator lastSeenMessages = new LastSeenMessagesValidator(20); private final MessageSignatureCache messageSignatureCache = MessageSignatureCache.createDefault(); -@@ -402,6 +403,13 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl +@@ -399,6 +400,13 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl this.disconnect((Component) Component.translatable("multiplayer.disconnect.idling"), org.bukkit.event.player.PlayerKickEvent.Cause.IDLING); // Paper - kick event cause } @@ -51,7 +51,7 @@ index 5a710de60a57c8af4eb083e17f03e801858dc2d9..db9c04d74475e00983cc9df74d615e4b } private int getMaximumFlyingTicks(Entity vehicle) { -@@ -3434,6 +3442,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl +@@ -3479,6 +3487,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl private void resetPlayerChatState(RemoteChatSession session) { this.chatSession = session; diff --git a/patches/unapplied/server/0807-Prevent-GameEvents-being-fired-from-unloaded-chunks.patch b/patches/server/0802-Prevent-GameEvents-being-fired-from-unloaded-chunks.patch similarity index 83% rename from patches/unapplied/server/0807-Prevent-GameEvents-being-fired-from-unloaded-chunks.patch rename to patches/server/0802-Prevent-GameEvents-being-fired-from-unloaded-chunks.patch index 3306163498..7621693e89 100644 --- a/patches/unapplied/server/0807-Prevent-GameEvents-being-fired-from-unloaded-chunks.patch +++ b/patches/server/0802-Prevent-GameEvents-being-fired-from-unloaded-chunks.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Prevent GameEvents being fired from unloaded chunks diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 07f7752651095abdd9e9408a419aed7d78173d3a..fd4d1cab675b7b423ac0fdf9a8c9f472ddc68c36 100644 +index 3eaeeb3ec715d92fe99e14c37e224cb1e80a467b..509a67aff07bcdcad47eb77e923d442349a4f20c 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java -@@ -1372,6 +1372,11 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -1385,6 +1385,11 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe @Override public void gameEvent(Holder event, Vec3 emitterPos, GameEvent.Context emitter) { diff --git a/patches/unapplied/server/0808-Use-array-for-gamerule-storage.patch b/patches/server/0803-Use-array-for-gamerule-storage.patch similarity index 60% rename from patches/unapplied/server/0808-Use-array-for-gamerule-storage.patch rename to patches/server/0803-Use-array-for-gamerule-storage.patch index 194ff8f15b..efb6cfeb50 100644 --- a/patches/unapplied/server/0808-Use-array-for-gamerule-storage.patch +++ b/patches/server/0803-Use-array-for-gamerule-storage.patch @@ -5,35 +5,24 @@ Subject: [PATCH] Use array for gamerule storage diff --git a/src/main/java/net/minecraft/world/level/GameRules.java b/src/main/java/net/minecraft/world/level/GameRules.java -index 51e560d7856f230c5aa2dc32706c3a4996720aa5..89e327bc3a45879fe68887c7aadb077f31a770eb 100644 +index 09299e45552eb998fd02123c3921c0653f85083d..4ae47c2c5a6bcfbf932d000a80974463e2d3818d 100644 --- a/src/main/java/net/minecraft/world/level/GameRules.java +++ b/src/main/java/net/minecraft/world/level/GameRules.java -@@ -122,6 +122,7 @@ public class GameRules { - worldserver.setDefaultSpawnPos(worldserver.getSharedSpawnPos(), worldserver.getSharedSpawnAngle()); +@@ -129,6 +129,7 @@ public class GameRules { })); private final Map, GameRules.Value> rules; + private final FeatureFlagSet enabledFeatures; + private final GameRules.Value[] gameruleArray; // Paper - Perf: Use array for gamerule storage private static > GameRules.Key register(String name, GameRules.Category category, GameRules.Type type) { GameRules.Key gamerules_gamerulekey = new GameRules.Key<>(name, category); -@@ -140,17 +141,30 @@ public class GameRules { - } - - public GameRules() { -- this.rules = (Map) GameRules.GAME_RULE_TYPES.entrySet().stream().collect(ImmutableMap.toImmutableMap(Entry::getKey, (entry) -> { -+ // Paper start - Perf: Use array for gamerule storage -+ this((Map) GameRules.GAME_RULE_TYPES.entrySet().stream().collect(ImmutableMap.toImmutableMap(Entry::getKey, (entry) -> { - return ((GameRules.Type) entry.getValue()).createRule(); -- })); -+ }))); -+ // Paper end - Perf: Use array for gamerule storage - } - - private GameRules(Map, GameRules.Value> rules) { +@@ -161,10 +162,21 @@ public class GameRules { + private GameRules(Map, GameRules.Value> rules, FeatureFlagSet enabledFeatures) { this.rules = rules; + this.enabledFeatures = enabledFeatures; + + // Paper start - Perf: Use array for gamerule storage -+ int arraySize = rules.keySet().stream().mapToInt(key -> key.gameRuleIndex).max().orElse(-1) + 1; ++ int arraySize = GameRules.Key.lastGameRuleIndex + 1; + GameRules.Value[] values = new GameRules.Value[arraySize]; + + for (Entry, GameRules.Value> entry : rules.entrySet()) { @@ -45,17 +34,17 @@ index 51e560d7856f230c5aa2dc32706c3a4996720aa5..89e327bc3a45879fe68887c7aadb077f } public > T getRule(GameRules.Key key) { -- return (T) this.rules.get(key); // CraftBukkit - decompile error -+ return key == null ? null : (T) this.gameruleArray[key.gameRuleIndex]; // Paper - Perf: Use array for gamerule storage - } +- T t0 = (T) this.rules.get(key); // CraftBukkit - decompile error ++ T t0 = key == null ? null : (T) this.gameruleArray[key.gameRuleIndex]; // Paper - Perf: Use array for gamerule storage - public CompoundTag createTag() { -@@ -209,6 +223,10 @@ public class GameRules { + if (t0 == null) { + throw new IllegalArgumentException("Tried to access invalid game rule"); +@@ -232,6 +244,10 @@ public class GameRules { } public static final class Key> { + // Paper start - Perf: Use array for gamerule storage -+ private static int lastGameRuleIndex = 0; ++ public static int lastGameRuleIndex = 0; + public final int gameRuleIndex = lastGameRuleIndex++; + // Paper end - Perf: Use array for gamerule storage diff --git a/patches/unapplied/server/0809-Fix-a-couple-of-upstream-bed-issues.patch b/patches/server/0804-Fix-a-couple-of-upstream-bed-issues.patch similarity index 86% rename from patches/unapplied/server/0809-Fix-a-couple-of-upstream-bed-issues.patch rename to patches/server/0804-Fix-a-couple-of-upstream-bed-issues.patch index 665db524c5..76cfa7bc0d 100644 --- a/patches/unapplied/server/0809-Fix-a-couple-of-upstream-bed-issues.patch +++ b/patches/server/0804-Fix-a-couple-of-upstream-bed-issues.patch @@ -10,18 +10,18 @@ but then replaced it with a bed, you could respawn at the bed in that world. diff --git a/src/main/java/net/minecraft/world/level/block/BedBlock.java b/src/main/java/net/minecraft/world/level/block/BedBlock.java -index 18b9a62613c08eb5bf63ae26565b0e91e1f44d39..85d598c3354ee62f0fd1b26e485e0084967c0380 100644 +index b09fa473426a6c7e006a071827e5a68560d6c685..c02c4834ace843633b77fb43eeadd3ddc7b1f743 100644 --- a/src/main/java/net/minecraft/world/level/block/BedBlock.java +++ b/src/main/java/net/minecraft/world/level/block/BedBlock.java -@@ -107,6 +107,7 @@ public class BedBlock extends HorizontalDirectionalBlock implements EntityBlock +@@ -109,6 +109,7 @@ public class BedBlock extends HorizontalDirectionalBlock implements EntityBlock world.explode((Entity) null, world.damageSources().badRespawnPointExplosion(vec3d), (ExplosionDamageCalculator) null, vec3d, 5.0F, true, Level.ExplosionInteraction.BLOCK); - return InteractionResult.SUCCESS; + return InteractionResult.SUCCESS_SERVER; } else if ((Boolean) state.getValue(BedBlock.OCCUPIED)) { + if (!BedBlock.canSetSpawn(world)) return this.explodeBed(state, world, pos); // Paper - check explode first if (!this.kickVillagerOutOfBed(world, pos)) { player.displayClientMessage(Component.translatable("block.minecraft.bed.occupied"), true); } -@@ -164,8 +165,7 @@ public class BedBlock extends HorizontalDirectionalBlock implements EntityBlock +@@ -166,8 +167,7 @@ public class BedBlock extends HorizontalDirectionalBlock implements EntityBlock // CraftBukkit end public static boolean canSetSpawn(Level world) { diff --git a/patches/unapplied/server/0810-Fix-demo-flag-not-enabling-demo-mode.patch b/patches/server/0805-Fix-demo-flag-not-enabling-demo-mode.patch similarity index 91% rename from patches/unapplied/server/0810-Fix-demo-flag-not-enabling-demo-mode.patch rename to patches/server/0805-Fix-demo-flag-not-enabling-demo-mode.patch index d64dd23e37..1a72571965 100644 --- a/patches/unapplied/server/0810-Fix-demo-flag-not-enabling-demo-mode.patch +++ b/patches/server/0805-Fix-demo-flag-not-enabling-demo-mode.patch @@ -6,7 +6,7 @@ Subject: [PATCH] Fix demo flag not enabling demo mode https://github.com/PaperMC/Paper/issues/9046 diff --git a/src/main/java/net/minecraft/server/Main.java b/src/main/java/net/minecraft/server/Main.java -index 13e1a914d4523f1c192db2a9a1ee6522e0ee27da..c33f85b570f159ab465b5a10a8044a81f2797f43 100644 +index 47cd7c66ac37efebf2f63c49d78dd8fe44a70ef8..fc6ce3485dc890f5105a37fe3e344a1460867556 100644 --- a/src/main/java/net/minecraft/server/Main.java +++ b/src/main/java/net/minecraft/server/Main.java @@ -325,7 +325,9 @@ public class Main { diff --git a/patches/unapplied/server/0811-Add-Mob-Experience-reward-API.patch b/patches/server/0806-Add-Mob-Experience-reward-API.patch similarity index 56% rename from patches/unapplied/server/0811-Add-Mob-Experience-reward-API.patch rename to patches/server/0806-Add-Mob-Experience-reward-API.patch index f82f765beb..9e59c458f8 100644 --- a/patches/unapplied/server/0811-Add-Mob-Experience-reward-API.patch +++ b/patches/server/0806-Add-Mob-Experience-reward-API.patch @@ -5,18 +5,10 @@ Subject: [PATCH] Add Mob Experience reward API diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftMob.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftMob.java -index 921594a78ea511337434b29b5bc1a037eb30992c..deb66c04abefb4a88521483db1612e494bd27164 100644 +index e226a99d00c990a4ca4f21b93fcae7a556e01dbb..95d7015a61098d1d22a501124d6bb8fba1516fe3 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftMob.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftMob.java -@@ -1,6 +1,7 @@ - package org.bukkit.craftbukkit.entity; - - import com.google.common.base.Preconditions; -+import net.minecraft.server.level.ServerLevel; - import net.minecraft.sounds.SoundEvent; - import org.bukkit.Sound; - import org.bukkit.craftbukkit.CraftLootTable; -@@ -167,4 +168,11 @@ public abstract class CraftMob extends CraftLivingEntity implements Mob { +@@ -168,4 +168,11 @@ public abstract class CraftMob extends CraftLivingEntity implements Mob { this.getHandle().setAggressive(aggressive); } // Paper end @@ -24,7 +16,7 @@ index 921594a78ea511337434b29b5bc1a037eb30992c..deb66c04abefb4a88521483db1612e49 + // Paper start + @Override + public int getPossibleExperienceReward() { -+ return getHandle().getExperienceReward((ServerLevel) this.getHandle().level(), null); ++ return getHandle().getExperienceReward((net.minecraft.server.level.ServerLevel) this.getHandle().level(), null); + } + // Paper end } diff --git a/patches/unapplied/server/0812-Break-redstone-on-top-of-trap-doors-early.patch b/patches/server/0807-Break-redstone-on-top-of-trap-doors-early.patch similarity index 93% rename from patches/unapplied/server/0812-Break-redstone-on-top-of-trap-doors-early.patch rename to patches/server/0807-Break-redstone-on-top-of-trap-doors-early.patch index 11c427e808..ded460b32b 100644 --- a/patches/unapplied/server/0812-Break-redstone-on-top-of-trap-doors-early.patch +++ b/patches/server/0807-Break-redstone-on-top-of-trap-doors-early.patch @@ -7,10 +7,10 @@ This logic hooks into the neighbour update which should be invoked as a result of redstone powering the trap door. diff --git a/src/main/java/net/minecraft/world/level/block/TrapDoorBlock.java b/src/main/java/net/minecraft/world/level/block/TrapDoorBlock.java -index 82e38b01446d35aa9745be6ff3c7647b46379682..336fcf4af0ffb416b5595a9e65172f36cc36aaa3 100644 +index a7d52f2f9c324c5af979fc39b3662ebc880e36fb..872e52e13293a99d45f93d90d8fa7f6aa99d1f3a 100644 --- a/src/main/java/net/minecraft/world/level/block/TrapDoorBlock.java +++ b/src/main/java/net/minecraft/world/level/block/TrapDoorBlock.java -@@ -153,7 +153,26 @@ public class TrapDoorBlock extends HorizontalDirectionalBlock implements SimpleW +@@ -157,7 +157,26 @@ public class TrapDoorBlock extends HorizontalDirectionalBlock implements SimpleW flag1 = eventRedstone.getNewCurrent() > 0; } // CraftBukkit end diff --git a/patches/unapplied/server/0813-Avoid-Lazy-Initialization-for-Enum-Fields.patch b/patches/server/0808-Avoid-Lazy-Initialization-for-Enum-Fields.patch similarity index 100% rename from patches/unapplied/server/0813-Avoid-Lazy-Initialization-for-Enum-Fields.patch rename to patches/server/0808-Avoid-Lazy-Initialization-for-Enum-Fields.patch diff --git a/patches/unapplied/server/0814-More-accurate-isInOpenWater-impl.patch b/patches/server/0809-More-accurate-isInOpenWater-impl.patch similarity index 100% rename from patches/unapplied/server/0814-More-accurate-isInOpenWater-impl.patch rename to patches/server/0809-More-accurate-isInOpenWater-impl.patch diff --git a/patches/unapplied/server/0815-Expand-PlayerItemMendEvent.patch b/patches/server/0810-Expand-PlayerItemMendEvent.patch similarity index 89% rename from patches/unapplied/server/0815-Expand-PlayerItemMendEvent.patch rename to patches/server/0810-Expand-PlayerItemMendEvent.patch index 289fae7adb..965dcf0603 100644 --- a/patches/unapplied/server/0815-Expand-PlayerItemMendEvent.patch +++ b/patches/server/0810-Expand-PlayerItemMendEvent.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Expand PlayerItemMendEvent diff --git a/src/main/java/net/minecraft/world/entity/ExperienceOrb.java b/src/main/java/net/minecraft/world/entity/ExperienceOrb.java -index a758b2456acac23095fe4619ae10300a034cb460..a58ff67052fb5f33782f8b5c83465ec03ef1d073 100644 +index 3a7af27bb1ce0cbe56bd3760cd400083daf98d4c..bf0838f574fa3fb9654e087d602b8d380bd7fb28 100644 --- a/src/main/java/net/minecraft/world/entity/ExperienceOrb.java +++ b/src/main/java/net/minecraft/world/entity/ExperienceOrb.java -@@ -354,7 +354,10 @@ public class ExperienceOrb extends Entity { +@@ -358,7 +358,10 @@ public class ExperienceOrb extends Entity { int j = EnchantmentHelper.modifyDurabilityToRepairFromXp(player.serverLevel(), itemstack, amount); int k = Math.min(j, itemstack.getDamageValue()); // CraftBukkit start @@ -20,7 +20,7 @@ index a758b2456acac23095fe4619ae10300a034cb460..a58ff67052fb5f33782f8b5c83465ec0 k = event.getRepairAmount(); if (event.isCancelled()) { return amount; -@@ -363,7 +366,7 @@ public class ExperienceOrb extends Entity { +@@ -367,7 +370,7 @@ public class ExperienceOrb extends Entity { itemstack.setDamageValue(itemstack.getDamageValue() - k); if (k > 0) { @@ -30,10 +30,10 @@ index a758b2456acac23095fe4619ae10300a034cb460..a58ff67052fb5f33782f8b5c83465ec0 if (l > 0) { // this.value = l; // CraftBukkit - update exp value of orb for PlayerItemMendEvent calls // Paper - the value field should not be mutated here because it doesn't take "count" into account diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index 06a3ccb90f23fc357e5cbc6e9173baab4b218955..3945a6ab723deee3ec3ebb5fbc726ce16bbca411 100644 +index 76d8f0d390abf588886b42b6d2e3ed6f79a4d991..cdc53abb5572fa57b4ec98a694c5583ad0982a05 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -@@ -1853,11 +1853,12 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -1866,11 +1866,12 @@ public class CraftPlayer extends CraftHumanEntity implements Player { handle.serverLevel(), itemstack, amount ); int i = Math.min(possibleDurabilityFromXp, itemstack.getDamageValue()); @@ -49,10 +49,10 @@ index 06a3ccb90f23fc357e5cbc6e9173baab4b218955..3945a6ab723deee3ec3ebb5fbc726ce1 } } diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -index a0b387ddf3cc1e3473c6b35175ac8b68c717cfbe..9586837f25464396c0695e87fa278c91ca90183a 100644 +index 145a278a1b6d9e79c27136e84d8ccea8834c07bc..ac25a5c933b8748ca44ca02100058992b1aad358 100644 --- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java +++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -@@ -1286,10 +1286,10 @@ public class CraftEventFactory { +@@ -1284,10 +1284,10 @@ populateFields(victim, event); // Paper - make cancellable return event; }