Mirror von
https://github.com/PaperMC/Paper.git
synchronisiert 2024-12-16 11:30:06 +01:00
ec6a9a3e47
Upstream has released updates that appear 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: 38866413 SPIGOT-6765: Pass WorldInfo, Random and coordinates to ChunkGenerator should methods CraftBukkit Changes: f3dab3a48 SPIGOT-7191: TNT minecart explosions crash the server b5aa0bed9 SPIGOT-7184: ExplosionPrimeEvent not called for ExplosiveMinecart e7aab5493 SPIGOT-6765: Pass WorldInfo, Random and coordinates to ChunkGenerator should methods
64 Zeilen
3.3 KiB
Diff
64 Zeilen
3.3 KiB
Diff
From 0000000000000000000000000000000000000000 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
|
|
|
|
Co-authored-by: Jake Potrebic <jake.m.potrebic@gmail.com>
|
|
|
|
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 7e1594e8df4fd09cd1aecbc5f3784797b04a8337..ba5f365cc0ae9773e63ff58ad0a8f8bb4087889a 100644
|
|
--- a/src/main/java/net/minecraft/world/entity/item/FallingBlockEntity.java
|
|
+++ b/src/main/java/net/minecraft/world/entity/item/FallingBlockEntity.java
|
|
@@ -137,6 +137,17 @@ public class FallingBlockEntity extends Entity {
|
|
}
|
|
|
|
this.move(MoverType.SELF, this.getDeltaMovement());
|
|
+
|
|
+ // Paper start - Configurable EntityFallingBlock height nerf
|
|
+ if (this.level.paperConfig().fixes.fallingBlockHeightNerf.test(v -> this.getY() > v)) {
|
|
+ if (this.dropItem && this.level.getGameRules().getBoolean(GameRules.RULE_DOENTITYDROPS)) {
|
|
+ this.spawnAtLocation(block);
|
|
+ }
|
|
+
|
|
+ this.discard();
|
|
+ return;
|
|
+ }
|
|
+ // Paper end
|
|
if (!this.level.isClientSide) {
|
|
BlockPos blockposition = this.blockPosition();
|
|
boolean flag = this.blockState.getBlock() instanceof ConcretePowderBlock;
|
|
diff --git a/src/main/java/net/minecraft/world/entity/item/PrimedTnt.java b/src/main/java/net/minecraft/world/entity/item/PrimedTnt.java
|
|
index e24b46820394c5f220d5bf7c4e763ef95ff9e9ab..54a8548e8d3ddee049d3fed41332c94e368ba2c4 100644
|
|
--- a/src/main/java/net/minecraft/world/entity/item/PrimedTnt.java
|
|
+++ b/src/main/java/net/minecraft/world/entity/item/PrimedTnt.java
|
|
@@ -68,6 +68,12 @@ public class PrimedTnt extends Entity {
|
|
}
|
|
|
|
this.move(MoverType.SELF, this.getDeltaMovement());
|
|
+ // Paper start - Configurable TNT entity height nerf
|
|
+ if (this.level.paperConfig().fixes.tntEntityHeightNerf.test(v -> this.getY() > v)) {
|
|
+ this.discard();
|
|
+ return;
|
|
+ }
|
|
+ // Paper end
|
|
this.setDeltaMovement(this.getDeltaMovement().scale(0.98D));
|
|
if (this.onGround) {
|
|
this.setDeltaMovement(this.getDeltaMovement().multiply(0.7D, -0.5D, 0.7D));
|
|
diff --git a/src/main/java/net/minecraft/world/entity/vehicle/MinecartTNT.java b/src/main/java/net/minecraft/world/entity/vehicle/MinecartTNT.java
|
|
index 5b31c85d3bb5bcbd966d69c129e3caea14148821..beb542b2f810da9fb8379056b4d16c2b98717f28 100644
|
|
--- a/src/main/java/net/minecraft/world/entity/vehicle/MinecartTNT.java
|
|
+++ b/src/main/java/net/minecraft/world/entity/vehicle/MinecartTNT.java
|
|
@@ -50,6 +50,12 @@ public class MinecartTNT extends AbstractMinecart {
|
|
public void tick() {
|
|
super.tick();
|
|
if (this.fuse > 0) {
|
|
+ // Paper start - Configurable TNT entity height nerf
|
|
+ if (this.level.paperConfig().fixes.tntEntityHeightNerf.test(v -> this.getY() > v)) {
|
|
+ this.discard();
|
|
+ return;
|
|
+ }
|
|
+ // Paper end
|
|
--this.fuse;
|
|
this.level.addParticle(ParticleTypes.SMOKE, this.getX(), this.getY() + 0.5D, this.getZ(), 0.0D, 0.0D, 0.0D);
|
|
} else if (this.fuse == 0) {
|