Войти или зарегистрироваться
  • Вы находитесь в сообществе Rubukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на различные языки плагины наших коллег из других стран.

Помогите Как поставить Cooldown на использование вещи

VladlenSSD

Активный участник
Пользователь
Баллы
61
Имя в Minecraft
vladoskin
Доброго времени суток! Я сделал кристалл который взрывается при нажатии ЛКМ (При этом не ставив его, а просто если держать его в руки и нажать ЛКМ он взрывается) и столкнулся с проблемой, как поставить на использование этого кристалла задержку?

(Данный Кристалл я делал для практики т.к я ещё учусь, может и буду использовать его на сервере но это как получится)

Заранее спасибо!
 
Я бы записал игрока в мапу и проверял бы там кд
 
Код:
public class PlayerCooldownManager {

    // здесь хранятся кулдауны игроков
    private static Map<Player, Long> playerCooldowns = new HashMap<>();

    // добавить кулдаун игроку (в секундах)
    public void addCooldown(Player player, int seconds) {
        playerCooldowns.put(player, System.currentTimeMillis()+seconds*1000L);
    }

    // убрать кулдаун у игрока
    public void removeCooldown(Player player) {
        playerCooldowns.remove(player);
    }

    // получить кулдаун игрока (в секундах) (если его нет, то вернется 0)
    public double getCooldown(Player player) {
        double result = (System.currentTimeMillis()-playerCooldowns.get(player))/1000;
        return (result > 0) ? result : 0;
    }

    // проверить, есть ли у игрока кулдаун (true - есть, false - нет)
    public boolean hasCooldown(Player player) {
        return getCooldown(player) > 0;
    }

}

P.S., писал с телефона, без IDE, где-то могут быть очепятки.
 
Последнее редактирование:
Можно сделать визуально такой же кулдаун, как у эндер-пёрлов, например.
Player#setCooldown(Material material, int ticks)

Правда при повторном использовании предмета кулдаун придётся проверять самостоятельно при помощи
Player#hasCooldown(Material)
 
Можно сделать визуально такой же кулдаун, как у эндер-пёрлов, например.
Player#setCooldown(Material material, int ticks)

Правда при повторном использовании предмета кулдаун придётся проверять самостоятельно при помощи
Player#hasCooldown(Material)
Насколько я знаю, этот кулдаун сбрасывается при перезаходе на сервер такчто если выдавать кудлаун на долго лучше его всё же записать в память.
 
Насколько я знаю, этот кулдаун сбрасывается при перезаходе на сервер такчто если выдавать кудлаун на долго лучше его всё же записать в память.
Ну тут да, вполне возможно
 
а как сделать визуальное кд на предмет в хотбаре по типу эндер жемчуга когда его бросаешь (проще говоря как на фантайме)
 
а как сделать визуальное кд на предмет в хотбаре по типу эндер жемчуга когда его бросаешь (проще говоря как на фантайме)
Player#setCooldown(material, ticks), будет тебе визуал и проверяешь активно ли время через hasCooldown(material).
 
В код своего плагина. Если плагины не ищешь, то тебе нужно искать готовый плагин, добавляющий такой функционал
Ты знаешь плагин antirelog? Он у меня единственный плагин на кд. Если знаешь, то можно просто вставить эту команду в самый конец и все заработает?
 

Поделиться этой страницей

Назад
Верх