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>
|
From: Martin Panzer <postremus1996@googlemail.com>
|
||||||
Date: Fri, 3 Jun 2016 23:13:39 +0200
|
Date: Fri, 3 Jun 2016 23:13:39 +0200
|
||||||
Subject: [PATCH] Fix FallingBlocks being stuck on fences
|
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.
|
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.
|
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
|
diff --git a/src/main/java/net/minecraft/server/BlockFalling.java b/src/main/java/net/minecraft/server/BlockFalling.java
|
||||||
index 8f22dab..d3a0d70 100644
|
index 8f22dab..d3a0d70 100644
|
||||||
--- a/src/main/java/net/minecraft/server/BlockFalling.java
|
--- a/src/main/java/net/minecraft/server/BlockFalling.java
|
||||||
|
@ -27,7 +41,7 @@ index 8f22dab..d3a0d70 100644
|
||||||
public void a_(World world, BlockPosition blockposition) {}
|
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
|
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
|
--- a/src/main/java/net/minecraft/server/EntityFallingBlock.java
|
||||||
+++ b/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;
|
@@ -2,7 +2,9 @@ package net.minecraft.server;
|
||||||
|
@ -49,19 +63,21 @@ index 4fd4371..c4d90b0 100644
|
||||||
+ if (!isOnGround()) {
|
+ if (!isOnGround()) {
|
||||||
this.onGround = false;
|
this.onGround = false;
|
||||||
- // return; // CraftBukkit
|
- // return; // CraftBukkit
|
||||||
+ return; // Paper
|
+ if (this.world.paperConfig.altFallingBlockOnGround) return; // Paper
|
||||||
}
|
}
|
||||||
|
|
||||||
this.motX *= 0.699999988079071D;
|
this.motX *= 0.699999988079071D;
|
||||||
@@ -158,6 +159,30 @@ public class EntityFallingBlock extends Entity {
|
@@ -158,6 +159,32 @@ public class EntityFallingBlock extends Entity {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
+ // Paper start
|
+ // Paper start
|
||||||
+ private boolean isOnGround() {
|
+ private boolean isOnGround() {
|
||||||
+ BlockPosition where = new BlockPosition(this.locX, this.locY - 0.009999999776482582D, this.locZ);
|
+ 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;
|
+ 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>
|
From: Techcable <Techcable@outlook.com>
|
||||||
Date: Sat, 18 Jun 2016 01:01:37 -0500
|
Date: Sat, 18 Jun 2016 01:01:37 -0500
|
||||||
Subject: [PATCH] Make entities look for hoppers
|
Subject: [PATCH] Make entities look for hoppers
|
||||||
|
@ -78,12 +78,12 @@ index 0000000..aef7c2b
|
||||||
+ double getZ();
|
+ double getZ();
|
||||||
+}
|
+}
|
||||||
diff --git a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java
|
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
|
--- a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java
|
||||||
+++ b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java
|
+++ b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java
|
||||||
@@ -358,4 +358,9 @@ public class PaperWorldConfig {
|
@@ -363,4 +363,9 @@ public class PaperWorldConfig {
|
||||||
log("Old Cannon Behaviors: This feature may not be working entirely properly at the moment");
|
private void altFallingBlockOnGround() {
|
||||||
}
|
altFallingBlockOnGround = getBoolean("use-alternate-fallingblock-onGround-detection", false);
|
||||||
}
|
}
|
||||||
+
|
+
|
||||||
+ public boolean isHopperPushBased;
|
+ public boolean isHopperPushBased;
|
||||||
|
@ -132,7 +132,7 @@ index d6cc51b..5bbaa87 100644
|
||||||
this.b = i;
|
this.b = i;
|
||||||
this.c = j;
|
this.c = j;
|
||||||
diff --git a/src/main/java/net/minecraft/server/Entity.java b/src/main/java/net/minecraft/server/Entity.java
|
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
|
--- a/src/main/java/net/minecraft/server/Entity.java
|
||||||
+++ b/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 {
|
@@ -77,6 +77,19 @@ public abstract class Entity implements ICommandListener {
|
||||||
|
@ -370,5 +370,5 @@ index a651961..1f5de89 100644
|
||||||
|
|
||||||
if (!list.isEmpty()) {
|
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>
|
From: Aikar <aikar@aikar.co>
|
||||||
Date: Sat, 18 Jun 2016 23:22:12 -0400
|
Date: Sat, 18 Jun 2016 23:22:12 -0400
|
||||||
Subject: [PATCH] Delay Chunk Unloads based on Player Movement
|
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.
|
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
|
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
|
--- a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java
|
||||||
+++ b/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;
|
+ public long delayChunkUnloadsBy;
|
||||||
+ private void delayChunkUnloadsBy() {
|
+ private void delayChunkUnloadsBy() {
|
||||||
+ delayChunkUnloadsBy = PaperConfig.getSeconds(getString("delay-chunk-unloads-by", "0s"));
|
+ delayChunkUnloadsBy = PaperConfig.getSeconds(getString("delay-chunk-unloads-by", "0s"));
|
||||||
|
@ -32,12 +33,9 @@ index b811775..60a7dec 100644
|
||||||
+ delayChunkUnloadsBy *= 1000;
|
+ 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
|
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
|
--- a/src/main/java/net/minecraft/server/Chunk.java
|
||||||
+++ b/src/main/java/net/minecraft/server/Chunk.java
|
+++ b/src/main/java/net/minecraft/server/Chunk.java
|
||||||
@@ -30,6 +30,7 @@ public class Chunk {
|
@@ -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>
|
From: Jadon Fowler <jadonflower@gmail.com>
|
||||||
Date: Sat, 18 Jun 2016 23:13:59 -0700
|
Date: Sat, 18 Jun 2016 23:13:59 -0700
|
||||||
Subject: [PATCH] Toggleable Elytra Wall Damage
|
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.
|
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
|
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
|
--- a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java
|
||||||
+++ b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java
|
+++ b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java
|
||||||
@@ -372,4 +372,9 @@ public class PaperWorldConfig {
|
@@ -377,4 +377,9 @@ public class PaperWorldConfig {
|
||||||
private void isHopperPushBased() {
|
delayChunkUnloadsBy *= 1000;
|
||||||
isHopperPushBased = getBoolean("hopper.push-based", true);
|
}
|
||||||
}
|
}
|
||||||
+
|
+
|
||||||
+ public boolean elytraHitWallDamage = true;
|
+ 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
|
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
|
--- a/src/main/java/net/minecraft/server/EntityLiving.java
|
||||||
+++ b/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 {
|
@@ -1615,6 +1615,7 @@ public abstract class EntityLiving extends Entity {
|
||||||
|
|
Loading…
Reference in a new issue