V této lekci si k itemu přidáme crafting recept, nastavíme si název itemu a přidáme si item do kreativního inventáře.

Crafting recept

Recept na náš item může vypadat například následujícím způsobem, aby jej nebylo jednoduché získat.

Ve složce src/main/resources/data/custom-item/recipe si vytvoříme soubor anti_creeper.json, ve kterém bude recept.

Samotný recept bude vypadat následovně. Jedná se o typ receptu, kde určujeme, co má být na kterém políčku (typ minecraft:crafting_shaped). Dále určíme vzor (pattern), jak mají být itemy poskládané. Následně určíme, co má být za který symbol dosazené (key). A na závěr určíme, co z receptu dostaneme (result). Podrobnosti najdete v lekci 06 Crafting recept.

src/main/resources/data/custom-item/recipe/anti_creeper.json
{  
  "type": "minecraft:crafting_shaped",  
  "pattern": [  
    "NSN",  
    "MCM",  
    "NNN"  
  ],  
  "key": {  
    "N": {  
      "item": "minecraft:netherite_block"  
    },  
    "S": {  
      "item": "minecraft:nether_star"  
    },  
    "M": {  
      "item": "custom-item:magic_dust"  
    },  
    "C": {  
      "item": "minecraft:creeper_head"  
    }  
  },  
  "result": {  
    "id": "custom-item:anti_creeper",  
    "count": 1  
  }  
}

Nastavení odolnosti proti ohni

Při vytváření itemu si můžeme nastavit, že item bude odolný proti ohni a lávě. To uděláme tak, že za nastavím použijeme metodu .fireproof(). Nastavení itemů máme v souboru ModItems.

src/main/java/com/example/item/ModItems.java
public static final Item ANTI_CREEPER_ITEM = register(  
        new AntiCreeperItem(new Item.Settings().maxCount(1).fireproof()),  
        "anti_creeper"  
);

Přidání do kreativního inventáře

Item si můžeme přidat do vlastní skupiny itemů, kterou jsme si vyvářeli v lekci 10 Vlastní skupina itemů, crafting recept. Dále si můžeme item přidat do skupiny nástrojů (ItemGroups.TOOLS). Toto nastavení máme opět v souboru ModItems v metodě initialize.

Podrobnosti

src/main/java/com/example/item/ModItems.java
public static void initialize() {  
    Registry.register(Registries.ITEM_GROUP, CUSTOM_ITEM_GROUP_KEY, CUSTOM_ITEM_GROUP);  
  
    ItemGroupEvents.modifyEntriesEvent(CUSTOM_ITEM_GROUP_KEY)  
            .register(itemGroup -> {  
                itemGroup.add(ModItems.MAGIC_DUST);  
                itemGroup.add(ModItems.LIGHTNING_STICK);  
                itemGroup.add(ModItems.ANTI_CREEPER_ITEM);  
            });  
  
    ItemGroupEvents.modifyEntriesEvent(ItemGroups.INGREDIENTS)  
            .register((itemGroup) -> itemGroup.add(ModItems.MAGIC_DUST));  
  
    ItemGroupEvents.modifyEntriesEvent(ItemGroups.TOOLS)  
            .register((itemGroup) -> itemGroup.add(ModItems.ANTI_CREEPER_ITEM));  
  
    FuelRegistry.INSTANCE.add(ModItems.MAGIC_DUST, 5 * 20);  
    CompostingChanceRegistry.INSTANCE.add(ModItems.MAGIC_DUST, 0.3f);  
}

Název itemu

Název itemu nastavíme ve složce src/main/resources/assets/custom-item/lang, kde máme pro každý jazyk zvlášť soubor. V tomto případě můžeme přidat název jen do anglické verze en_us.json.

src/main/resources/assets/custom-item/lang/en_us.json
{  
  "item.custom-item.magic_dust": "Magic Dust",  
  "item.custom-item.lightning_stick": "Lightning Stick",  
  "item.custom-item.anti_creeper": "Anti Creeper",  
  "itemGroup.custom-item": "Custom Item"  
}

Podrobnosti

Nastavení názvu itemu najdete v lekci 04 Přidání itemu část 2 - kapitola Název itemu