aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/me/xmrvizzy/skyblocker/utils/Scheduler.java
diff options
context:
space:
mode:
authorAaron <51387595+AzureAaron@users.noreply.github.com>2023-07-09 15:36:08 -0400
committerGitHub <noreply@github.com>2023-07-09 15:36:08 -0400
commit00983f7c455b65274e14dfc1611de7281f70a082 (patch)
tree4619093332d2a18e6faaa59f734d831a08521a24 /src/main/java/me/xmrvizzy/skyblocker/utils/Scheduler.java
parent379cd758fb6895c4e88d7cb8245f79bde1494f34 (diff)
parent324248b4c44d10d3a2cf5412b4ff4beeaa5f681c (diff)
downloadSkyblocker-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.java21
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;