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

Помогите как сделать таймер на сундук

TheNightWith

Новичок
Баллы
6
Имя в Minecraft
DyrrothLP
Вобщем, как добавить таймер на сундук то-есть, как в плагинах Air'Drop. Я хочу чтобы при окончании таймера, игроки смогли открыть сундук и забрать ресурсы. Если кому не сложно, можете дать ссылку на гайд по BukkitScheduler или просто простенький код где можно понять как это добавить
 
Хз насколько правильно, но я в рамках изучения делал как то так

Шедулер
Код:
private Integer countdown = 5; // 5 секунд (если не ошибаюсь, 20L = 1 секунде)
public void start() {
        BukkitTask task = new BukkitRunnable() {
            @Override
            public void run() {
                if (countdown <= 0) {
                    this.cancel(); // останавливаешь шедулер
                    // Отсчет закончился, удаляешь с hashmap
                } else {
                  countdown--;
                }
            }
        }.runTaskTimer(MyPlugin.getInstance(), 0, 20L);
    }

Хэшмап

Код:
    public final HashMap<Chest, Location> chestMap = new HashMap<Chest, Location>();


    public void add(Chest chest, Location location) {
        chestMap.put(chest, location);
    }

    public Boolean isEventChest(Chest chest) {
        if (chestMap.get(chest) != null) {
            return true;
        }
        return false;
    }

    public void remove(Chest chest) {
        if (chestMap.get(chest != null) {
            chestMap.remove(chest);
        }
    }

Дальше в Event'е PlayerInteractEvent проверял как то так

Код:
if (event.getAction().equals(Action.RIGHT_CLICK_BLOCK) && event.getClickedBlock().getType().equals(Material.CHEST)) {
    Chest chest = (Chest) event.getClickedBlock().getState();
    if (MyPlugin.hashMaps.isEventChest(chest)) {
        event.setCancelled(true);
        player.sendMessage("Locked");
    }
}

Мб поправят где то, самому интересно будет, как можно сделать лучше )
А так, эффект ровно тот, что нужен (сундук закрыт, через 5 сек открывается)
 

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

Назад
Верх