af480b8b95
Whilst the new behaviour was technically correct as it prevented the possibility of the chunk tick list actually increasing over time, it introduced a few issues, namely the fact that it slowed growth to unreasonable levels, and interfered with the values which server admins have finally tuned, and come to enjoy over the last few years. If it is absolutely essential that growth be halted and ticking reduced as much as possible, the config option is there for power users. If we wish to 'fix' this by default in the future, a new chunk ticking algorithm, which actually has meaningful config options should be designed.
71 lines
3.1 KiB
Diff
71 lines
3.1 KiB
Diff
From 913fd442d20a4b592f6d25ce3efc7991d1559ee6 Mon Sep 17 00:00:00 2001
|
|
From: md_5 <git@md-5.net>
|
|
Date: Sun, 22 Dec 2013 20:58:02 +1100
|
|
Subject: [PATCH] Add Option to Nerf Mobs from Spawner's
|
|
|
|
|
|
diff --git a/src/main/java/net/minecraft/server/Entity.java b/src/main/java/net/minecraft/server/Entity.java
|
|
index 84bac83..e147244 100644
|
|
--- a/src/main/java/net/minecraft/server/Entity.java
|
|
+++ b/src/main/java/net/minecraft/server/Entity.java
|
|
@@ -116,6 +116,7 @@ public abstract class Entity {
|
|
public final byte activationType = org.spigotmc.ActivationRange.initializeEntityActivationType(this);
|
|
public final boolean defaultActivationState;
|
|
public long activatedTick = 0;
|
|
+ public boolean fromMobSpawner;
|
|
public void inactiveTick() { }
|
|
// Spigot end
|
|
|
|
diff --git a/src/main/java/net/minecraft/server/EntityInsentient.java b/src/main/java/net/minecraft/server/EntityInsentient.java
|
|
index 885a0ef..639354b 100644
|
|
--- a/src/main/java/net/minecraft/server/EntityInsentient.java
|
|
+++ b/src/main/java/net/minecraft/server/EntityInsentient.java
|
|
@@ -417,6 +417,12 @@ public abstract class EntityInsentient extends EntityLiving {
|
|
this.world.methodProfiler.a("checkDespawn");
|
|
this.w();
|
|
this.world.methodProfiler.b();
|
|
+ // Spigot Start
|
|
+ if ( this.fromMobSpawner )
|
|
+ {
|
|
+ return;
|
|
+ }
|
|
+ // Spigot End
|
|
this.world.methodProfiler.a("sensing");
|
|
this.bq.a();
|
|
this.world.methodProfiler.b();
|
|
diff --git a/src/main/java/net/minecraft/server/MobSpawnerAbstract.java b/src/main/java/net/minecraft/server/MobSpawnerAbstract.java
|
|
index bb6b3d5..1eb8818 100644
|
|
--- a/src/main/java/net/minecraft/server/MobSpawnerAbstract.java
|
|
+++ b/src/main/java/net/minecraft/server/MobSpawnerAbstract.java
|
|
@@ -136,6 +136,12 @@ public abstract class MobSpawnerAbstract {
|
|
SpawnerSpawnEvent event = CraftEventFactory.callSpawnerSpawnEvent(entity, this.b(), this.c(), this.d());
|
|
if (!event.isCancelled()) {
|
|
entity.world.addEntity(entity, CreatureSpawnEvent.SpawnReason.SPAWNER); // CraftBukkit
|
|
+ // Spigot Start
|
|
+ if ( entity.world.spigotConfig.nerfSpawnerMobs )
|
|
+ {
|
|
+ entity.fromMobSpawner = true;
|
|
+ }
|
|
+ // Spigot End
|
|
}
|
|
// CraftBukkit end
|
|
}
|
|
diff --git a/src/main/java/org/spigotmc/SpigotWorldConfig.java b/src/main/java/org/spigotmc/SpigotWorldConfig.java
|
|
index e7cb99d..50d3069 100644
|
|
--- a/src/main/java/org/spigotmc/SpigotWorldConfig.java
|
|
+++ b/src/main/java/org/spigotmc/SpigotWorldConfig.java
|
|
@@ -250,4 +250,11 @@ public class SpigotWorldConfig
|
|
zombieAggressiveTowardsVillager = getBoolean( "zombie-aggressive-towards-villager", true );
|
|
log( "Zombie Aggressive Towards Villager: " + zombieAggressiveTowardsVillager );
|
|
}
|
|
+
|
|
+ public boolean nerfSpawnerMobs;
|
|
+ private void nerfSpawnerMobs()
|
|
+ {
|
|
+ nerfSpawnerMobs = getBoolean( "nerf-spawner-mobs", false );
|
|
+ log( "Nerfing mobs spawned from spawners " + nerfSpawnerMobs );
|
|
+ }
|
|
}
|
|
--
|
|
1.8.3.2
|
|
|