代码之家  ›  专栏  ›  技术社区  ›  Dan

每5分钟清除掉的项目

  •  -1
  • Dan  · 技术社区  · 6 年前

    我正在编写一个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 回复  |  直到 6 年前
        1
  •  4
  •   LeoColman    6 年前

    您可以创建一个 timer 存储传递时间的变量

    long remainingTimeInSeconds = 300; //5 minutes
    

    然后更新您的任务以减少此计时器 20滴答 (20个滴答=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);