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

Помогите Сундук открывается.

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

Статус темы:
Закрыта.
  1. Автор темы
    CCSECTA

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

    Баллы:
    61
    Имя в Minecraft:
    trojen12
    Если я слишком ступил, простите.
    Код:
    public void block(PlayerInteractEvent e)
        {
            Player p = e.getPlayer();
            if (p.getInventory().getItemInMainHand().getType() == Material.AIR || p.getInventory().getItemInOffHand().getType() == Material.AIR) return;
            if (e.getClickedBlock().getType() == Material.CHEST) {
                e.setCancelled(true);
            }
        }
    Я увидел, у одного человека, как он реализовал "закрытие сундука, если у игрока предмет в руке". Он делал на версию 1.8, а я на 1.14. Понятное дело, там одна рука, а на 1.14 две. Сразу говорю - проблема не в этом. С кодом ниже я спокойно открываю сундук. Хотя по сути так не должно быть.
     
  2. HunterGaming

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

    Баллы:
    96
    Имя в Minecraft:
    sqdFendy
    в onEnable registerEvents?
    аннотация @EventHandler стоит?
     
  3. Автор темы
    CCSECTA

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

    Баллы:
    61
    Имя в Minecraft:
    trojen12
    Да, конечно.
     
  4. MemoryRAVE

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

    Баллы:
    66
    Имя в Minecraft:
    xR4V3
    Логи?
     
  5. Автор темы
    CCSECTA

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

    Баллы:
    61
    Имя в Minecraft:
    trojen12
    Ошибок нет.
     
  6. alexandrage

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

    Баллы:
    173
    Возьми в обе руки итемстак, тогда первое условие не выполнится и пойдет второе условие проверятся.
     
  7. Kurumi

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

    Баллы:
    76
  8. Автор темы
    CCSECTA

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

    Баллы:
    61
    Имя в Minecraft:
    trojen12
    Зачем? Тогда будет "и", а мне нужно, "если у человека в правой или левой руке есть вещь, то не открывать сундук". А так получится, что его не открываем, если у человека И В ПРАВОЙ, И В ЛЕВОЙ руке предмет.
     
  9. Kurumi

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

    Баллы:
    76
    :lol::lol::lol:
     
  10. alexandrage

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

    Баллы:
    173
     
  11. Lemar98

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

    Баллы:
    76
    +1
     
  12. Автор темы
    CCSECTA

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

    Баллы:
    61
    Имя в Minecraft:
    trojen12
    Спасибо. Изучаю Bukkit и Java 2 день. А какая мотивация учить это дальше..................
     
  13. alexandrage

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

    Баллы:
    173
    Изучай кто мешает то.
     
  14. Dymeth

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

    Баллы:
    98
    Имя в Minecraft:
    Dymeth
    У тебя сейчас написано:
    Если воздух в одной или другой руке - ничего не делать.
    Поэтому чтобы выполнилась вторая проверка - необходимо, чтобы обе руки были не пусты.
    Подумай, как тебе нужно, чтобы это работало и перепиши код
     
  15. Lemar98

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

    Баллы:
    76
    Лол
    Учи как нормальный человек и не будет таких глупых вопросов
    Рил кто мешает то
    Чьи-то слова вообще не должны трогать твою "мотивацию", если, конечно, таковая иментся...
     
  16. Автор темы
    CCSECTA

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

    Баллы:
    61
    Имя в Minecraft:
    trojen12
    Спасибо.
     
  17. Автор темы
    CCSECTA

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

    Баллы:
    61
    Имя в Minecraft:
    trojen12
    Код:
    public void block(PlayerInteractEvent e)
        {
            Player p = e.getPlayer();
            if (p.getInventory().getItemInMainHand().getType() == Material.AIR && p.getInventory().getItemInOffHand().getType() == Material.AIR) return;
            if (e.getClickedBlock().getType() == Material.CHEST) {
                e.setCancelled(true);
            }
        }
    Я сделал так, как вы мне посоветовали. Но.. что-то не работает. (Новую версию перенес и перезагрузил сервер). В обоих руках были предметы.
     
  18. GameMaster

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

    Баллы:
    66
    ¯\_(ツ)_/¯

    @EventHandler
    public void click(PlayerInteractEvent e){
    Player p = e.getPlayer();
    if(e.getAction() == Action.RIGHT_CLICK_BLOCK){
    if(p.getInventory().getItemInMainHand().getType() == Material.AIR && p.getInventory().getItemInOffHand().getType() == Material.AIR){
    e.setCancelled(false);
    }
    else{
    if(e.getClickedBlock().getType() == Material.CHEST){
    p.sendMessage("huyna nu da ladno");
    e.setCancelled(true);
    }
    }
    }
    }
     
  19. Автор темы
    CCSECTA

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

    Баллы:
    61
    Имя в Minecraft:
    trojen12
    Спасибо! Попытаюсь, больше не тупить.
     
Статус темы:
Закрыта.

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