Mirror von
https://github.com/PaperMC/Paper.git
synchronisiert 2024-12-23 14:50:08 +01:00
68 Zeilen
3.3 KiB
Diff
68 Zeilen
3.3 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/PlayerChunkMap.java b/src/main/java/net/minecraft/server/level/PlayerChunkMap.java
|
||
|
index d00dc8d7933be61f1401f598e5d675f5ae5d7029..baef98331c07b0f8c95351f39c5e471f96a59c05 100644
|
||
|
--- a/src/main/java/net/minecraft/server/level/PlayerChunkMap.java
|
||
|
+++ b/src/main/java/net/minecraft/server/level/PlayerChunkMap.java
|
||
|
@@ -1797,6 +1797,7 @@ public class PlayerChunkMap extends IChunkLoader implements PlayerChunk.d {
|
||
|
while (iterator.hasNext()) {
|
||
|
Entity entity = (Entity) iterator.next();
|
||
|
int j = entity.getEntityType().getChunkRange() * 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 0449451142d59e828a32fe237751c7d8484894a2..3277a8aaffb6a25624967aa0c62f61309a517739 100644
|
||
|
--- a/src/main/java/org/spigotmc/TrackingRange.java
|
||
|
+++ b/src/main/java/org/spigotmc/TrackingRange.java
|
||
|
@@ -25,26 +25,26 @@ public class TrackingRange
|
||
|
if ( entity instanceof EntityPlayer )
|
||
|
{
|
||
|
return config.playerTrackingRange;
|
||
|
- } else if ( entity.activationType == ActivationRange.ActivationType.MONSTER || entity.activationType == ActivationRange.ActivationType.RAIDER )
|
||
|
- {
|
||
|
- return config.monsterTrackingRange;
|
||
|
- } else if ( entity instanceof EntityGhast )
|
||
|
- {
|
||
|
- 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 EntityItemFrame || entity instanceof EntityPainting || entity instanceof EntityItem || entity instanceof EntityExperienceOrb )
|
||
|
+ case WATER:
|
||
|
+ case VILLAGER:
|
||
|
+ case ANIMAL:
|
||
|
+ return config.animalTrackingRange;
|
||
|
+ case MISC:
|
||
|
+ }
|
||
|
+ if ( entity instanceof EntityItemFrame || entity instanceof EntityPainting || entity instanceof EntityItem || entity instanceof EntityExperienceOrb )
|
||
|
+ // Paper end
|
||
|
{
|
||
|
return config.miscTrackingRange;
|
||
|
} else
|
||
|
{
|
||
|
+ if (entity instanceof net.minecraft.world.entity.boss.enderdragon.EntityEnderDragon) return ((net.minecraft.server.level.WorldServer)(entity.getWorld())).getChunkProvider().playerChunkMap.getLoadViewDistance(); // Paper - enderdragon is exempt
|
||
|
return config.otherTrackingRange;
|
||
|
}
|
||
|
}
|