diff --git a/Spigot-API-Patches/Add-getMainThreadExecutor-to-BukkitScheduler.patch b/Spigot-API-Patches/Add-getMainThreadExecutor-to-BukkitScheduler.patch new file mode 100644 index 0000000000..8dad29905f --- /dev/null +++ b/Spigot-API-Patches/Add-getMainThreadExecutor-to-BukkitScheduler.patch @@ -0,0 +1,26 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Aleksander Jagiello +Date: Sun, 24 Jan 2021 22:17:29 +0100 +Subject: [PATCH] Add getMainThreadExecutor to BukkitScheduler + + +diff --git a/src/main/java/org/bukkit/scheduler/BukkitScheduler.java b/src/main/java/org/bukkit/scheduler/BukkitScheduler.java +index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644 +--- a/src/main/java/org/bukkit/scheduler/BukkitScheduler.java ++++ b/src/main/java/org/bukkit/scheduler/BukkitScheduler.java +@@ -0,0 +0,0 @@ public interface BukkitScheduler { + @Deprecated + @NotNull + public BukkitTask runTaskTimerAsynchronously(@NotNull Plugin plugin, @NotNull BukkitRunnable task, long delay, long period) throws IllegalArgumentException; ++ ++ // Paper start - add getMainThreadExecutor ++ /** ++ * Returns an executor that will run tasks on the next server tick. ++ * ++ * @param plugin the reference to the plugin scheduling tasks ++ * @return an executor associated with the given plugin ++ */ ++ @NotNull ++ public java.util.concurrent.Executor getMainThreadExecutor(@NotNull Plugin plugin); ++ // Paper end + } diff --git a/Spigot-Server-Patches/Add-getMainThreadExecutor-to-BukkitScheduler.patch b/Spigot-Server-Patches/Add-getMainThreadExecutor-to-BukkitScheduler.patch new file mode 100644 index 0000000000..0515cea2e3 --- /dev/null +++ b/Spigot-Server-Patches/Add-getMainThreadExecutor-to-BukkitScheduler.patch @@ -0,0 +1,26 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Aleksander Jagiello +Date: Sun, 24 Jan 2021 22:17:54 +0100 +Subject: [PATCH] Add getMainThreadExecutor to BukkitScheduler + + +diff --git a/src/main/java/org/bukkit/craftbukkit/scheduler/CraftScheduler.java b/src/main/java/org/bukkit/craftbukkit/scheduler/CraftScheduler.java +index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644 +--- a/src/main/java/org/bukkit/craftbukkit/scheduler/CraftScheduler.java ++++ b/src/main/java/org/bukkit/craftbukkit/scheduler/CraftScheduler.java +@@ -0,0 +0,0 @@ public class CraftScheduler implements BukkitScheduler { + public BukkitTask runTaskTimerAsynchronously(Plugin plugin, BukkitRunnable task, long delay, long period) throws IllegalArgumentException { + throw new UnsupportedOperationException("Use BukkitRunnable#runTaskTimerAsynchronously(Plugin, long, long)"); + } ++ ++ // Paper start - add getMainThreadExecutor ++ @Override ++ public Executor getMainThreadExecutor(Plugin plugin) { ++ Validate.notNull(plugin, "Plugin cannot be null"); ++ return command -> { ++ Validate.notNull(command, "Command cannot be null"); ++ this.runTask(plugin, command); ++ }; ++ } ++ // Paper end + }