Add basic folia support

This commit is contained in:
alexcrea 2024-09-07 23:17:05 +02:00
parent 3f0b432e1a
commit 80aeb165cc
No known key found for this signature in database
GPG key ID: 43FD265DB0DBF91F
13 changed files with 148 additions and 50 deletions

View file

@ -0,0 +1,52 @@
package xyz.alexcrea.cuanvil.dependency.scheduler
import io.papermc.paper.threadedregions.scheduler.ScheduledTask
import org.bukkit.Bukkit
import org.bukkit.entity.Entity
import org.bukkit.plugin.Plugin
import java.util.function.Consumer
class PaperScheduler : TaskScheduler {
override fun scheduleGlobally(plugin: Plugin, task: Runnable, time: Long): Any? {
if(time < 1){
return Bukkit.getGlobalRegionScheduler().run(
plugin,
Consumer { scheduledTask: ScheduledTask? -> task.run() }
)
}
return Bukkit.getGlobalRegionScheduler().runDelayed(
plugin,
Consumer { scheduledTask: ScheduledTask? -> task.run() },
time
)
}
override fun scheduleOnEntity(plugin: Plugin, entity: Entity, task: Runnable, time: Long): Any? {
if(time < 1){
return entity.scheduler.run(
plugin,
Consumer { scheduledTask: ScheduledTask? -> task.run() },
Runnable {}
)
}
return entity.scheduler.runDelayed(
plugin,
Consumer { scheduledTask: ScheduledTask? -> task.run() },
Runnable {},
time
)
}
companion object {
fun isPaper(): Boolean {
try {
Bukkit::class.java.getDeclaredMethod("getGlobalRegionScheduler")
return true
} catch (e: NoSuchMethodException) {
return false
}
}
}
}