Я пытаюсь сделать плагин Chest GUI.вот код, который у меня есть
if (block.getType() == Material.ENCHANTING_TABLE) { //create the GUI
e.setCancelled(true);
//Line 1
if (e.getItem().getType() == Material.AIR) {
e.setCancelled(true);
Common.tell(player, "&c&l(!)&c Please hold an item in your hand!");
}
System.out.println(listOfAllowedItems);
System.out.println(e.getItem());
System.out.println(enchant);
if (enchant.isEmpty() && !listOfAllowedItems.contains(enchant.toString()))
{
Common.tell(player, "&c&l(!)&c This item cannot not be &d&nEnchanted!");
}
if (listOfAllowedItems.contains(enchant.toString()) && !listOfAllowedItems.isEmpty()) {
final Map<Enchantment, Integer> enchantments = e.getItem().getEnchantments();
System.out.println(enchantments);
if (enchantments.keySet() == null || enchantments.isEmpty() == true) {
inventory.setItem(0, protection1);
inventory.setItem(1, protection2);
inventory.setItem(2, protection3);
player.openInventory(inventory);
}
if (e.getItem().containsEnchantment(Enchantment.PROTECTION_ENVIRONMENTAL) && e.getItem().getEnchantmentLevel(Enchantment.PROTECTION_ENVIRONMENTAL) == 1); {
inventory.setItem(1, protection2);
player.openInventory(inventory);
}
if (e.getItem().containsEnchantment(Enchantment.PROTECTION_ENVIRONMENTAL) && e.getItem().getEnchantmentLevel(Enchantment.PROTECTION_ENVIRONMENTAL) == 2); {
inventory.setItem(2, protection3);
player.openInventory(inventory);
}
}
else {
Common.tell(player, "&c&l(!) Error! &cPlease notify a &nmember of staff&c and cite error FSP.EnchGUI.Failure");
}
Здесь listOfAllowedItems печатает список разрешенных элементов.e = событие взаимодействия игрока.Enchant = Enchantments предмета.
Проблема в том, что litsOfAllowedItems никогда не содержит enchant.toString ().и операторы if оказываются совершенно ошибочными.
Вот фрагмент консоли, когда я щелкаю правой кнопкой мыши и зачаровываю таблицу с предметом.
[23:05:49 INFO]: [DIAMOND_SWORD, DIAMOND_CHESTPLATE, DIAMOND_HELMET, DIAMOND_BOOTS, DIAMOND_LEGGINGS]
[23:05:49 INFO]: ItemStack{DIAMOND_CHESTPLATE x 1, UNSPECIFIC_META:{meta-type=UNSPECIFIC, enchants={PROTECTION_ENVIRONMENTAL=1}}}
[23:05:49 INFO]: {Enchantment[minecraft:protection, PROTECTION_ENVIRONMENTAL]=1}
Я пытаюсь проверить, Ifпредмет находится в списке разрешенных предметов (и он не пуст), тогда, если у него есть Prot 1, то сделайте это, Prot 2 сделает это, и никакие чары не сделают что-то еще.Он также должен проверить, является ли элемент air / null.
В приведенном выше фрагменте я четко использовал DiamondChestplate, который зачарован с Prot 1. В другом случае, если я использую датчик дневного света и я щелкаю правой кнопкой мышиблок.Оба
Common.tell(player, "&c&l(!) Error! &cPlease notify a &nmember of staff&c and cite error FSP.EnchGUI.Failure")
and
Common.tell(player, "&c&l(!)&c This item cannot not be &d&nEnchanted!")
огонь.