From a3f23280004558323f33ef669e4e115935c488ec Mon Sep 17 00:00:00 2001 From: Spottedleaf Date: Thu, 24 Oct 2024 09:50:35 -0700 Subject: [PATCH] Redirect chunk holder retrieval in ChunkMap#forEachSpawnCandidateChunk The old chunk holder field is not maintained so this would NPE. --- .../mixin/chunk_system/ChunkMapMixin.java | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/src/main/java/ca/spottedleaf/moonrise/mixin/chunk_system/ChunkMapMixin.java b/src/main/java/ca/spottedleaf/moonrise/mixin/chunk_system/ChunkMapMixin.java index 5aa4f05..f55cc86 100644 --- a/src/main/java/ca/spottedleaf/moonrise/mixin/chunk_system/ChunkMapMixin.java +++ b/src/main/java/ca/spottedleaf/moonrise/mixin/chunk_system/ChunkMapMixin.java @@ -538,6 +538,21 @@ abstract class ChunkMapMixin extends ChunkStorage implements ChunkSystemChunkMap throw new UnsupportedOperationException(); } + /** + * @reason Route to new chunk system + * @author Spottedleaf + */ + @Redirect( + method = "forEachSpawnCandidateChunk", + at = @At( + value = "INVOKE", + target = "Lit/unimi/dsi/fastutil/longs/Long2ObjectLinkedOpenHashMap;get(J)Ljava/lang/Object;" + ) + ) + private V redirectChunkHolderGet(final Long2ObjectLinkedOpenHashMap instance, final long key) { + return (V)this.getVisibleChunkIfPresent(key); + } + @Override public CompletableFuture> read(final ChunkPos pos) { final CompletableFuture> ret = new CompletableFuture<>();