diff --git a/src/main/kotlin/net/axay/kspigot/runnables/KRunnables.kt b/src/main/kotlin/net/axay/kspigot/runnables/KRunnables.kt index 4d5d0b96..0c3bef76 100644 --- a/src/main/kotlin/net/axay/kspigot/runnables/KRunnables.kt +++ b/src/main/kotlin/net/axay/kspigot/runnables/KRunnables.kt @@ -68,13 +68,18 @@ fun bukkitRunnable( kSpigotRunnable.counter-- - if (kSpigotRunnable.counter >= 0) { - this.cancel() + if (kSpigotRunnable.counter >= 0 || (this.isCancelled && safe)) { + + if (!this.isCancelled) + this.cancel() + endCallback?.let { it.invoke() KRunnables.runnableEndCallbacks -= this } + return + } }