diff --git a/patches/server/0024-Akarin-Save-Json-list-asynchronously.patch b/patches/server/0023-Akarin-Save-Json-list-asynchronously.patch similarity index 100% rename from patches/server/0024-Akarin-Save-Json-list-asynchronously.patch rename to patches/server/0023-Akarin-Save-Json-list-asynchronously.patch diff --git a/patches/server/0025-Slice-Smooth-Teleports.patch b/patches/server/0024-Slice-Smooth-Teleports.patch similarity index 97% rename from patches/server/0025-Slice-Smooth-Teleports.patch rename to patches/server/0024-Slice-Smooth-Teleports.patch index 3a25664c..cdaab020 100644 --- a/patches/server/0025-Slice-Smooth-Teleports.patch +++ b/patches/server/0024-Slice-Smooth-Teleports.patch @@ -38,7 +38,7 @@ index 9a7a6bea60e85ffadb5b3f68d919f7032367f345..63eb73d075eb395b2ba9a2e4d4ff5914 // entityplayer1.connection.teleport(entityplayer1.getX(), entityplayer1.getY(), entityplayer1.getZ(), entityplayer1.getYRot(), entityplayer1.getXRot()); diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index 517e20901356c162c499284fa294236ef22ccda4..b0aacaf732c5c54255d299e0b3aef6bd0c0a6c05 100644 +index 04ababa56f9b0d93bae7c4c2972d82c5feeea231..e35b28d42dd34f00576efec526661817389a4b0c 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java @@ -1256,6 +1256,15 @@ public class CraftPlayer extends CraftHumanEntity implements Player { diff --git a/patches/server/0026-PaperPR-Optimize-VarInts.patch b/patches/server/0025-PaperPR-Optimize-VarInts.patch similarity index 100% rename from patches/server/0026-PaperPR-Optimize-VarInts.patch rename to patches/server/0025-PaperPR-Optimize-VarInts.patch diff --git a/patches/server/0027-Parchment-Make-FixLight-use-action-bar.patch b/patches/server/0026-Parchment-Make-FixLight-use-action-bar.patch similarity index 100% rename from patches/server/0027-Parchment-Make-FixLight-use-action-bar.patch rename to patches/server/0026-Parchment-Make-FixLight-use-action-bar.patch diff --git a/patches/server/0028-Leaves-Server-Utils.patch b/patches/server/0027-Leaves-Server-Utils.patch similarity index 100% rename from patches/server/0028-Leaves-Server-Utils.patch rename to patches/server/0027-Leaves-Server-Utils.patch diff --git a/patches/server/0029-Leaves-Jade-Protocol.patch b/patches/server/0028-Leaves-Jade-Protocol.patch similarity index 100% rename from patches/server/0029-Leaves-Jade-Protocol.patch rename to patches/server/0028-Leaves-Jade-Protocol.patch diff --git a/patches/server/0030-Leaves-Appleskin-Protocol.patch b/patches/server/0029-Leaves-Appleskin-Protocol.patch similarity index 100% rename from patches/server/0030-Leaves-Appleskin-Protocol.patch rename to patches/server/0029-Leaves-Appleskin-Protocol.patch diff --git a/patches/server/0031-Leaves-Xaero-Map-Protocol.patch b/patches/server/0030-Leaves-Xaero-Map-Protocol.patch similarity index 100% rename from patches/server/0031-Leaves-Xaero-Map-Protocol.patch rename to patches/server/0030-Leaves-Xaero-Map-Protocol.patch diff --git a/patches/server/0032-Fix-Make-log4j-compatible-with-future-release.patch b/patches/server/0031-Fix-Make-log4j-compatible-with-future-release.patch similarity index 100% rename from patches/server/0032-Fix-Make-log4j-compatible-with-future-release.patch rename to patches/server/0031-Fix-Make-log4j-compatible-with-future-release.patch diff --git a/patches/server/0033-Fix-compile-error.patch b/patches/server/0032-Fix-compile-error.patch similarity index 100% rename from patches/server/0033-Fix-compile-error.patch rename to patches/server/0032-Fix-compile-error.patch diff --git a/patches/server/0034-sync-with-Gale-s-Optimize-villager-data-storage.patc.patch b/patches/server/0033-sync-with-Gale-s-Optimize-villager-data-storage.patc.patch similarity index 100% rename from patches/server/0034-sync-with-Gale-s-Optimize-villager-data-storage.patc.patch rename to patches/server/0033-sync-with-Gale-s-Optimize-villager-data-storage.patc.patch diff --git a/patches/server/0035-Revert-Purpur-Fire-Immunity-API.patch b/patches/server/0034-Revert-Purpur-Fire-Immunity-API.patch similarity index 100% rename from patches/server/0035-Revert-Purpur-Fire-Immunity-API.patch rename to patches/server/0034-Revert-Purpur-Fire-Immunity-API.patch diff --git a/patches/server/0036-Optimize-Vine-Spread.patch b/patches/server/0035-Optimize-Vine-Spread.patch similarity index 100% rename from patches/server/0036-Optimize-Vine-Spread.patch rename to patches/server/0035-Optimize-Vine-Spread.patch diff --git a/patches/server/0037-Optimize-PoweredRail.patch b/patches/server/0036-Optimize-PoweredRail.patch similarity index 100% rename from patches/server/0037-Optimize-PoweredRail.patch rename to patches/server/0036-Optimize-PoweredRail.patch diff --git a/patches/server/0023-Petal-Reduce-sensor-work.patch b/patches/server/0037-Petal-Reduce-sensor-work.patch similarity index 100% rename from patches/server/0023-Petal-Reduce-sensor-work.patch rename to patches/server/0037-Petal-Reduce-sensor-work.patch diff --git a/patches/server/0041-Fix-tracker-NPE.patch b/patches/server/0041-Fix-tracker-NPE.patch new file mode 100644 index 00000000..33dce115 --- /dev/null +++ b/patches/server/0041-Fix-tracker-NPE.patch @@ -0,0 +1,95 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Dreeam <61569423+Dreeam-qwq@users.noreply.github.com> +Date: Wed, 2 Aug 2023 16:14:12 +0800 +Subject: [PATCH] Fix tracker NPE + + +diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java +index 6fc90433a87ff682e76fe37618dd9460518a8387..755950c3797ccb3670f7cd12c941c226082ad010 100644 +--- a/src/main/java/net/minecraft/server/level/ChunkMap.java ++++ b/src/main/java/net/minecraft/server/level/ChunkMap.java +@@ -115,8 +115,6 @@ import org.bukkit.craftbukkit.generator.CustomChunkGenerator; + import org.bukkit.entity.Player; + // CraftBukkit end + +-import it.unimi.dsi.fastutil.objects.ReferenceOpenHashSet; // Paper +- + public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider { + + private static final byte CHUNK_TYPE_REPLACEABLE = -1; +@@ -154,7 +152,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider + private final Queue unloadQueue; + int viewDistance; + public final com.destroystokyo.paper.util.misc.PlayerAreaMap playerMobDistanceMap; // Paper +- public final ReferenceOpenHashSet needsChangeBroadcasting = new ReferenceOpenHashSet<>(); ++ public final Set needsChangeBroadcasting = Sets.newConcurrentHashSet(); // Leaf + + // Paper - rewrite chunk system + // Paper start - optimise checkDespawn +@@ -1452,7 +1450,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider + public final Entity entity; // Mirai -> public + private final int range; + SectionPos lastSectionPos; +- public final Set seenBy = it.unimi.dsi.fastutil.objects.ReferenceSets.synchronize(new ReferenceOpenHashSet<>()); // Paper - optimise map impl // Mirai - sync ++ public final Set seenBy = Sets.newConcurrentHashSet(); // Paper - optimise map impl // Mirai - sync // Leaf + + public TrackedEntity(Entity entity, int i, int j, boolean flag) { + this.serverEntity = new ServerEntity(ChunkMap.this.level, entity, j, flag, this::broadcast, this.seenBy); // CraftBukkit +diff --git a/src/main/java/net/minecraft/server/level/ServerChunkCache.java b/src/main/java/net/minecraft/server/level/ServerChunkCache.java +index 259727ca7956416afa0f425fc203103654673cef..6a5009b1935b11e4dd5a3dfb083df159d47da450 100644 +--- a/src/main/java/net/minecraft/server/level/ServerChunkCache.java ++++ b/src/main/java/net/minecraft/server/level/ServerChunkCache.java +@@ -10,6 +10,7 @@ import java.util.Arrays; + import java.util.Collections; + import java.util.Iterator; + import java.util.List; ++import java.util.ArrayList; // Leaf + import java.util.Objects; + import java.util.Optional; + import java.util.concurrent.CompletableFuture; +@@ -47,7 +48,6 @@ import net.minecraft.world.level.levelgen.structure.templatesystem.StructureTemp + import net.minecraft.world.level.storage.DimensionDataStorage; + import net.minecraft.world.level.storage.LevelData; + import net.minecraft.world.level.storage.LevelStorageSource; +-import it.unimi.dsi.fastutil.objects.ReferenceOpenHashSet; // Paper + + public class ServerChunkCache extends ChunkSource { + +@@ -642,7 +642,7 @@ public class ServerChunkCache extends ChunkSource { + // Paper start - use set of chunks requiring updates, rather than iterating every single one loaded + this.level.timings.broadcastChunkUpdates.startTiming(); // Paper - timing + if (!this.chunkMap.needsChangeBroadcasting.isEmpty()) { +- ReferenceOpenHashSet copy = this.chunkMap.needsChangeBroadcasting.clone(); ++ List copy = new ArrayList<>(this.chunkMap.needsChangeBroadcasting); // Leaf + this.chunkMap.needsChangeBroadcasting.clear(); + for (ChunkHolder holder : copy) { + holder.broadcastChanges(holder.getFullChunkNowUnchecked()); // LevelChunks are NEVER unloaded +diff --git a/src/main/java/net/minecraft/world/entity/ai/attributes/AttributeMap.java b/src/main/java/net/minecraft/world/entity/ai/attributes/AttributeMap.java +index 00790f8c0c7ba5132b51cdaa58e4d3419aac23ab..edd8581e282836fa3331db957489059917ed6c48 100644 +--- a/src/main/java/net/minecraft/world/entity/ai/attributes/AttributeMap.java ++++ b/src/main/java/net/minecraft/world/entity/ai/attributes/AttributeMap.java +@@ -1,6 +1,7 @@ + package net.minecraft.world.entity.ai.attributes; + + import com.google.common.collect.Multimap; ++import com.google.common.collect.Sets; // Leaf + import com.mojang.logging.LogUtils; + import java.util.Collection; + import java.util.Map; +@@ -10,7 +11,6 @@ import java.util.stream.Collectors; + import javax.annotation.Nullable; + + import it.unimi.dsi.fastutil.objects.Reference2ReferenceOpenHashMap; +-import it.unimi.dsi.fastutil.objects.ReferenceOpenHashSet; + import net.minecraft.Util; + import net.minecraft.core.Holder; + import net.minecraft.core.registries.BuiltInRegistries; +@@ -23,7 +23,7 @@ public class AttributeMap { + private static final Logger LOGGER = LogUtils.getLogger(); + // Gale start - Lithium - replace AI attributes with optimized collections + private final Map attributes = new Reference2ReferenceOpenHashMap<>(0); +- private final Set dirtyAttributes = new ReferenceOpenHashSet<>(0); ++ private final Set dirtyAttributes = Sets.newConcurrentHashSet(); // Leaf + // Gale end - Lithium - replace AI attributes with optimized collections + private final AttributeSupplier supplier; + private final java.util.function.Function createInstance; // Gale - Airplane - reduce entity allocations diff --git a/patches/unapplied/server/0019-Petal-reduce-work-done-by-game-event-system.patch b/patches/unapplied/server/0022-Petal-reduce-work-done-by-game-event-system.patch similarity index 100% rename from patches/unapplied/server/0019-Petal-reduce-work-done-by-game-event-system.patch rename to patches/unapplied/server/0022-Petal-reduce-work-done-by-game-event-system.patch