2021-06-11 14:02:28 +02:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								From: kickash32 <kickash32@gmail.com>
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								Date: Sat, 21 Dec 2019 15:22:09 -0500
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								Subject: [PATCH] Tracking Range Improvements
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								Sets tracking range of watermobs to animals instead of misc and simplifies code
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								Also ignores Enderdragon, defaulting it to Mojang's setting
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								--- a/src/main/java/net/minecraft/server/level/ChunkMap.java
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								+++ b/src/main/java/net/minecraft/server/level/ChunkMap.java
 
							 
						 
					
						
							
								
									
										
										
										
											2021-11-24 10:01:27 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								@@ -0,0 +0,0 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider
 
							 
						 
					
						
							
								
									
										
										
										
											2021-06-11 14:02:28 +02:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								             while (iterator.hasNext()) {
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								                 Entity entity = (Entity) iterator.next();
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								                 int j = entity.getType().clientTrackingRange() * 16;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								+                j = org.spigotmc.TrackingRange.getEntityTrackingRange(entity, j); // Paper
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								                 if (j > i) {
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								                     i = j;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								diff --git a/src/main/java/org/spigotmc/TrackingRange.java b/src/main/java/org/spigotmc/TrackingRange.java
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								--- a/src/main/java/org/spigotmc/TrackingRange.java
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								+++ b/src/main/java/org/spigotmc/TrackingRange.java
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								@@ -0,0 +0,0 @@ import net.minecraft.world.entity.ExperienceOrb;
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								 import net.minecraft.world.entity.decoration.ItemFrame;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								 import net.minecraft.world.entity.decoration.Painting;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								 import net.minecraft.world.entity.item.ItemEntity;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								-import net.minecraft.world.entity.monster.Ghast;
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								 public class TrackingRange
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								 {
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								@@ -0,0 +0,0 @@ public class TrackingRange
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								         if ( entity instanceof ServerPlayer )
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								         {
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								             return config.playerTrackingRange;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								-        } else if ( entity.activationType == ActivationRange.ActivationType.MONSTER || entity.activationType == ActivationRange.ActivationType.RAIDER )
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								-        {
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								-            return config.monsterTrackingRange;
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								-        } else if ( entity instanceof Ghast )
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								-        {
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								-            if ( config.monsterTrackingRange > config.monsterActivationRange )
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								-            {
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								+        // Paper start - Simplify and set water mobs to animal tracking range
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								+        }
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								+        switch (entity.activationType) {
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								+            case RAIDER:
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								+            case MONSTER:
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								+            case FLYING_MONSTER:
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								                 return config.monsterTrackingRange;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								-            } else
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								-            {
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								-                return config.monsterActivationRange;
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								-            }
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								-        } else if ( entity.activationType == ActivationRange.ActivationType.ANIMAL )
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								-        {
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								-            return config.animalTrackingRange;
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								-        } else if ( entity instanceof ItemFrame || entity instanceof Painting || entity instanceof ItemEntity || entity instanceof ExperienceOrb )
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								+            case WATER:
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								+            case VILLAGER:
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								+            case ANIMAL:
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								+                return config.animalTrackingRange;
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								+            case MISC:
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								+        }
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								+        if ( entity instanceof ItemFrame || entity instanceof Painting || entity instanceof ItemEntity || entity instanceof ExperienceOrb )
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								+        // Paper end
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								         {
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								             return config.miscTrackingRange;
							 
						 
					
						
							
								
									
										
										
										
											2023-05-12 13:10:08 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								         } else if ( entity instanceof Display )
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								@@ -0,0 +0,0 @@ public class TrackingRange
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								             return config.displayTrackingRange;
							 
						 
					
						
							
								
									
										
										
										
											2021-06-11 14:02:28 +02:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								         } else
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								         {
							 
						 
					
						
							
								
									
										
										
										
											2021-11-24 10:01:27 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								+            if (entity instanceof net.minecraft.world.entity.boss.enderdragon.EnderDragon) return ((net.minecraft.server.level.ServerLevel)(entity.getCommandSenderWorld())).getChunkSource().chunkMap.getEffectiveViewDistance(); // Paper - enderdragon is exempt
 
							 
						 
					
						
							
								
									
										
										
										
											2021-06-11 14:02:28 +02:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								             return config.otherTrackingRange;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								         }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								     }