geforkt von Mirrors/Paper
8175ec916f
Should fix #1280 Citizens hijacks entity map, and im guessing under the right conditions the result might actually be null during entity creation Pre the cache patch, the id is looked up on save, so it was fine. Now, if its null and the save ID is requested, we will try to look it up again and cache it if found.
81 Zeilen
3.7 KiB
Diff
81 Zeilen
3.7 KiB
Diff
From 7465f3a6749b94c0f59bd6149c59a5fa7e9d7140 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 cef0c47ac..38a697e1b 100644
|
|
--- a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java
|
|
+++ b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java
|
|
@@ -114,4 +114,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 f1e71de42..d6cf65db6 100644
|
|
--- a/src/main/java/net/minecraft/server/Entity.java
|
|
+++ b/src/main/java/net/minecraft/server/Entity.java
|
|
@@ -1885,6 +1885,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 e7e7d57c4..5e01aa0f8 100644
|
|
--- a/src/main/java/net/minecraft/server/EntityFallingBlock.java
|
|
+++ b/src/main/java/net/minecraft/server/EntityFallingBlock.java
|
|
@@ -86,6 +86,17 @@ public class EntityFallingBlock extends Entity {
|
|
}
|
|
|
|
this.move(EnumMoveType.SELF, this.motX, this.motY, this.motZ);
|
|
+
|
|
+ // 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("doEntityDrops")) {
|
|
+ this.dropItem(new ItemStack(block), 0.0F);
|
|
+ }
|
|
+
|
|
+ this.die();
|
|
+ }
|
|
+ // 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 7edc02852..5ceb3f206 100644
|
|
--- a/src/main/java/net/minecraft/server/EntityTNTPrimed.java
|
|
+++ b/src/main/java/net/minecraft/server/EntityTNTPrimed.java
|
|
@@ -57,6 +57,13 @@ public class EntityTNTPrimed extends Entity {
|
|
}
|
|
|
|
this.move(EnumMoveType.SELF, this.motX, this.motY, this.motZ);
|
|
+
|
|
+ // Paper start - Configurable TNT entity height nerf
|
|
+ if (this.world.paperConfig.entityTNTHeightNerf != 0 && this.locY > this.world.paperConfig.entityTNTHeightNerf) {
|
|
+ this.die();
|
|
+ }
|
|
+ // Paper end
|
|
+
|
|
this.motX *= 0.9800000190734863D;
|
|
this.motY *= 0.9800000190734863D;
|
|
this.motZ *= 0.9800000190734863D;
|
|
--
|
|
2.18.0
|
|
|