From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: hayanesuru Date: Thu, 26 Jun 2025 00:42:27 +0900 Subject: [PATCH] optimize despawn diff --git a/src/main/java/io/papermc/paper/configuration/WorldConfiguration.java b/src/main/java/io/papermc/paper/configuration/WorldConfiguration.java index 5fc9ec3e564135013622f839e59ef5a0ddff6f71..74d0c6ed2d779b8d02870da74379887e3c460361 100644 --- a/src/main/java/io/papermc/paper/configuration/WorldConfiguration.java +++ b/src/main/java/io/papermc/paper/configuration/WorldConfiguration.java @@ -179,7 +179,7 @@ public class WorldConfiguration extends ConfigurationPart { @MergeMap public Reference2IntMap spawnLimits = Util.make(new Reference2IntOpenHashMap<>(NaturalSpawner.SPAWNING_CATEGORIES.length), map -> Arrays.stream(NaturalSpawner.SPAWNING_CATEGORIES).forEach(mobCategory -> map.put(mobCategory, -1))); @MergeMap - public Map despawnRanges = Arrays.stream(MobCategory.values()).collect(Collectors.toMap(Function.identity(), category -> DespawnRangePair.createDefault())); + public Map despawnRanges = new java.util.EnumMap<>(Arrays.stream(MobCategory.values()).collect(Collectors.toMap(Function.identity(), category -> DespawnRangePair.createDefault()))); // Leaf - optimize despawn - replace with EnumMap public DespawnRange.Shape despawnRangeShape = DespawnRange.Shape.ELLIPSOID; @MergeMap public Reference2IntMap ticksPerSpawn = Util.make(new Reference2IntOpenHashMap<>(NaturalSpawner.SPAWNING_CATEGORIES.length), map -> Arrays.stream(NaturalSpawner.SPAWNING_CATEGORIES).forEach(mobCategory -> map.put(mobCategory, -1))); diff --git a/src/main/java/io/papermc/paper/configuration/type/DespawnRange.java b/src/main/java/io/papermc/paper/configuration/type/DespawnRange.java index 7779edcbbce36d7da177a92807dac73fbe24c9fa..093638ded4e35a33f34ef3d0e0fc2175efc5efaf 100644 --- a/src/main/java/io/papermc/paper/configuration/type/DespawnRange.java +++ b/src/main/java/io/papermc/paper/configuration/type/DespawnRange.java @@ -20,8 +20,8 @@ public final class DespawnRange { public static final TypeSerializer SERIALIZER = new Serializer(); - private final IntOr.Default horizontalLimit; - private final IntOr.Default verticalLimit; + public final IntOr.Default horizontalLimit; // Leaf - optimize despawn + public final IntOr.Default verticalLimit; // Leaf - optimize despawn private final boolean wasDefinedViaLongSyntax; // cached values