diff options
Diffstat (limited to 'patches/server/0826-FallingBlock-auto-expire-setting.patch')
-rw-r--r-- | patches/server/0826-FallingBlock-auto-expire-setting.patch | 67 |
1 files changed, 67 insertions, 0 deletions
diff --git a/patches/server/0826-FallingBlock-auto-expire-setting.patch b/patches/server/0826-FallingBlock-auto-expire-setting.patch new file mode 100644 index 0000000000..ed07517265 --- /dev/null +++ b/patches/server/0826-FallingBlock-auto-expire-setting.patch @@ -0,0 +1,67 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Owen1212055 <[email protected]> +Date: Sun, 5 Dec 2021 14:58:17 -0500 +Subject: [PATCH] FallingBlock auto expire setting + + +diff --git a/src/main/java/net/minecraft/world/entity/item/FallingBlockEntity.java b/src/main/java/net/minecraft/world/entity/item/FallingBlockEntity.java +index 4a44109df0aece6661567dac5ebf6355de5d58c7..eff81e846f696349b3bd3d26c02442f157b169f0 100644 +--- a/src/main/java/net/minecraft/world/entity/item/FallingBlockEntity.java ++++ b/src/main/java/net/minecraft/world/entity/item/FallingBlockEntity.java +@@ -64,6 +64,7 @@ public class FallingBlockEntity extends Entity { + @Nullable + public CompoundTag blockData; + protected static final EntityDataAccessor<BlockPos> DATA_START_POS = SynchedEntityData.defineId(FallingBlockEntity.class, EntityDataSerializers.BLOCK_POS); ++ public boolean autoExpire = true; // Paper - Auto expire setting + + public FallingBlockEntity(EntityType<? extends FallingBlockEntity> type, Level world) { + super(type, world); +@@ -178,7 +179,7 @@ public class FallingBlockEntity extends Entity { + } + + if (!this.onGround() && !flag1) { +- if (!this.level().isClientSide && (this.time > 100 && (blockposition.getY() <= this.level().getMinBuildHeight() || blockposition.getY() > this.level().getMaxBuildHeight()) || this.time > 600)) { ++ if (!this.level().isClientSide && ((this.time > 100 && autoExpire) && (blockposition.getY() <= this.level().getMinBuildHeight() || blockposition.getY() > this.level().getMaxBuildHeight()) || (this.time > 600 && autoExpire))) { // Paper - Auto expire setting + if (this.dropItem && this.level().getGameRules().getBoolean(GameRules.RULE_DOENTITYDROPS)) { + this.spawnAtLocation((ItemLike) block); + } +@@ -326,6 +327,7 @@ public class FallingBlockEntity extends Entity { + } + + nbt.putBoolean("CancelDrop", this.cancelDrop); ++ if (!autoExpire) {nbt.putBoolean("Paper.AutoExpire", false);} // Paper - AutoExpire setting + } + + @Override +@@ -361,6 +363,11 @@ public class FallingBlockEntity extends Entity { + this.setOrigin(new org.bukkit.Location(this.level().getWorld(), srcX, srcY, srcZ)); + } + // Paper end ++ // Paper start ++ if (nbt.contains("Paper.AutoExpire")) { ++ this.autoExpire = nbt.getBoolean("Paper.AutoExpire"); ++ } ++ // Paper end + } + + public void setHurtsEntities(float fallHurtAmount, int fallHurtMax) { +diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftFallingBlock.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftFallingBlock.java +index 4a4fe85abb4ddd62e04f348e5be8b98ca4d4fbdc..e99314b905a7ed54ceeb156ed92ff1a5793df99a 100644 +--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftFallingBlock.java ++++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftFallingBlock.java +@@ -97,4 +97,15 @@ public class CraftFallingBlock extends CraftEntity implements FallingBlock { + this.setHurtEntities(true); + } + } ++ // Paper Start - Auto expire setting ++ @Override ++ public boolean doesAutoExpire() { ++ return this.getHandle().autoExpire; ++ } ++ ++ @Override ++ public void shouldAutoExpire(boolean autoExpires) { ++ this.getHandle().autoExpire = autoExpires; ++ } ++ // Paper End - Auto expire setting + } |