Updated Upstream (Paper)

Upstream has released updates that appear to apply and compile correctly

Paper Changes:
PaperMC/Paper@bbeaddeb Simplify diff in ProjectileWeaponItem
PaperMC/Paper@e63832e5 Re-add diff comment in Villager
PaperMC/Paper@63f9644a Simplify diff in ChunkMap
PaperMC/Paper@f2df3219 update EntityTargetLivingEntityEvent handling
PaperMC/Paper@e7ea5050 fix NPE after launching ender eye
PaperMC/Paper@267f7aef respect mobs-can-always-pick-up-loot for baby zombies
PaperMC/Paper@8ad1ef1d bunch of renames and fix NPE in getCraftingRemainingItem
This commit is contained in:
granny
2026-03-30 15:43:54 -07:00
parent c3bd0f73fc
commit d8f2ab289c
15 changed files with 48 additions and 48 deletions

View File

@@ -1,9 +1,9 @@
group = org.purpurmc.purpur
version=26.1-R0.1-SNAPSHOT
mcVersion=26.1
mcVersion = 26.1
apiVersion = 26.1
paperCommit = 03853ba2fc406fc5466f3e764beaac6a4826c601
paperCommit = 8ad1ef1dc6aa692f639607a2829068bd6eecc813
org.gradle.configuration-cache = true
org.gradle.caching = true

View File

@@ -1,6 +1,6 @@
--- a/src/main/java/org/bukkit/World.java
+++ b/src/main/java/org/bukkit/World.java
@@ -4468,6 +_,100 @@
@@ -4467,6 +_,100 @@
@Nullable
public DragonBattle getEnderDragonBattle();

View File

@@ -30,7 +30,7 @@ index e9b3c2a767dc6ecc5044e45c51e3231c68768316..50ac39c620aae79d9111089eb55d979d
profiler.push(() -> level + " " + level.dimension().identifier());
profiler.push("tick");
diff --git a/net/minecraft/server/level/ServerLevel.java b/net/minecraft/server/level/ServerLevel.java
index 37dbb1724b63f266ced21be72f4b6429c239c9ef..2d74b41a44f65285a38d42a33a83177685601375 100644
index 53617e830a1d16cb54b7385b0993b9121062a741..af825adf9d92ed36b430e48505944a2533f2692c 100644
--- a/net/minecraft/server/level/ServerLevel.java
+++ b/net/minecraft/server/level/ServerLevel.java
@@ -235,6 +235,7 @@ public class ServerLevel extends Level implements WorldGenLevel, ServerEntityGet
@@ -42,7 +42,7 @@ index 37dbb1724b63f266ced21be72f4b6429c239c9ef..2d74b41a44f65285a38d42a33a831776
@Override
public @Nullable LevelChunk getChunkIfLoaded(int x, int z) {
diff --git a/net/minecraft/server/level/ServerPlayer.java b/net/minecraft/server/level/ServerPlayer.java
index 25e3229ba9ede30d125e566c06b58a36c96bc776..e5d9c8e6999f3b7a40269fc5b06da4878a114046 100644
index f171cafaa24367c16057f33c2fedff659de47187..6b86ec9a15357ab48a36f6d42c09ee2715c95430 100644
--- a/net/minecraft/server/level/ServerPlayer.java
+++ b/net/minecraft/server/level/ServerPlayer.java
@@ -759,6 +759,15 @@ public class ServerPlayer extends Player {
@@ -75,7 +75,7 @@ index a81b553a209834883a99ae971fed18d3a6d2ff32..2162dc6a29d89193030d263c9f810420
if (itemType == Items.WATER_BUCKET && target instanceof net.minecraft.world.entity.animal.Bucketable && target instanceof LivingEntity && resendData) {
target.resendPossiblyDesyncedEntityData(ServerGamePacketListenerImpl.this.player); // Paper - The entire mob gets deleted, so resend it
diff --git a/net/minecraft/world/entity/Entity.java b/net/minecraft/world/entity/Entity.java
index ce4d619ea9a5abb3f1bcbd4098a75c8d6155a7a7..65d63d55c74b1e336fc745e51ed2d6cf9f5747eb 100644
index 8b15ca2c245acc3241ba1847f8a79629f8fcd9ef..036512b44ffe707eb9a0ac013672aaacf810a7c1 100644
--- a/net/minecraft/world/entity/Entity.java
+++ b/net/minecraft/world/entity/Entity.java
@@ -3159,6 +3159,13 @@ public abstract class Entity
@@ -153,7 +153,7 @@ index ce4d619ea9a5abb3f1bcbd4098a75c8d6155a7a7..65d63d55c74b1e336fc745e51ed2d6cf
+ // Purpur end - Ridables
}
diff --git a/net/minecraft/world/entity/LivingEntity.java b/net/minecraft/world/entity/LivingEntity.java
index dccca794a79665db0dedddc6a42885a5738abd42..5a14b813628c7656e2ab0497ed3e13a3bf45117b 100644
index 98cc7f98a48f2f3bae9b3365ddec0e4d9aeed610..12ccae16354c2d90192a979a87ec92258449aad0 100644
--- a/net/minecraft/world/entity/LivingEntity.java
+++ b/net/minecraft/world/entity/LivingEntity.java
@@ -243,9 +243,9 @@ public abstract class LivingEntity extends Entity implements Attackable, Waypoin
@@ -243,7 +243,7 @@ index dccca794a79665db0dedddc6a42885a5738abd42..5a14b813628c7656e2ab0497ed3e13a3
// Paper end - Add EntityMoveEvent
if (this.level() instanceof ServerLevel serverLevel && this.isSensitiveToWater() && this.isInWaterOrRain()) {
diff --git a/net/minecraft/world/entity/Mob.java b/net/minecraft/world/entity/Mob.java
index 3ad8b4973534975fcf313e01f9cf77b447de8a2f..be578b5d4430e934342d3e80b70a1ea56b020a5c 100644
index 1e4f5bb32482b1e6510ab0322b42d2619f4a6c09..4c419772d7270dedf3d27d7147444decae2729d1 100644
--- a/net/minecraft/world/entity/Mob.java
+++ b/net/minecraft/world/entity/Mob.java
@@ -156,8 +156,8 @@ public abstract class Mob extends LivingEntity implements Targeting, EquipmentUs
@@ -257,7 +257,7 @@ index 3ad8b4973534975fcf313e01f9cf77b447de8a2f..be578b5d4430e934342d3e80b70a1ea5
this.jumpControl = new JumpControl(this);
this.bodyRotationControl = this.createBodyControl();
this.navigation = this.createNavigation(level);
@@ -597,6 +597,7 @@ public abstract class Mob extends LivingEntity implements Targeting, EquipmentUs
@@ -602,6 +602,7 @@ public abstract class Mob extends LivingEntity implements Targeting, EquipmentUs
}
}
} else {
@@ -265,7 +265,7 @@ index 3ad8b4973534975fcf313e01f9cf77b447de8a2f..be578b5d4430e934342d3e80b70a1ea5
this.igniteForSeconds(8.0F);
}
}
@@ -1361,7 +1362,7 @@ public abstract class Mob extends LivingEntity implements Targeting, EquipmentUs
@@ -1366,7 +1367,7 @@ public abstract class Mob extends LivingEntity implements Targeting, EquipmentUs
}
protected InteractionResult mobInteract(final Player player, final InteractionHand hand) {
@@ -274,7 +274,7 @@ index 3ad8b4973534975fcf313e01f9cf77b447de8a2f..be578b5d4430e934342d3e80b70a1ea5
}
protected void usePlayerItem(final Player player, final InteractionHand hand, final ItemStack itemStack) {
@@ -1704,4 +1705,58 @@ public abstract class Mob extends LivingEntity implements Targeting, EquipmentUs
@@ -1709,4 +1710,58 @@ public abstract class Mob extends LivingEntity implements Targeting, EquipmentUs
public float chargeSpeedModifier() {
return 1.0F;
}
@@ -4807,7 +4807,7 @@ index fe82f97689305de64caa52ef648308431f4aebb1..59265f8286a32a1fe7de1986df78b441
public boolean doHurtTarget(final ServerLevel level, final Entity target) {
if (super.doHurtTarget(level, target)) {
diff --git a/net/minecraft/world/entity/monster/spider/Spider.java b/net/minecraft/world/entity/monster/spider/Spider.java
index 90b9d94aec11bc3c83601290dfa2522c4ed63682..66189a304eb7f59da08679a7157ec882aa7396fc 100644
index c1280f4a7d49f46068c2bb514a662991114709ea..ce03474ce732b46826eb3adb628addaddb1b2851 100644
--- a/net/minecraft/world/entity/monster/spider/Spider.java
+++ b/net/minecraft/world/entity/monster/spider/Spider.java
@@ -52,15 +52,34 @@ public class Spider extends Monster {
@@ -4991,7 +4991,7 @@ index 4e5f6cf6c8ffc965fd3e6b3069998d2b39e4e779..dfb43d27865674f4f13050682eda38af
public boolean isSunSensitive() {
return false;
diff --git a/net/minecraft/world/entity/monster/zombie/Zombie.java b/net/minecraft/world/entity/monster/zombie/Zombie.java
index 84aeb8f0a7418843f28a13f433532bda1ea40ce1..004c70e25fbcf269cf5d8b7b5961341fd3f4e374 100644
index b0c8610dd3b8f7cf14db2d2f3169dfac106c0fee..e76895db48b00150a749a6e3d1fb2807dc9852bd 100644
--- a/net/minecraft/world/entity/monster/zombie/Zombie.java
+++ b/net/minecraft/world/entity/monster/zombie/Zombie.java
@@ -113,11 +113,30 @@ public class Zombie extends Monster {
@@ -5082,7 +5082,7 @@ index 2d294595b2d9e4daaf221482514329126d59f077..eb3ec4314603f61a041740d5b5e52165
protected void addBehaviourGoals() {
this.goalSelector.addGoal(1, new SpearUseGoal<>(this, 1.0, 1.0, 10.0F, 2.0F));
diff --git a/net/minecraft/world/entity/npc/villager/Villager.java b/net/minecraft/world/entity/npc/villager/Villager.java
index 6f7499343ee271486b1a7bc697df94871ee92204..a711cfcce0130dbc8e758568215e7a411774c5e4 100644
index 0f313abe1f7b2e9862d8231d71ce531c9f89a4cc..82813c07433f27b1186800e70df380a6b90644ec 100644
--- a/net/minecraft/world/entity/npc/villager/Villager.java
+++ b/net/minecraft/world/entity/npc/villager/Villager.java
@@ -252,6 +252,28 @@ public class Villager extends AbstractVillager implements VillagerDataHolder, Re

View File

@@ -5,7 +5,7 @@ Subject: [PATCH] Add mobGriefing override to everything affected
diff --git a/net/minecraft/world/entity/LivingEntity.java b/net/minecraft/world/entity/LivingEntity.java
index 2e7e5c4c42bcdb6135a088ffe0a7a8f4558dc12c..7146381e06ed1b946ce43dca293f52da05b46314 100644
index 9b7b285251aff741d8f2c19b3b558f81e77c0aaa..bf817c8cf1308a2621f387305b8d29af96a99f7f 100644
--- a/net/minecraft/world/entity/LivingEntity.java
+++ b/net/minecraft/world/entity/LivingEntity.java
@@ -1950,7 +1950,7 @@ public abstract class LivingEntity extends Entity implements Attackable, Waypoin
@@ -18,10 +18,10 @@ index 2e7e5c4c42bcdb6135a088ffe0a7a8f4558dc12c..7146381e06ed1b946ce43dca293f52da
BlockState state = Blocks.WITHER_ROSE.defaultBlockState();
if (this.level().getBlockState(pos).isAir() && state.canSurvive(this.level(), pos)) {
diff --git a/net/minecraft/world/entity/Mob.java b/net/minecraft/world/entity/Mob.java
index be578b5d4430e934342d3e80b70a1ea56b020a5c..43f1a9287d2a3010d35a88d58df3e950f1011eec 100644
index 4c419772d7270dedf3d27d7147444decae2729d1..7fe31c03780625ead30d4e629da4cca3bcf5b18c 100644
--- a/net/minecraft/world/entity/Mob.java
+++ b/net/minecraft/world/entity/Mob.java
@@ -560,7 +560,7 @@ public abstract class Mob extends LivingEntity implements Targeting, EquipmentUs
@@ -565,7 +565,7 @@ public abstract class Mob extends LivingEntity implements Targeting, EquipmentUs
&& this.canPickUpLoot()
&& this.isAlive()
&& !this.dead
@@ -131,7 +131,7 @@ index 3aefbdc3e537bc53bba296c7876dee93c95a77ca..4d79ce89c21ba0b973bbda01bf53665e
}
diff --git a/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java b/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java
index 7e39604a02561880a10d4bcebcd76135f9c1a122..51ca6a3fa75f3aef715d786a21327452390dde94 100644
index 671ad18c0d18f9773ef7b868a8d1d33d574986fb..a2e686c76d7080064c993712e0c0321b48fbb179 100644
--- a/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java
+++ b/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java
@@ -541,7 +541,7 @@ public class EnderDragon extends Mob implements Enemy {
@@ -320,7 +320,7 @@ index a47e5e38ef5c13da3827174121c1ec4b9ffbbce2..0dfb632b339b24564744b1f5c0d52d7f
}
diff --git a/net/minecraft/world/level/block/FarmlandBlock.java b/net/minecraft/world/level/block/FarmlandBlock.java
index 8bc58baa1542443235b57633d1e563f3487a2421..b51bb36da00bdfd25724579c0a4fb572abeefd81 100644
index d4a7099782965fe2c24c4e5fc48aab07a3f1ec45..830067a48d60d8fe85e0878cff2a7ad41cc7aed2 100644
--- a/net/minecraft/world/level/block/FarmlandBlock.java
+++ b/net/minecraft/world/level/block/FarmlandBlock.java
@@ -113,7 +113,7 @@ public class FarmlandBlock extends Block {

View File

@@ -6,7 +6,7 @@ Subject: [PATCH] API for any mob to burn daylight
Co-authored by: Encode42 <me@encode42.dev>
diff --git a/net/minecraft/world/entity/Entity.java b/net/minecraft/world/entity/Entity.java
index afcdf4aa479e27c858afab01191344e14a1f4ecc..5d581af745468f61048448c8a845990538662e3f 100644
index 036512b44ffe707eb9a0ac013672aaacf810a7c1..461d02c149b1864fdec12667abaff9080d5efe5a 100644
--- a/net/minecraft/world/entity/Entity.java
+++ b/net/minecraft/world/entity/Entity.java
@@ -452,6 +452,21 @@ public abstract class Entity
@@ -32,7 +32,7 @@ index afcdf4aa479e27c858afab01191344e14a1f4ecc..5d581af745468f61048448c8a8459905
this.type = type;
this.level = level;
diff --git a/net/minecraft/world/entity/LivingEntity.java b/net/minecraft/world/entity/LivingEntity.java
index 7146381e06ed1b946ce43dca293f52da05b46314..08324c0a0e87eb0ed8ea111389a3a9111031e034 100644
index bf817c8cf1308a2621f387305b8d29af96a99f7f..b8c805694fae68ed2bcc5470d6ee53c2de6443ab 100644
--- a/net/minecraft/world/entity/LivingEntity.java
+++ b/net/minecraft/world/entity/LivingEntity.java
@@ -291,6 +291,7 @@ public abstract class LivingEntity extends Entity implements Attackable, Waypoin
@@ -98,10 +98,10 @@ index 7146381e06ed1b946ce43dca293f52da05b46314..08324c0a0e87eb0ed8ea111389a3a911
protected void applyInput() {
diff --git a/net/minecraft/world/entity/Mob.java b/net/minecraft/world/entity/Mob.java
index 43f1a9287d2a3010d35a88d58df3e950f1011eec..44e3e723d6a796917e73012dbd03d4b36cb11a0e 100644
index 7fe31c03780625ead30d4e629da4cca3bcf5b18c..6651a03adb5cb18db71d814b57d2d754497cc782 100644
--- a/net/minecraft/world/entity/Mob.java
+++ b/net/minecraft/world/entity/Mob.java
@@ -550,9 +550,9 @@ public abstract class Mob extends LivingEntity implements Targeting, EquipmentUs
@@ -555,9 +555,9 @@ public abstract class Mob extends LivingEntity implements Targeting, EquipmentUs
@Override
public void aiStep() {
super.aiStep();
@@ -113,7 +113,7 @@ index 43f1a9287d2a3010d35a88d58df3e950f1011eec..44e3e723d6a796917e73012dbd03d4b3
ProfilerFiller profiler = Profiler.get();
profiler.push("looting");
@@ -604,16 +604,8 @@ public abstract class Mob extends LivingEntity implements Targeting, EquipmentUs
@@ -609,16 +609,8 @@ public abstract class Mob extends LivingEntity implements Targeting, EquipmentUs
}
public boolean isSunBurnTick() {
@@ -265,7 +265,7 @@ index 8d6262e99fb3ad98d3142ee069f07d2370ca0778..02e935edd7a6cabbf2e6fcc6c96a9601
@Override
diff --git a/net/minecraft/world/entity/monster/zombie/Zombie.java b/net/minecraft/world/entity/monster/zombie/Zombie.java
index 0777e4e0c3aa932699f124c83a571ce913327740..dffb152543d06380618c36cf89374b7d11336039 100644
index 6693ae88aa5780189faba8649346579f5b95b77e..f8eccfab70e7d99dd74965a506837e620515b6d1 100644
--- a/net/minecraft/world/entity/monster/zombie/Zombie.java
+++ b/net/minecraft/world/entity/monster/zombie/Zombie.java
@@ -102,11 +102,12 @@ public class Zombie extends Monster {

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Per mob mob_griefing loot pickup override
diff --git a/net/minecraft/world/entity/Mob.java b/net/minecraft/world/entity/Mob.java
index 44e3e723d6a796917e73012dbd03d4b36cb11a0e..34ce53202f0b1baaaaf2e5ae1bb9aede9f70aa62 100644
index 6651a03adb5cb18db71d814b57d2d754497cc782..eda42a44b69f9aece81a71b2e4d3fa009ed80629 100644
--- a/net/minecraft/world/entity/Mob.java
+++ b/net/minecraft/world/entity/Mob.java
@@ -560,7 +560,7 @@ public abstract class Mob extends LivingEntity implements Targeting, EquipmentUs
@@ -565,7 +565,7 @@ public abstract class Mob extends LivingEntity implements Targeting, EquipmentUs
&& this.canPickUpLoot()
&& this.isAlive()
&& !this.dead
@@ -17,7 +17,7 @@ index 44e3e723d6a796917e73012dbd03d4b36cb11a0e..34ce53202f0b1baaaaf2e5ae1bb9aede
Vec3i pickupReach = this.getPickupReach();
for (ItemEntity entity : this.level()
@@ -579,6 +579,12 @@ public abstract class Mob extends LivingEntity implements Targeting, EquipmentUs
@@ -584,6 +584,12 @@ public abstract class Mob extends LivingEntity implements Targeting, EquipmentUs
profiler.pop();
}
@@ -256,7 +256,7 @@ index 5d60b230eeaec9d37e286019b8d4276cfa85a9ea..55b2bd676f2e9633fc8250bcd984424e
public boolean isSunSensitive() {
return this.shouldBurnInDay; // Purpur - moved to LivingEntity; keep methods for ABI compatibility - API for any mob to burn daylight
diff --git a/net/minecraft/world/entity/monster/zombie/Zombie.java b/net/minecraft/world/entity/monster/zombie/Zombie.java
index 68070943966aac17e1878f6730781cf2b603be7a..88552e60c0b6b4bd68c3b82e84f2a7493803e6ec 100644
index cb1a685b136f06ab5884c269678cc9384af1dfed..a0b1399d8ea3aeb583dd0c0f1b5ec6300eacf28d 100644
--- a/net/minecraft/world/entity/monster/zombie/Zombie.java
+++ b/net/minecraft/world/entity/monster/zombie/Zombie.java
@@ -167,6 +167,13 @@ public class Zombie extends Monster {
@@ -310,7 +310,7 @@ index 9e893c0c033dcc2273275b92048d9b1a941d93f2..54ba4d2e8305e2d9ba0c9e71bae67bfd
protected void addBehaviourGoals() {
this.goalSelector.addGoal(1, new SpearUseGoal<>(this, 1.0, 1.0, 10.0F, 2.0F));
diff --git a/net/minecraft/world/entity/npc/villager/Villager.java b/net/minecraft/world/entity/npc/villager/Villager.java
index 297eba0bcf340f83c5d12ced343ccbfc738d4d35..dab982eed3c702486c1daaa480d795723102e164 100644
index b2130b1222321d066fdae4786fb25f59bbcf3fa5..e715a0b96a0758b6675091d3b9ce154ea41fd01c 100644
--- a/net/minecraft/world/entity/npc/villager/Villager.java
+++ b/net/minecraft/world/entity/npc/villager/Villager.java
@@ -298,6 +298,13 @@ public class Villager extends AbstractVillager implements VillagerDataHolder, Re

View File

@@ -8,15 +8,15 @@
protected Mob(final EntityType<? extends Mob> type, final Level level) {
super(type, level);
@@ -298,6 +_,7 @@
@@ -303,6 +_,7 @@
target = null;
}
}
+ if (target instanceof net.minecraft.server.level.ServerPlayer) this.ticksSinceLastInteraction = 0; // Purpur - Entity lifespan
this.target = this.asValidTarget(target);
this.target = target;
return true;
// CraftBukkit end
@@ -341,7 +_,27 @@
@@ -346,7 +_,27 @@
}
profiler.pop();
@@ -45,7 +45,7 @@
@Override
protected void playHurtSound(final DamageSource source) {
@@ -445,6 +_,7 @@
@@ -450,6 +_,7 @@
output.putString("Paper.DespawnInPeacefulOverride", this.despawnInPeacefulOverride.name());
}
// Paper end - allow changing despawnInPeaceful
@@ -53,7 +53,7 @@
}
@Override
@@ -472,6 +_,7 @@
@@ -477,6 +_,7 @@
this.lootTableSeed = input.getLongOr("DeathLootTableSeed", 0L);
this.setNoAi(input.getBooleanOr("NoAI", false));
this.aware = input.getBooleanOr("Bukkit.Aware", true); // CraftBukkit
@@ -61,7 +61,7 @@
// Paper start - allow changing despawnInPeaceful
this.despawnInPeacefulOverride = readDespawnInPeacefulOverride(input);
}
@@ -1250,7 +_,7 @@
@@ -1255,7 +_,7 @@
);
}
@@ -70,7 +70,7 @@
return groupData;
}
@@ -1607,6 +_,7 @@
@@ -1612,6 +_,7 @@
}
this.postPiercingAttack();

View File

@@ -4,8 +4,8 @@
if (passenger instanceof Player player) {
int temper = this.horse.getTemper();
int maxTemper = this.horse.getMaxTemper();
- if (maxTemper > 0 && this.horse.getRandom().nextInt(maxTemper) < temper && !org.bukkit.craftbukkit.event.CraftEventFactory.callEntityTameEvent(this.horse, ((org.bukkit.craftbukkit.entity.CraftHumanEntity) this.horse.getBukkitEntity().getPassenger()).getHandle()).isCancelled()) { // CraftBukkit - fire EntityTameEvent
+ if (((this.horse.level().purpurConfig.alwaysTameInCreative && player.hasInfiniteMaterials()) || (maxTemper > 0 && this.horse.getRandom().nextInt(maxTemper) < temper)) && !org.bukkit.craftbukkit.event.CraftEventFactory.callEntityTameEvent(this.horse, ((org.bukkit.craftbukkit.entity.CraftHumanEntity) this.horse.getBukkitEntity().getPassenger()).getHandle()).isCancelled()) { // CraftBukkit - fire EntityTameEvent // Purpur - Config to always tame in Creative
- if (maxTemper > 0 && this.horse.getRandom().nextInt(maxTemper) < temper && !org.bukkit.craftbukkit.event.CraftEventFactory.callEntityTameEvent(this.horse, player).isCancelled()) { // CraftBukkit - fire EntityTameEvent
+ if (((this.horse.level().purpurConfig.alwaysTameInCreative && player.hasInfiniteMaterials()) || (maxTemper > 0 && this.horse.getRandom().nextInt(maxTemper) < temper)) && !org.bukkit.craftbukkit.event.CraftEventFactory.callEntityTameEvent(this.horse, player).isCancelled()) { // CraftBukkit - fire EntityTameEvent // Purpur - Config to always tame in Creative
this.horse.tameWithName(player);
return;
}

View File

@@ -1,6 +1,6 @@
--- a/net/minecraft/world/level/block/ChestBlock.java
+++ b/net/minecraft/world/level/block/ChestBlock.java
@@ -380,6 +_,7 @@
@@ -352,6 +_,7 @@
}
public static boolean isBlockedChestByBlock(final BlockGetter level, final BlockPos pos) {

View File

@@ -36,7 +36,7 @@ index c5a866735d7d918ea58306ea2299a8b82be52f3f..d6ddbcff911ce4c97a20883af10d2b47
+ // Purpur end - Ridables
}
diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
index 29124cd1cf3b8fcbaa82430f6aecac5662d0a9b8..ad65c2c26195ffa423a59ae6b67d910d528aee09 100644
index 1651f3cc24120acffb073c2b736fbd410358f630..60bc33303bc2084ff13634d0997b6d811611433d 100644
--- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
+++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
@@ -646,6 +646,15 @@ public class CraftEventFactory {
@@ -55,7 +55,7 @@ index 29124cd1cf3b8fcbaa82430f6aecac5662d0a9b8..ad65c2c26195ffa423a59ae6b67d910d
return event;
}
@@ -1167,6 +1176,7 @@ public class CraftEventFactory {
@@ -1158,6 +1167,7 @@ public class CraftEventFactory {
EntityDamageEvent event;
if (damager != null) {
event = new EntityDamageByEntityEvent(damager.getBukkitEntity(), damagee.getBukkitEntity(), cause, bukkitDamageSource, modifiers, modifierFunctions, critical);

View File

@@ -106,7 +106,7 @@
@Override
public List<Recipe> getRecipesFor(ItemStack result) {
Preconditions.checkArgument(result != null, "ItemStack cannot be null");
@@ -2736,6 +_,18 @@
@@ -2733,6 +_,18 @@
return CraftServer.this.console.paperConfigurations.createLegacyObject(CraftServer.this.console);
}
@@ -125,7 +125,7 @@
@Override
public void restart() {
CraftServer.this.restart();
@@ -2971,4 +_,18 @@
@@ -2968,4 +_,18 @@
public void allowPausing(final Plugin plugin, final boolean value) {
this.console.addPluginAllowingSleep(plugin.getName(), value);
}

View File

@@ -1,6 +1,6 @@
--- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
@@ -1924,6 +_,52 @@
@@ -1925,6 +_,52 @@
return (this.getHandle().getDragonFight() == null) ? null : new CraftDragonBattle(this.getHandle().getDragonFight());
}

View File

@@ -1,6 +1,6 @@
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftItem.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftItem.java
@@ -145,4 +_,53 @@
@@ -143,4 +_,53 @@
public UUID getThrower() {
return Optionull.map(this.getHandle().thrower, EntityReference::getUUID);
}

View File

@@ -1,6 +1,6 @@
--- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemStack.java
+++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemStack.java
@@ -672,4 +_,285 @@
@@ -686,4 +_,285 @@
}
// Paper end - data component API

View File

@@ -1,6 +1,6 @@
--- a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
+++ b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
@@ -486,7 +_,7 @@
@@ -485,7 +_,7 @@
@Override
public com.destroystokyo.paper.util.VersionFetcher getVersionFetcher() {