-------------------------------------------------------------------------------------------------------------------

第九章,BukkitRunnable介绍

今天我要讲的是BukkitRunnable类型
这个类型是Bukkit内自带的,
别忘了import命名空间
  1. import org.bukkit.scheduler.BukkitRunnable;
复制代码

import之后使用方法如下:

  1. new BukkitRunnable(){
  2.     @Override
  3.     public static void run(){
  4.     }
  5. }
复制代码

由于这个比较简单容易理解,并不需要太多的介绍,不过是非常有用的东西
最后面一个大括号之后可以放上以下类型:
.runTask(plugin)                    //在主线程运行一个任务,会堵塞主线程
.runTaskAsynchronously(plugin)                        //创建一个新线程并运行一个任务,不会堵塞主线程
.runTaskLater(plugin, delay)                            //在delay个ticks之后运行一个任务,会堵塞主线程
.runTaskLaterAsynchronously(plugin, delay)                               //在delay个ticks之后运行一个任务,不会堵塞主线程
#在此之后我只会解释Asynchronously的,去掉"Asynchronously"就是在主线程运行,建议创建新线程
.runTaskTimerAsynchronously(plugin, delay, period)                        //在delay之后每period运行一个任务
这里的plugin指的是主插件class文件的名字,就是extends JavaPlugin的位置
delay是一个Long数值, 大约20=1秒
period也是一个long数值,也是大约20=1秒
所以比如说如果我要在每20秒之后在后台发送"XD"
并且BukkitRunnable和extends JavaPlugin写在一个类里面
那么代码应该是这样的:

这里因为是一个类里面的,所以是this
delay=0 也就是说开始运行BukkitRunnable()的时候就会发布一个XD
period是20*20, 也就是20秒*20ticks的转换单位
但是如果我希望运行之后关闭怎么办?那么就在里面使用
this.cancel() 即可
大概是这样的:

好了,BukkitRunnable就这么多东西啦, 大家自己摸索吧QwQ


读完请吱一声,告诉我一下看了什么和评论,如果条件允许的话给点人气我就知足了,给人气自己也不丢什么,不想给人气清至少回复个帖子让我知道发生了什么。

-------------------------------------------------------------------------------------------------------------------