76 lines
3.6 KiB
Diff
76 lines
3.6 KiB
Diff
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 190ddd4d9ef3472c33d46c2ead72fa0dc918054a..6da406c8403797a1cd9276ac06577c3c080a8a22 100644
|
|
--- a/src/main/java/net/minecraft/server/level/ChunkMap.java
|
|
+++ b/src/main/java/net/minecraft/server/level/ChunkMap.java
|
|
@@ -1795,6 +1795,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider
|
|
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 8e3e36a8739a7dea1feb3785e96b7b9f19720446..b03fa9024c7f0238e1379f6ae4486db5300a70e9 100644
|
|
--- a/src/main/java/org/spigotmc/TrackingRange.java
|
|
+++ b/src/main/java/org/spigotmc/TrackingRange.java
|
|
@@ -6,7 +6,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
|
|
{
|
|
@@ -25,26 +24,26 @@ 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;
|
|
} else
|
|
{
|
|
+ if (entity instanceof net.minecraft.world.entity.boss.enderdragon.EnderDragon) return ((net.minecraft.server.level.ServerLevel)(entity.getCommandSenderWorld())).getChunkSource().chunkMap.getLoadViewDistance(); // Paper - enderdragon is exempt
|
|
return config.otherTrackingRange;
|
|
}
|
|
}
|