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

  • Автор темы Автор темы 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 две. Сразу говорю - проблема не в этом. С кодом ниже я спокойно открываю сундук. Хотя по сути так не должно быть.
​
 
Возьми в обе руки итемстак, тогда первое условие не выполнится и пойдет второе условие проверятся.
 
Зачем? Тогда будет "и", а мне нужно, "если у человека в правой или левой руке есть вещь, то не открывать сундук". А так получится, что его не открываем, если у человека И В ПРАВОЙ, И В ЛЕВОЙ руке предмет.
 
Зачем? Тогда будет "и", а мне нужно, "если у человека в правой или левой руке есть вещь, то не открывать сундук". А так получится, что его не открываем, если у человека И В ПРАВОЙ, И В ЛЕВОЙ руке предмет.
😆😆😆
 
Зачем? Тогда будет "и", а мне нужно, "если у человека в правой или левой руке есть вещь, то не открывать сундук". А так получится, что его не открываем, если у человека И В ПРАВОЙ, И В ЛЕВОЙ руке предмет.
 
У тебя сейчас написано:
Если воздух в одной или другой руке - ничего не делать.
Поэтому чтобы выполнилась вторая проверка - необходимо, чтобы обе руки были не пусты.
Подумай, как тебе нужно, чтобы это работало и перепиши код
 
Спасибо. Изучаю Bukkit и Java 2 день. А какая мотивация учить это дальше..................
Лол
Учи как нормальный человек и не будет таких глупых вопросов
Рил кто мешает то
Чьи-то слова вообще не должны трогать твою "мотивацию", если, конечно, таковая иментся...
 
У тебя сейчас написано:
Если воздух в одной или другой руке - ничего не делать.
Поэтому чтобы выполнилась вторая проверка - необходимо, чтобы обе руки были не пусты.
Подумай, как тебе нужно, чтобы это работало и перепиши код

Спасибо.
 
Код:
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);
        }
    }

Я сделал так, как вы мне посоветовали. Но.. что-то не работает. (Новую версию перенес и перезагрузил сервер). В обоих руках были предметы.
 
¯\_(ツ)_/¯

@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);
}
}
}
}
 
¯\_(ツ)_/¯

@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);
}
}
}
}

Спасибо! Попытаюсь, больше не тупить.
 
Статус
Закрыто для дальнейших ответов.
Назад
Верх