diff options
author | Aaron <51387595+AzureAaron@users.noreply.github.com> | 2023-07-09 15:36:08 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-07-09 15:36:08 -0400 |
commit | 00983f7c455b65274e14dfc1611de7281f70a082 (patch) | |
tree | 4619093332d2a18e6faaa59f734d831a08521a24 /src/main/java/me/xmrvizzy/skyblocker/utils/Scheduler.java | |
parent | 379cd758fb6895c4e88d7cb8245f79bde1494f34 (diff) | |
parent | 324248b4c44d10d3a2cf5412b4ff4beeaa5f681c (diff) | |
download | Skyblocker-00983f7c455b65274e14dfc1611de7281f70a082.tar.gz Skyblocker-00983f7c455b65274e14dfc1611de7281f70a082.tar.bz2 Skyblocker-00983f7c455b65274e14dfc1611de7281f70a082.zip |
Merge pull request #196 from Futuremappermydud/TitleContainer
Title container
Diffstat (limited to 'src/main/java/me/xmrvizzy/skyblocker/utils/Scheduler.java')
-rw-r--r-- | src/main/java/me/xmrvizzy/skyblocker/utils/Scheduler.java | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/src/main/java/me/xmrvizzy/skyblocker/utils/Scheduler.java b/src/main/java/me/xmrvizzy/skyblocker/utils/Scheduler.java index 02162140..7b19e284 100644 --- a/src/main/java/me/xmrvizzy/skyblocker/utils/Scheduler.java +++ b/src/main/java/me/xmrvizzy/skyblocker/utils/Scheduler.java @@ -1,10 +1,13 @@ package me.xmrvizzy.skyblocker.utils; import me.xmrvizzy.skyblocker.SkyblockerMod; +import net.minecraft.client.MinecraftClient; +import net.minecraft.client.gui.screen.Screen; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import java.util.PriorityQueue; +import java.util.function.Supplier; /** * A scheduler for running tasks at a later time. Tasks will be run synchronously on the main client thread. Use the instance stored in {@link SkyblockerMod#scheduler}. Do not instantiate this class. @@ -50,6 +53,24 @@ public class Scheduler { } } + /** + * Schedules a screen to open in the next tick. Used in commands to avoid screen immediately closing after the command is executed. + * + * @param screenSupplier the supplier of the screen to open + */ + public void queueOpenScreen(Supplier<Screen> screenSupplier) { + queueOpenScreen(screenSupplier.get()); + } + + /** + * Schedules a screen to open in the next tick. Used in commands to avoid screen immediately closing after the command is executed. + * + * @param screen the supplier of the screen to open + */ + public void queueOpenScreen(Screen screen) { + MinecraftClient.getInstance().send(() -> MinecraftClient.getInstance().setScreen(screen)); + } + public void tick() { currentTick += 1; ScheduledTask task; |