57dd397155
Upstream has released updates that appears to apply and compile correctly. This update has not been tested by PaperMC and as with ANY update, please do your own testing Bukkit Changes: b999860d SPIGOT-2304: Add LootGenerateEvent CraftBukkit Changes: 77fd87e4 SPIGOT-2304: Implement LootGenerateEvent a1a705ee SPIGOT-5566: Doused campfires & fires should call EntityChangeBlockEvent 41712edd SPIGOT-5707: PersistentDataHolder not Persistent on API dropped Item
79 lines
3.7 KiB
Diff
79 lines
3.7 KiB
Diff
From ad87983cdd6c3b9fcd615e75b23dca3290404587 Mon Sep 17 00:00:00 2001
|
|
From: Byteflux <byte@byteflux.net>
|
|
Date: Tue, 1 Mar 2016 14:14:15 -0600
|
|
Subject: [PATCH] Drop falling block and tnt entities at the specified height
|
|
|
|
|
|
diff --git a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java
|
|
index 8ee2b9bb1b..d59b82b7bb 100644
|
|
--- a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java
|
|
+++ b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java
|
|
@@ -119,4 +119,14 @@ public class PaperWorldConfig {
|
|
keepSpawnInMemory = getBoolean("keep-spawn-loaded", true);
|
|
log("Keep spawn chunk loaded: " + keepSpawnInMemory);
|
|
}
|
|
+
|
|
+ public int fallingBlockHeightNerf;
|
|
+ public int entityTNTHeightNerf;
|
|
+ private void heightNerfs() {
|
|
+ fallingBlockHeightNerf = getInt("falling-block-height-nerf", 0);
|
|
+ entityTNTHeightNerf = getInt("tnt-entity-height-nerf", 0);
|
|
+
|
|
+ if (fallingBlockHeightNerf != 0) log("Falling Block Height Limit set to Y: " + fallingBlockHeightNerf);
|
|
+ if (entityTNTHeightNerf != 0) log("TNT Entity Height Limit set to Y: " + entityTNTHeightNerf);
|
|
+ }
|
|
}
|
|
diff --git a/src/main/java/net/minecraft/server/Entity.java b/src/main/java/net/minecraft/server/Entity.java
|
|
index 23497aa934..9647d7850c 100644
|
|
--- a/src/main/java/net/minecraft/server/Entity.java
|
|
+++ b/src/main/java/net/minecraft/server/Entity.java
|
|
@@ -1818,6 +1818,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
|
|
return this.a(itemstack, 0.0F);
|
|
}
|
|
|
|
+ @Nullable public final EntityItem dropItem(ItemStack itemstack, float offset) { return this.a(itemstack, offset); } // Paper - OBFHELPER
|
|
@Nullable
|
|
public EntityItem a(ItemStack itemstack, float f) {
|
|
if (itemstack.isEmpty()) {
|
|
diff --git a/src/main/java/net/minecraft/server/EntityFallingBlock.java b/src/main/java/net/minecraft/server/EntityFallingBlock.java
|
|
index 4b4e71bf70..2097ec535e 100644
|
|
--- a/src/main/java/net/minecraft/server/EntityFallingBlock.java
|
|
+++ b/src/main/java/net/minecraft/server/EntityFallingBlock.java
|
|
@@ -85,6 +85,17 @@ public class EntityFallingBlock extends Entity {
|
|
}
|
|
|
|
this.move(EnumMoveType.SELF, this.getMot());
|
|
+
|
|
+ // Paper start - Configurable EntityFallingBlock height nerf
|
|
+ if (this.world.paperConfig.fallingBlockHeightNerf != 0 && this.locY() > this.world.paperConfig.fallingBlockHeightNerf) {
|
|
+ if (this.dropItem && this.world.getGameRules().getBoolean(GameRules.DO_ENTITY_DROPS)) {
|
|
+ this.a(block);
|
|
+ }
|
|
+
|
|
+ this.die();
|
|
+ return;
|
|
+ }
|
|
+ // Paper end
|
|
if (!this.world.isClientSide) {
|
|
blockposition = new BlockPosition(this);
|
|
boolean flag = this.block.getBlock() instanceof BlockConcretePowder;
|
|
diff --git a/src/main/java/net/minecraft/server/EntityTNTPrimed.java b/src/main/java/net/minecraft/server/EntityTNTPrimed.java
|
|
index d042124362..d9fd4448c7 100644
|
|
--- a/src/main/java/net/minecraft/server/EntityTNTPrimed.java
|
|
+++ b/src/main/java/net/minecraft/server/EntityTNTPrimed.java
|
|
@@ -54,6 +54,12 @@ public class EntityTNTPrimed extends Entity {
|
|
}
|
|
|
|
this.move(EnumMoveType.SELF, this.getMot());
|
|
+ // Paper start - Configurable TNT entity height nerf
|
|
+ if (this.world.paperConfig.entityTNTHeightNerf != 0 && this.locY() > this.world.paperConfig.entityTNTHeightNerf) {
|
|
+ this.die();
|
|
+ return;
|
|
+ }
|
|
+ // Paper end
|
|
this.setMot(this.getMot().a(0.98D));
|
|
if (this.onGround) {
|
|
this.setMot(this.getMot().d(0.7D, -0.5D, 0.7D));
|
|
--
|
|
2.26.2
|
|
|