Skip to content

Commit 18b06e3

Browse files
committed
Implement plugin tickets
1 parent db35db7 commit 18b06e3

File tree

3 files changed

+29
-5
lines changed

3 files changed

+29
-5
lines changed

paper-server/patches/sources/io/papermc/paper/FeatureHooks.java.patch

+6-2
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
--- /dev/null
22
+++ b/io/papermc/paper/FeatureHooks.java
3-
@@ -1,0 +_,234 @@
3+
@@ -1,0 +_,238 @@
44
+package io.papermc.paper;
55
+
66
+import io.papermc.paper.command.PaperSubcommand;
@@ -215,7 +215,11 @@
215215
+ }
216216
+
217217
+ public static void closeEntityManager(net.minecraft.server.level.ServerLevel world, boolean save) {
218-
+ world.entityManager.close(save);
218+
+ try {
219+
+ world.entityManager.close(save);
220+
+ } catch (final java.io.IOException exception) {
221+
+ throw new RuntimeException("Failed to close entity manager", exception);
222+
+ }
219223
+ }
220224
+
221225
+ public static java.util.concurrent.Executor getWorldgenExecutor() {
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
--- a/net/minecraft/server/level/Ticket.java
2+
+++ b/net/minecraft/server/level/Ticket.java
3+
@@ -19,6 +_,7 @@
4+
private final TicketType type;
5+
private final int ticketLevel;
6+
private long ticksLeft;
7+
+ public [email protected] Plugin key;
8+
9+
public Ticket(TicketType type, int ticketLevel) {
10+
this(type, ticketLevel, type.timeout());

paper-server/patches/sources/net/minecraft/server/level/TicketType.java.patch

+13-3
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
--- a/net/minecraft/server/level/TicketType.java
22
+++ b/net/minecraft/server/level/TicketType.java
3-
@@ -13,10 +_,22 @@
3+
@@ -13,11 +_,23 @@
44
public static final TicketType PORTAL = register("portal", 300L, true, TicketType.TicketUse.LOADING_AND_SIMULATION);
55
public static final TicketType ENDER_PEARL = register("ender_pearl", 40L, false, TicketType.TicketUse.LOADING_AND_SIMULATION);
66
public static final TicketType UNKNOWN = register("unknown", 1L, false, TicketType.TicketUse.LOADING);
@@ -12,14 +12,24 @@
1212
public static TicketType register(String name, long timeout, boolean persist, TicketType.TicketUse use) {
1313
return Registry.register(BuiltInRegistries.TICKET_TYPE, name, new TicketType(timeout, persist, use));
1414
}
15-
+
15+
1616
+ // Paper start - chunk-gc config
1717
+ public static int PLUGIN_TYPE_TIMEOUT = 600;
1818
+ @Override
1919
+ public long timeout() {
2020
+ return this == PLUGIN ? PLUGIN_TYPE_TIMEOUT : this.timeout;
2121
+ }
2222
+ // Paper end - chunk-gc config
23-
23+
+
2424
public boolean doesLoad() {
2525
return this.use == TicketType.TicketUse.LOADING || this.use == TicketType.TicketUse.LOADING_AND_SIMULATION;
26+
}
27+
@@ -27,7 +_,7 @@
28+
}
29+
30+
public boolean hasTimeout() {
31+
- return this.timeout != 0L;
32+
+ return this.timeout() != 0L; // Paper - chunk-gc config
33+
}
34+
35+
public static enum TicketUse {

0 commit comments

Comments
 (0)