9
0
mirror of https://github.com/LeavesMC/Leaves.git synced 2025-12-19 14:59:32 +00:00

Fix fast resume (#258)

This commit is contained in:
violetc
2024-07-22 13:17:47 +08:00
parent 103beaa773
commit 6ed67711ba

View File

@@ -80,10 +80,10 @@ index 19c0b7b95fb96978853f05ee1c6829613103acff..3f544556ba256d0a39fe9e1098a2e8ed
if (this.hasStopped) return;
diff --git a/src/main/java/org/leavesmc/leaves/util/TicketHelper.java b/src/main/java/org/leavesmc/leaves/util/TicketHelper.java
new file mode 100644
index 0000000000000000000000000000000000000000..7f0f29dafd9a1262f76e068683256c494da3e886
index 0000000000000000000000000000000000000000..36e9da7e68de086bc8572138eb14d0e00dc56879
--- /dev/null
+++ b/src/main/java/org/leavesmc/leaves/util/TicketHelper.java
@@ -0,0 +1,174 @@
@@ -0,0 +1,175 @@
+package org.leavesmc.leaves.util;
+
+import ca.spottedleaf.moonrise.patches.chunk_system.player.RegionizedPlayerChunkLoader;
@@ -240,18 +240,19 @@ index 0000000000000000000000000000000000000000..7f0f29dafd9a1262f76e068683256c49
+ ticketType = TicketType.PORTAL;
+ key = BlockPos.of(json.get("key").getAsLong());
+ }
+ case "player_ticket" -> {
+ case "chunk_system:player_ticket" -> {
+ ticketType = RegionizedPlayerChunkLoader.PLAYER_TICKET;
+ key = json.get("key").getAsLong();
+ }
+ }
+
+ if (ticketType == null) {
+ throw new IllegalArgumentException("???");
+ throw new IllegalArgumentException("Cant convert " + json.get("type").getAsString() + ", report it ???");
+ }
+
+ int ticketLevel = json.get("ticketLevel").getAsInt();
+ long removeDelay = json.get("removeDelay").getAsLong();
+ @SuppressWarnings("unchecked")
+ Ticket<T> ticket = new Ticket<>((TicketType<T>) ticketType, ticketLevel, (T) key);
+ ticket.moonrise$setRemoveDelay(removeDelay);
+