From b87ebbaff4fe834900642b047b5bafed644c3576 Mon Sep 17 00:00:00 2001 From: Dreeam <61569423+Dreeam-qwq@users.noreply.github.com> Date: Sun, 18 Aug 2024 23:18:01 -0400 Subject: [PATCH] Try to optimize ClassInstanceMultiMap --- ...ignableFrom-call-in-ClassInstanceMu.patch} | 6 +- ...-class-map-with-optimized-collection.patch | 15 +---- ...tance-list-with-optimized-collection.patch | 27 ++++++++ ...tracker-map-with-optimized-collecti.patch} | 0 ...signableFrom-call-in-ClassInstanceMu.patch | 67 +++++++++++++++++++ ...> 0076-Cache-BlockStatePairKey-hash.patch} | 0 ...by-multiplication-in-CubePointRange.patch} | 0 ...ace-parts-by-size-in-CubePointRange.patch} | 0 ...k-frozen-ticks-before-landing-block.patch} | 0 ... => 0080-Faster-chunk-serialization.patch} | 0 ...=> 0081-Update-boss-bar-within-tick.patch} | 0 ...082-Cache-world-generator-sea-level.patch} | 0 ...Skip-secondary-POI-sensor-if-absent.patch} | 0 ...0084-Optimize-villager-data-storage.patch} | 0 ...kip-entity-move-if-movement-is-zero.patch} | 0 ...> 0086-Store-mob-counts-in-an-array.patch} | 0 ...-Use-linked-map-for-entity-trackers.patch} | 0 ...h => 0088-Optimize-noise-generation.patch} | 0 ...0089-Optimize-sheep-offspring-color.patch} | 0 ...es-on-entities-with-fire-resistance.patch} | 0 ...1-Skip-cloning-advancement-criteria.patch} | 0 ...lock-destruction-packet-allocations.patch} | 0 ...-Spread-out-sending-all-player-info.patch} | 0 ...player-list-for-sending-player-info.patch} | 0 ...dSendEvent-if-there-are-no-listener.patch} | 0 ...96-Send-multiple-keep-alive-packets.patch} | 0 ...ake-slow-login-timeout-configurable.patch} | 0 ...nation-chunk-before-entity-teleport.patch} | 0 ...Don-t-load-chunks-to-spawn-phantoms.patch} | 0 ...hunks-to-activate-climbing-entities.patch} | 0 ...imations-as-the-entity-being-critte.patch} | 0 ...2-Ignore-null-legacy-structure-data.patch} | 0 ...necessary-mob-spawning-computations.patch} | 0 ...random-strolling-into-non-ticking-c.patch} | 0 ...er-in-world-if-kicked-before-being-.patch} | 2 +- ... 0106-CraftBukkit-UUID-to-world-map.patch} | 0 ...file.patch => 0107-Global-EULA-file.patch} | 0 ...h => 0108-Specific-interval-TPS-API.patch} | 0 ....patch => 0109-5-second-TPS-average.patch} | 0 ...atch => 0110-Measure-last-tick-time.patch} | 0 ...PI.patch => 0111-Last-tick-time-API.patch} | 0 ...-Show-last-tick-time-in-tps-command.patch} | 0 ...crease-time-statistics-in-intervals.patch} | 0 ...eck-has-physics-before-same-vehicle.patch} | 0 ...ible-planar-movement-multiplication.patch} | 0 ... 0116-Optimize-matching-item-checks.patch} | 2 +- ...h => 0117-Pre-compute-VarLong-sizes.patch} | 0 ...mize-VarInt-write-and-VarLong-write.patch} | 0 ... 0119-Reduce-RandomSource-instances.patch} | 0 ....patch => 0120-Add-xor-shift-random.patch} | 0 ...Stack-lookups-for-reduced-visibilit.patch} | 0 ...ne-of-sight-cache-with-low-capacity.patch} | 0 ...-of-sight-updates-and-cache-lookups.patch} | 0 ...hread-priority-environment-variable.patch} | 0 ...atch => 0125-Virtual-thread-support.patch} | 0 55 files changed, 103 insertions(+), 16 deletions(-) rename patches/{server/0074-Avoid-Class-isAssignableFrom-call-in-ClassInstanceMu.patch => removed/server/0075-Avoid-Class-isAssignableFrom-call-in-ClassInstanceMu.patch} (92%) create mode 100644 patches/server/0073-Replace-instance-list-with-optimized-collection.patch rename patches/server/{0073-Replace-throttle-tracker-map-with-optimized-collecti.patch => 0074-Replace-throttle-tracker-map-with-optimized-collecti.patch} (100%) create mode 100644 patches/server/0075-Avoid-Class-isAssignableFrom-call-in-ClassInstanceMu.patch rename patches/server/{0075-Cache-BlockStatePairKey-hash.patch => 0076-Cache-BlockStatePairKey-hash.patch} (100%) rename patches/server/{0076-Replace-division-by-multiplication-in-CubePointRange.patch => 0077-Replace-division-by-multiplication-in-CubePointRange.patch} (100%) rename patches/server/{0077-Replace-parts-by-size-in-CubePointRange.patch => 0078-Replace-parts-by-size-in-CubePointRange.patch} (100%) rename patches/server/{0078-Check-frozen-ticks-before-landing-block.patch => 0079-Check-frozen-ticks-before-landing-block.patch} (100%) rename patches/server/{0079-Faster-chunk-serialization.patch => 0080-Faster-chunk-serialization.patch} (100%) rename patches/server/{0080-Update-boss-bar-within-tick.patch => 0081-Update-boss-bar-within-tick.patch} (100%) rename patches/server/{0081-Cache-world-generator-sea-level.patch => 0082-Cache-world-generator-sea-level.patch} (100%) rename patches/server/{0082-Skip-secondary-POI-sensor-if-absent.patch => 0083-Skip-secondary-POI-sensor-if-absent.patch} (100%) rename patches/server/{0083-Optimize-villager-data-storage.patch => 0084-Optimize-villager-data-storage.patch} (100%) rename patches/server/{0084-Skip-entity-move-if-movement-is-zero.patch => 0085-Skip-entity-move-if-movement-is-zero.patch} (100%) rename patches/server/{0085-Store-mob-counts-in-an-array.patch => 0086-Store-mob-counts-in-an-array.patch} (100%) rename patches/server/{0086-Use-linked-map-for-entity-trackers.patch => 0087-Use-linked-map-for-entity-trackers.patch} (100%) rename patches/server/{0087-Optimize-noise-generation.patch => 0088-Optimize-noise-generation.patch} (100%) rename patches/server/{0088-Optimize-sheep-offspring-color.patch => 0089-Optimize-sheep-offspring-color.patch} (100%) rename patches/server/{0089-Hide-flames-on-entities-with-fire-resistance.patch => 0090-Hide-flames-on-entities-with-fire-resistance.patch} (100%) rename patches/server/{0090-Skip-cloning-advancement-criteria.patch => 0091-Skip-cloning-advancement-criteria.patch} (100%) rename patches/server/{0091-Reduce-block-destruction-packet-allocations.patch => 0092-Reduce-block-destruction-packet-allocations.patch} (100%) rename patches/server/{0092-Spread-out-sending-all-player-info.patch => 0093-Spread-out-sending-all-player-info.patch} (100%) rename patches/server/{0093-Optimize-player-list-for-sending-player-info.patch => 0094-Optimize-player-list-for-sending-player-info.patch} (100%) rename patches/server/{0094-Skip-PlayerCommandSendEvent-if-there-are-no-listener.patch => 0095-Skip-PlayerCommandSendEvent-if-there-are-no-listener.patch} (100%) rename patches/server/{0095-Send-multiple-keep-alive-packets.patch => 0096-Send-multiple-keep-alive-packets.patch} (100%) rename patches/server/{0096-Make-slow-login-timeout-configurable.patch => 0097-Make-slow-login-timeout-configurable.patch} (100%) rename patches/server/{0097-Load-portal-destination-chunk-before-entity-teleport.patch => 0098-Load-portal-destination-chunk-before-entity-teleport.patch} (100%) rename patches/server/{0098-Don-t-load-chunks-to-spawn-phantoms.patch => 0099-Don-t-load-chunks-to-spawn-phantoms.patch} (100%) rename patches/server/{0099-Don-t-load-chunks-to-activate-climbing-entities.patch => 0100-Don-t-load-chunks-to-activate-climbing-entities.patch} (100%) rename patches/server/{0100-Broadcast-crit-animations-as-the-entity-being-critte.patch => 0101-Broadcast-crit-animations-as-the-entity-being-critte.patch} (100%) rename patches/server/{0101-Ignore-null-legacy-structure-data.patch => 0102-Ignore-null-legacy-structure-data.patch} (100%) rename patches/server/{0102-Skip-unnecessary-mob-spawning-computations.patch => 0103-Skip-unnecessary-mob-spawning-computations.patch} (100%) rename patches/server/{0103-Prevent-entities-random-strolling-into-non-ticking-c.patch => 0104-Prevent-entities-random-strolling-into-non-ticking-c.patch} (100%) rename patches/server/{0104-Do-not-place-player-in-world-if-kicked-before-being-.patch => 0105-Do-not-place-player-in-world-if-kicked-before-being-.patch} (94%) rename patches/server/{0105-CraftBukkit-UUID-to-world-map.patch => 0106-CraftBukkit-UUID-to-world-map.patch} (100%) rename patches/server/{0106-Global-EULA-file.patch => 0107-Global-EULA-file.patch} (100%) rename patches/server/{0107-Specific-interval-TPS-API.patch => 0108-Specific-interval-TPS-API.patch} (100%) rename patches/server/{0108-5-second-TPS-average.patch => 0109-5-second-TPS-average.patch} (100%) rename patches/server/{0109-Measure-last-tick-time.patch => 0110-Measure-last-tick-time.patch} (100%) rename patches/server/{0110-Last-tick-time-API.patch => 0111-Last-tick-time-API.patch} (100%) rename patches/server/{0111-Show-last-tick-time-in-tps-command.patch => 0112-Show-last-tick-time-in-tps-command.patch} (100%) rename patches/server/{0112-Increase-time-statistics-in-intervals.patch => 0113-Increase-time-statistics-in-intervals.patch} (100%) rename patches/server/{0113-For-collision-check-has-physics-before-same-vehicle.patch => 0114-For-collision-check-has-physics-before-same-vehicle.patch} (100%) rename patches/server/{0114-Skip-negligible-planar-movement-multiplication.patch => 0115-Skip-negligible-planar-movement-multiplication.patch} (100%) rename patches/server/{0115-Optimize-matching-item-checks.patch => 0116-Optimize-matching-item-checks.patch} (95%) rename patches/server/{0116-Pre-compute-VarLong-sizes.patch => 0117-Pre-compute-VarLong-sizes.patch} (100%) rename patches/server/{0117-Optimize-VarInt-write-and-VarLong-write.patch => 0118-Optimize-VarInt-write-and-VarLong-write.patch} (100%) rename patches/server/{0118-Reduce-RandomSource-instances.patch => 0119-Reduce-RandomSource-instances.patch} (100%) rename patches/server/{0119-Add-xor-shift-random.patch => 0120-Add-xor-shift-random.patch} (100%) rename patches/server/{0120-Reduce-skull-ItemStack-lookups-for-reduced-visibilit.patch => 0121-Reduce-skull-ItemStack-lookups-for-reduced-visibilit.patch} (100%) rename patches/server/{0121-Initialize-line-of-sight-cache-with-low-capacity.patch => 0122-Initialize-line-of-sight-cache-with-low-capacity.patch} (100%) rename patches/server/{0122-Reduce-line-of-sight-updates-and-cache-lookups.patch => 0123-Reduce-line-of-sight-updates-and-cache-lookups.patch} (100%) rename patches/server/{0123-Server-thread-priority-environment-variable.patch => 0124-Server-thread-priority-environment-variable.patch} (100%) rename patches/server/{0124-Virtual-thread-support.patch => 0125-Virtual-thread-support.patch} (100%) diff --git a/patches/server/0074-Avoid-Class-isAssignableFrom-call-in-ClassInstanceMu.patch b/patches/removed/server/0075-Avoid-Class-isAssignableFrom-call-in-ClassInstanceMu.patch similarity index 92% rename from patches/server/0074-Avoid-Class-isAssignableFrom-call-in-ClassInstanceMu.patch rename to patches/removed/server/0075-Avoid-Class-isAssignableFrom-call-in-ClassInstanceMu.patch index 8d2f8d2..1ee8891 100644 --- a/patches/server/0074-Avoid-Class-isAssignableFrom-call-in-ClassInstanceMu.patch +++ b/patches/removed/server/0075-Avoid-Class-isAssignableFrom-call-in-ClassInstanceMu.patch @@ -3,6 +3,8 @@ From: Martijn Muijsers Date: Wed, 30 Nov 2022 21:15:33 +0100 Subject: [PATCH] Avoid Class#isAssignableFrom call in ClassInstanceMultiMap +Removed since 1.21.1, replaced by VMP optimization + License: LGPL-3.0 (https://www.gnu.org/licenses/lgpl-3.0.html) Gale - https://galemc.org @@ -13,10 +15,10 @@ As part of: Lithium (https://github.com/CaffeineMC/lithium-fabric) Licensed under: LGPL-3.0 (https://www.gnu.org/licenses/lgpl-3.0.html) diff --git a/src/main/java/net/minecraft/util/ClassInstanceMultiMap.java b/src/main/java/net/minecraft/util/ClassInstanceMultiMap.java -index cd28174187133550e418c0e748ce8a06739d0146..99c90bc178975b87c8588998bd8d0b301ec79202 100644 +index 4264b3a69b5cbe2e56058927ceb5409389cecf4b..1cdff53d2c39d785b3b3306eef27649a4b092e52 100644 --- a/src/main/java/net/minecraft/util/ClassInstanceMultiMap.java +++ b/src/main/java/net/minecraft/util/ClassInstanceMultiMap.java -@@ -58,13 +58,33 @@ public class ClassInstanceMultiMap extends AbstractCollection { +@@ -56,13 +56,33 @@ public class ClassInstanceMultiMap extends AbstractCollection { } public Collection find(Class type) { diff --git a/patches/server/0072-Replace-class-map-with-optimized-collection.patch b/patches/server/0072-Replace-class-map-with-optimized-collection.patch index d47712f..b825a7e 100644 --- a/patches/server/0072-Replace-class-map-with-optimized-collection.patch +++ b/patches/server/0072-Replace-class-map-with-optimized-collection.patch @@ -13,24 +13,15 @@ As part of: Lithium (https://github.com/CaffeineMC/lithium-fabric) Licensed under: LGPL-3.0 (https://www.gnu.org/licenses/lgpl-3.0.html) diff --git a/src/main/java/net/minecraft/util/ClassInstanceMultiMap.java b/src/main/java/net/minecraft/util/ClassInstanceMultiMap.java -index 038710ba934a9a57815dfe9f414b98223b848385..cd28174187133550e418c0e748ce8a06739d0146 100644 +index 038710ba934a9a57815dfe9f414b98223b848385..f1a288b6a29f3ba31e2364a9bc412c5e939b6ef7 100644 --- a/src/main/java/net/minecraft/util/ClassInstanceMultiMap.java +++ b/src/main/java/net/minecraft/util/ClassInstanceMultiMap.java -@@ -4,6 +4,8 @@ import com.google.common.collect.ImmutableList; - import com.google.common.collect.Iterators; - import com.google.common.collect.Lists; - import com.google.common.collect.Maps; -+import it.unimi.dsi.fastutil.objects.Reference2ReferenceOpenHashMap; -+ - import java.util.AbstractCollection; - import java.util.Collection; - import java.util.Collections; -@@ -14,7 +16,7 @@ import java.util.Map.Entry; +@@ -14,7 +14,7 @@ import java.util.Map.Entry; import net.minecraft.Util; public class ClassInstanceMultiMap extends AbstractCollection { - private final Map, List> byClass = Maps.newHashMap(); -+ private final Map, List> byClass = new Reference2ReferenceOpenHashMap<>(2); // Gale - Lithium - replace class map with optimized collection ++ private final Map, List> byClass = new it.unimi.dsi.fastutil.objects.Reference2ReferenceOpenHashMap<>(2); // Gale - Lithium - replace class map with optimized collection private final Class baseClass; private final List allInstances = Lists.newArrayList(); diff --git a/patches/server/0073-Replace-instance-list-with-optimized-collection.patch b/patches/server/0073-Replace-instance-list-with-optimized-collection.patch new file mode 100644 index 0000000..8fa1b16 --- /dev/null +++ b/patches/server/0073-Replace-instance-list-with-optimized-collection.patch @@ -0,0 +1,27 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Dreeam <61569423+Dreeam-qwq@users.noreply.github.com> +Date: Sun, 18 Aug 2024 22:44:48 -0400 +Subject: [PATCH] Replace instance list with optimized collection + +License: MIT (https://opensource.org/licenses/MIT) +Gale - https://galemc.org + +This patch is based on the following mixin: +"com/ishland/vmp/mixins/general/collections/MixinTypeFilterableList.java" +By: ishland +As part of: VMP (https://github.com/RelativityMC/VMP-fabric) +Licensed under: MIT (https://opensource.org/licenses/MIT) + +diff --git a/src/main/java/net/minecraft/util/ClassInstanceMultiMap.java b/src/main/java/net/minecraft/util/ClassInstanceMultiMap.java +index f1a288b6a29f3ba31e2364a9bc412c5e939b6ef7..4264b3a69b5cbe2e56058927ceb5409389cecf4b 100644 +--- a/src/main/java/net/minecraft/util/ClassInstanceMultiMap.java ++++ b/src/main/java/net/minecraft/util/ClassInstanceMultiMap.java +@@ -16,7 +16,7 @@ import net.minecraft.Util; + public class ClassInstanceMultiMap extends AbstractCollection { + private final Map, List> byClass = new it.unimi.dsi.fastutil.objects.Reference2ReferenceOpenHashMap<>(2); // Gale - Lithium - replace class map with optimized collection + private final Class baseClass; +- private final List allInstances = Lists.newArrayList(); ++ private final List allInstances = new it.unimi.dsi.fastutil.objects.ObjectArrayList<>(); // Gale - VMP - replace instance map with optimized collection + + public ClassInstanceMultiMap(Class elementType) { + this.baseClass = elementType; diff --git a/patches/server/0073-Replace-throttle-tracker-map-with-optimized-collecti.patch b/patches/server/0074-Replace-throttle-tracker-map-with-optimized-collecti.patch similarity index 100% rename from patches/server/0073-Replace-throttle-tracker-map-with-optimized-collecti.patch rename to patches/server/0074-Replace-throttle-tracker-map-with-optimized-collecti.patch diff --git a/patches/server/0075-Avoid-Class-isAssignableFrom-call-in-ClassInstanceMu.patch b/patches/server/0075-Avoid-Class-isAssignableFrom-call-in-ClassInstanceMu.patch new file mode 100644 index 0000000..a8eb69a --- /dev/null +++ b/patches/server/0075-Avoid-Class-isAssignableFrom-call-in-ClassInstanceMu.patch @@ -0,0 +1,67 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Martijn Muijsers +Date: Wed, 30 Nov 2022 21:15:33 +0100 +Subject: [PATCH] Avoid Class#isAssignableFrom call in ClassInstanceMultiMap + +License: MIT (https://opensource.org/licenses/MIT) +Gale - https://galemc.org + +This patch is based on the following mixin: +"com/ishland/vmp/mixins/general/collections/MixinTypeFilterableList.java" +By: ishland +As part of: VMP (https://github.com/RelativityMC/VMP-fabric) +Licensed under: MIT (https://opensource.org/licenses/MIT) + +diff --git a/src/main/java/net/minecraft/util/ClassInstanceMultiMap.java b/src/main/java/net/minecraft/util/ClassInstanceMultiMap.java +index 4264b3a69b5cbe2e56058927ceb5409389cecf4b..ff545f6d36c265d70c79fc1acc7a279f10fbfcfd 100644 +--- a/src/main/java/net/minecraft/util/ClassInstanceMultiMap.java ++++ b/src/main/java/net/minecraft/util/ClassInstanceMultiMap.java +@@ -56,18 +56,41 @@ public class ClassInstanceMultiMap extends AbstractCollection { + } + + public Collection find(Class type) { +- if (!this.baseClass.isAssignableFrom(type)) { +- throw new IllegalArgumentException("Don't know how to search for " + type); +- } else { +- List list = this.byClass +- .computeIfAbsent(type, typeClass -> this.allInstances.stream().filter(typeClass::isInstance).collect(Util.toMutableList())); +- return (Collection)Collections.unmodifiableCollection(list); ++ // Gale start - VMP - avoid Class#isAssignableFrom call in ClassInstanceMultiMap ++ /* ++ Only perform the slow Class#isAssignableFrom(Class) if a list doesn't exist for the type, otherwise ++ we can assume it's already valid. The slow-path code is moved to a separate method to help the JVM inline this. ++ */ ++ Collection collection = this.byClass.get(type); ++ ++ if (collection == null) { ++ collection = this.createAllOfType(type); + } ++ ++ return (Collection) collection; ++ } ++ ++ private Collection createAllOfType(Class type) { ++ return this.byClass.computeIfAbsent( ++ type, ++ typeClass -> { ++ it.unimi.dsi.fastutil.objects.ObjectArrayList ts = new it.unimi.dsi.fastutil.objects.ObjectArrayList<>(this.allInstances.size()); ++ ++ for (T _allElement : ((it.unimi.dsi.fastutil.objects.ObjectArrayList) this.allInstances).elements()) { ++ if (typeClass.isInstance(_allElement)) { ++ ts.add(_allElement); ++ } ++ } ++ ++ return ts; ++ } ++ ); ++ // Gale end - VMP - avoid Class#isAssignableFrom call in ClassInstanceMultiMap + } + + @Override + public Iterator iterator() { +- return (Iterator)(this.allInstances.isEmpty() ? Collections.emptyIterator() : Iterators.unmodifiableIterator(this.allInstances.iterator())); ++ return this.allInstances.isEmpty() ? Collections.emptyIterator() : Iterators.unmodifiableIterator(this.allInstances.iterator()); + } + + public List getAllInstances() { diff --git a/patches/server/0075-Cache-BlockStatePairKey-hash.patch b/patches/server/0076-Cache-BlockStatePairKey-hash.patch similarity index 100% rename from patches/server/0075-Cache-BlockStatePairKey-hash.patch rename to patches/server/0076-Cache-BlockStatePairKey-hash.patch diff --git a/patches/server/0076-Replace-division-by-multiplication-in-CubePointRange.patch b/patches/server/0077-Replace-division-by-multiplication-in-CubePointRange.patch similarity index 100% rename from patches/server/0076-Replace-division-by-multiplication-in-CubePointRange.patch rename to patches/server/0077-Replace-division-by-multiplication-in-CubePointRange.patch diff --git a/patches/server/0077-Replace-parts-by-size-in-CubePointRange.patch b/patches/server/0078-Replace-parts-by-size-in-CubePointRange.patch similarity index 100% rename from patches/server/0077-Replace-parts-by-size-in-CubePointRange.patch rename to patches/server/0078-Replace-parts-by-size-in-CubePointRange.patch diff --git a/patches/server/0078-Check-frozen-ticks-before-landing-block.patch b/patches/server/0079-Check-frozen-ticks-before-landing-block.patch similarity index 100% rename from patches/server/0078-Check-frozen-ticks-before-landing-block.patch rename to patches/server/0079-Check-frozen-ticks-before-landing-block.patch diff --git a/patches/server/0079-Faster-chunk-serialization.patch b/patches/server/0080-Faster-chunk-serialization.patch similarity index 100% rename from patches/server/0079-Faster-chunk-serialization.patch rename to patches/server/0080-Faster-chunk-serialization.patch diff --git a/patches/server/0080-Update-boss-bar-within-tick.patch b/patches/server/0081-Update-boss-bar-within-tick.patch similarity index 100% rename from patches/server/0080-Update-boss-bar-within-tick.patch rename to patches/server/0081-Update-boss-bar-within-tick.patch diff --git a/patches/server/0081-Cache-world-generator-sea-level.patch b/patches/server/0082-Cache-world-generator-sea-level.patch similarity index 100% rename from patches/server/0081-Cache-world-generator-sea-level.patch rename to patches/server/0082-Cache-world-generator-sea-level.patch diff --git a/patches/server/0082-Skip-secondary-POI-sensor-if-absent.patch b/patches/server/0083-Skip-secondary-POI-sensor-if-absent.patch similarity index 100% rename from patches/server/0082-Skip-secondary-POI-sensor-if-absent.patch rename to patches/server/0083-Skip-secondary-POI-sensor-if-absent.patch diff --git a/patches/server/0083-Optimize-villager-data-storage.patch b/patches/server/0084-Optimize-villager-data-storage.patch similarity index 100% rename from patches/server/0083-Optimize-villager-data-storage.patch rename to patches/server/0084-Optimize-villager-data-storage.patch diff --git a/patches/server/0084-Skip-entity-move-if-movement-is-zero.patch b/patches/server/0085-Skip-entity-move-if-movement-is-zero.patch similarity index 100% rename from patches/server/0084-Skip-entity-move-if-movement-is-zero.patch rename to patches/server/0085-Skip-entity-move-if-movement-is-zero.patch diff --git a/patches/server/0085-Store-mob-counts-in-an-array.patch b/patches/server/0086-Store-mob-counts-in-an-array.patch similarity index 100% rename from patches/server/0085-Store-mob-counts-in-an-array.patch rename to patches/server/0086-Store-mob-counts-in-an-array.patch diff --git a/patches/server/0086-Use-linked-map-for-entity-trackers.patch b/patches/server/0087-Use-linked-map-for-entity-trackers.patch similarity index 100% rename from patches/server/0086-Use-linked-map-for-entity-trackers.patch rename to patches/server/0087-Use-linked-map-for-entity-trackers.patch diff --git a/patches/server/0087-Optimize-noise-generation.patch b/patches/server/0088-Optimize-noise-generation.patch similarity index 100% rename from patches/server/0087-Optimize-noise-generation.patch rename to patches/server/0088-Optimize-noise-generation.patch diff --git a/patches/server/0088-Optimize-sheep-offspring-color.patch b/patches/server/0089-Optimize-sheep-offspring-color.patch similarity index 100% rename from patches/server/0088-Optimize-sheep-offspring-color.patch rename to patches/server/0089-Optimize-sheep-offspring-color.patch diff --git a/patches/server/0089-Hide-flames-on-entities-with-fire-resistance.patch b/patches/server/0090-Hide-flames-on-entities-with-fire-resistance.patch similarity index 100% rename from patches/server/0089-Hide-flames-on-entities-with-fire-resistance.patch rename to patches/server/0090-Hide-flames-on-entities-with-fire-resistance.patch diff --git a/patches/server/0090-Skip-cloning-advancement-criteria.patch b/patches/server/0091-Skip-cloning-advancement-criteria.patch similarity index 100% rename from patches/server/0090-Skip-cloning-advancement-criteria.patch rename to patches/server/0091-Skip-cloning-advancement-criteria.patch diff --git a/patches/server/0091-Reduce-block-destruction-packet-allocations.patch b/patches/server/0092-Reduce-block-destruction-packet-allocations.patch similarity index 100% rename from patches/server/0091-Reduce-block-destruction-packet-allocations.patch rename to patches/server/0092-Reduce-block-destruction-packet-allocations.patch diff --git a/patches/server/0092-Spread-out-sending-all-player-info.patch b/patches/server/0093-Spread-out-sending-all-player-info.patch similarity index 100% rename from patches/server/0092-Spread-out-sending-all-player-info.patch rename to patches/server/0093-Spread-out-sending-all-player-info.patch diff --git a/patches/server/0093-Optimize-player-list-for-sending-player-info.patch b/patches/server/0094-Optimize-player-list-for-sending-player-info.patch similarity index 100% rename from patches/server/0093-Optimize-player-list-for-sending-player-info.patch rename to patches/server/0094-Optimize-player-list-for-sending-player-info.patch diff --git a/patches/server/0094-Skip-PlayerCommandSendEvent-if-there-are-no-listener.patch b/patches/server/0095-Skip-PlayerCommandSendEvent-if-there-are-no-listener.patch similarity index 100% rename from patches/server/0094-Skip-PlayerCommandSendEvent-if-there-are-no-listener.patch rename to patches/server/0095-Skip-PlayerCommandSendEvent-if-there-are-no-listener.patch diff --git a/patches/server/0095-Send-multiple-keep-alive-packets.patch b/patches/server/0096-Send-multiple-keep-alive-packets.patch similarity index 100% rename from patches/server/0095-Send-multiple-keep-alive-packets.patch rename to patches/server/0096-Send-multiple-keep-alive-packets.patch diff --git a/patches/server/0096-Make-slow-login-timeout-configurable.patch b/patches/server/0097-Make-slow-login-timeout-configurable.patch similarity index 100% rename from patches/server/0096-Make-slow-login-timeout-configurable.patch rename to patches/server/0097-Make-slow-login-timeout-configurable.patch diff --git a/patches/server/0097-Load-portal-destination-chunk-before-entity-teleport.patch b/patches/server/0098-Load-portal-destination-chunk-before-entity-teleport.patch similarity index 100% rename from patches/server/0097-Load-portal-destination-chunk-before-entity-teleport.patch rename to patches/server/0098-Load-portal-destination-chunk-before-entity-teleport.patch diff --git a/patches/server/0098-Don-t-load-chunks-to-spawn-phantoms.patch b/patches/server/0099-Don-t-load-chunks-to-spawn-phantoms.patch similarity index 100% rename from patches/server/0098-Don-t-load-chunks-to-spawn-phantoms.patch rename to patches/server/0099-Don-t-load-chunks-to-spawn-phantoms.patch diff --git a/patches/server/0099-Don-t-load-chunks-to-activate-climbing-entities.patch b/patches/server/0100-Don-t-load-chunks-to-activate-climbing-entities.patch similarity index 100% rename from patches/server/0099-Don-t-load-chunks-to-activate-climbing-entities.patch rename to patches/server/0100-Don-t-load-chunks-to-activate-climbing-entities.patch diff --git a/patches/server/0100-Broadcast-crit-animations-as-the-entity-being-critte.patch b/patches/server/0101-Broadcast-crit-animations-as-the-entity-being-critte.patch similarity index 100% rename from patches/server/0100-Broadcast-crit-animations-as-the-entity-being-critte.patch rename to patches/server/0101-Broadcast-crit-animations-as-the-entity-being-critte.patch diff --git a/patches/server/0101-Ignore-null-legacy-structure-data.patch b/patches/server/0102-Ignore-null-legacy-structure-data.patch similarity index 100% rename from patches/server/0101-Ignore-null-legacy-structure-data.patch rename to patches/server/0102-Ignore-null-legacy-structure-data.patch diff --git a/patches/server/0102-Skip-unnecessary-mob-spawning-computations.patch b/patches/server/0103-Skip-unnecessary-mob-spawning-computations.patch similarity index 100% rename from patches/server/0102-Skip-unnecessary-mob-spawning-computations.patch rename to patches/server/0103-Skip-unnecessary-mob-spawning-computations.patch diff --git a/patches/server/0103-Prevent-entities-random-strolling-into-non-ticking-c.patch b/patches/server/0104-Prevent-entities-random-strolling-into-non-ticking-c.patch similarity index 100% rename from patches/server/0103-Prevent-entities-random-strolling-into-non-ticking-c.patch rename to patches/server/0104-Prevent-entities-random-strolling-into-non-ticking-c.patch diff --git a/patches/server/0104-Do-not-place-player-in-world-if-kicked-before-being-.patch b/patches/server/0105-Do-not-place-player-in-world-if-kicked-before-being-.patch similarity index 94% rename from patches/server/0104-Do-not-place-player-in-world-if-kicked-before-being-.patch rename to patches/server/0105-Do-not-place-player-in-world-if-kicked-before-being-.patch index f4ef1fc..7bd4816 100644 --- a/patches/server/0104-Do-not-place-player-in-world-if-kicked-before-being-.patch +++ b/patches/server/0105-Do-not-place-player-in-world-if-kicked-before-being-.patch @@ -14,7 +14,7 @@ As part of: MultiPaper (https://github.com/MultiPaper/MultiPaper) Licensed under: GPL-3.0 (https://www.gnu.org/licenses/gpl-3.0.html) diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index e7ccaf9d0f10f4c0fd24c4b5ca15972bfff67a0f..0f7a7d17a94c052111763bee00ba1b34442493d9 100644 +index 23121196950f9a8c2556b7b43bf5bab24b1b38f6..f86d2644024f4b190e9bded08aa9b71d6d0c8235 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java @@ -275,6 +275,13 @@ public abstract class PlayerList { diff --git a/patches/server/0105-CraftBukkit-UUID-to-world-map.patch b/patches/server/0106-CraftBukkit-UUID-to-world-map.patch similarity index 100% rename from patches/server/0105-CraftBukkit-UUID-to-world-map.patch rename to patches/server/0106-CraftBukkit-UUID-to-world-map.patch diff --git a/patches/server/0106-Global-EULA-file.patch b/patches/server/0107-Global-EULA-file.patch similarity index 100% rename from patches/server/0106-Global-EULA-file.patch rename to patches/server/0107-Global-EULA-file.patch diff --git a/patches/server/0107-Specific-interval-TPS-API.patch b/patches/server/0108-Specific-interval-TPS-API.patch similarity index 100% rename from patches/server/0107-Specific-interval-TPS-API.patch rename to patches/server/0108-Specific-interval-TPS-API.patch diff --git a/patches/server/0108-5-second-TPS-average.patch b/patches/server/0109-5-second-TPS-average.patch similarity index 100% rename from patches/server/0108-5-second-TPS-average.patch rename to patches/server/0109-5-second-TPS-average.patch diff --git a/patches/server/0109-Measure-last-tick-time.patch b/patches/server/0110-Measure-last-tick-time.patch similarity index 100% rename from patches/server/0109-Measure-last-tick-time.patch rename to patches/server/0110-Measure-last-tick-time.patch diff --git a/patches/server/0110-Last-tick-time-API.patch b/patches/server/0111-Last-tick-time-API.patch similarity index 100% rename from patches/server/0110-Last-tick-time-API.patch rename to patches/server/0111-Last-tick-time-API.patch diff --git a/patches/server/0111-Show-last-tick-time-in-tps-command.patch b/patches/server/0112-Show-last-tick-time-in-tps-command.patch similarity index 100% rename from patches/server/0111-Show-last-tick-time-in-tps-command.patch rename to patches/server/0112-Show-last-tick-time-in-tps-command.patch diff --git a/patches/server/0112-Increase-time-statistics-in-intervals.patch b/patches/server/0113-Increase-time-statistics-in-intervals.patch similarity index 100% rename from patches/server/0112-Increase-time-statistics-in-intervals.patch rename to patches/server/0113-Increase-time-statistics-in-intervals.patch diff --git a/patches/server/0113-For-collision-check-has-physics-before-same-vehicle.patch b/patches/server/0114-For-collision-check-has-physics-before-same-vehicle.patch similarity index 100% rename from patches/server/0113-For-collision-check-has-physics-before-same-vehicle.patch rename to patches/server/0114-For-collision-check-has-physics-before-same-vehicle.patch diff --git a/patches/server/0114-Skip-negligible-planar-movement-multiplication.patch b/patches/server/0115-Skip-negligible-planar-movement-multiplication.patch similarity index 100% rename from patches/server/0114-Skip-negligible-planar-movement-multiplication.patch rename to patches/server/0115-Skip-negligible-planar-movement-multiplication.patch diff --git a/patches/server/0115-Optimize-matching-item-checks.patch b/patches/server/0116-Optimize-matching-item-checks.patch similarity index 95% rename from patches/server/0115-Optimize-matching-item-checks.patch rename to patches/server/0116-Optimize-matching-item-checks.patch index d63ff99..2f48060 100644 --- a/patches/server/0115-Optimize-matching-item-checks.patch +++ b/patches/server/0116-Optimize-matching-item-checks.patch @@ -7,7 +7,7 @@ License: GPL-3.0 (https://www.gnu.org/licenses/gpl-3.0.html) Gale - https://galemc.org diff --git a/src/main/java/net/minecraft/world/item/ItemStack.java b/src/main/java/net/minecraft/world/item/ItemStack.java -index ca98310b745819e4dd56f226dcd0f9dfb35dab6e..804297a04988b3e21092a42df6584b7fc3cff1bb 100644 +index 51b1244b7a1f1beeac66a2763dced74798aa6d1b..70df666abd3264f24e2f3c6480c6310e4500fdf0 100644 --- a/src/main/java/net/minecraft/world/item/ItemStack.java +++ b/src/main/java/net/minecraft/world/item/ItemStack.java @@ -851,7 +851,7 @@ public final class ItemStack implements DataComponentHolder { diff --git a/patches/server/0116-Pre-compute-VarLong-sizes.patch b/patches/server/0117-Pre-compute-VarLong-sizes.patch similarity index 100% rename from patches/server/0116-Pre-compute-VarLong-sizes.patch rename to patches/server/0117-Pre-compute-VarLong-sizes.patch diff --git a/patches/server/0117-Optimize-VarInt-write-and-VarLong-write.patch b/patches/server/0118-Optimize-VarInt-write-and-VarLong-write.patch similarity index 100% rename from patches/server/0117-Optimize-VarInt-write-and-VarLong-write.patch rename to patches/server/0118-Optimize-VarInt-write-and-VarLong-write.patch diff --git a/patches/server/0118-Reduce-RandomSource-instances.patch b/patches/server/0119-Reduce-RandomSource-instances.patch similarity index 100% rename from patches/server/0118-Reduce-RandomSource-instances.patch rename to patches/server/0119-Reduce-RandomSource-instances.patch diff --git a/patches/server/0119-Add-xor-shift-random.patch b/patches/server/0120-Add-xor-shift-random.patch similarity index 100% rename from patches/server/0119-Add-xor-shift-random.patch rename to patches/server/0120-Add-xor-shift-random.patch diff --git a/patches/server/0120-Reduce-skull-ItemStack-lookups-for-reduced-visibilit.patch b/patches/server/0121-Reduce-skull-ItemStack-lookups-for-reduced-visibilit.patch similarity index 100% rename from patches/server/0120-Reduce-skull-ItemStack-lookups-for-reduced-visibilit.patch rename to patches/server/0121-Reduce-skull-ItemStack-lookups-for-reduced-visibilit.patch diff --git a/patches/server/0121-Initialize-line-of-sight-cache-with-low-capacity.patch b/patches/server/0122-Initialize-line-of-sight-cache-with-low-capacity.patch similarity index 100% rename from patches/server/0121-Initialize-line-of-sight-cache-with-low-capacity.patch rename to patches/server/0122-Initialize-line-of-sight-cache-with-low-capacity.patch diff --git a/patches/server/0122-Reduce-line-of-sight-updates-and-cache-lookups.patch b/patches/server/0123-Reduce-line-of-sight-updates-and-cache-lookups.patch similarity index 100% rename from patches/server/0122-Reduce-line-of-sight-updates-and-cache-lookups.patch rename to patches/server/0123-Reduce-line-of-sight-updates-and-cache-lookups.patch diff --git a/patches/server/0123-Server-thread-priority-environment-variable.patch b/patches/server/0124-Server-thread-priority-environment-variable.patch similarity index 100% rename from patches/server/0123-Server-thread-priority-environment-variable.patch rename to patches/server/0124-Server-thread-priority-environment-variable.patch diff --git a/patches/server/0124-Virtual-thread-support.patch b/patches/server/0125-Virtual-thread-support.patch similarity index 100% rename from patches/server/0124-Virtual-thread-support.patch rename to patches/server/0125-Virtual-thread-support.patch