gpt4 book ai didi

Java冷却系统

转载 作者:行者123 更新时间:2023-11-29 08:34:51 25 4
gpt4 key购买 nike

我一直在尝试在给定三个变量的情况下在 java 中制作冷却系统,

  • 冷却时间,例如100秒,
  • 点击时间戳(最后一次点击的时间)
  • 当前时间戳。

我以前做过,但是看起来很复杂,我想知道是否有更好的方法来做。

检查点击是否处于冷却状态的代码:

private boolean onCooldown(String playerUUID, int npcId, int cooldown) {
boolean toReturn = false;
try {
String timeStamp = new SimpleDateFormat("yyyy/MM/dd_HH:mm:ss").format(Calendar.getInstance().getTime());
DateFormat df = new SimpleDateFormat("yyyy/MM/dd_HH:mm:ss");
Date savedTime;
Date nowTime;
String savedString = database.getTime(playerUUID, npcId);
nowTime = df.parse(timeStamp);
savedTime = df.parse(savedString);
long diff = nowTime.getTime() - savedTime.getTime();
long savedSeconds = diff / 1000 % 60;
long savedMinutes = diff / (60 * 1000) % 60;
long nowSeconds = cooldown % 60;
long nowMinutes = cooldown / 60 % 60;
if (!((savedMinutes >= nowMinutes) && (savedSeconds >= nowSeconds))) {
toReturn = true;
}
} catch (Exception e) {
toReturn = false;
}
return toReturn;
}

还有比这更好或更简单的方法吗?

干杯。

最佳答案

我建议使用 HashMap存储玩家的 UUID 和当前时间戳。在该方法中,您可以检查 map 是否包含玩家的 key ,如果是,请检查存储的值和您想要的冷却时间是否小于/大于当前时间。

作为Craigr8806在评论中指出,我建议使用 System.nanoTime() 作为时间戳。

关于Java冷却系统,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44971042/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com