- Баллы
- 6
Есть у меня такой код. Проблема в том, что с правой рукой работает проверка, а с левой нет. Задача такая - отменять запуск фейерверка или же зарядку арбалета, если в ЛЕВОЙ руке у меня специальный мушкет или фейерверк (со специальными названиями).
Для правой руки все работает как я хочу, если патрон в левой руке есть, то арбалет заряжается, если же нет, то нет. Теперь вот не могу с левой решить проблему. Я даже пытался в чат выводить предмет в левой руке, но он либо выводит null, либо не выводит вообще ничего.
Помогите пожалуйста.
Для правой руки все работает как я хочу, если патрон в левой руке есть, то арбалет заряжается, если же нет, то нет. Теперь вот не могу с левой решить проблему. Я даже пытался в чат выводить предмет в левой руке, но он либо выводит null, либо не выводит вообще ничего.
Помогите пожалуйста.
Код:
@EventHandler
public void booleanPatron(PlayerInteractEvent e) {
ItemMeta itemInMainHand = e.getPlayer().getInventory().getItemInMainHand().getItemMeta();
ItemMeta itemInOffHand = e.getPlayer().getInventory().getItemInOffHand().getItemMeta();
if (itemInMainHand.getDisplayName().equals(ChatColor.AQUA + "Мушкет")) {
ItemStack item = e.getPlayer().getInventory().getItemInOffHand();
e.setCancelled(item == null || item.getType() != Material.FIREWORK_ROCKET || !item.getItemMeta().getDisplayName().equals(ChatColor.AQUA + "Пуля для Мушкета"));
}
if (itemInMainHand.getDisplayName().equals(ChatColor.AQUA + "Пуля для Мушкета")) {
ItemStack item = e.getPlayer().getInventory().getItemInOffHand();
e.setCancelled(item == null || item.getType() != Material.CROSSBOW || !item.getItemMeta().getDisplayName().equals(ChatColor.AQUA + "Мушкет"));
}
if (itemInOffHand.getDisplayName().equals(ChatColor.AQUA + "Мушкет")) {
e.getPlayer().sendMessage("в левой руке у тебя мушкет");
e.setCancelled(true);
}
if (itemInOffHand.getDisplayName().equals(ChatColor.AQUA + "Пуля для Мушкета")) {
e.getPlayer().sendMessage("в левой руке у тебя пуля");
e.setCancelled(true);
}
}