java - 每 5 分钟清除一次掉落的物品
问题描述
我正在编写一个 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);
}
如何在清除水滴之前实施警告倒计时?
解决方案
您可以创建一个timer
变量来存储经过的时间
long remainingTimeInSeconds = 300; //5 minutes
然后更新您的任务,以每20 个滴答声减少此计时器(在 Bukkit 中,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);
推荐阅读
- swift - Swift 如何处理协议是否有解决此错误的方法?
- python - PyDrive - 擦除文件的内容
- python - 根据用户的输入生成相似的短语
- mongodb - 如何过滤mongodb文档中的字符串数组?
- apache-royale - Apache Royale 中表单帖子的目标属性
- visualizer - 一种将 xstate 可视化器链接到反应应用程序的方法
- android - React Native Android App 崩溃:致命信号 11 (SIGSEGV),代码
- reactjs - 反应 | 材质-UI | 滑动抽屉无法通过滑动打开
- python - 无法使用 Python 从 AWS Glue 数据库/表中读取数据
- sql - 在具有完整客户记录的内部联接中选择不同