From 0312fd2b42aab2d9146918af5122e8e4343d7596 Mon Sep 17 00:00:00 2001
From: Aleksander Jagiello <themolkapl@gmail.com>
Date: Sun, 24 Jan 2021 22:17:54 +0100
Subject: [PATCH] Add getMainThreadExecutor to BukkitScheduler

---
 .../bukkit/craftbukkit/scheduler/CraftScheduler.java  | 11 +++++++++++
 1 file changed, 11 insertions(+)

diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/scheduler/CraftScheduler.java b/paper-server/src/main/java/org/bukkit/craftbukkit/scheduler/CraftScheduler.java
index 20760e08b3..1354ccfbf5 100644
--- a/paper-server/src/main/java/org/bukkit/craftbukkit/scheduler/CraftScheduler.java
+++ b/paper-server/src/main/java/org/bukkit/craftbukkit/scheduler/CraftScheduler.java
@@ -633,4 +633,15 @@ 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) {
+        Preconditions.checkArgument(plugin != null, "Plugin cannot be null");
+        return command -> {
+            Preconditions.checkArgument(command != null, "Command cannot be null");
+            this.runTask(plugin, command);
+        };
+    }
+    // Paper end
 }