|
|
|
@@ -10,7 +10,7 @@ Fixes and adds new Immunities to improve gameplay behavior
|
|
|
|
Adds water Mobs to activation range config and nerfs fish
|
|
|
|
Adds water Mobs to activation range config and nerfs fish
|
|
|
|
|
|
|
|
|
|
|
|
diff --git a/src/main/java/net/minecraft/server/BlockPosition.java b/src/main/java/net/minecraft/server/BlockPosition.java
|
|
|
|
diff --git a/src/main/java/net/minecraft/server/BlockPosition.java b/src/main/java/net/minecraft/server/BlockPosition.java
|
|
|
|
index 7ac07ac07ac0..7ac07ac07ac0 100644
|
|
|
|
index d81e2dc1c5..7bd51b3578 100644
|
|
|
|
--- a/src/main/java/net/minecraft/server/BlockPosition.java
|
|
|
|
--- a/src/main/java/net/minecraft/server/BlockPosition.java
|
|
|
|
+++ b/src/main/java/net/minecraft/server/BlockPosition.java
|
|
|
|
+++ b/src/main/java/net/minecraft/server/BlockPosition.java
|
|
|
|
@@ -0,0 +0,0 @@ public class BlockPosition extends BaseBlockPosition {
|
|
|
|
@@ -0,0 +0,0 @@ public class BlockPosition extends BaseBlockPosition {
|
|
|
|
@@ -22,7 +22,7 @@ index 7ac07ac07ac0..7ac07ac07ac0 100644
|
|
|
|
return new BlockPosition(this);
|
|
|
|
return new BlockPosition(this);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
diff --git a/src/main/java/net/minecraft/server/Entity.java b/src/main/java/net/minecraft/server/Entity.java
|
|
|
|
diff --git a/src/main/java/net/minecraft/server/Entity.java b/src/main/java/net/minecraft/server/Entity.java
|
|
|
|
index 7ac07ac07ac0..7ac07ac07ac0 100644
|
|
|
|
index e7f9e490bf..68ceee5f08 100644
|
|
|
|
--- a/src/main/java/net/minecraft/server/Entity.java
|
|
|
|
--- a/src/main/java/net/minecraft/server/Entity.java
|
|
|
|
+++ b/src/main/java/net/minecraft/server/Entity.java
|
|
|
|
+++ b/src/main/java/net/minecraft/server/Entity.java
|
|
|
|
@@ -0,0 +0,0 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
|
|
|
|
@@ -0,0 +0,0 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
|
|
|
|
@@ -34,7 +34,7 @@ index 7ac07ac07ac0..7ac07ac07ac0 100644
|
|
|
|
|
|
|
|
|
|
|
|
if (i != this.aM) {
|
|
|
|
if (i != this.aM) {
|
|
|
|
diff --git a/src/main/java/net/minecraft/server/EntityCreature.java b/src/main/java/net/minecraft/server/EntityCreature.java
|
|
|
|
diff --git a/src/main/java/net/minecraft/server/EntityCreature.java b/src/main/java/net/minecraft/server/EntityCreature.java
|
|
|
|
index 7ac07ac07ac0..7ac07ac07ac0 100644
|
|
|
|
index 20b7c2c6dc..d659c57dbe 100644
|
|
|
|
--- a/src/main/java/net/minecraft/server/EntityCreature.java
|
|
|
|
--- a/src/main/java/net/minecraft/server/EntityCreature.java
|
|
|
|
+++ b/src/main/java/net/minecraft/server/EntityCreature.java
|
|
|
|
+++ b/src/main/java/net/minecraft/server/EntityCreature.java
|
|
|
|
@@ -0,0 +0,0 @@ import org.bukkit.event.entity.EntityUnleashEvent;
|
|
|
|
@@ -0,0 +0,0 @@ import org.bukkit.event.entity.EntityUnleashEvent;
|
|
|
|
@@ -45,8 +45,30 @@ index 7ac07ac07ac0..7ac07ac07ac0 100644
|
|
|
|
private BlockPosition a;
|
|
|
|
private BlockPosition a;
|
|
|
|
private float b;
|
|
|
|
private float b;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
diff --git a/src/main/java/net/minecraft/server/EntityInsentient.java b/src/main/java/net/minecraft/server/EntityInsentient.java
|
|
|
|
|
|
|
|
index c87304d477..41a4962e94 100644
|
|
|
|
|
|
|
|
--- a/src/main/java/net/minecraft/server/EntityInsentient.java
|
|
|
|
|
|
|
|
+++ b/src/main/java/net/minecraft/server/EntityInsentient.java
|
|
|
|
|
|
|
|
@@ -0,0 +0,0 @@ public abstract class EntityInsentient extends EntityLiving {
|
|
|
|
|
|
|
|
return this.lookController;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
+ // Paper start
|
|
|
|
|
|
|
|
+ @Override
|
|
|
|
|
|
|
|
+ public void inactiveTick() {
|
|
|
|
|
|
|
|
+ super.inactiveTick();
|
|
|
|
|
|
|
|
+ this.goalSelector.inactiveTick();
|
|
|
|
|
|
|
|
+ if (this.targetSelector.inactiveTick()) {
|
|
|
|
|
|
|
|
+ this.targetSelector.doTick();
|
|
|
|
|
|
|
|
+ }
|
|
|
|
|
|
|
|
+ }
|
|
|
|
|
|
|
|
+ // Paper end
|
|
|
|
|
|
|
|
+
|
|
|
|
|
|
|
|
public ControllerMove getControllerMove() {
|
|
|
|
|
|
|
|
return this.moveController;
|
|
|
|
|
|
|
|
}
|
|
|
|
diff --git a/src/main/java/net/minecraft/server/EntityLiving.java b/src/main/java/net/minecraft/server/EntityLiving.java
|
|
|
|
diff --git a/src/main/java/net/minecraft/server/EntityLiving.java b/src/main/java/net/minecraft/server/EntityLiving.java
|
|
|
|
index 7ac07ac07ac0..7ac07ac07ac0 100644
|
|
|
|
index 334580a8b7..b2b575d0e8 100644
|
|
|
|
--- a/src/main/java/net/minecraft/server/EntityLiving.java
|
|
|
|
--- a/src/main/java/net/minecraft/server/EntityLiving.java
|
|
|
|
+++ b/src/main/java/net/minecraft/server/EntityLiving.java
|
|
|
|
+++ b/src/main/java/net/minecraft/server/EntityLiving.java
|
|
|
|
@@ -0,0 +0,0 @@ public abstract class EntityLiving extends Entity {
|
|
|
|
@@ -0,0 +0,0 @@ public abstract class EntityLiving extends Entity {
|
|
|
|
@@ -59,7 +81,7 @@ index 7ac07ac07ac0..7ac07ac07ac0 100644
|
|
|
|
protected int ticksFarFromPlayer;
|
|
|
|
protected int ticksFarFromPlayer;
|
|
|
|
protected float aZ;
|
|
|
|
protected float aZ;
|
|
|
|
diff --git a/src/main/java/net/minecraft/server/EntityLlama.java b/src/main/java/net/minecraft/server/EntityLlama.java
|
|
|
|
diff --git a/src/main/java/net/minecraft/server/EntityLlama.java b/src/main/java/net/minecraft/server/EntityLlama.java
|
|
|
|
index 7ac07ac07ac0..7ac07ac07ac0 100644
|
|
|
|
index c66d8b68f0..774e4d6414 100644
|
|
|
|
--- a/src/main/java/net/minecraft/server/EntityLlama.java
|
|
|
|
--- a/src/main/java/net/minecraft/server/EntityLlama.java
|
|
|
|
+++ b/src/main/java/net/minecraft/server/EntityLlama.java
|
|
|
|
+++ b/src/main/java/net/minecraft/server/EntityLlama.java
|
|
|
|
@@ -0,0 +0,0 @@ public class EntityLlama extends EntityHorseChestedAbstract implements IRangedEn
|
|
|
|
@@ -0,0 +0,0 @@ public class EntityLlama extends EntityHorseChestedAbstract implements IRangedEn
|
|
|
|
@@ -71,7 +93,7 @@ index 7ac07ac07ac0..7ac07ac07ac0 100644
|
|
|
|
return this.bQ != null;
|
|
|
|
return this.bQ != null;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
diff --git a/src/main/java/net/minecraft/server/PathfinderGoal.java b/src/main/java/net/minecraft/server/PathfinderGoal.java
|
|
|
|
diff --git a/src/main/java/net/minecraft/server/PathfinderGoal.java b/src/main/java/net/minecraft/server/PathfinderGoal.java
|
|
|
|
index 7ac07ac07ac0..7ac07ac07ac0 100644
|
|
|
|
index acc099e955..339c78eec9 100644
|
|
|
|
--- a/src/main/java/net/minecraft/server/PathfinderGoal.java
|
|
|
|
--- a/src/main/java/net/minecraft/server/PathfinderGoal.java
|
|
|
|
+++ b/src/main/java/net/minecraft/server/PathfinderGoal.java
|
|
|
|
+++ b/src/main/java/net/minecraft/server/PathfinderGoal.java
|
|
|
|
@@ -0,0 +0,0 @@ public abstract class PathfinderGoal {
|
|
|
|
@@ -0,0 +0,0 @@ public abstract class PathfinderGoal {
|
|
|
|
@@ -85,7 +107,7 @@ index 7ac07ac07ac0..7ac07ac07ac0 100644
|
|
|
|
public void e() {
|
|
|
|
public void e() {
|
|
|
|
}
|
|
|
|
}
|
|
|
|
diff --git a/src/main/java/net/minecraft/server/PathfinderGoalGotoTarget.java b/src/main/java/net/minecraft/server/PathfinderGoalGotoTarget.java
|
|
|
|
diff --git a/src/main/java/net/minecraft/server/PathfinderGoalGotoTarget.java b/src/main/java/net/minecraft/server/PathfinderGoalGotoTarget.java
|
|
|
|
index 7ac07ac07ac0..7ac07ac07ac0 100644
|
|
|
|
index 9a75cb63ba..cf10605aaa 100644
|
|
|
|
--- a/src/main/java/net/minecraft/server/PathfinderGoalGotoTarget.java
|
|
|
|
--- a/src/main/java/net/minecraft/server/PathfinderGoalGotoTarget.java
|
|
|
|
+++ b/src/main/java/net/minecraft/server/PathfinderGoalGotoTarget.java
|
|
|
|
+++ b/src/main/java/net/minecraft/server/PathfinderGoalGotoTarget.java
|
|
|
|
@@ -0,0 +0,0 @@
|
|
|
|
@@ -0,0 +0,0 @@
|
|
|
|
@@ -125,8 +147,47 @@ index 7ac07ac07ac0..7ac07ac07ac0 100644
|
|
|
|
return true;
|
|
|
|
return true;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
diff --git a/src/main/java/net/minecraft/server/PathfinderGoalSelector.java b/src/main/java/net/minecraft/server/PathfinderGoalSelector.java
|
|
|
|
|
|
|
|
index be3a3c82ee..1404b629d5 100644
|
|
|
|
|
|
|
|
--- a/src/main/java/net/minecraft/server/PathfinderGoalSelector.java
|
|
|
|
|
|
|
|
+++ b/src/main/java/net/minecraft/server/PathfinderGoalSelector.java
|
|
|
|
|
|
|
|
@@ -0,0 +0,0 @@ import org.apache.logging.log4j.Logger;
|
|
|
|
|
|
|
|
public class PathfinderGoalSelector {
|
|
|
|
|
|
|
|
private static final Logger a = LogManager.getLogger();
|
|
|
|
|
|
|
|
private final Set<PathfinderGoalSelector.PathfinderGoalSelectorItem> b = Sets.newLinkedHashSet();
|
|
|
|
|
|
|
|
- private final Set<PathfinderGoalSelector.PathfinderGoalSelectorItem> c = Sets.newLinkedHashSet();
|
|
|
|
|
|
|
|
+ private final Set<PathfinderGoalSelector.PathfinderGoalSelectorItem> c = Sets.newLinkedHashSet();private Set<PathfinderGoalSelector.PathfinderGoalSelectorItem> getExecutingTasks() { return c; }// Paper - OBFHELPER
|
|
|
|
|
|
|
|
private final MethodProfiler d;
|
|
|
|
|
|
|
|
- private int e;
|
|
|
|
|
|
|
|
- private int f = 3;
|
|
|
|
|
|
|
|
+ private int e;private int getCurRate() { return e; } private void incRate() { this.e++; }// Paper - OBFHELPER
|
|
|
|
|
|
|
|
+ private int f = 3;private int getTickRate() { return f; } // Paper - OBFHELPER
|
|
|
|
|
|
|
|
private int g;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public PathfinderGoalSelector(MethodProfiler methodprofiler) {
|
|
|
|
|
|
|
|
@@ -0,0 +0,0 @@ public class PathfinderGoalSelector {
|
|
|
|
|
|
|
|
this.b.add(new PathfinderGoalSelector.PathfinderGoalSelectorItem(i, pathfindergoal));
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
+ // Paper start
|
|
|
|
|
|
|
|
+ public boolean inactiveTick() {
|
|
|
|
|
|
|
|
+ if (getCurRate() % getTickRate() != 0) {
|
|
|
|
|
|
|
|
+ incRate();
|
|
|
|
|
|
|
|
+ return false;
|
|
|
|
|
|
|
|
+ } else {
|
|
|
|
|
|
|
|
+ return true;
|
|
|
|
|
|
|
|
+ }
|
|
|
|
|
|
|
|
+ }
|
|
|
|
|
|
|
|
+ public boolean hasTasks() {
|
|
|
|
|
|
|
|
+ return !getExecutingTasks().isEmpty();
|
|
|
|
|
|
|
|
+ }
|
|
|
|
|
|
|
|
+ // Paper end
|
|
|
|
|
|
|
|
+
|
|
|
|
|
|
|
|
public void a(PathfinderGoal pathfindergoal) {
|
|
|
|
|
|
|
|
Iterator iterator = this.b.iterator();
|
|
|
|
|
|
|
|
|
|
|
|
diff --git a/src/main/java/org/spigotmc/ActivationRange.java b/src/main/java/org/spigotmc/ActivationRange.java
|
|
|
|
diff --git a/src/main/java/org/spigotmc/ActivationRange.java b/src/main/java/org/spigotmc/ActivationRange.java
|
|
|
|
index 7ac07ac07ac0..7ac07ac07ac0 100644
|
|
|
|
index 09df00e94b..d08ef3fe10 100644
|
|
|
|
--- a/src/main/java/org/spigotmc/ActivationRange.java
|
|
|
|
--- a/src/main/java/org/spigotmc/ActivationRange.java
|
|
|
|
+++ b/src/main/java/org/spigotmc/ActivationRange.java
|
|
|
|
+++ b/src/main/java/org/spigotmc/ActivationRange.java
|
|
|
|
@@ -0,0 +0,0 @@ package org.spigotmc;
|
|
|
|
@@ -0,0 +0,0 @@ package org.spigotmc;
|
|
|
|
@@ -299,6 +360,17 @@ index 7ac07ac07ac0..7ac07ac07ac0 100644
|
|
|
|
{
|
|
|
|
{
|
|
|
|
EntityAnimal animal = (EntityAnimal) entity;
|
|
|
|
EntityAnimal animal = (EntityAnimal) entity;
|
|
|
|
@@ -0,0 +0,0 @@ public class ActivationRange
|
|
|
|
@@ -0,0 +0,0 @@ public class ActivationRange
|
|
|
|
|
|
|
|
entity.activatedTick = MinecraftServer.currentTick + 20;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
isActive = true;
|
|
|
|
|
|
|
|
+ // Paper start
|
|
|
|
|
|
|
|
+ } else if (entity instanceof EntityInsentient && ((EntityInsentient) entity).targetSelector.hasTasks()) {
|
|
|
|
|
|
|
|
+ isActive = true;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
+ // Paper end
|
|
|
|
|
|
|
|
// Add a little performance juice to active entities. Skip 1/4 if not immune.
|
|
|
|
|
|
|
|
- } else if ( !entity.defaultActivationState && entity.ticksLived % 4 == 0 && !checkEntityImmunities( entity ) )
|
|
|
|
|
|
|
|
+ } else if ( !entity.defaultActivationState && entity.ticksLived % 4 == 0 && !(entity instanceof EntityInsentient && ((EntityInsentient) entity).targetSelector.hasTasks()) && !checkEntityImmunities( entity ) ) // Paper - add targetSelector.hasTasks
|
|
|
|
{
|
|
|
|
{
|
|
|
|
isActive = false;
|
|
|
|
isActive = false;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
@@ -313,7 +385,7 @@ index 7ac07ac07ac0..7ac07ac07ac0 100644
|
|
|
|
{
|
|
|
|
{
|
|
|
|
isActive = false;
|
|
|
|
isActive = false;
|
|
|
|
diff --git a/src/main/java/org/spigotmc/SpigotWorldConfig.java b/src/main/java/org/spigotmc/SpigotWorldConfig.java
|
|
|
|
diff --git a/src/main/java/org/spigotmc/SpigotWorldConfig.java b/src/main/java/org/spigotmc/SpigotWorldConfig.java
|
|
|
|
index 7ac07ac07ac0..7ac07ac07ac0 100644
|
|
|
|
index 87bc8e2d9c..06d84a0b66 100644
|
|
|
|
--- a/src/main/java/org/spigotmc/SpigotWorldConfig.java
|
|
|
|
--- a/src/main/java/org/spigotmc/SpigotWorldConfig.java
|
|
|
|
+++ b/src/main/java/org/spigotmc/SpigotWorldConfig.java
|
|
|
|
+++ b/src/main/java/org/spigotmc/SpigotWorldConfig.java
|
|
|
|
@@ -0,0 +0,0 @@ public class SpigotWorldConfig
|
|
|
|
@@ -0,0 +0,0 @@ public class SpigotWorldConfig
|
|
|
|
|