partially fix commands being executed on wrong thread, still broken on folia
This commit is contained in:
parent
b482317684
commit
3dd3bcc03e
5 changed files with 7 additions and 12 deletions
|
@ -15,7 +15,7 @@ public class ConsoleCommandAction extends NpcAction {
|
|||
@Override
|
||||
public void run(Player player) {
|
||||
String cmd = argument.replace("{player}", player.getName()).replace("{uuid}", player.getUniqueId().toString());
|
||||
Bukkit.dispatchCommand(Bukkit.getConsoleSender(), ZNpcsPlus.PLACEHOLDERS_SUPPORTED ? PlaceholderAPI.setPlaceholders(player, cmd) : cmd);
|
||||
ZNpcsPlus.SCHEDULER.runSync(() -> Bukkit.dispatchCommand(Bukkit.getConsoleSender(), ZNpcsPlus.PLACEHOLDERS_SUPPORTED ? PlaceholderAPI.setPlaceholders(player, cmd) : cmd));
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -15,7 +15,7 @@ public class PlayerCommandAction extends NpcAction {
|
|||
@Override
|
||||
public void run(Player player) {
|
||||
String cmd = argument.replace("{player}", player.getName()).replace("{uuid}", player.getUniqueId().toString());
|
||||
Bukkit.dispatchCommand(player, ZNpcsPlus.PLACEHOLDERS_SUPPORTED ? PlaceholderAPI.setPlaceholders(player, cmd) : cmd);
|
||||
ZNpcsPlus.SCHEDULER.runSync(() -> Bukkit.dispatchCommand(player, ZNpcsPlus.PLACEHOLDERS_SUPPORTED ? PlaceholderAPI.setPlaceholders(player, cmd) : cmd));
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -13,13 +13,8 @@ public class FoliaScheduler extends TaskScheduler {
|
|||
}
|
||||
|
||||
@Override
|
||||
public void runAsync(Runnable runnable) {
|
||||
try {
|
||||
Object scheduler = Reflections.FOLIA_GET_ASYNC_SCHEDULER.get().invoke(null);
|
||||
Reflections.FOLIA_RUN_NOW.get().invoke(scheduler, plugin, (Consumer<Object>) o -> runnable.run());
|
||||
} catch (IllegalAccessException | InvocationTargetException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
public void runSync(Runnable runnable) {
|
||||
// TODO: Figure out which scheduler to use for running commands
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -9,8 +9,8 @@ public class SpigotScheduler extends TaskScheduler {
|
|||
}
|
||||
|
||||
@Override
|
||||
public void runAsync(Runnable runnable) {
|
||||
Bukkit.getScheduler().runTaskAsynchronously(plugin, runnable);
|
||||
public void runSync(Runnable runnable) {
|
||||
Bukkit.getScheduler().runTask(plugin, runnable);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -9,7 +9,7 @@ public abstract class TaskScheduler {
|
|||
this.plugin = plugin;
|
||||
}
|
||||
|
||||
public abstract void runAsync(Runnable runnable);
|
||||
public abstract void runSync(Runnable runnable);
|
||||
|
||||
public abstract void runLaterAsync(Runnable runnable, long ticks);
|
||||
|
||||
|
|
Loading…
Reference in a new issue