- Баллы
- 68
- Имя в Minecraft
- MultiPLicator
Добрый день форумчане! Спасибо всем кто отозвался на мой крик души...
Скажу сразу, что у меня нет программистского образования и некоторые вещи которые я могу описывать или делать могут быть в корне не правильны.
Суть вопроса:
Пытаюсь сделать первый плагин. Функционал - по команде даёт вещь и игрок с этой вещью в руке может телепортироваться.
Столкнулся с проблемой, какой-то глупой непонятливостью - почему при нажатии ПКМ с воздухом, хлебом или сахаром(это тот самый предмет с лором) в блоке после if вызывается двойное срабатывание... методов, или как они правильно называются. а при нажатии ПКМ с колбой зелья или семенами - одиночное?
Сам свой код плохо понимаю, пытаюсь сделать всякие проверки, экспериментирую...
вот кусок кода
Я тут конечно лишнего наверное навтыкал чего-то, но если поможете спасибо огромное!)
Скажу сразу, что у меня нет программистского образования и некоторые вещи которые я могу описывать или делать могут быть в корне не правильны.
В майнкрафте с 2012, и всю жизнь хотель сам делать плагины, или что бы кто то делал, программист из команды...(есть небольшая, но я там не старший)
И вот спустя годы решил попробовать заняться, на костылях, но пытаюсь простое делать
И вот спустя годы решил попробовать заняться, на костылях, но пытаюсь простое делать
Суть вопроса:
Пытаюсь сделать первый плагин. Функционал - по команде даёт вещь и игрок с этой вещью в руке может телепортироваться.
Столкнулся с проблемой, какой-то глупой непонятливостью - почему при нажатии ПКМ с воздухом, хлебом или сахаром(это тот самый предмет с лором) в блоке после if вызывается двойное срабатывание... методов, или как они правильно называются. а при нажатии ПКМ с колбой зелья или семенами - одиночное?
Сам свой код плохо понимаю, пытаюсь сделать всякие проверки, экспериментирую...
вот кусок кода
Код:
@EventHandler
public void clickOn(PlayerInteractEvent e) {
Player p = e.getPlayer();
Action a = e.getAction();
Block b = e.getClickedBlock();
if (!(a == Action.RIGHT_CLICK_AIR) ||
p.getInventory().getItemInMainHand().getType() == Material.AIR ||p.getInventory().getItemInMainHand().getItemMeta().hasLore() != true ||
b.getType() == Material.AIR) {
p.sendMessage("Лора нет!");
ItemStack i = new ItemStack((Material.BREAD), 1);
p.getInventory().addItem(i);
}
else
{
List<String> lore = p.getInventory().getItemInMainHand().getItemMeta().getLore();
if ((a == Action.RIGHT_CLICK_BLOCK && a != Action.LEFT_CLICK_BLOCK ) & lore.contains(ChatColor.DARK_AQUA + "Это личный телепорт " + p.getPlayerListName())) {
p.sendMessage("Я кретин!!!");
}
else p.sendMessage("Вы нажали на блок!");
}
}
Я тут конечно лишнего наверное навтыкал чего-то, но если поможете спасибо огромное!)