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

Помогите [Решено] Запрет на тушение огня рукой

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

Thread Status:
Not open for further replies.
  1. Автор темы
    dnebik

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

    Trophy Points:
    66
    Имя в Minecraft:
    dnebik
    Просто нужно сделать так чтобы нельзя было потушить огонь рукой, но если есть креатив или оп то пожалуйста... Так вот будь то огонь блоком нет проблем а тут я хз... и по моему это даже не entity как там рамка или вагонетка
    так что просьба подогнать кодик
     
  2. Хостинг MineCraft
    <
  3. Автор темы
    dnebik

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

    Trophy Points:
    66
    Имя в Minecraft:
    dnebik
    Неужели ни кто не знает?
     
  4. kirill2011s

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

    Trophy Points:
    103
    А если слушать блокбреакевент? Не видит? Вроде, огонь это как вода, через него ломать можно.

    Если все-же не работает, то можно сделать все через попу смотреть на какую грань тыкнул игрок и проверять, если на 1 блок в сторону этой грани огонь, то отменять.
     
  5. 0bsid1

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

    Trophy Points:
    123
    Имя в Minecraft:
    Artarious_Empiroo
    Такого нет.
     
  6. Автор темы
    dnebik

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

    Trophy Points:
    66
    Имя в Minecraft:
    dnebik

    у меня такая фигня я сделал список блоков которые можно разрушать ,если блока в списке нет ,то отмена действия, ну как можно понять огонь если ударишь он спокойно тушится

    у меня была верся что это entity как рамки и т.п., но если подумать, тогда бы он тушился от попадания стрелой снежком и т.п. ...[DOUBLEPOST=1404231421,1404230486][/DOUBLEPOST]кто нибудь еще?
     
  7. kirill2011s

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

    Trophy Points:
    103
    Я-же вам сказал, что это не entity и даже предложил вариант.
     
  8. Автор темы
    dnebik

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

    Trophy Points:
    66
    Имя в Minecraft:
    dnebik
    я вроде понятно ответил...
    то есть огонь не является блоком[DOUBLEPOST=1404233177,1404232442][/DOUBLEPOST]
    и если так делать ,то мне нужно сначала понять что такое огонь если это не блок и не entity
     
  9. kirill2011s

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

    Trophy Points:
    103
    Огонь - блок. Просто через него можно бить. Как через воду.[DOUBLEPOST=1404234955][/DOUBLEPOST]Вот, что-то подобное тут уже было: http://www.rubukkit.org/threads/Ловля-eventa-набирания-колбы.69823/#post-895610
     
  10. Автор темы
    dnebik

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

    Trophy Points:
    66
    Имя в Minecraft:
    dnebik
    ну ок это я понял но как тогда понять на что он смотрит в плане if((player.что тут == и что тут) && (event.getAction() == Action.LEFT_CLICK_BLOCK)) *да я нубас блин
    я просто просмотре все что туда можно пихтуть и не нашол что либо связаное со взглядом...
     
    Last edited: Jul 1, 2014
  11. kirill2011s

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

    Trophy Points:
    103
    Ну вообще, Player есть метод getTargetBlock. Но повторюсь, ни на воду ни на огонь смотреть нельзя.
     
  12. Автор темы
    dnebik

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

    Trophy Points:
    66
    Имя в Minecraft:
    dnebik
    ну ок вот я что то написал:
    Code:
    @SuppressWarnings("deprecation")
        @EventHandler
        public void onFireBrick(PlayerInteractEvent event){
            if(event.getPlayer().getTargetBlock(null, 10) != null && event.getAction() == Action.LEFT_CLICK_BLOCK){
                Block block = event.getPlayer().getTargetBlock(null, 10);
                Location loc = block.getLocation();
                loc.setY(loc.getY()+1);
                if(loc.getBlock().getType() == Material.FIRE){
                    event.setCancelled(true);
                }
            }
        }
    но не работает[DOUBLEPOST=1404279410,1404277322][/DOUBLEPOST]При малом дэбаге понял что loc.getY()+1 не нужен при ударе он видет что это огонь и так
    но даже и так это не работает в плане setCancelled не проходит[DOUBLEPOST=1404280394][/DOUBLEPOST]ок раз не работает setCancelled то делаем так:
    Code:
     loc.getBlock().setType(Material.FIRE);
    но не тут то было....
    если я ставлю вместо огня там STONE то он уже появляется....[DOUBLEPOST=1404281597][/DOUBLEPOST]Лол не знаю почему но при перезаходе огонь все же появляется!!! так что все работает!!!
     
    Last edited: Jul 2, 2014
Thread Status:
Not open for further replies.

Share This Page