2014-12-21 01:09:49 +00:00
|
|
|
From d83f0c646ae80e2714c16363ffcf8991fcaf2ec7 Mon Sep 17 00:00:00 2001
|
2014-08-24 07:40:45 +00:00
|
|
|
From: Aikar <aikar@aikar.co>
|
|
|
|
Date: Wed, 20 Aug 2014 18:12:32 -0400
|
|
|
|
Subject: [PATCH] Limit TNT Detonations per tick
|
|
|
|
|
|
|
|
This gives a per-world control on how much TNT will be processed per-tick,
|
|
|
|
preventing a massive TNT detonation from lagging out the server.
|
|
|
|
|
|
|
|
diff --git a/src/main/java/net/minecraft/server/EntityTNTPrimed.java b/src/main/java/net/minecraft/server/EntityTNTPrimed.java
|
2014-11-28 01:17:45 +00:00
|
|
|
index 98c8d26..3621faf 100644
|
2014-08-24 07:40:45 +00:00
|
|
|
--- a/src/main/java/net/minecraft/server/EntityTNTPrimed.java
|
|
|
|
+++ b/src/main/java/net/minecraft/server/EntityTNTPrimed.java
|
2014-11-28 01:17:45 +00:00
|
|
|
@@ -41,6 +41,7 @@ public class EntityTNTPrimed extends Entity {
|
2014-08-24 07:40:45 +00:00
|
|
|
}
|
|
|
|
|
2014-11-28 01:17:45 +00:00
|
|
|
public void s_() {
|
2014-08-24 07:40:45 +00:00
|
|
|
+ if (world.spigotConfig.currentPrimedTnt++ > world.spigotConfig.maxTntTicksPerTick) { return; } // Spigot
|
|
|
|
this.lastX = this.locX;
|
|
|
|
this.lastY = this.locY;
|
|
|
|
this.lastZ = this.locZ;
|
|
|
|
diff --git a/src/main/java/net/minecraft/server/WorldServer.java b/src/main/java/net/minecraft/server/WorldServer.java
|
2014-12-21 01:09:49 +00:00
|
|
|
index 6dc3acf..3bba0ca 100644
|
2014-08-24 07:40:45 +00:00
|
|
|
--- a/src/main/java/net/minecraft/server/WorldServer.java
|
|
|
|
+++ b/src/main/java/net/minecraft/server/WorldServer.java
|
2014-11-28 01:17:45 +00:00
|
|
|
@@ -575,6 +575,7 @@ public class WorldServer extends World implements IAsyncTaskHandler {
|
2014-08-24 07:40:45 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
super.tickEntities();
|
|
|
|
+ spigotConfig.currentPrimedTnt = 0; // Spigot
|
|
|
|
}
|
|
|
|
|
2014-11-28 01:17:45 +00:00
|
|
|
public void j() {
|
2014-08-24 07:40:45 +00:00
|
|
|
diff --git a/src/main/java/org/spigotmc/SpigotWorldConfig.java b/src/main/java/org/spigotmc/SpigotWorldConfig.java
|
2014-11-28 01:17:45 +00:00
|
|
|
index 3f145b3..46377ab 100644
|
2014-08-24 07:40:45 +00:00
|
|
|
--- a/src/main/java/org/spigotmc/SpigotWorldConfig.java
|
|
|
|
+++ b/src/main/java/org/spigotmc/SpigotWorldConfig.java
|
|
|
|
@@ -338,4 +338,15 @@ public class SpigotWorldConfig
|
|
|
|
combatExhaustion = (float) getDouble( "hunger.combat-exhaustion", 0.3 );
|
|
|
|
regenExhaustion = (float) getDouble( "hunger.regen-exhaustion", 3 );
|
|
|
|
}
|
|
|
|
+
|
|
|
|
+ public int currentPrimedTnt = 0;
|
|
|
|
+ public int maxTntTicksPerTick;
|
|
|
|
+ private void maxTntPerTick() {
|
|
|
|
+ if ( SpigotConfig.version < 7 )
|
|
|
|
+ {
|
|
|
|
+ set( "max-tnt-per-tick", 100 );
|
|
|
|
+ }
|
|
|
|
+ maxTntTicksPerTick = getInt( "max-tnt-per-tick", 100 );
|
|
|
|
+ log( "Max TNT Explosions: " + maxTntTicksPerTick );
|
|
|
|
+ }
|
|
|
|
}
|
|
|
|
--
|
2014-11-28 01:17:45 +00:00
|
|
|
2.1.0
|
2014-08-24 07:40:45 +00:00
|
|
|
|