1. Этот сайт использует файлы cookie. Продолжая пользоваться данным сайтом, Вы соглашаетесь на использование нами Ваших файлов cookie. Узнать больше.
  2. Вы находитесь в сообществе Rubukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на различные языки плагины наших коллег из других стран.
    Скрыть объявление
Скрыть объявление
В преддверии глобального обновления, мы проводим исследования, которые помогут нам сделать опыт пользования форумом ещё удобнее. Помогите нам, примите участие!

Помогите Особенности блока (ТНТ)

Тема в разделе "Разработка плагинов для новичков", создана пользователем BeYkeR, 11 мар 2013.

  1. VaNnOrus

    VaNnOrus Старожил Пользователь

    Баллы:
    123
    А почему нет?
     
  2. DPOH-VAR

    DPOH-VAR Старожил Пользователь

    Баллы:
    153
    Skype:
    dpohvar
    Ну вот замечания:
    1)
    EventPriority нужно поставить минимальный, как я говорил, чтобы избежать конфликтов с WorldGuard
    2)
    Саму обработку события я бы сделал так:
    Код:
    // завершаем обработку, если уважаемый WorldGuard против:
    if (event.isCancelled()) return;
    // запоминаем предмет в руке
    ItemStack item = event.getItemInHand();
    // делаем проверку, что предмет есть, и это именно ТНТ
    if (item==null) return;
    if (item.getType() != Material.TNT) return;
    // делаем проверку, что это наш мощный тнт (по названию)
    String name = "Poison TNT";
    if (! name.equals(item.getItemMeta().getDisplayName())) return;
    // теперь у нас точно наш специальный блок динамита. Делаем бочку!
    event.setCancelled(true);
    Player player = event.getPlayer();
    Location location = event.getBlock().getLocation();
    // забираем один блок динамита у игрока
    player.getInventory().remove(item.clone().setAmount(1));
    // спавним горящий динамит
    TNTPrimed tnt = location.getWorld().spawn(location, TNTPrimed.class);
    // и меняем его параметры
    tnt.setFuseTicks(15); // на самом деле 15 тиков это мало. 20 тиков = 1 секунда
    tnt.setYield(15); // радиус взрыва в 15 блоков
    // всё!
    
    Lore в этом случае мы не используем, т.к. сила взрыва фиксирована.
     
    BeYkeR нравится это.
  3. Автор темы
    BeYkeR

    BeYkeR Старожил Девелопер Пользователь

    Баллы:
    173
    Спасибо помог:)(респект) . Почему тебя в девелоперов не берут :D.А в remove нечего не забыл ? Ошибку дает в Eclipse
     
  4. DPOH-VAR

    DPOH-VAR Старожил Пользователь

    Баллы:
    153
    Skype:
    dpohvar
    Ага, писал на скорую руку. Нужно как-то так:
    Код:
    if (! player.getGameMode.equals(GameMode.CREATIVE)){
        ItemStack temp = item.clone();
        temp.setAmount(1);
        player.getInventory().remove(temp);
    }
     
    BeYkeR нравится это.

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