Initial 1.18 update

This commit is contained in:
Nassim Jahnke
2022-02-28 22:43:03 -07:00
parent 0fb6f13944
commit da03d4a1bc
155 changed files with 823 additions and 1298 deletions

View File

@@ -10,22 +10,10 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
+++ b/src/main/java/net/minecraft/world/entity/item/FallingBlockEntity.java
@@ -0,0 +0,0 @@ public class FallingBlockEntity extends Entity {
if (this.time++ == 0) {
blockposition = this.blockPosition();
- if (this.level.getBlockState(blockposition).is(block) && !CraftEventFactory.callEntityChangeBlockEvent(this, blockposition, Blocks.AIR.defaultBlockState()).isCancelled()) {
- this.level.removeBlock(blockposition, false);
+ // Paper start - fix cancelling block falling causing client desync
+ if (this.level.getBlockState(blockposition).is(block)) {
+ if (CraftEventFactory.callEntityChangeBlockEvent(this, blockposition, Blocks.AIR.defaultBlockState()).isCancelled()) {
+ if (this.level.getBlockState(blockposition).is(block)) { //if listener didn't update the block
+ ((ServerLevel) level).getChunkSource().blockChanged(blockposition);
+ }
+ this.discard();
+ return;
+ } else {
+ this.level.removeBlock(blockposition, false);
+ }
+ // Paper end - fix cancelling block falling causing client desync
} else if (!this.level.isClientSide) {
this.discard();
return;
// CraftBukkit start
if (CraftEventFactory.callEntityChangeBlockEvent(this, blockposition, this.blockState).isCancelled()) {
- this.discard(); // SPIGOT-6586 called before the event in previous versions
+ this.discard(); // SPIGOT-6586 called before the event in previous versions //TODO test if desync happens on cancel
return;
}
// CraftBukkit end