mirror of
https://hub.spigotmc.org/stash/scm/spigot/spigot.git
synced 2025-09-18 21:33:01 +00:00
SPIGOT-4731: EntityVillager ticks seems to cause tps drop
This commit is contained in:
parent
dc58fe42fe
commit
f2180d5e7b
2 changed files with 27 additions and 27 deletions
|
@ -1,4 +1,4 @@
|
|||
From c00818d3e06db3a2439040b0d5cb70cacb5b245b Mon Sep 17 00:00:00 2001
|
||||
From 223ea438c6c6a5754f949319becaa5a1ff2db3df Mon Sep 17 00:00:00 2001
|
||||
From: Aikar <aikar@aikar.co>
|
||||
Date: Sun, 3 Feb 2013 05:10:21 -0500
|
||||
Subject: [PATCH] Entity Activation Range
|
||||
|
@ -9,7 +9,7 @@ This will drastically cut down on tick timings for entities that are not in rang
|
|||
This change can have dramatic impact on gameplay if configured too low. Balance according to your servers desired gameplay.
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/server/Entity.java b/src/main/java/net/minecraft/server/Entity.java
|
||||
index 77ad70f8..e615403e 100644
|
||||
index 77ad70f8d..e615403e4 100644
|
||||
--- a/src/main/java/net/minecraft/server/Entity.java
|
||||
+++ b/src/main/java/net/minecraft/server/Entity.java
|
||||
@@ -160,6 +160,12 @@ public abstract class Entity implements INamableTileEntity, ICommandListener {
|
||||
|
@ -39,7 +39,7 @@ index 77ad70f8..e615403e 100644
|
|||
this.datawatcher = new DataWatcher(this);
|
||||
this.datawatcher.register(Entity.W, (byte) 0);
|
||||
diff --git a/src/main/java/net/minecraft/server/EntityAgeable.java b/src/main/java/net/minecraft/server/EntityAgeable.java
|
||||
index dfd1a7da..da9740a9 100644
|
||||
index dfd1a7da4..da9740a99 100644
|
||||
--- a/src/main/java/net/minecraft/server/EntityAgeable.java
|
||||
+++ b/src/main/java/net/minecraft/server/EntityAgeable.java
|
||||
@@ -14,6 +14,31 @@ public abstract class EntityAgeable extends EntityCreature {
|
||||
|
@ -75,7 +75,7 @@ index dfd1a7da..da9740a9 100644
|
|||
public abstract EntityAgeable createChild(EntityAgeable entityageable);
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/server/EntityArrow.java b/src/main/java/net/minecraft/server/EntityArrow.java
|
||||
index 33bff879..4767f7b3 100644
|
||||
index 33bff879c..4767f7b36 100644
|
||||
--- a/src/main/java/net/minecraft/server/EntityArrow.java
|
||||
+++ b/src/main/java/net/minecraft/server/EntityArrow.java
|
||||
@@ -35,6 +35,18 @@ public abstract class EntityArrow extends Entity implements IProjectile {
|
||||
|
@ -98,7 +98,7 @@ index 33bff879..4767f7b3 100644
|
|||
super(entitytypes, world);
|
||||
this.fromPlayer = EntityArrow.PickupStatus.DISALLOWED;
|
||||
diff --git a/src/main/java/net/minecraft/server/EntityFireworks.java b/src/main/java/net/minecraft/server/EntityFireworks.java
|
||||
index ffb1b095..d6bde129 100644
|
||||
index ffb1b0950..d6bde129e 100644
|
||||
--- a/src/main/java/net/minecraft/server/EntityFireworks.java
|
||||
+++ b/src/main/java/net/minecraft/server/EntityFireworks.java
|
||||
@@ -18,6 +18,14 @@ public class EntityFireworks extends Entity implements IProjectile {
|
||||
|
@ -117,7 +117,7 @@ index ffb1b095..d6bde129 100644
|
|||
protected void initDatawatcher() {
|
||||
this.datawatcher.register(EntityFireworks.FIREWORK_ITEM, ItemStack.a);
|
||||
diff --git a/src/main/java/net/minecraft/server/EntityItem.java b/src/main/java/net/minecraft/server/EntityItem.java
|
||||
index fb6f944a..fe70a3a8 100644
|
||||
index fb6f944a8..fe70a3a8b 100644
|
||||
--- a/src/main/java/net/minecraft/server/EntityItem.java
|
||||
+++ b/src/main/java/net/minecraft/server/EntityItem.java
|
||||
@@ -135,6 +135,28 @@ public class EntityItem extends Entity {
|
||||
|
@ -150,7 +150,7 @@ index fb6f944a..fe70a3a8 100644
|
|||
Vec3D vec3d = this.getMot();
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/server/EntityLiving.java b/src/main/java/net/minecraft/server/EntityLiving.java
|
||||
index 6beb710c..3e16632e 100644
|
||||
index 6beb710cb..3e16632e2 100644
|
||||
--- a/src/main/java/net/minecraft/server/EntityLiving.java
|
||||
+++ b/src/main/java/net/minecraft/server/EntityLiving.java
|
||||
@@ -132,6 +132,13 @@ public abstract class EntityLiving extends Entity {
|
||||
|
@ -168,7 +168,7 @@ index 6beb710c..3e16632e 100644
|
|||
protected EntityLiving(EntityTypes<? extends EntityLiving> entitytypes, World world) {
|
||||
super(entitytypes, world);
|
||||
diff --git a/src/main/java/net/minecraft/server/EntityVillager.java b/src/main/java/net/minecraft/server/EntityVillager.java
|
||||
index 3a4a40bb..a94cdce2 100644
|
||||
index 3a4a40bba..a94cdce2a 100644
|
||||
--- a/src/main/java/net/minecraft/server/EntityVillager.java
|
||||
+++ b/src/main/java/net/minecraft/server/EntityVillager.java
|
||||
@@ -133,6 +133,17 @@ public class EntityVillager extends EntityVillagerAbstract implements Reputation
|
||||
|
@ -190,7 +190,7 @@ index 3a4a40bb..a94cdce2 100644
|
|||
protected void mobTick() {
|
||||
this.world.getMethodProfiler().enter("brain");
|
||||
diff --git a/src/main/java/net/minecraft/server/WorldServer.java b/src/main/java/net/minecraft/server/WorldServer.java
|
||||
index d8c29281..a68fcec3 100644
|
||||
index d8c292814..cfdd51323 100644
|
||||
--- a/src/main/java/net/minecraft/server/WorldServer.java
|
||||
+++ b/src/main/java/net/minecraft/server/WorldServer.java
|
||||
@@ -325,6 +325,7 @@ public class WorldServer extends World {
|
||||
|
@ -201,23 +201,23 @@ index d8c29281..a68fcec3 100644
|
|||
timings.entityTick.startTiming(); // Spigot
|
||||
while (objectiterator.hasNext()) {
|
||||
Entry<Entity> entry = (Entry) objectiterator.next();
|
||||
@@ -555,6 +556,14 @@ public class WorldServer extends World {
|
||||
}
|
||||
@@ -556,6 +557,14 @@ public class WorldServer extends World {
|
||||
|
||||
public void entityJoinedWorld(Entity entity) {
|
||||
+ // Spigot start
|
||||
+ if (!org.spigotmc.ActivationRange.checkIfActive(entity)) {
|
||||
+ entity.ticksLived++;
|
||||
+ entity.inactiveTick();
|
||||
+ return;
|
||||
+ }
|
||||
+ // Spigot end
|
||||
+
|
||||
if (entity instanceof EntityHuman || this.getChunkProvider().a(entity)) {
|
||||
+ // Spigot start
|
||||
+ if (!org.spigotmc.ActivationRange.checkIfActive(entity)) {
|
||||
+ entity.ticksLived++;
|
||||
+ entity.inactiveTick();
|
||||
+ return;
|
||||
+ }
|
||||
+ // Spigot end
|
||||
+
|
||||
entity.H = entity.locX;
|
||||
entity.I = entity.locY;
|
||||
entity.J = entity.locZ;
|
||||
diff --git a/src/main/java/org/bukkit/craftbukkit/SpigotTimings.java b/src/main/java/org/bukkit/craftbukkit/SpigotTimings.java
|
||||
index 153be935..38f21152 100644
|
||||
index 153be935e..38f211526 100644
|
||||
--- a/src/main/java/org/bukkit/craftbukkit/SpigotTimings.java
|
||||
+++ b/src/main/java/org/bukkit/craftbukkit/SpigotTimings.java
|
||||
@@ -38,6 +38,9 @@ public class SpigotTimings {
|
||||
|
@ -231,7 +231,7 @@ index 153be935..38f21152 100644
|
|||
public static final HashMap<String, CustomTimingsHandler> tileEntityTypeTimingMap = new HashMap<String, CustomTimingsHandler>();
|
||||
public static final HashMap<String, CustomTimingsHandler> pluginTaskTimingMap = new HashMap<String, CustomTimingsHandler>();
|
||||
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
|
||||
index 6c2f24fb..8d4cb269 100644
|
||||
index 6c2f24fbc..8d4cb2699 100644
|
||||
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
|
||||
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
|
||||
@@ -460,6 +460,7 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
|
||||
|
@ -244,7 +244,7 @@ index 6c2f24fb..8d4cb269 100644
|
|||
}
|
||||
diff --git a/src/main/java/org/spigotmc/ActivationRange.java b/src/main/java/org/spigotmc/ActivationRange.java
|
||||
new file mode 100644
|
||||
index 00000000..28e877a9
|
||||
index 000000000..28e877a94
|
||||
--- /dev/null
|
||||
+++ b/src/main/java/org/spigotmc/ActivationRange.java
|
||||
@@ -0,0 +1,279 @@
|
||||
|
@ -528,7 +528,7 @@ index 00000000..28e877a9
|
|||
+ }
|
||||
+}
|
||||
diff --git a/src/main/java/org/spigotmc/SpigotWorldConfig.java b/src/main/java/org/spigotmc/SpigotWorldConfig.java
|
||||
index a43131f8..2f93d630 100644
|
||||
index a43131f8b..2f93d630d 100644
|
||||
--- a/src/main/java/org/spigotmc/SpigotWorldConfig.java
|
||||
+++ b/src/main/java/org/spigotmc/SpigotWorldConfig.java
|
||||
@@ -146,4 +146,17 @@ public class SpigotWorldConfig
|
||||
|
|
|
@ -1,11 +1,11 @@
|
|||
From de1b76fc261b5e744defb1abe900b6bc031994fc Mon Sep 17 00:00:00 2001
|
||||
From 1d1695fe9818b2ace2f42cef2762fc98ac40259a Mon Sep 17 00:00:00 2001
|
||||
From: md_5 <git@md-5.net>
|
||||
Date: Thu, 3 Mar 2016 19:45:46 +1100
|
||||
Subject: [PATCH] Implement SpawnerSpawnEvent.
|
||||
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/server/MobSpawnerAbstract.java b/src/main/java/net/minecraft/server/MobSpawnerAbstract.java
|
||||
index bc2ee3dc..44c2abac 100644
|
||||
index bc2ee3dcd..44c2abacb 100644
|
||||
--- a/src/main/java/net/minecraft/server/MobSpawnerAbstract.java
|
||||
+++ b/src/main/java/net/minecraft/server/MobSpawnerAbstract.java
|
||||
@@ -133,6 +133,16 @@ public abstract class MobSpawnerAbstract {
|
||||
|
@ -26,7 +26,7 @@ index bc2ee3dc..44c2abac 100644
|
|||
this.a(entity);
|
||||
world.triggerEffect(2004, blockposition, 0);
|
||||
diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
|
||||
index 5c2bebf5..6f4edf64 100644
|
||||
index 010c0780c..9f592d2fc 100644
|
||||
--- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
|
||||
+++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
|
||||
@@ -182,6 +182,8 @@ import org.bukkit.inventory.InventoryView;
|
||||
|
@ -38,7 +38,7 @@ index 5c2bebf5..6f4edf64 100644
|
|||
public class CraftEventFactory {
|
||||
public static final DamageSource MELTING = CraftDamageSource.copyOf(DamageSource.BURN);
|
||||
public static final DamageSource POISON = CraftDamageSource.copyOf(DamageSource.MAGIC);
|
||||
@@ -1298,6 +1300,21 @@ public class CraftEventFactory {
|
||||
@@ -1301,6 +1303,21 @@ public class CraftEventFactory {
|
||||
return event;
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue