Skip to content

Commit a7ed1e4

Browse files
committed
✨ feat(commands): register SurfCanvas commands in dispatcher
- add SurfCanvasRootCommandTree to the command dispatcher - enhance command registration for SurfCanvas functionality
1 parent 2e05d6d commit a7ed1e4

2 files changed

Lines changed: 15 additions & 4 deletions

File tree

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
--- a/net/minecraft/commands/Commands.java
2+
+++ b/net/minecraft/commands/Commands.java
3+
@@ -263,6 +_,7 @@
4+
WeatherCommand.register(this.dispatcher);
5+
WorldBorderCommand.register(this.dispatcher);
6+
io.canvasmc.canvas.command.RootCommandTree.INSTANCE.build(this.dispatcher); // Canvas - Rebrand - register commands
7+
+ dev.slne.surf.command.SurfCanvasRootCommandTree.INSTANCE.build(this.dispatcher); // SurfCanvas - register commands
8+
if (JvmProfiler.INSTANCE.isAvailable()) {
9+
JfrCommand.register(this.dispatcher);
10+
}

surf-canvas-server/paper-patches/files/src/main/java/io/papermc/paper/plugin/manager/PaperPluginInstanceManager.java.patch

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,11 @@
11
--- a/src/main/java/io/papermc/paper/plugin/manager/PaperPluginInstanceManager.java
22
+++ b/src/main/java/io/papermc/paper/plugin/manager/PaperPluginInstanceManager.java
3-
@@ -238,11 +_,31 @@
3+
@@ -238,11 +_,32 @@
44
plugin.getLogger().info("Disabling %s".formatted(pluginName));
55

66
this.server.getPluginManager().callEvent(new PluginDisableEvent(plugin));
7-
+ // SurfCanvas - Wrap setEnabled(false) in a thread with a 60s timeout to prevent hanging plugins from blocking world save
7+
+ // SurfCanvas - Wrap setEnabled(false) in a thread with a timeout to prevent hanging plugins from blocking world save
8+
+ int timeout = dev.slne.surf.SurfCanvasGlobalConfiguration.getInstance().plugin.shutdown.timeout;
89
try {
910
- javaPlugin.setEnabled(false);
1011
- } catch (Throwable ex) {
@@ -18,9 +19,9 @@
1819
+ }, "Plugin Disable - " + pluginName);
1920
+ disableThread.setDaemon(false);
2021
+ disableThread.start();
21-
+ disableThread.join(java.util.concurrent.TimeUnit.SECONDS.toMillis(60));
22+
+ disableThread.join(java.util.concurrent.TimeUnit.SECONDS.toMillis(timeout));
2223
+ if (disableThread.isAlive()) {
23-
+ this.server.getLogger().log(Level.SEVERE, "Plugin " + pluginName + " did not shut down within 60 seconds, interrupting");
24+
+ this.server.getLogger().log(Level.SEVERE, "Plugin " + pluginName + " did not shut down within {} seconds, interrupting", timeout);
2425
+ disableThread.interrupt();
2526
+ disableThread.join(java.util.concurrent.TimeUnit.SECONDS.toMillis(5));
2627
+ if (disableThread.isAlive()) {

0 commit comments

Comments
 (0)