From b4c98ecc324519b71fec6bcdae2359943e10ae1a Mon Sep 17 00:00:00 2001 From: Jake Date: Thu, 30 Jan 2025 16:52:54 +0100 Subject: [PATCH 1/6] Added spigot semi-equivalent of the "get chunk at async" method. --- src/main/java/ch/njol/skript/Skript.java | 22 ++++++++++++++++++++-- 1 file changed, 20 insertions(+), 2 deletions(-) diff --git a/src/main/java/ch/njol/skript/Skript.java b/src/main/java/ch/njol/skript/Skript.java index adf004c1eaf..cd788c39079 100644 --- a/src/main/java/ch/njol/skript/Skript.java +++ b/src/main/java/ch/njol/skript/Skript.java @@ -44,7 +44,6 @@ import ch.njol.util.StringUtils; import ch.njol.util.coll.iterator.CheckedIterator; import ch.njol.util.coll.iterator.EnumerationIterable; -import com.google.common.collect.Lists; import com.google.gson.Gson; import com.google.gson.GsonBuilder; import org.bstats.bukkit.Metrics; @@ -60,6 +59,8 @@ import org.bukkit.event.server.PluginDisableEvent; import org.bukkit.event.server.ServerCommandEvent; import org.bukkit.event.server.ServerLoadEvent; +import org.bukkit.event.world.ChunkLoadEvent; +import org.bukkit.event.world.WorldLoadEvent; import org.bukkit.plugin.Plugin; import org.bukkit.plugin.PluginDescriptionFile; import org.bukkit.plugin.java.JavaPlugin; @@ -125,6 +126,8 @@ import java.util.zip.ZipException; import java.util.zip.ZipFile; +import static io.papermc.lib.PaperLib.isPaper; + // TODO meaningful error if someone uses an %expression with percent signs% outside of text or a variable /** @@ -683,7 +686,22 @@ protected void afterErrors() { if (TestMode.DEV_MODE) { runTests(); // Dev mode doesn't need a delay } else { - Bukkit.getWorlds().get(0).getChunkAtAsync(100, 100).thenRun(() -> runTests()); + World world = Bukkit.getWorlds().get(0); + if (isPaper()) + world.getChunkAtAsync(100, 100).thenRun(() -> runTests()); + else { + Bukkit.getServer().getPluginManager().registerEvents(new Listener() { + @EventHandler + public void onChunkLoad(ChunkLoadEvent event) { + Chunk chunk = event.getChunk(); + if (chunk.getX() == 100 && chunk.getZ() == 100) { + runTests(); + event.getHandlers().unregister(this); + } + } + }, Skript.getInstance()); + world.getChunkAt(100, 100); + } } } From 49cc66d279be23c7330e4d867438b1c9e514f3f9 Mon Sep 17 00:00:00 2001 From: Jake Date: Thu, 30 Jan 2025 17:31:07 +0100 Subject: [PATCH 2/6] Removed listening code as 'getChunkAt' is called synchronously. --- src/main/java/ch/njol/skript/Skript.java | 18 +++++------------- 1 file changed, 5 insertions(+), 13 deletions(-) diff --git a/src/main/java/ch/njol/skript/Skript.java b/src/main/java/ch/njol/skript/Skript.java index cd788c39079..1b84fb2e50e 100644 --- a/src/main/java/ch/njol/skript/Skript.java +++ b/src/main/java/ch/njol/skript/Skript.java @@ -683,28 +683,20 @@ protected void afterErrors() { debug("Early init done"); if (TestMode.ENABLED) { - if (TestMode.DEV_MODE) { + if (!TestMode.DEV_MODE) { runTests(); // Dev mode doesn't need a delay } else { World world = Bukkit.getWorlds().get(0); - if (isPaper()) + if (isPaper()) { world.getChunkAtAsync(100, 100).thenRun(() -> runTests()); - else { - Bukkit.getServer().getPluginManager().registerEvents(new Listener() { - @EventHandler - public void onChunkLoad(ChunkLoadEvent event) { - Chunk chunk = event.getChunk(); - if (chunk.getX() == 100 && chunk.getZ() == 100) { - runTests(); - event.getHandlers().unregister(this); - } - } - }, Skript.getInstance()); + } else { world.getChunkAt(100, 100); + runTests(); } } } + Skript.metrics = new Metrics(Skript.getInstance(), 722); // 722 is our bStats plugin ID SkriptMetrics.setupMetrics(Skript.metrics); From b92b6e2a10cd314c3060b73fd8a9603f788ea186 Mon Sep 17 00:00:00 2001 From: Jake Date: Thu, 30 Jan 2025 17:31:33 +0100 Subject: [PATCH 3/6] Removed unused imports. --- src/main/java/ch/njol/skript/Skript.java | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/main/java/ch/njol/skript/Skript.java b/src/main/java/ch/njol/skript/Skript.java index 1b84fb2e50e..4b7e2dc9a44 100644 --- a/src/main/java/ch/njol/skript/Skript.java +++ b/src/main/java/ch/njol/skript/Skript.java @@ -59,8 +59,6 @@ import org.bukkit.event.server.PluginDisableEvent; import org.bukkit.event.server.ServerCommandEvent; import org.bukkit.event.server.ServerLoadEvent; -import org.bukkit.event.world.ChunkLoadEvent; -import org.bukkit.event.world.WorldLoadEvent; import org.bukkit.plugin.Plugin; import org.bukkit.plugin.PluginDescriptionFile; import org.bukkit.plugin.java.JavaPlugin; From 655b9e971804f93c333b6b6f2a551e8034047070 Mon Sep 17 00:00:00 2001 From: Jake Date: Thu, 30 Jan 2025 18:37:29 +0100 Subject: [PATCH 4/6] Switched to PaperLib method that handles chunk loading. --- src/main/java/ch/njol/skript/Skript.java | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) diff --git a/src/main/java/ch/njol/skript/Skript.java b/src/main/java/ch/njol/skript/Skript.java index 4b7e2dc9a44..a8cc5fd8289 100644 --- a/src/main/java/ch/njol/skript/Skript.java +++ b/src/main/java/ch/njol/skript/Skript.java @@ -46,6 +46,7 @@ import ch.njol.util.coll.iterator.EnumerationIterable; import com.google.gson.Gson; import com.google.gson.GsonBuilder; +import io.papermc.lib.PaperLib; import org.bstats.bukkit.Metrics; import org.bukkit.*; import org.bukkit.command.CommandSender; @@ -684,13 +685,7 @@ protected void afterErrors() { if (!TestMode.DEV_MODE) { runTests(); // Dev mode doesn't need a delay } else { - World world = Bukkit.getWorlds().get(0); - if (isPaper()) { - world.getChunkAtAsync(100, 100).thenRun(() -> runTests()); - } else { - world.getChunkAt(100, 100); - runTests(); - } + PaperLib.getChunkAtAsync(Bukkit.getWorlds().get(0), 100, 100).thenRun(() -> runTests()); } } From ce544142c974396f941bdb1d7c478247343dd3ee Mon Sep 17 00:00:00 2001 From: Jake Date: Thu, 30 Jan 2025 18:46:54 +0100 Subject: [PATCH 5/6] Removed accidental boolean negation. --- src/main/java/ch/njol/skript/Skript.java | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/src/main/java/ch/njol/skript/Skript.java b/src/main/java/ch/njol/skript/Skript.java index a8cc5fd8289..9e3c4602fa3 100644 --- a/src/main/java/ch/njol/skript/Skript.java +++ b/src/main/java/ch/njol/skript/Skript.java @@ -125,8 +125,6 @@ import java.util.zip.ZipException; import java.util.zip.ZipFile; -import static io.papermc.lib.PaperLib.isPaper; - // TODO meaningful error if someone uses an %expression with percent signs% outside of text or a variable /** @@ -682,7 +680,7 @@ protected void afterErrors() { debug("Early init done"); if (TestMode.ENABLED) { - if (!TestMode.DEV_MODE) { + if (TestMode.DEV_MODE) { runTests(); // Dev mode doesn't need a delay } else { PaperLib.getChunkAtAsync(Bukkit.getWorlds().get(0), 100, 100).thenRun(() -> runTests()); From 2ade269aa5b934983e4fec70c2bcefeecf5d518b Mon Sep 17 00:00:00 2001 From: Jake Date: Fri, 31 Jan 2025 05:37:26 +0100 Subject: [PATCH 6/6] Added requested changes Requested from @sovdeeth Co-authored-by: sovdee <10354869+sovdeeth@users.noreply.github.com> --- src/main/java/ch/njol/skript/Skript.java | 1 - 1 file changed, 1 deletion(-) diff --git a/src/main/java/ch/njol/skript/Skript.java b/src/main/java/ch/njol/skript/Skript.java index 9e3c4602fa3..27a75d44e4d 100644 --- a/src/main/java/ch/njol/skript/Skript.java +++ b/src/main/java/ch/njol/skript/Skript.java @@ -687,7 +687,6 @@ protected void afterErrors() { } } - Skript.metrics = new Metrics(Skript.getInstance(), 722); // 722 is our bStats plugin ID SkriptMetrics.setupMetrics(Skript.metrics);