mirror of
https://github.com/PurpurMC/Purpur.git
synced 2026-04-20 18:28:15 +02:00
Updated Upstream (Paper)
Upstream has released updates that appear to apply and compile correctly Paper Changes: PaperMC/Paper@a7ae966 readd itemstack data sanitization (#10454) PaperMC/Paper@ca50b87 Clear firework item properly (#10793) PaperMC/Paper@9774a52 fix and cleanup loot table patches (#10100) PaperMC/Paper@ac4ee06 Fix integer overflow for lag compensating eating check (#10797) PaperMC/Paper@6649a17 Fix BlockStateMeta equals (#10795) PaperMC/Paper@1b8cdc6 Extend Player Interact cancellation to cover Jigsaw blocks (#10719) PaperMC/Paper@841ab41 Fix more item desync when an event is cancelled (#10654) PaperMC/Paper@b0e3ca4 Prevent NPE if hooked entity was cleared (#10712) PaperMC/Paper@347bbe3 Fix Cancelling BlockPlaceEvent calling onRemove (#10773)
This commit is contained in:
@@ -46,10 +46,10 @@ index ca56a0b596976448da6bb2a0e82b3d5cd4133e12..6247659f33c3d21d33ec1f5105234036
|
||||
public LevelChunk getChunkIfLoaded(int x, int z) {
|
||||
return this.chunkSource.getChunkAtIfLoadedImmediately(x, z); // Paper - Use getChunkIfLoadedImmediately
|
||||
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java
|
||||
index 0f8c2ff5e2d0d396e85e26e0a03a761e9bb25654..c1d6a2c82e240a7c50b4cb973c285b816f7ec419 100644
|
||||
index 8a183fc9d0a79dd9a952bc1759c53da286908188..5dd8c9f53ba50f160198a09dd2069edbac48230e 100644
|
||||
--- a/src/main/java/net/minecraft/server/level/ServerPlayer.java
|
||||
+++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java
|
||||
@@ -814,6 +814,15 @@ public class ServerPlayer extends Player {
|
||||
@@ -815,6 +815,15 @@ public class ServerPlayer extends Player {
|
||||
this.trackEnteredOrExitedLavaOnVehicle();
|
||||
this.updatePlayerAttributes();
|
||||
this.advancements.flushDirty(this);
|
||||
@@ -66,7 +66,7 @@ index 0f8c2ff5e2d0d396e85e26e0a03a761e9bb25654..c1d6a2c82e240a7c50b4cb973c285b81
|
||||
|
||||
private void updatePlayerAttributes() {
|
||||
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
|
||||
index b9b3277c8ed94e0cd30b20b9c00a33eaad48e5ac..647026afdb161e21ff55dc9a3d470eef5502571f 100644
|
||||
index c450447585af4c8cdc87abe871c229ff895c3e53..a33a724de4c408fcf23b8ec9206311fc25936f1c 100644
|
||||
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
|
||||
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
|
||||
@@ -2772,6 +2772,8 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
|
||||
@@ -79,10 +79,10 @@ index b9b3277c8ed94e0cd30b20b9c00a33eaad48e5ac..647026afdb161e21ff55dc9a3d470eef
|
||||
if ((entity instanceof Bucketable && entity instanceof LivingEntity && origItem != null && origItem.asItem() == Items.WATER_BUCKET) && (event.isCancelled() || ServerGamePacketListenerImpl.this.player.getInventory().getSelected() == null || ServerGamePacketListenerImpl.this.player.getInventory().getSelected().getItem() != origItem)) {
|
||||
entity.resendPossiblyDesyncedEntityData(ServerGamePacketListenerImpl.this.player); // Paper - The entire mob gets deleted, so resend it.
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
|
||||
index 95c88ac0142551fbcfd2356be2fc70f7a78278ab..973e4c24a53fecad99fa5740c9c3cedd1320821b 100644
|
||||
index ffcd965586acc5993c8122336ea2ec661932d4b7..b976ea5d919f73c406adea90603f4a78b761fd25 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/Entity.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
|
||||
@@ -381,7 +381,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
|
||||
@@ -380,7 +380,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
|
||||
private final Set<String> tags;
|
||||
private final double[] pistonDeltas;
|
||||
private long pistonDeltasGameTime;
|
||||
@@ -91,7 +91,7 @@ index 95c88ac0142551fbcfd2356be2fc70f7a78278ab..973e4c24a53fecad99fa5740c9c3cedd
|
||||
private float eyeHeight;
|
||||
public boolean isInPowderSnow;
|
||||
public boolean wasInPowderSnow;
|
||||
@@ -3086,6 +3086,13 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
|
||||
@@ -3085,6 +3085,13 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
|
||||
this.passengers = ImmutableList.copyOf(list);
|
||||
}
|
||||
|
||||
@@ -105,7 +105,7 @@ index 95c88ac0142551fbcfd2356be2fc70f7a78278ab..973e4c24a53fecad99fa5740c9c3cedd
|
||||
this.gameEvent(GameEvent.ENTITY_MOUNT, passenger);
|
||||
}
|
||||
}
|
||||
@@ -3125,6 +3132,14 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
|
||||
@@ -3124,6 +3131,14 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
|
||||
return false;
|
||||
}
|
||||
// CraftBukkit end
|
||||
@@ -120,7 +120,7 @@ index 95c88ac0142551fbcfd2356be2fc70f7a78278ab..973e4c24a53fecad99fa5740c9c3cedd
|
||||
if (this.passengers.size() == 1 && this.passengers.get(0) == entity) {
|
||||
this.passengers = ImmutableList.of();
|
||||
} else {
|
||||
@@ -5015,4 +5030,44 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
|
||||
@@ -5014,4 +5029,44 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
|
||||
return ((net.minecraft.server.level.ServerChunkCache) level.getChunkSource()).isPositionTicking(this);
|
||||
}
|
||||
// Paper end - Expose entity id counter
|
||||
@@ -190,7 +190,7 @@ index 09fdea983772612ef3fff6b2da3cf469a34e4ec0..aa76a24421cdb3908a3544d92eb3d1e3
|
||||
protected ParticleOptions getInkParticle() {
|
||||
return ParticleTypes.GLOW_SQUID_INK;
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java
|
||||
index ef0f118aecf0893e45cb9423a677d7e42496324b..593db87486031d6e21b574a755b16bf6f5c5bf95 100644
|
||||
index 0ddf2e1a6d2ea836f8a140a435721e0ce96bd8d2..f790211062a14b5d70dac178c31bfc7033779222 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/LivingEntity.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java
|
||||
@@ -229,9 +229,9 @@ public abstract class LivingEntity extends Entity implements Attackable {
|
||||
@@ -268,7 +268,7 @@ index ef0f118aecf0893e45cb9423a677d7e42496324b..593db87486031d6e21b574a755b16bf6
|
||||
// Paper end - Add EntityMoveEvent
|
||||
if (!this.level().isClientSide && this.isSensitiveToWater() && this.isInWaterRainOrBubble()) {
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/Mob.java b/src/main/java/net/minecraft/world/entity/Mob.java
|
||||
index e89f9c3e887601d8461eb967ae0bf582b672f631..26b03594b6ccd69ca35156472e27543d11ba2077 100644
|
||||
index 9f42563699508fcb3d8a96cfdfc25a7bffd99759..9534ad75d46e2c379a4a850337a6d7568f863f50 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/Mob.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/Mob.java
|
||||
@@ -165,8 +165,8 @@ public abstract class Mob extends LivingEntity implements EquipmentUser, Targeti
|
||||
@@ -816,7 +816,7 @@ index 824e5e4fe7619ae46061c3c978c9a044db8c84ab..e2a98b45e56a368de19bb65e304370a5
|
||||
public ItemStack getBucketItemStack() {
|
||||
return new ItemStack(Items.COD_BUCKET);
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/animal/Cow.java b/src/main/java/net/minecraft/world/entity/animal/Cow.java
|
||||
index 5a7b1be351834a6b8889b1380cede1be025cb302..41b6c79c31414378d433500a35e434e546738e42 100644
|
||||
index e336934f37075a827843e4b1bb2b6b660d2c60c9..8c6bda1ed0408fa1c7cc772097159410443b7fae 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/animal/Cow.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/animal/Cow.java
|
||||
@@ -44,9 +44,27 @@ public class Cow extends Animal {
|
||||
@@ -855,10 +855,10 @@ index 5a7b1be351834a6b8889b1380cede1be025cb302..41b6c79c31414378d433500a35e434e5
|
||||
ItemStack itemstack = player.getItemInHand(hand);
|
||||
|
||||
if (itemstack.is(Items.BUCKET) && !this.isBaby()) {
|
||||
@@ -101,7 +120,7 @@ public class Cow extends Animal {
|
||||
PlayerBucketFillEvent event = CraftEventFactory.callPlayerBucketFillEvent((ServerLevel) player.level(), player, this.blockPosition(), this.blockPosition(), null, itemstack, Items.MILK_BUCKET, hand);
|
||||
@@ -102,7 +121,7 @@ public class Cow extends Animal {
|
||||
|
||||
if (event.isCancelled()) {
|
||||
player.containerMenu.sendAllDataToRemote(); // Paper - Fix inventory desync
|
||||
- return InteractionResult.PASS;
|
||||
+ return tryRide(player, hand); // Purpur
|
||||
}
|
||||
@@ -2332,7 +2332,7 @@ index 290d41136f5ec7671bc4990dfe50da0a770c124d..b98a34357e59168bbb22c967b86a449f
|
||||
this.level().getProfiler().pop();
|
||||
this.level().getProfiler().push("tadpoleActivityUpdate");
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/animal/goat/Goat.java b/src/main/java/net/minecraft/world/entity/animal/goat/Goat.java
|
||||
index 02e49c7ae5e120302b6479cf3e3934b9217eebf0..9cd8220a1e5e43c141ad27df4969e66ef3746ecd 100644
|
||||
index 376bcbc189008464f4d518c1e07643431ba96306..691f5020df77b01523d1e292be40552089e2f538 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/animal/goat/Goat.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/animal/goat/Goat.java
|
||||
@@ -91,6 +91,23 @@ public class Goat extends Animal {
|
||||
|
||||
Reference in New Issue
Block a user