每5分钟清除丢弃的物品

时间:2018-05-22 01:47:14

标签: java minecraft bukkit

我正在编写一个Spigot 1.8.9插件并尝试每隔5分钟清除掉一次,但在清除项目之前我想给出60,30,15,10,5,3,2,1秒的警告然后把它们清理干净。

我尝试使用以下内容,但它没有倒计时警告。

public static void startDropTimer() {
    Bukkit.getScheduler().scheduleSyncRepeatingTask(MyPlugin.getPlugin(), new Runnable() {

        @Override
        public void run() {
            clearAllDrops();
        }
    }, 6000, 6000);
}

如何在清除丢弃物之前实施警告倒计时?

1 个答案:

答案 0 :(得分:4)

您可以创建timer变量来存储传递时间

long remainingTimeInSeconds = 300; //5 minutes

然后更新您的任务,以便每 20个滴答(20个滴答= Bukkit中的1秒)减少此计时器。使用更新任务,检查您的计时器变量以验证是否应该发送消息或是否应该清除丢弃:

Bukkit.getScheduler().scheduleSyncRepeatingTask(MyPlugin.getPlugin(), new Runnable() {

    @Override
    public void run() {
        currentTimeInSeconds--;

        switch(remainingTimeInSeconds) {
           case 60:
           case 30:
           case 15:
           case 10:
           case 5:
           case 3:
           case 2:
           case 1:
           //Send message remainingTimeInSeconds seconds left until drops are cleared!
           break;

           case 0:
           clearAllDrops();
           remainingTimeInSeconds = 300; //Reset your timer
           break;             
        }    

    }
}, 20L, 0);