Last active
December 14, 2019 20:34
-
-
Save p-larson/70fcf5d8e5201ad6a0c8cd5d1315a6f8 to your computer and use it in GitHub Desktop.
Util for BukkitRunnables
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package com.wowserman; | |
import java.lang.ref.WeakReference; | |
import java.util.function.Consumer; | |
import org.bukkit.plugin.Plugin; | |
import org.bukkit.scheduler.BukkitRunnable; | |
/** | |
* Tasky.java | |
* | |
* Requires Java 8, uses lambda expressions. | |
* | |
* @author PLARSON (Wowserman) | |
* https://www.spigotmc.org/members/wowserman.124342/ | |
* | |
* Created Jun 29, 2018 | |
*/ | |
public final class Tasky { | |
/// MARK – Make sure you set the plugin. Hopefully you read this or notice you need to. | |
private static WeakReference<Plugin> plugin; | |
public static void setPlugin(final Plugin plugin) { | |
Tasky.plugin = new WeakReference<Plugin>(plugin); | |
} | |
/// MARK | |
public static BukkitRunnable async(final Consumer<BukkitRunnable> block) { | |
final BukkitRunnable runnable = new BukkitRunnable() { | |
@Override | |
public void run() { | |
block.accept(this); | |
} | |
}; | |
runnable.runTaskAsynchronously(plugin.get()); | |
return runnable; | |
} | |
public static BukkitRunnable sync(final Consumer<BukkitRunnable> block) { | |
final BukkitRunnable runnable = new BukkitRunnable() { | |
@Override | |
public void run() { | |
block.accept(this); | |
} | |
}; | |
runnable.runTask(plugin.get()); | |
return runnable; | |
} | |
public static BukkitRunnable async(final Consumer<BukkitRunnable> block, final long delay) { | |
final BukkitRunnable runnable = new BukkitRunnable() { | |
@Override | |
public void run() { | |
block.accept(this); | |
} | |
}; | |
runnable.runTaskLaterAsynchronously(plugin.get(), delay); | |
return runnable; | |
} | |
public static BukkitRunnable sync(final Consumer<BukkitRunnable> block, final long delay) { | |
final BukkitRunnable runnable = new BukkitRunnable() { | |
@Override | |
public void run() { | |
block.accept(this); | |
} | |
}; | |
runnable.runTaskLater(plugin.get(), delay); | |
return runnable; | |
} | |
public static BukkitRunnable sync(final Consumer<BukkitRunnable> block, final long delay, final long period) { | |
final BukkitRunnable runnable = new BukkitRunnable() { | |
@Override | |
public void run() { | |
block.accept(this); | |
} | |
}; | |
runnable.runTaskTimer(plugin.get(), delay, period); | |
return runnable; | |
} | |
public static BukkitRunnable async(final Consumer<BukkitRunnable> block, final long delay, final long period) { | |
final BukkitRunnable runnable = new BukkitRunnable() { | |
@Override | |
public void run() { | |
block.accept(this); | |
} | |
}; | |
runnable.runTaskTimerAsynchronously(plugin.get(), delay, period); | |
return runnable; | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Setup
Tasky.setPlugin(plugin)