From fece86b27994aff955d274175ff12e3e7e26bda5 Mon Sep 17 00:00:00 2001 From: Spottedleaf Date: Tue, 1 Apr 2025 18:49:06 -0700 Subject: [PATCH] Copy fixes from Paper update 1. Use the provided ticket's identifier when routing to the new chunk system. Not needed in Moonrise but Paper may set the identifier. 2. Mark TicketStorage as dirty after ticking it --- .../moonrise/mixin/chunk_system/TicketStorageMixin.java | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/main/java/ca/spottedleaf/moonrise/mixin/chunk_system/TicketStorageMixin.java b/src/main/java/ca/spottedleaf/moonrise/mixin/chunk_system/TicketStorageMixin.java index b405ce7..acf6df2 100644 --- a/src/main/java/ca/spottedleaf/moonrise/mixin/chunk_system/TicketStorageMixin.java +++ b/src/main/java/ca/spottedleaf/moonrise/mixin/chunk_system/TicketStorageMixin.java @@ -2,6 +2,7 @@ package ca.spottedleaf.moonrise.mixin.chunk_system; import ca.spottedleaf.moonrise.common.util.CoordinateUtils; import ca.spottedleaf.moonrise.patches.chunk_system.level.ChunkSystemServerLevel; +import ca.spottedleaf.moonrise.patches.chunk_system.ticket.ChunkSystemTicket; import ca.spottedleaf.moonrise.patches.chunk_system.ticket.ChunkSystemTicketStorage; import ca.spottedleaf.moonrise.patches.chunk_system.ticket.ChunkSystemTicketType; import it.unimi.dsi.fastutil.longs.Long2IntOpenHashMap; @@ -164,7 +165,7 @@ abstract class TicketStorageMixin extends SavedData implements ChunkSystemTicket @Overwrite public boolean addTicket(final long pos, final Ticket ticket) { final boolean ret = ((ChunkSystemServerLevel)this.chunkMap.level).moonrise$getChunkTaskScheduler().chunkHolderManager - .addTicketAtLevel(ticket.getType(), pos, ticket.getTicketLevel(), null); + .addTicketAtLevel(ticket.getType(), pos, ticket.getTicketLevel(), ((ChunkSystemTicket)ticket).moonrise$getIdentifier()); this.setDirty(); @@ -178,7 +179,7 @@ abstract class TicketStorageMixin extends SavedData implements ChunkSystemTicket @Overwrite public boolean removeTicket(final long pos, final Ticket ticket) { final boolean ret = ((ChunkSystemServerLevel)this.chunkMap.level).moonrise$getChunkTaskScheduler().chunkHolderManager - .removeTicketAtLevel(ticket.getType(), pos, ticket.getTicketLevel(), null); + .removeTicketAtLevel(ticket.getType(), pos, ticket.getTicketLevel(), ((ChunkSystemTicket)ticket).moonrise$getIdentifier()); if (ret) { this.setDirty(); @@ -194,6 +195,7 @@ abstract class TicketStorageMixin extends SavedData implements ChunkSystemTicket @Overwrite public void purgeStaleTickets() { ((ChunkSystemServerLevel)this.chunkMap.level).moonrise$getChunkTaskScheduler().chunkHolderManager.tick(); + this.setDirty(); } /**