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

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

Discussion in 'Разработка плагинов для новичков' started by asdqwertypro, Jan 6, 2017.

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

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

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

    MrOnlineCoder Новичок

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

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

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

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

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

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

    Trophy Points:
    46
    breakNaturally();
     
  7. Автор темы
    asdqwertypro

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

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

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

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

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

    Trophy Points:
    76
    не понимаю... :3
     
  10. AtomicInteger

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

    Trophy Points:
    46
    Code:
        @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 Активный участник Пользователь

    Trophy Points:
    76
    не работает твой код... (может я чот не так с твоим сделал?) вот мой:
    Code:
        @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 Активный участник Пользователь

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

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

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

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

    Trophy Points:
    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 Активный участник Пользователь

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

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

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

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

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

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

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

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

    Trophy Points:
    76
    Имя в Minecraft:
    Blc_Dragon
    Code:
    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 Активный участник Пользователь

    Trophy Points:
    76
    Имя в Minecraft:
    IcedwinterZ
    Мммм... Маты
     
  21. TheZefirrkka

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

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

Share This Page