Хостинг серверов Minecraft playvds.com
  1. Вы находитесь в русском сообществе Bukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на русский язык плагины наших собратьев из других стран.
    Dismiss Notice

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

Discussion in 'Разработка плагинов для новичков' started by BeYkeR, Mar 11, 2013.

  1. VaNnOrus

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

    Trophy Points:
    123
    А почему нет?
     
  2. Хостинг MineCraft
    <
  3. DPOH-VAR

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

    Trophy Points:
    153
    Skype:
    dpohvar
    Ну вот замечания:
    1)
    EventPriority нужно поставить минимальный, как я говорил, чтобы избежать конфликтов с WorldGuard
    2)
    Саму обработку события я бы сделал так:
    Code:
    // завершаем обработку, если уважаемый 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 likes this.
  4. Автор темы
    BeYkeR

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

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

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

    Trophy Points:
    153
    Skype:
    dpohvar
    Ага, писал на скорую руку. Нужно как-то так:
    Code:
    if (! player.getGameMode.equals(GameMode.CREATIVE)){
        ItemStack temp = item.clone();
        temp.setAmount(1);
        player.getInventory().remove(temp);
    }
     
    BeYkeR likes this.

Share This Page