轻光233
怎么在bukkit里开同步线程啊,或者怎么正常使用Thread.sleep而不让服务器假死啊

急,在线等


鬼畜畜
BukkitRunnable 具体站内有教程

Leosouthey
我也在找这个

July_Summer
本帖最后由 July.七月 于 2018-11-2 22:18 编辑

Bukkit.getScheduler().runTask(new Main(), new BukkitRunnable() {
    @Override
    public void run() {
        //to do sth
    }});
路过

Lucky_fish0w0
如果要sleep的话你可以在task里头加task= =

  1. Bukkit.getScheduler().runTask(plugin, () -> {
  2.      // do what f**k you want to
  3.     Bukkit.getScheduler().runTaskLater(plugin, () -> {
  4.         // do what f**k else you want to
  5.     }, time);
  6. );
复制代码

plugin即插件实例,time是延时时间
或者再坑一点的= =开个异步线程?然后调Bukkit.getScheduler().callSyncMethod()然后sleep等返回值设置同步,坏方法
死循环推荐第二种方式,开异步等同步
多看看javadoc总是有好处的:)

轻光233
July.七月 发表于 2018-11-2 22:14
Bukkit.getScheduler().runTask(new Main(), new BukkitRunnable() {
    @Override
    public void run() ...

这个一样是在主线程里加任务

July_Summer
轻光233 发表于 2018-11-3 10:18
这个一样是在主线程里加任务

你这问题本身就有问题
使用Thread.sleep不假死
只有新开一个线程 或
使用Bukkit提供的方法来达到延迟执行