- Поддерживаемые версии
- 1.8
- 1.9
- 1.10
- 1.11
- 1.12
- 1.13
- 1.14
- 1.15
- 1.16
- 1.17
- 1.18
- 1.19
Код:
Пример использования:
Java:
public abstract class Cooldowns {
private final HashMap<UUID, Long> cooldown = new HashMap<>();
public void setCooldown(UUID uuid) {
cooldown.put(uuid, System.currentTimeMillis());
}
private Long getCooldown(UUID uuid) {
return (System.currentTimeMillis() - cooldown.get(uuid))/1000;
}
public String getCooldownValue(UUID uuid, Integer timecd) {
if(!cooldown.containsKey(uuid)) {
return "Нет информации";
}
long cd = timecd-getCooldown(uuid);
String time = cd+"сек.";
if(cd >= 60) {
time = (cd/60)+"мин.";
}
if(cd >= 60*60) {
time = ((cd/60)/60)+"ч.";
}
if(cd >= 60*60*24) {
time = ((cd/60)/60)/24+"д.";
}
return time;
}
// time - в секундах
public boolean isCooldown(UUID uuid, Integer time) {
if(cooldown.containsKey(uuid)) {
return getCooldown(uuid) <= time;
}
return false;
}
}
Пример использования:
Java:
public class FlyCommand extends Cooldowns implements CommandExecutor {
@Override
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
if(!(sender instanceof Player)) {
return true;
}
Player player = (Player) sender;
if(isCooldown(player.getUniqueId(), 60)) { // проверка на то, есть ли у игрока кулдаун (60 сек).
// если есть
String time = getCooldownValue(player.getUniqueId(), 60);
player.sendMessage("У Вас задержка на использование команды! Подождите: "+time);
return true;
}
setCooldown(player.getUniqueId()); // установка кулдауна
if(!player.getAllowFlight()) { // если false
player.setAllowFlight(true);
player.sendMessage("Флай включен.");
} else {
player.setAllowFlight(false);
player.sendMessage("Флай выключен.");
}
return true;
}
}