Плагин для сервера, крафт

Статус
В этой теме нельзя размещать новые ответы.
16
0
пытаюсь написать плагин для сервера на свои крафты, столкнулся с такой проблемой, тк в 1.12 добавили книгу рецептов, то код для создания своего крафта тоже изменили, как можно было раньше
private void craft() { // выдает ошибку The method craft() from the type NeWea is never used locally
ItemStack item = new ItemStack(Material.IRON_SWORD);
ItemMeta meta = item.getItemMeta();
meta.setDisplayName(ChatColor.RED + "MURAMASA");
List<String> lore = new ArrayList<String>();
lore.add("Лезвие впитывает в себя всю кровь врагов");
meta.setLore(lore);
meta.addEnchant(Enchantment.DAMAGE_ALL, 6, true);
item.setItemMeta(meta);
ShapedRecipe m = new ShapedRecipe(item); // выдает ошибку The constructor ShapedRecipe(ItemStack) is deprecated
m.shape(new String[] {"IVI", "DSD", "IVI"});
m.setIngredient('I', Material.IRON_INGOT);
m.setIngredient('V', Material.LAVA_BUCKET);
m.setIngredient('S', Material.IRON_SWORD);
m.setIngredient('D', Material.DIAMOND);
Bukkit.getServer().addRecipe(m);
искал в гугле, там есть очень мало инфы про это, кто нить можете разжевать по подробнее
 
1. Тему перенесли в оффтоп, ибо то раздел моддинга.
2. Для нормальной подачи темы, для кода есть специальная вставка. "Вставить - Код"
3. Посмотри исходник другого плагина либо ищи на форумах по плагинам.
 
форумы пусты, а исходники устроенны по другому, там крафт через интерфейс

Java:
private void craft() {
        ItemStack item = new ItemStack(Material.IRON_SWORD);
        ItemMeta meta = item.getItemMeta();
        meta.setDisplayName(ChatColor.RED + "MURAMASA");
        List<String> lore = new ArrayList<String>();
        lore.add("Лезвие впитывает в себя всю кровь врагов");
        meta.setLore(lore);
        meta.addEnchant(Enchantment.DAMAGE_ALL, 6, true);
        item.setItemMeta(meta);
        
        ShapedRecipe m = new ShapedRecipe(item);
            m.shape(new String[] {"IVI", "DSD", "IVI"});
            m.setIngredient('I', Material.IRON_INGOT);
            m.setIngredient('V', Material.LAVA_BUCKET);
            m.setIngredient('S', Material.IRON_SWORD);
            m.setIngredient('D', Material.DIAMOND);
        Bukkit.getServer().addRecipe(m);
 
А зачем тебе массив? Это конструктор. Или ты о чём? В Bukkit теперь для регистрации крафта нужно указывать NamespacedKey и результатный ItemStack.
 
Java:
@Override
public void onEnable() {
    //...
    registerCraft();
}

private void registerCraft() {
     NamespacedKey key = new NamespacedKey(this, "nice_sword");
     ItemStack item = new ItemStack(Material.DIAMOND_SWORD);
     ShapedRecipe recipe = new ShapedRecipe(key, item);
     recipe.shape(" O ", " D ", "OOO");
     recipe.setIngredient('O', Material.EMERALD);
     recipe.setIngredient('D', Material.DIRT);
     Bukkit.addRecipe(recipe);
}
 
новый вопрос)) тут ток для одного крафта, я пытаюсь в скобки вписать значение и он начинает быковать)1587120811382.png
 
в прошлом варианте надо было просто повторить код с другим айди для нового крафта, а как сделать в твоем варианте другие крафты
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху