--- front: hard: 入门 time: 10分钟 --- # 调度器 ## 传统写法 用Bukkit写调度器一般是通过下述代码完成 ```java Bukkit.getScheduler().runTask(BukkitPlugin.javaPlugin){ // TODO } new BukkitRunnable(){ @Override public void run(){ // TODO } } ``` 但是Taboolib创建调度器则非常方便,代码也是非常简约 ```kotlin submit(period = 10, async = true, delay = 20) { // TODO } ``` 这样就创建了一个 每10Tick 运行一次 异步的 第一次运行延迟20Tick的调度器 ## 方法详解 ```kotlin fun submit( now: Boolean = false, // 是否立即执行 async: Boolean = false, // 是否异步执行 delay: Long = 0, // 延迟执行时间 period: Long = 0, // 重复执行时间 comment: String? = null, // 注释(无用) executor: PlatformExecutor.PlatformTask.() -> Unit, // 调度器具体行为 ): PlatformExecutor.PlatformTask ``` > 如果now为true时,这个task不会重复执行。 ## 变体 - 简单的异步调度器 ```kotlin submitAsync{ // TODO } ``` ## 变体 - 通过注解的方式注册调度器 ```kotlin @Schedule(period = 20, async = true) fun tick() { Bukkit.getOnlinePlayers().forEach { it.sendMessage("Hello super bee") } } ```