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

Помогите Не работает PlayerInteractEvent при Material.AIR

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

  1. Автор темы
    BeYkeR

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

    Trophy Points:
    173
    Есть кусочек кода:

    PHP:
    if(event.getAction() == Action.RIGHT_CLICK_AIR){
    if(
    player.getItemInHand().getType() == Material.AIR){
    //СУПЕР СЕКРЕТНЫЙ КОД
    }
    }
           
    И непонятной мной причиной метод не работает, в чем ошибка ?
     
  2. Хостинг MineCraft
    <
  3. dark32

    dark32 А где твой ТЗ? Пользователь

    Trophy Points:
    123
    Имя в Minecraft:
    dark32
    А теперь назови вещь у которой материал Воздух?
    Тут скорей нужно проверять не пусто ли в руках.
    Попробуй поставить отладочное сообщение на материал при клике по воздуху, чтобы точно видеть какой материал.
     
  4. kris13

    kris13 Активный участник Пользователь

    Trophy Points:
    78
    Насколько я помню, если в руке пусто player.getItemInHand() вернет null
     
  5. Автор темы
    BeYkeR

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

    Trophy Points:
    173
    Назвать вещь ? Пустая ячейка в инвертаре.
    Я взял материал потому что когда я использую:
    PHP:
    if(player.getItemInHand() == null)
    Дальнейшие действия просто не идут или сыпятся ошибки из-за null.
    И еще: Если вместо RIGHT_CLICK_AIR написать RIGHT_CLICK_BLOCK то код начнет работать, но если кликать воздух , то код не работает.
     
  6. aceJKE

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

    Trophy Points:
    123
    Code:
     if (player.getItemInHand().equals(Material.AIR)) {
                if (event.getAction().equals(Action.RIGHT_CLICK_BLOCK) || event.getAction().equals(Action.RIGHT_CLICK_AIR)) {
        //мб так...
      }
    }
     
  7. ql_Nik_lp

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

    Trophy Points:
    173
    Skype:
    q-nik-p
    Имя в Minecraft:
    ql_Nik_lp
    Начиная с последних версий Action RIGHT_CLICK_AIR будет "стрелять" только если у человека есть что-то в руках.
    В противном случае Event просто не будет вызыван
     
    BeYkeR likes this.
  8. Shockwave

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

    Trophy Points:
    103
    Просто блок воздуха не взаимодействует ни с чем кроме блока, попробуйте в игре кликнуть по воздуху, не получится
     
    Likeobot, Hilgert and BeYkeR like this.
  9. Hilgert

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

    Trophy Points:
    123
    Skype:
    mixa2258
    Имя в Minecraft:
    Hilgert
    Code:
        @EventHandler
        public void onInteract(PlayerInteractEvent e){
            if(e.getPlayer().getItemInHand() == null){
                if(e.getAction() == Action.LEFT_CLICK_AIR || e.getAction() == Action.RIGHT_CLICK_AIR){
                    //Твой супер-секретный код:3
                }
            }
        }
     
    Hephest likes this.

Share This Page