Make alternative falling block ground detection configurable
Workaround for GH-336
This commit is contained in:
parent
dff26d883a
commit
7dcb9b67ea
4 changed files with 42 additions and 28 deletions
|
@ -1,4 +1,4 @@
|
|||
From d11bdc71163cd991a87f8268bbf0a7f9ac06a9ff Mon Sep 17 00:00:00 2001
|
||||
From 1dc4a1ddd3ac2e061a97fc046481082e8e9a9f07 Mon Sep 17 00:00:00 2001
|
||||
From: Martin Panzer <postremus1996@googlemail.com>
|
||||
Date: Fri, 3 Jun 2016 23:13:39 +0200
|
||||
Subject: [PATCH] Fix FallingBlocks being stuck on fences
|
||||
|
@ -10,6 +10,20 @@ resulted in them always thinking they would be on air.
|
|||
We now first check, if if we are already on the ground.
|
||||
if not, we check if the falling block is inside of the hitbox of the block at y - 1.
|
||||
|
||||
diff --git a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java
|
||||
index cc5e299..3500b6c 100644
|
||||
--- a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java
|
||||
+++ b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java
|
||||
@@ -358,4 +358,9 @@ public class PaperWorldConfig {
|
||||
log("Old Cannon Behaviors: This feature may not be working entirely properly at the moment");
|
||||
}
|
||||
}
|
||||
+
|
||||
+ public boolean altFallingBlockOnGround;
|
||||
+ private void altFallingBlockOnGround() {
|
||||
+ altFallingBlockOnGround = getBoolean("use-alternate-fallingblock-onGround-detection", false);
|
||||
+ }
|
||||
}
|
||||
diff --git a/src/main/java/net/minecraft/server/BlockFalling.java b/src/main/java/net/minecraft/server/BlockFalling.java
|
||||
index 8f22dab..d3a0d70 100644
|
||||
--- a/src/main/java/net/minecraft/server/BlockFalling.java
|
||||
|
@ -27,7 +41,7 @@ index 8f22dab..d3a0d70 100644
|
|||
public void a_(World world, BlockPosition blockposition) {}
|
||||
}
|
||||
diff --git a/src/main/java/net/minecraft/server/EntityFallingBlock.java b/src/main/java/net/minecraft/server/EntityFallingBlock.java
|
||||
index 4fd4371..c4d90b0 100644
|
||||
index 4fd4371..dcfdd31 100644
|
||||
--- a/src/main/java/net/minecraft/server/EntityFallingBlock.java
|
||||
+++ b/src/main/java/net/minecraft/server/EntityFallingBlock.java
|
||||
@@ -2,7 +2,9 @@ package net.minecraft.server;
|
||||
|
@ -49,19 +63,21 @@ index 4fd4371..c4d90b0 100644
|
|||
+ if (!isOnGround()) {
|
||||
this.onGround = false;
|
||||
- // return; // CraftBukkit
|
||||
+ return; // Paper
|
||||
+ if (this.world.paperConfig.altFallingBlockOnGround) return; // Paper
|
||||
}
|
||||
|
||||
this.motX *= 0.699999988079071D;
|
||||
@@ -158,6 +159,30 @@ public class EntityFallingBlock extends Entity {
|
||||
@@ -158,6 +159,32 @@ public class EntityFallingBlock extends Entity {
|
||||
}
|
||||
}
|
||||
|
||||
+ // Paper start
|
||||
+ private boolean isOnGround() {
|
||||
+ BlockPosition where = new BlockPosition(this.locX, this.locY - 0.009999999776482582D, this.locZ);
|
||||
+ boolean cannotMoveThrough = !BlockFalling.canMoveThrough(this.world.getType(where));
|
||||
+ if (!this.world.paperConfig.altFallingBlockOnGround) return cannotMoveThrough;
|
||||
+
|
||||
+ if (!BlockFalling.canMoveThrough(this.world.getType(where))) {
|
||||
+ if (cannotMoveThrough) {
|
||||
+ return true;
|
||||
+ }
|
||||
+
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
From 0f33dcc2f6a2a72926f3554e1b1ccab73a0203fa Mon Sep 17 00:00:00 2001
|
||||
From a23f74a3dfe8b30db36e7700bc380db109cbb060 Mon Sep 17 00:00:00 2001
|
||||
From: Techcable <Techcable@outlook.com>
|
||||
Date: Sat, 18 Jun 2016 01:01:37 -0500
|
||||
Subject: [PATCH] Make entities look for hoppers
|
||||
|
@ -78,12 +78,12 @@ index 0000000..aef7c2b
|
|||
+ double getZ();
|
||||
+}
|
||||
diff --git a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java
|
||||
index cc5e299..b811775 100644
|
||||
index 3500b6c..86fda1a 100644
|
||||
--- a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java
|
||||
+++ b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java
|
||||
@@ -358,4 +358,9 @@ public class PaperWorldConfig {
|
||||
log("Old Cannon Behaviors: This feature may not be working entirely properly at the moment");
|
||||
}
|
||||
@@ -363,4 +363,9 @@ public class PaperWorldConfig {
|
||||
private void altFallingBlockOnGround() {
|
||||
altFallingBlockOnGround = getBoolean("use-alternate-fallingblock-onGround-detection", false);
|
||||
}
|
||||
+
|
||||
+ public boolean isHopperPushBased;
|
||||
|
@ -132,7 +132,7 @@ index d6cc51b..5bbaa87 100644
|
|||
this.b = i;
|
||||
this.c = j;
|
||||
diff --git a/src/main/java/net/minecraft/server/Entity.java b/src/main/java/net/minecraft/server/Entity.java
|
||||
index e21769f..93f9eab 100644
|
||||
index fbf114f..d26ffa7 100644
|
||||
--- a/src/main/java/net/minecraft/server/Entity.java
|
||||
+++ b/src/main/java/net/minecraft/server/Entity.java
|
||||
@@ -77,6 +77,19 @@ public abstract class Entity implements ICommandListener {
|
||||
|
@ -370,5 +370,5 @@ index a651961..1f5de89 100644
|
|||
|
||||
if (!list.isEmpty()) {
|
||||
--
|
||||
2.9.2.windows.1
|
||||
2.9.0
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
From dfc2ef2e5fbd2e862167bcfe062a7f92d591ec3b Mon Sep 17 00:00:00 2001
|
||||
From 30b54896e79fe497994706d5ddabd083b11201e6 Mon Sep 17 00:00:00 2001
|
||||
From: Aikar <aikar@aikar.co>
|
||||
Date: Sat, 18 Jun 2016 23:22:12 -0400
|
||||
Subject: [PATCH] Delay Chunk Unloads based on Player Movement
|
||||
|
@ -17,13 +17,14 @@ This allows servers with smaller worlds who do less long distance exploring to s
|
|||
wasting cpu cycles on saving/unloading/reloading chunks repeatedly.
|
||||
|
||||
diff --git a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java
|
||||
index b811775..60a7dec 100644
|
||||
index 86fda1a..17b90a0 100644
|
||||
--- a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java
|
||||
+++ b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java
|
||||
@@ -359,6 +359,15 @@ public class PaperWorldConfig {
|
||||
}
|
||||
@@ -368,4 +368,13 @@ public class PaperWorldConfig {
|
||||
private void isHopperPushBased() {
|
||||
isHopperPushBased = getBoolean("hopper.push-based", true);
|
||||
}
|
||||
|
||||
+
|
||||
+ public long delayChunkUnloadsBy;
|
||||
+ private void delayChunkUnloadsBy() {
|
||||
+ delayChunkUnloadsBy = PaperConfig.getSeconds(getString("delay-chunk-unloads-by", "0s"));
|
||||
|
@ -32,12 +33,9 @@ index b811775..60a7dec 100644
|
|||
+ delayChunkUnloadsBy *= 1000;
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
public boolean isHopperPushBased;
|
||||
private void isHopperPushBased() {
|
||||
isHopperPushBased = getBoolean("hopper.push-based", true);
|
||||
}
|
||||
diff --git a/src/main/java/net/minecraft/server/Chunk.java b/src/main/java/net/minecraft/server/Chunk.java
|
||||
index a1f7e83..30c3d6c 100644
|
||||
index a9f6efa..6bad7eb 100644
|
||||
--- a/src/main/java/net/minecraft/server/Chunk.java
|
||||
+++ b/src/main/java/net/minecraft/server/Chunk.java
|
||||
@@ -30,6 +30,7 @@ public class Chunk {
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
From a0d46c98b0317cfaea271d536f0fa0cf8dc79167 Mon Sep 17 00:00:00 2001
|
||||
From 4fa65e457e2d2b791017ad4e013447b940fbd137 Mon Sep 17 00:00:00 2001
|
||||
From: Jadon Fowler <jadonflower@gmail.com>
|
||||
Date: Sat, 18 Jun 2016 23:13:59 -0700
|
||||
Subject: [PATCH] Toggleable Elytra Wall Damage
|
||||
|
@ -7,12 +7,12 @@ Instead of calculating the damage taken from hitting a wall, you can
|
|||
disable it in the config.
|
||||
|
||||
diff --git a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java
|
||||
index 60a7dec..ef08901 100644
|
||||
index 17b90a0..af776b3 100644
|
||||
--- a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java
|
||||
+++ b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java
|
||||
@@ -372,4 +372,9 @@ public class PaperWorldConfig {
|
||||
private void isHopperPushBased() {
|
||||
isHopperPushBased = getBoolean("hopper.push-based", true);
|
||||
@@ -377,4 +377,9 @@ public class PaperWorldConfig {
|
||||
delayChunkUnloadsBy *= 1000;
|
||||
}
|
||||
}
|
||||
+
|
||||
+ public boolean elytraHitWallDamage = true;
|
||||
|
@ -21,7 +21,7 @@ index 60a7dec..ef08901 100644
|
|||
+ }
|
||||
}
|
||||
diff --git a/src/main/java/net/minecraft/server/EntityLiving.java b/src/main/java/net/minecraft/server/EntityLiving.java
|
||||
index 837bc25..7162a9e 100644
|
||||
index c0c60a7..8c98a19 100644
|
||||
--- a/src/main/java/net/minecraft/server/EntityLiving.java
|
||||
+++ b/src/main/java/net/minecraft/server/EntityLiving.java
|
||||
@@ -1615,6 +1615,7 @@ public abstract class EntityLiving extends Entity {
|
||||
|
|
Loading…
Reference in a new issue