Кулдаун на размещение блоков

Версия Minecraft
1.19+
API
Bukkit
Никак не догоняю, как сделать плагин на Кулдаун между размещением блоков. Может знает кто, как правильно сделать?
 
90
4
20
Java:
@EventHandler
public void onBlockPlace(BlockPlaceEvent event) {
    // Нужный тебе ивент.
}

Java:
// Создаешь мапу и хранишь где-нибудь.
HashMap<Player, Date> map = new HashMap();

// Вот так добавляешь в мапу, когда игрок ставит блок.
map.put(player, new Date());

// Собственно код :

if (map.containsKey(player)) { // Если игрок есть в мапе...
    long cooldown = 5L; // Кд в секундах.
    Date currentDate = new Date(); // Текущее Время.
    long result = ((currentDate.getTime() - map.get(player).getTime()) / 1000L); // Вычитаем даты.
    if (result <= cooldown) { // Если результат меньше, значит кд не прошло.
        event.setCancelled(true) // Отменяем ивент, т.е блок не поставится .
        return; // Оператор return завершает выполнение функции, т.е дальше код не будет выполнятся.
    }

    // Дальнейшее выполнение кода означает что кд прошло.
    map.put(player, new Date()); // Обновляем мапу

    // ...

} else {

    // ... Если игрока нет в мапе - значит он еще не ставил блоки.
    map.put(player, new Date()); // Обновляем мапу.

}
 
Последнее редактирование:
Сверху