1. Вы находитесь в сообществе Rubukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на различные языки плагины наших коллег из других стран.
    Скрыть объявление
Скрыть объявление
В преддверии глобального обновления, мы проводим исследования, которые помогут нам сделать опыт пользования форумом ещё удобнее. Помогите нам, примите участие!

Помогите Система добычи

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

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

    Stilever_ Новичок Пользователь

    Баллы:
    6
    Имя в Minecraft:
    Stilever_
    Привет всем.
    У меня возник вопрос при разработке плагина "Система добычи"
    У меня на мысли система добычи как в игре Rust а именно - подходишь и инструментом добываешь ресурс из блока не ломая его.
    Из-за своей неопытности столкнулся с проблемой того , что не могу сделать проверку того , на какой блок игрок нажимает.
    =========================================================================
    Сам код добычи:

    @EventHandler
    public void Interact(PlayerInteractEvent e) {

    Action a = e.getAction();
    if(a != Action.LEFT_CLICK_BLOCK) return;
    Player p = e.getPlayer();
    ItemStack item = p.getItemInHand();
    if(item.getType() == Material.WOOD_AXE) {

    p.playSound(p.getLocation(), Sound.CREEPER_HISS, 1, 1);

    }


    }

    Кто может подсказать как сделать это ?
     
  2. XOreshek

    XOreshek Новичок Пользователь

    Баллы:
    16
    Код:
            if(e.hasBlock()) {
                if(e.getClickedBlock().getType() == Material.IRON_ORE) {
    
                }
            }
     
  3. Автор темы
    Stilever_

    Stilever_ Новичок Пользователь

    Баллы:
    6
    Имя в Minecraft:
    Stilever_
    Спасибо Большое!
     
  4. Автор темы
    Stilever_

    Stilever_ Новичок Пользователь

    Баллы:
    6
    Имя в Minecraft:
    Stilever_
    Прости за глупый вопрос ,но я не могу внедрить твою строку в код , ероры не выводит но и не работает...
     
  5. XOreshek

    XOreshek Новичок Пользователь

    Баллы:
    16
    Ну скинь код, я не гадалка.
     
  6. Автор темы
    Stilever_

    Stilever_ Новичок Пользователь

    Баллы:
    6
    Имя в Minecraft:
    Stilever_

    @EventHandler
    public void Interact(PlayerInteractEvent e) {

    Action a = e.getAction();
    if(a != Action.LEFT_CLICK_BLOCK) return;

    Player p = e.getPlayer();
    ItemStack item = p.getItemInHand();
    if(item.getType() == Material.WOOD_AXE) {

    if(e.hasBlock()) {
    if(e.getClickedBlock().getType() == Material.IRON_ORE) {

    p.playSound(p.getLocation(), Sound.CREEPER_HISS, 1, 1);

    }


    }

    }


    }
     
  7. XOreshek

    XOreshek Новичок Пользователь

    Баллы:
    16
    У тебя Listener зарегистрирован? У меня всё работает. Кстати, не обязательно всё выносить в переменные.
    Код:
        @EventHandler
        public void onInteract(PlayerInteractEvent e) {
            if(e.getAction() != Action.LEFT_CLICK_BLOCK) return;
            if(e.getPlayer().getItemInHand().getType() == Material.WOOD_AXE) {
                if(e.hasBlock()) {
                    if(e.getClickedBlock().getType() == Material.IRON_ORE) {
                        e.getPlayer().playSound(e.getPlayer().getLocation(), Sound.CREEPER_HISS, 1, 1);
                    }
                }
            }
        }
     
  8. Автор темы
    Stilever_

    Stilever_ Новичок Пользователь

    Баллы:
    6
    Имя в Minecraft:
    Stilever_
    Звук крипера происходит в любом случаи
     
  9. XOreshek

    XOreshek Новичок Пользователь

    Баллы:
    16
    По подробнее объясни
     
  10. Автор темы
    Stilever_

    Stilever_ Новичок Пользователь

    Баллы:
    6
    Имя в Minecraft:
    Stilever_
    Нужно чтобы при нажатии левой кнопки мышки по определённому блоку издавался звук крипера к примеру.
    При нажатии на другие блоки звук не нужен.
     
  11. XOreshek

    XOreshek Новичок Пользователь

    Баллы:
    16
    Так оно так и работает.
     
  12. Автор темы
    Stilever_

    Stilever_ Новичок Пользователь

    Баллы:
    6
    Имя в Minecraft:
    Stilever_
    Прости , нашел ошибку у себя :)
    Спасибо за помощь , с меня подписка!
     

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