Made runnables safer
This commit is contained in:
@@ -1,16 +1,18 @@
|
|||||||
package net.axay.kspigot.main
|
package net.axay.kspigot.main
|
||||||
|
|
||||||
import net.axay.kspigot.runnables.KRunnables
|
import net.axay.kspigot.runnables.KRunnableHolder
|
||||||
import org.bukkit.plugin.java.JavaPlugin
|
import org.bukkit.plugin.java.JavaPlugin
|
||||||
|
|
||||||
class KSpigot(val plugin: JavaPlugin) {
|
class KSpigot(val plugin: JavaPlugin) {
|
||||||
|
|
||||||
|
val kRunnableHolder = KRunnableHolder()
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* This function should be invoked
|
* This function should be invoked
|
||||||
* in the onDisable() method of your plugin.
|
* in the onDisable() method of your plugin.
|
||||||
*/
|
*/
|
||||||
fun shutdown() {
|
fun shutdown() {
|
||||||
KRunnables.shutdown()
|
kRunnableHolder.shutdown()
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
@@ -4,7 +4,7 @@ import net.axay.kspigot.main.KSpigot
|
|||||||
import org.bukkit.Bukkit
|
import org.bukkit.Bukkit
|
||||||
import org.bukkit.scheduler.BukkitRunnable
|
import org.bukkit.scheduler.BukkitRunnable
|
||||||
|
|
||||||
object KRunnables {
|
class KRunnableHolder {
|
||||||
|
|
||||||
val runnableEndCallbacks = HashMap<BukkitRunnable, () -> Unit>()
|
val runnableEndCallbacks = HashMap<BukkitRunnable, () -> Unit>()
|
||||||
|
|
||||||
@@ -75,7 +75,7 @@ fun bukkitRunnable(
|
|||||||
|
|
||||||
endCallback?.let {
|
endCallback?.let {
|
||||||
it.invoke()
|
it.invoke()
|
||||||
KRunnables.runnableEndCallbacks -= this
|
kSpigot.kRunnableHolder.runnableEndCallbacks -= this
|
||||||
}
|
}
|
||||||
|
|
||||||
return
|
return
|
||||||
@@ -88,7 +88,7 @@ fun bukkitRunnable(
|
|||||||
|
|
||||||
if (safe)
|
if (safe)
|
||||||
if (endCallback != null)
|
if (endCallback != null)
|
||||||
KRunnables.runnableEndCallbacks[bukkitRunnable] = endCallback
|
kSpigot.kRunnableHolder.runnableEndCallbacks[bukkitRunnable] = endCallback
|
||||||
|
|
||||||
if (sync)
|
if (sync)
|
||||||
bukkitRunnable.runTaskTimer(kSpigot.plugin, realDelay, realPeriod)
|
bukkitRunnable.runTaskTimer(kSpigot.plugin, realDelay, realPeriod)
|
Reference in New Issue
Block a user