mirror of
https://github.com/alexcrea/CustomAnvil.git
synced 2026-06-23 08:14:00 +02:00
Add basic folia support
This commit is contained in:
parent
3f0b432e1a
commit
80aeb165cc
13 changed files with 148 additions and 50 deletions
|
|
@ -0,0 +1,18 @@
|
|||
package xyz.alexcrea.cuanvil.dependency.scheduler
|
||||
|
||||
import org.bukkit.entity.Entity
|
||||
import org.bukkit.plugin.Plugin
|
||||
|
||||
interface TaskScheduler {
|
||||
|
||||
fun scheduleGlobally(plugin: Plugin, task: Runnable, time: Long): Any?
|
||||
fun scheduleGlobally(plugin: Plugin, task: Runnable): Any?{
|
||||
return scheduleGlobally(plugin, task, 0L)
|
||||
}
|
||||
|
||||
fun scheduleOnEntity(plugin: Plugin, entity: Entity, task: Runnable, time: Long): Any?
|
||||
fun scheduleOnEntity(plugin: Plugin, entity: Entity, task: Runnable): Any?{
|
||||
return scheduleOnEntity(plugin, entity, task, 0L)
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -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
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue