Mirror von
https://github.com/PaperMC/Paper.git
synchronisiert 2024-12-15 11:00:06 +01:00
015e038b89
Tick a hopper only if certain conditions have changed i.e. inventory changes, redstone updates, etc.
85 Zeilen
3.8 KiB
Diff
85 Zeilen
3.8 KiB
Diff
From 4cbf1d01d020a85d822368814fae42d456c919a0 Mon Sep 17 00:00:00 2001
|
|
From: md_5 <git@md-5.net>
|
|
Date: Sun, 2 Feb 2014 16:55:46 +0000
|
|
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 5e1e695..b930c0d 100644
|
|
--- a/src/main/java/net/minecraft/server/Entity.java
|
|
+++ b/src/main/java/net/minecraft/server/Entity.java
|
|
@@ -120,6 +120,7 @@ public abstract class Entity implements ICommandListener {
|
|
public final byte activationType = org.spigotmc.ActivationRange.initializeEntityActivationType(this);
|
|
public final boolean defaultActivationState;
|
|
public long activatedTick = Integer.MIN_VALUE;
|
|
+ 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 46f696f..73cdd41 100644
|
|
--- a/src/main/java/net/minecraft/server/EntityInsentient.java
|
|
+++ b/src/main/java/net/minecraft/server/EntityInsentient.java
|
|
@@ -457,6 +457,12 @@ public abstract class EntityInsentient extends EntityLiving {
|
|
this.world.methodProfiler.a("checkDespawn");
|
|
this.D();
|
|
this.world.methodProfiler.b();
|
|
+ // Spigot Start
|
|
+ if ( this.fromMobSpawner )
|
|
+ {
|
|
+ return;
|
|
+ }
|
|
+ // Spigot End
|
|
this.world.methodProfiler.a("sensing");
|
|
this.bk.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 0695fe2..1680918 100644
|
|
--- a/src/main/java/net/minecraft/server/MobSpawnerAbstract.java
|
|
+++ b/src/main/java/net/minecraft/server/MobSpawnerAbstract.java
|
|
@@ -144,6 +144,12 @@ public abstract class MobSpawnerAbstract {
|
|
SpawnerSpawnEvent event = CraftEventFactory.callSpawnerSpawnEvent(entity, this.b().getX(), this.b().getY(), this.b().getZ());
|
|
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
|
|
}
|
|
@@ -191,6 +197,12 @@ public abstract class MobSpawnerAbstract {
|
|
SpawnerSpawnEvent event = CraftEventFactory.callSpawnerSpawnEvent(entity, this.b().getX(), this.b().getY(), this.b().getZ());
|
|
if (!event.isCancelled()) {
|
|
entity.world.addEntity(entity, CreatureSpawnEvent.SpawnReason.SPAWNER); // CraftBukkit
|
|
+ // Spigot Start
|
|
+ if ( entity.world.spigotConfig.nerfSpawnerMobs )
|
|
+ {
|
|
+ entity.fromMobSpawner = true;
|
|
+ }
|
|
+ // Spigot End
|
|
}
|
|
// Spigot end
|
|
}
|
|
diff --git a/src/main/java/org/spigotmc/SpigotWorldConfig.java b/src/main/java/org/spigotmc/SpigotWorldConfig.java
|
|
index f6fc0a2..20800ed 100644
|
|
--- a/src/main/java/org/spigotmc/SpigotWorldConfig.java
|
|
+++ b/src/main/java/org/spigotmc/SpigotWorldConfig.java
|
|
@@ -254,4 +254,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 );
|
|
+ }
|
|
}
|
|
--
|
|
2.1.4
|
|
|