feat(delta): hook Display tracking budget through TrackingRange (no MC patch needed)
Build Delta / Build paperclip jar (push) Failing after 5m14s

This commit is contained in:
SashegDev
2026-09-30 09:26:22 +00:00
parent 342eaadf39
commit a039ea62a9
2 changed files with 24 additions and 1 deletions
@@ -18,6 +18,24 @@ public final class DeltaTracking {
private DeltaTracking() {
}
/**
* Клампит дальность трекинга Display-сущностей.
* Вызывается из {@code org.spigotmc.TrackingRange#getEntityTrackingRange},
* который сам лежит в git-отслеживаемом исходнике Paper — поэтому патчить
* декомпилированный код Minecraft не требуется.
*
* @param range дальность из spigot.yml ({@code entity-tracking-range.display})
* @return эффективную дальность
*/
public static int clampDisplayRange(final int range) {
final DeltaConfig cfg = delta();
if (cfg == null || !cfg.displayTrackingRangeEnabled) {
return range;
}
final int configured = cfg.displayTrackingRange;
return configured <= 0 ? range : Math.min(range, configured);
}
/**
* @return эффективную дальность трекинга с учётом Delta-конфига
*/
@@ -45,7 +45,12 @@ public final class TrackingRange {
if (entity instanceof ItemFrame || entity instanceof Painting || entity instanceof ItemEntity || entity instanceof ExperienceOrb) {
return config.miscTrackingRange;
} else if (entity instanceof Display) {
return config.displayTrackingRange;
// Delta start - optional Display range budget (paper-global.yml -> delta)
// Display entities have no physics, collision or gameplay meaning, so trimming
// their tracking range is safe: the client stops seeing them, server state
// stays correct. Off by default so stock Paper behaviour is unchanged.
return me.sashegdev.delta.DeltaTracking.clampDisplayRange(config.displayTrackingRange);
// Delta end
} else {
if (entity instanceof net.minecraft.world.entity.boss.enderdragon.EnderDragon) {
// Exempt ender dragon