Configurable hanging tick

EntityHangings make a somewhat extensive calculation ever 100 ticks to check if they should die (obstruction etc). This patch makes this magic number configurable, allowing server owners to pick how often they want EntityHangings (e.g. ItemFrames) to tick. Higher values may provide a performance boost for Hanging-heavy servers.
This commit is contained in:
drXor 2014-08-09 17:27:35 -05:00 committed by Zach Brown
parent 9fdc6b05f9
commit d95ac585d4
3 changed files with 42 additions and 2 deletions

View file

@ -1,4 +1,4 @@
From 759908be8944103e051eefd95710f9dfe39b532e Mon Sep 17 00:00:00 2001
From 9be819202ea6ab85a9acca973e090495fb40893a Mon Sep 17 00:00:00 2001
From: Jedediah Smith <jedediah@silencegreys.com>
Date: Fri, 8 Aug 2014 22:51:26 -0500
Subject: [PATCH] Player affects spawning API
@ -39,3 +39,4 @@ index b2ad5b7..b2a8e2e 100644
Spigot spigot();
--
1.9.1

View file

@ -1,4 +1,4 @@
From 3648075534d8e6fd4bff464c7481557ed7256fae Mon Sep 17 00:00:00 2001
From 7829ffe30ea4dc9b409cd5140140b84a3372cc27 Mon Sep 17 00:00:00 2001
From: Jedediah Smith <jedediah@silencegreys.com>
Date: Fri, 8 Aug 2014 22:51:26 -0500
Subject: [PATCH] Player affects spawning API
@ -128,3 +128,4 @@ index 849b971..ddda795 100644
public Player.Spigot spigot()
--
1.9.1

View file

@ -0,0 +1,38 @@
From ee7f178f022584989b8dd9d27b456e8d832ae0ca Mon Sep 17 00:00:00 2001
From: drXor <mcyoung@mit.edu>
Date: Sat, 9 Aug 2014 17:24:20 -0500
Subject: [PATCH] Configurable hanging tick
diff --git a/src/main/java/net/minecraft/server/EntityHanging.java b/src/main/java/net/minecraft/server/EntityHanging.java
index eec465b..3b6d152 100644
--- a/src/main/java/net/minecraft/server/EntityHanging.java
+++ b/src/main/java/net/minecraft/server/EntityHanging.java
@@ -102,7 +102,7 @@ public abstract class EntityHanging extends Entity {
this.lastX = this.locX;
this.lastY = this.locY;
this.lastZ = this.locZ;
- if (this.e++ == 100 && !this.world.isStatic) {
+ if (this.e++ == this.world.paperSpigotConfig.hangingTickFrequency && !this.world.isStatic) { // PaperSpigot - 100 -> this.world.paperSpigotConfig.hangingTickFrequency
this.e = 0;
if (!this.dead && !this.survives()) {
// CraftBukkit start - fire break events
diff --git a/src/main/java/org/github/paperspigot/PaperSpigotWorldConfig.java b/src/main/java/org/github/paperspigot/PaperSpigotWorldConfig.java
index 256316e..16eb1ca 100644
--- a/src/main/java/org/github/paperspigot/PaperSpigotWorldConfig.java
+++ b/src/main/java/org/github/paperspigot/PaperSpigotWorldConfig.java
@@ -163,4 +163,11 @@ public class PaperSpigotWorldConfig
waterOverLavaFlowSpeed = getInt( "water-over-lava-flow-speed", 5 );
log( "Water over lava flow speed: " + waterOverLavaFlowSpeed);
}
+
+ public int hangingTickFrequency;
+ private void hangingTickSpeed()
+ {
+ hangingTickFrequency = getInt( "hanging-tick-frequency", 100);
+ log( "Hanging entities tick frequency: " + hangingTickFrequency);
+ }
}
--
1.9.1