Войти или зарегистрироваться
  • Вы находитесь в сообществе Rubukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на различные языки плагины наших коллег из других стран.

Помогите Использовать специальный скрафченный предмет в крафте другого предмета.

Scutman

Ньюби
Баллы
1
Имя в Minecraft
Woubat
Здравствуйте, пытался сделать специальные слитки, которые служили бы для крафта специальной кирки, и у меня вроде бы получилось, но оказалось, что это работает и с обычным золотом. Помогите пожалуйста.


public void pickaxe_lvl1() {
ItemStack pickaxe_lvl1 = new ItemStack(Material.DIAMOND_PICKAXE);
ItemMeta meta = pickaxe_lvl1.getItemMeta();
List<String> lore = new ArrayList<>();

meta.setDisplayName("§c§lУЛУЧШЕННАЯ КИРКА LVL 1");

lore.add("§fЗачарования: ");
lore.add("§a┌");
lore.add(" §aЭффективность VII");
lore.add(" §aУдача I");
lore.add(" §aПрочность IV");
lore.add(" §aПочинка");
lore.add(" §a┘");

meta.addEnchant(Enchantment.IMPALING, 1, true);

meta.setLore(lore);
meta.addItemFlags(ItemFlag.HIDE_ENCHANTS);
pickaxe_lvl1.setItemMeta(meta);

ItemStack gold_lvl1 = new ItemStack(Material.GOLD_INGOT);
ItemMeta meta1 = gold_lvl1.getItemMeta();
List<String> lore1 = new ArrayList<>();

meta1.setDisplayName("§c§lСЛИТОК УЛУЧШЕНИЯ LVL 1");

lore1.add("§aИспользуется в крафте уникальной кирки 1 уровня.");

meta1.addEnchant(Enchantment.DIG_SPEED, 7, true);
meta1.addEnchant(Enchantment.LOOT_BONUS_BLOCKS, 1, true);
meta1.addEnchant(Enchantment.DURABILITY, 4, true);
meta1.addEnchant(Enchantment.MENDING, 1, true);

meta1.setLore(lore1);
meta1.addItemFlags(ItemFlag.HIDE_ENCHANTS);
gold_lvl1.setItemMeta(meta1);

ShapedRecipe r = new ShapedRecipe(pickaxe_lvl1);

r.shape(new String[] {"ABA", "CDC", "ABA"});

r.setIngredient('A', Material.IRON_INGOT);
r.setIngredient('B', gold_lvl1.getData());
r.setIngredient('C', Material.REDSTONE);
r.setIngredient('D', Material.DIAMOND_PICKAXE);

Bukkit.addRecipe(r);
}
 
Используй ExactChoice.
PHP:
r.setIngredient('B', new RecipeChoice.ExactChoice(gold_lvl1));
 
может я что-то не так сделал?
public void pickaxe_lvl1() {
ItemStack pickaxe_lvl1 = new ItemStack(Material.DIAMOND_PICKAXE);
ItemMeta meta = pickaxe_lvl1.getItemMeta();
List<String> lore = new ArrayList<>();

meta.setDisplayName("§c§lУЛУЧШЕННАЯ КИРКА LVL 1");

lore.add("§fЗачарования: ");
lore.add("§a┌");
lore.add(" §aЭффективность VII");
lore.add(" §aУдача I");
lore.add(" §aПрочность IV");
lore.add(" §aПочинка");
lore.add(" §a┘");

meta.addEnchant(Enchantment.IMPALING, 1, true);

meta.setLore(lore);
meta.addItemFlags(ItemFlag.HIDE_ENCHANTS);
pickaxe_lvl1.setItemMeta(meta);

ItemStack gold_lvl1 = new ItemStack(Material.GOLD_INGOT);
ItemMeta meta1 = gold_lvl1.getItemMeta();
List<String> lore1 = new ArrayList<>();

meta1.setDisplayName("§c§lСЛИТОК УЛУЧШЕНИЯ LVL 1");

lore1.add("§aИспользуется в крафте уникальной кирки 1 уровня.");

meta1.addEnchant(Enchantment.DIG_SPEED, 7, true);
meta1.addEnchant(Enchantment.LOOT_BONUS_BLOCKS, 1, true);
meta1.addEnchant(Enchantment.DURABILITY, 4, true);
meta1.addEnchant(Enchantment.MENDING, 1, true);

meta1.setLore(lore1);
meta1.addItemFlags(ItemFlag.HIDE_ENCHANTS);
gold_lvl1.setItemMeta(meta1);

ShapedRecipe r = new ShapedRecipe(pickaxe_lvl1);

r.shape(new String[] {"ABA", "CDC", "ABA"});

r.setIngredient('A', Material.IRON_INGOT);
r.setIngredient('B', new RecipeChoice.ExactChoice(gold_lvl1));
r.setIngredient('C', Material.REDSTONE);
r.setIngredient('D', Material.DIAMOND_PICKAXE);

Bukkit.addRecipe(r);
 
Убедись, что предметы действительно совпадают. Желательно предмет золота заранее создать и хранить как-нибудь, после чего уже добавлять в крафт и выдавать его же.
 
Убедись, что предметы действительно совпадают. Желательно предмет золота заранее создать и хранить как-нибудь, после чего уже добавлять в крафт и выдавать его же.
я нашел в чем проблема, скорее всего просто для моей версии майнкрафта старый метод, т.к. у меня 1.19 стоит на сервере
 

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

Назад
Верх