我正在编写一个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);
}
如何在清除丢弃物之前实施警告倒计时?
答案 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);