From 76212761ee1282d72ed567d2ad610661f9ab9085 Mon Sep 17 00:00:00 2001 From: William Blake Galbreath Date: Fri, 13 Mar 2020 18:14:43 -0500 Subject: [PATCH] Add flying mobs to entity activation range settings --- ...-to-entity-activation-range-settings.patch | 114 ++++++++++++++++++ ...ld-not-be-exempt-from-activation-ran.patch | 52 -------- 2 files changed, 114 insertions(+), 52 deletions(-) create mode 100644 patches/server/0105-Add-flying-mobs-to-entity-activation-range-settings.patch delete mode 100644 patches/server/0105-Flying-mobs-should-not-be-exempt-from-activation-ran.patch diff --git a/patches/server/0105-Add-flying-mobs-to-entity-activation-range-settings.patch b/patches/server/0105-Add-flying-mobs-to-entity-activation-range-settings.patch new file mode 100644 index 000000000..1f891645d --- /dev/null +++ b/patches/server/0105-Add-flying-mobs-to-entity-activation-range-settings.patch @@ -0,0 +1,114 @@ +From 3f69dbb853814d1248b54ce43569f09109803946 Mon Sep 17 00:00:00 2001 +From: William Blake Galbreath +Date: Sun, 8 Mar 2020 20:54:44 -0500 +Subject: [PATCH] Add flying mobs to entity activation range settings + +--- + src/main/java/org/spigotmc/ActivationRange.java | 16 +++++++++++++++- + .../java/org/spigotmc/SpigotWorldConfig.java | 2 ++ + 2 files changed, 17 insertions(+), 1 deletion(-) + +diff --git a/src/main/java/org/spigotmc/ActivationRange.java b/src/main/java/org/spigotmc/ActivationRange.java +index 11fb146129..c79715b89a 100644 +--- a/src/main/java/org/spigotmc/ActivationRange.java ++++ b/src/main/java/org/spigotmc/ActivationRange.java +@@ -9,6 +9,8 @@ import net.minecraft.server.Entity; + import net.minecraft.server.EntityAmbient; + import net.minecraft.server.EntityAnimal; + import net.minecraft.server.EntityArrow; ++import net.minecraft.server.EntityBird; // Purpur ++import net.minecraft.server.EntityBlaze; // Purpur + import net.minecraft.server.EntityComplexPart; + import net.minecraft.server.EntityCreature; + import net.minecraft.server.EntityCreeper; +@@ -17,6 +19,7 @@ import net.minecraft.server.EntityEnderDragon; + import net.minecraft.server.EntityFallingBlock; // Paper + import net.minecraft.server.EntityFireball; + import net.minecraft.server.EntityFireworks; ++import net.minecraft.server.EntityFlying; // Purpur + import net.minecraft.server.EntityHuman; + import net.minecraft.server.EntityLightning; + import net.minecraft.server.EntityLiving; +@@ -28,6 +31,7 @@ import net.minecraft.server.EntitySlice; + import net.minecraft.server.EntitySlime; + import net.minecraft.server.EntityTNTPrimed; + import net.minecraft.server.EntityThrownTrident; ++import net.minecraft.server.EntityVex; // Purpur + import net.minecraft.server.EntityVillager; + import net.minecraft.server.EntityWither; + import net.minecraft.server.MathHelper; +@@ -46,6 +50,7 @@ public class ActivationRange + + public enum ActivationType + { ++ FLYING, // Purpur + WATER, // Paper + MONSTER, + ANIMAL, +@@ -66,6 +71,7 @@ public class ActivationRange + */ + public static ActivationType initializeEntityActivationType(Entity entity) + { ++ if (isFlyingMob(entity)) { return ActivationType.FLYING; } // Purpur + if (entity instanceof EntityWaterAnimal) { return ActivationType.WATER; } // Paper + if ( entity instanceof EntityRaider ) + { +@@ -129,6 +135,7 @@ public class ActivationRange + final int animalActivationRange = world.spigotConfig.animalActivationRange; + final int monsterActivationRange = world.spigotConfig.monsterActivationRange; + final int waterActivationRange = world.spigotConfig.waterActivationRange; // Paper ++ final int flyingActivationRange = world.spigotConfig.flyingActivationRange; // Purpur + + // Tuinity start - per player view distance + int maxRangeTemp = Math.max( monsterActivationRange, animalActivationRange ); +@@ -149,6 +156,7 @@ public class ActivationRange + ActivationType.ANIMAL.boundingBox = player.getBoundingBox().grow( animalActivationRange, 256, animalActivationRange ); + ActivationType.MONSTER.boundingBox = player.getBoundingBox().grow( monsterActivationRange, 256, monsterActivationRange ); + ActivationType.WATER.boundingBox = player.getBoundingBox().grow( waterActivationRange, 256, waterActivationRange ); // Paper ++ ActivationType.FLYING.boundingBox = player.getBoundingBox().grow( flyingActivationRange, 256, flyingActivationRange ); // Purpur + + + int i = MathHelper.floor( maxBB.minX / 16.0D ); +@@ -210,7 +218,7 @@ public class ActivationRange + } + if ( !( entity instanceof EntityArrow ) ) + { +- if ( !entity.onGround || !entity.passengers.isEmpty() || entity.isPassenger() ) ++ if ( (!entity.onGround && !isFlyingMob(entity)) || !entity.passengers.isEmpty() || entity.isPassenger() ) // Purpur + { + return true; + } +@@ -298,4 +306,10 @@ public class ActivationRange + } + return isActive; + } ++ ++ // Purpur start ++ public static boolean isFlyingMob(Entity entity) { ++ return entity instanceof EntityAmbient || entity instanceof EntityBird || entity instanceof EntityFlying || entity instanceof EntityBlaze || entity instanceof EntityVex; ++ } ++ // Purpur end + } +diff --git a/src/main/java/org/spigotmc/SpigotWorldConfig.java b/src/main/java/org/spigotmc/SpigotWorldConfig.java +index 3ceeed3f99..9a3f566a93 100644 +--- a/src/main/java/org/spigotmc/SpigotWorldConfig.java ++++ b/src/main/java/org/spigotmc/SpigotWorldConfig.java +@@ -181,6 +181,7 @@ public class SpigotWorldConfig + public int raiderActivationRange = 48; + public int miscActivationRange = 16; + public int waterActivationRange = 16; // Paper ++ public int flyingActivationRange = 128; // Purpur + public boolean tickInactiveVillagers = true; + private void activationRange() + { +@@ -189,6 +190,7 @@ public class SpigotWorldConfig + raiderActivationRange = getInt( "entity-activation-range.raiders", raiderActivationRange ); + miscActivationRange = getInt( "entity-activation-range.misc", miscActivationRange ); + waterActivationRange = getInt( "entity-activation-range.water", waterActivationRange ); // Paper ++ flyingActivationRange = getInt( "entity-activation-range.flying", flyingActivationRange ); // Purpur + tickInactiveVillagers = getBoolean( "entity-activation-range.tick-inactive-villagers", tickInactiveVillagers ); + log( "Entity Activation Range: An " + animalActivationRange + " / Mo " + monsterActivationRange + " / Ra " + raiderActivationRange + " / Mi " + miscActivationRange + " / Tiv " + tickInactiveVillagers ); + } +-- +2.24.0 + diff --git a/patches/server/0105-Flying-mobs-should-not-be-exempt-from-activation-ran.patch b/patches/server/0105-Flying-mobs-should-not-be-exempt-from-activation-ran.patch deleted file mode 100644 index 91bc23e80..000000000 --- a/patches/server/0105-Flying-mobs-should-not-be-exempt-from-activation-ran.patch +++ /dev/null @@ -1,52 +0,0 @@ -From 6ff103bf87a9bca587647b5348519195ed77af6e Mon Sep 17 00:00:00 2001 -From: William Blake Galbreath -Date: Sun, 8 Mar 2020 20:54:44 -0500 -Subject: [PATCH] Flying mobs should not be exempt from activation range - onGround check - ---- - src/main/java/org/spigotmc/ActivationRange.java | 7 ++++++- - 1 file changed, 6 insertions(+), 1 deletion(-) - -diff --git a/src/main/java/org/spigotmc/ActivationRange.java b/src/main/java/org/spigotmc/ActivationRange.java -index 11fb146129..b876ffaae7 100644 ---- a/src/main/java/org/spigotmc/ActivationRange.java -+++ b/src/main/java/org/spigotmc/ActivationRange.java -@@ -9,6 +9,8 @@ import net.minecraft.server.Entity; - import net.minecraft.server.EntityAmbient; - import net.minecraft.server.EntityAnimal; - import net.minecraft.server.EntityArrow; -+import net.minecraft.server.EntityBird; // Purpur -+import net.minecraft.server.EntityBlaze; // Purpur - import net.minecraft.server.EntityComplexPart; - import net.minecraft.server.EntityCreature; - import net.minecraft.server.EntityCreeper; -@@ -17,6 +19,7 @@ import net.minecraft.server.EntityEnderDragon; - import net.minecraft.server.EntityFallingBlock; // Paper - import net.minecraft.server.EntityFireball; - import net.minecraft.server.EntityFireworks; -+import net.minecraft.server.EntityFlying; // Purpur - import net.minecraft.server.EntityHuman; - import net.minecraft.server.EntityLightning; - import net.minecraft.server.EntityLiving; -@@ -28,6 +31,7 @@ import net.minecraft.server.EntitySlice; - import net.minecraft.server.EntitySlime; - import net.minecraft.server.EntityTNTPrimed; - import net.minecraft.server.EntityThrownTrident; -+import net.minecraft.server.EntityVex; // Purpur - import net.minecraft.server.EntityVillager; - import net.minecraft.server.EntityWither; - import net.minecraft.server.MathHelper; -@@ -210,7 +214,8 @@ public class ActivationRange - } - if ( !( entity instanceof EntityArrow ) ) - { -- if ( !entity.onGround || !entity.passengers.isEmpty() || entity.isPassenger() ) -+ boolean flyingMob = entity instanceof EntityAmbient || entity instanceof EntityBird || entity instanceof EntityFlying || entity instanceof EntityBlaze || entity instanceof EntityVex; // Purpur -+ if ( (!entity.onGround && !flyingMob) || !entity.passengers.isEmpty() || entity.isPassenger() ) // Purpur - { - return true; - } --- -2.24.0 -