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
This commit is contained in:
kickash32 2019-12-21 15:22:09 -05:00
parent 7b1d3d673a
commit c7b38e2bc7
2 changed files with 23 additions and 16 deletions

View file

@ -386,3 +386,11 @@
if (flag) {
if (this.seenBy.add(player.connection)) {
this.serverEntity.addPairing(player);
@@ -1506,6 +1592,7 @@
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;

View file

@ -7,7 +7,6 @@ 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
{
@ -30,22 +29,21 @@ 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 )
{
return config.monsterTrackingRange;
} else
{
return config.monsterActivationRange;
// Paper start - Simplify and set water mobs to animal tracking range
}
} else if ( entity.activationType == ActivationRange.ActivationType.ANIMAL )
{
switch (entity.activationType) {
case RAIDER:
case MONSTER:
case FLYING_MONSTER:
return config.monsterTrackingRange;
case WATER:
case VILLAGER:
case ANIMAL:
return config.animalTrackingRange;
} else if ( entity instanceof ItemFrame || entity instanceof Painting || entity instanceof ItemEntity || entity instanceof ExperienceOrb )
case MISC:
}
if ( entity instanceof ItemFrame || entity instanceof Painting || entity instanceof ItemEntity || entity instanceof ExperienceOrb )
// Paper end
{
return config.miscTrackingRange;
} else if ( entity instanceof Display )
@ -53,6 +51,7 @@ public class TrackingRange
return config.displayTrackingRange;
} else
{
if (entity instanceof net.minecraft.world.entity.boss.enderdragon.EnderDragon) return ((net.minecraft.server.level.ServerLevel)(entity.getCommandSenderWorld())).getChunkSource().chunkMap.serverViewDistance; // Paper - enderdragon is exempt
return config.otherTrackingRange;
}
}