mirror of
https://github.com/PaperMC/Paper.git
synced 2024-11-05 18:31:29 +01:00
FallingBlock auto expire setting (#7037)
This commit is contained in:
parent
a117da6b26
commit
f3a8a0b953
34
patches/api/0383-FallingBlock-auto-expire-setting.patch
Normal file
34
patches/api/0383-FallingBlock-auto-expire-setting.patch
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Owen1212055 <23108066+Owen1212055@users.noreply.github.com>
|
||||||
|
Date: Sun, 5 Dec 2021 14:58:55 -0500
|
||||||
|
Subject: [PATCH] FallingBlock auto expire setting
|
||||||
|
|
||||||
|
|
||||||
|
diff --git a/src/main/java/org/bukkit/entity/FallingBlock.java b/src/main/java/org/bukkit/entity/FallingBlock.java
|
||||||
|
index 14cb0d770561151570ab4399ca5facff43076819..ae8fab2395e56d25227b5877b8648510c73bf948 100644
|
||||||
|
--- a/src/main/java/org/bukkit/entity/FallingBlock.java
|
||||||
|
+++ b/src/main/java/org/bukkit/entity/FallingBlock.java
|
||||||
|
@@ -65,4 +65,23 @@ public interface FallingBlock extends Entity {
|
||||||
|
default org.bukkit.Location getSourceLoc() {
|
||||||
|
return this.getOrigin();
|
||||||
|
}
|
||||||
|
+ // Paper Start - Auto expire setting
|
||||||
|
+ /**
|
||||||
|
+ * Sets if this falling block should expire after:
|
||||||
|
+ * - 30 seconds
|
||||||
|
+ * - 5 seconds and is outside of the world
|
||||||
|
+ *
|
||||||
|
+ * @return if this behavior occurs
|
||||||
|
+ */
|
||||||
|
+ boolean doesAutoExpire();
|
||||||
|
+
|
||||||
|
+ /**
|
||||||
|
+ * Sets if this falling block should expire after:
|
||||||
|
+ * - 30 seconds
|
||||||
|
+ * - 5 seconds and is outside of the world
|
||||||
|
+ *
|
||||||
|
+ * @param autoExpires if this behavior should occur
|
||||||
|
+ */
|
||||||
|
+ void shouldAutoExpire(boolean autoExpires);
|
||||||
|
+ // Paper End - Auto expire setting
|
||||||
|
}
|
68
patches/server/0903-FallingBlock-auto-expire-setting.patch
Normal file
68
patches/server/0903-FallingBlock-auto-expire-setting.patch
Normal file
@ -0,0 +1,68 @@
|
|||||||
|
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Owen1212055 <23108066+Owen1212055@users.noreply.github.com>
|
||||||
|
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 46102c28d10b11ecbafd3dda2de66982eaed8a00..318ea6ebf4c13a984b3815f00bf6cb3856ff6fe0 100644
|
||||||
|
--- a/src/main/java/net/minecraft/world/entity/item/FallingBlockEntity.java
|
||||||
|
+++ b/src/main/java/net/minecraft/world/entity/item/FallingBlockEntity.java
|
||||||
|
@@ -61,6 +61,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);
|
||||||
|
@@ -175,7 +176,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);
|
||||||
|
}
|
||||||
|
@@ -321,6 +322,7 @@ public class FallingBlockEntity extends Entity {
|
||||||
|
if (this.blockData != null) {
|
||||||
|
nbt.put("TileEntityData", this.blockData);
|
||||||
|
}
|
||||||
|
+ if (!autoExpire) {nbt.putBoolean("Paper.AutoExpire", false);} // Paper - AutoExpire setting
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@@ -367,6 +369,10 @@ public class FallingBlockEntity extends Entity {
|
||||||
|
int srcZ = nbt.getInt("SourceLoc_z");
|
||||||
|
this.setOrigin(new org.bukkit.Location(level.getWorld(), srcX, srcY, srcZ));
|
||||||
|
}
|
||||||
|
+
|
||||||
|
+ if (nbt.contains("Paper.AutoExpire")) {
|
||||||
|
+ this.autoExpire = nbt.getBoolean("Paper.AutoExpire");
|
||||||
|
+ }
|
||||||
|
// Paper end
|
||||||
|
}
|
||||||
|
|
||||||
|
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftFallingBlock.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftFallingBlock.java
|
||||||
|
index 0de415236fe9997fc3ffedba20b8df68647cb822..87c413c2f3b59ae9ef36e5becc10b29a81348022 100644
|
||||||
|
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftFallingBlock.java
|
||||||
|
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftFallingBlock.java
|
||||||
|
@@ -58,6 +58,17 @@ public class CraftFallingBlock extends CraftEntity implements FallingBlock {
|
||||||
|
public void setHurtEntities(boolean hurtEntities) {
|
||||||
|
this.getHandle().hurtEntities = hurtEntities;
|
||||||
|
}
|
||||||
|
+ // 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
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void setTicksLived(int value) {
|
Loading…
Reference in New Issue
Block a user