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

Помогите детект блока

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

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

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

    Баллы:
    76
    как продетектить под игроком блок? и как заменить его на воздух. короче: мне надо чтобы если игрок на льду то он под ним ломался.
     
  2. Хостинг MineCraft
    <
  3. MrOnlineCoder

    MrOnlineCoder Новичок

    Баллы:
    6
    Получить блок под игроком можно через метод getBlock():
    Код:
    player.getLocation().subtract(0,1,0).getBlock();
    Добавляйте слушатель на PlayerMoveEvent или таск в scheduler.
     
  4. TheZefirrkka

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

    Баллы:
    76
    Skype:
    RomaMamkinHasker1337
    Имя в Minecraft:
    TheZefirrkka
    Код:
                if(s.getLocation().add(0, -1, 0).getBlock().getType() == Material.ICE){
                    s.getLocation().add(0, -1, 0).getBlock().setType(Material.AIR);   
                }
     
  5. Автор темы
    asdqwertypro

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

    Баллы:
    76
    а как там параметр destroy прифигачить? ну чтоб блок не просто заменялся а уничтожал лёд со звуком, частицами ломания... ну destroy короч
     
  6. AtomicInteger

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

    Баллы:
    46
    breakNaturally();
     
  7. Автор темы
    asdqwertypro

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

    Баллы:
    76
    извини за глупый вопрос, но... куда это приписывать? :D[DOUBLEPOST=1483719481,1483719451][/DOUBLEPOST]
    НЕУЖТО Я САМ ЗАКОДИЛ БЕЗ ГЛУПЫХ ВОПРОСОВ????
     
    Последнее редактирование: 6 янв 2017
  8. AtomicInteger

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

    Баллы:
    46
    Это метод класса Block.
     
  9. Автор темы
    asdqwertypro

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

    Баллы:
    76
    не понимаю... :3
     
  10. AtomicInteger

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

    Баллы:
    46
    Код:
        @EventHandler
        private void onPlayerMove(PlayerMoveEvent event) {
            if(event.getPlayer().getLocation().getBlock().getRelative(BlockFace.DOWN).getType() == Material.ICE)
                event.getPlayer().getLocation().getBlock().getRelative(BlockFace.DOWN).breakNaturally();
        }
     
  11. Автор темы
    asdqwertypro

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

    Баллы:
    76
    не работает твой код... (может я чот не так с твоим сделал?) вот мой:
    Код:
        @EventHandler
        public void onPlayerMovie (PlayerMoveEvent e){
            Player s = e.getPlayer();
            if(s.getLocation().add(0, -1, 0).getBlock().getType() == Material.ICE){
                s.getLocation().add(0, -1, 0).getBlock().setType(Material.AIR);
            }
        }
     
  12. AtomicInteger

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

    Баллы:
    46
    Руки-крюки.
    [​IMG][DOUBLEPOST=1483720346,1483720302][/DOUBLEPOST]setType(Material.AIR); меняешь на breakNaturally();, хоть и он звука вроде не дает.
     
  13. Автор темы
    asdqwertypro

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

    Баллы:
    76
    ну так? что делать то? кстати... PlayerMoveEvent должен отслкживать движущихся игроков? у меня он убирает лёд даж если тпхнулся[DOUBLEPOST=1483720680,1483720414][/DOUBLEPOST]
    да блин... оба кода работают одинакого! мне надо чтобы когда блок под ногами исчезал он был как /setblock ~ ~-1 ~ air 0 destroy а не /setblock ~ ~-1 ~ air 0 replace
     
  14. TheZefirrkka

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

    Баллы:
    76
    Skype:
    RomaMamkinHasker1337
    Имя в Minecraft:
    TheZefirrkka
    if(s.getLocation().add(0, -1, 0).getBlock().getType() == Material.ICE){
    s.getLocation().add(0, -1, 0).getBlock().breakNaturally();
    }
     
  15. Fenix78563

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

    Баллы:
    76
    Имя в Minecraft:
    Blc_Dragon
    По моему такое можно спрашивать только у тебя
     
  16. Автор темы
    asdqwertypro

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

    Баллы:
    76
    о боже мой... кажется я нашёл то, что не возможно сделать в eclipse... надо чтобы блоки ломались так как будто их игрок ломает! со звуком ломания, с частицами ломания...[DOUBLEPOST=1483721577,1483721522][/DOUBLEPOST]
    ой... НЕУЖТО *Я* САМ ЗАКОДИЛ БЕЗ ГЛУПЫХ ВОПРОСОВ???? сорян ошибочка )))
     
  17. Автор темы
    asdqwertypro

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

    Баллы:
    76
    это я знаю, но блин... свой мозг имейте! вы подумайте что я имел ввиду я просто выразился как удобно
     
  18. Автор темы
    asdqwertypro

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

    Баллы:
    76
    ой да ладно уже блин... прям завелись с этого слова[DOUBLEPOST=1483722251][/DOUBLEPOST]
    ну так как блин там уничтожить блок а не тупо заменить на воздух
     
  19. Fenix78563

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

    Баллы:
    76
    Имя в Minecraft:
    Blc_Dragon
    Код:
    if(p.isOnGround()&&p.getLocation().add(0, -1, 0).getBlock().getType() == Material.ICE){
                Bukkit.getServer().dispatchCommand(Bukkit.getConsoleSender(), "setblock "+Integer.toString((int) p.getLocation().getX())+" "+Integer.toString((int) (p.getLocation().getY()-1))+" "+Integer.toString((int) p.getLocation().getZ()) +" air 0 destroy");
                }
     
  20. IcedwinterZ

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

    Баллы:
    76
    Имя в Minecraft:
    IcedwinterZ
    Мммм... Маты
     
  21. TheZefirrkka

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

    Баллы:
    76
    Skype:
    RomaMamkinHasker1337
    Имя в Minecraft:
    TheZefirrkka
    Notepad++ и cmd.exe = самодельная IDE =)[DOUBLEPOST=1483722953,1483722895][/DOUBLEPOST]
    Хмм...чувствуете этот запах?...Костылями пахнет сильно...Очень
     

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