Не могу создать рецепт.

Версия Minecraft
1.12+
917
22
332
Доброго дня!
Собственно, новый принцип создания рецептов, сразу не заладился.
Рецепт для блока, заработал, а для предмета - никак.
Подскажите где я накосячил.

Предмет:
Java:
public class PortalDeactivator extends Item {

    public PortalDeactivator() {
        setUnlocalizedName(TPI.ID + ":" + "portal_deactivator");
        setRegistryName(TPI.ID, "portal_deactivator");
        setMaxStackSize(1);
        setCreativeTab(CreativeTabs.REDSTONE);
    }
}

Рецепт в .json(файл называется "portal_deactivator.json"):
JSON:
{
    "type": "minecraft:crafting_shaped",
    "pattern": [
        "BGB",
        "BGB",
        "BBB"
    ],
    "key": {
        "B": {
            "item": "minecraft:string"
        },
        "G": {
            "item": "minecraft:gunpowder"
        }
    },
    "result": {
        "item": "tp:portal_deactivator"
    }
}

З.Ы. Спасибо всем!
 
917
22
332
Я не уверен что нужно, но вдруг...
Список Предметов:
Java:
@ObjectHolder(Info.ID)
public class ListItem {

    public static Item PORTAL_DEACTIVATOR = new PortalDeactivator();
    
    private static final Item[] items = {PORTAL_DEACTIVATOR};
    
    public static Item[] getItems() {return items;}
    
    public static void onRender() {
        registerRenderItem(PORTAL_DEACTIVATOR);
    }
    
    private static void registerRenderItem(Item item) {
        ModelLoader.setCustomModelResourceLocation(item, 0, new ModelResourceLocation
                (item.getRegistryName(), "inventory"));
    }
}

Их регистрация:
Java:
@Mod.EventBusSubscriber
public class RegItem {
    public static final Set<Item> ITEMS = new HashSet();
    
    @SubscribeEvent
    public static void registerItems(RegistryEvent.Register<Item> event) {
        Item[] items = ListItem.getItems();
        IForgeRegistry<Item> registry = event.getRegistry();
        for (Item item : items) {
            registry.register(item);
            ITEMS.add(item);
        }
    }
    
    @SubscribeEvent
    public static void regiserModels(ModelRegistryEvent event) {
        ListItem.onRender();
    }
}
 
917
22
332
В "key" ингридиенты указываются не в кавычках, а в апострофах. "B" -> 'B'
P. S. На будущее: смотри в лог, там все ошибки написаны.
В логе ошибок нет, туда в первую очередь смотрел. Ошибки только по моделям, которых нет(ну логично), про рецепты, даже когда в файле был полный бред, ничего не писало. Есть рецепт, нет рецепта, ему пофигу. А насчёт кавычек... Я копипастил из ванили, менял только ингридиенты и паттерн, ключи и их кол-во вообще не трогал. Но... Сейчас проверить не могу, а потом, уже точно отвечу.
 
5,018
47
783
Что же я могу сказать... У меня тоже через джосоны не работают крафты. Сделал по старинке значит.

Код:
    GameRegistry.addShapedRecipe(new ResourceLocation("rope"), new ResourceLocation("rope"), new ItemStack(RegItems.rope),new Object[]{
            "Y Y",
            " Y ",
            "YHY",
            'Y', RegItems.dryvineitem,
            'H', RegItems.spokes,
            });
Единственный минус - надо вручную их еще все добавлять в ванильную книгу. Но это нетрудно.

Заодно вот и бесформенный, он немного в 1.12+ изменился

Код:
    GameRegistry.addShapelessRecipe(new ResourceLocation("wetvineitem"), new ResourceLocation("wetvineitem"), new ItemStack(RegItems.wetvineitem), new Ingredient[] {Ingredient.fromItem(RegItems.pointedstone),
            Ingredient.fromItem(Item.getItemFromBlock(Blocks.VINE))});
 
917
22
332
Таки добрался я до компа.
Про кавычки верно, именно кавычки. А вот одну ошибку, я нашёл: В аннотации @ObjectHolder была ссылка на другой id. Если б не эта проблема, узнал бы только после компиляции.
 
917
22
332
Что же я могу сказать... У меня тоже через джосоны не работают крафты. Сделал по старинке значит.

Код:
    GameRegistry.addShapedRecipe(new ResourceLocation("rope"), new ResourceLocation("rope"), new ItemStack(RegItems.rope),new Object[]{
            "Y Y",
            " Y ",
            "YHY",
            'Y', RegItems.dryvineitem,
            'H', RegItems.spokes,
            });
Единственный минус - надо вручную их еще все добавлять в ванильную книгу. Но это нетрудно.

Заодно вот и бесформенный, он немного в 1.12+ изменился

Код:
    GameRegistry.addShapelessRecipe(new ResourceLocation("wetvineitem"), new ResourceLocation("wetvineitem"), new ItemStack(RegItems.wetvineitem), new Ingredient[] {Ingredient.fromItem(RegItems.pointedstone),
            Ingredient.fromItem(Item.getItemFromBlock(Blocks.VINE))});
Спасибо! Но это если с .json ничего не получится. Пойду декомпильну чей-нибудь мод...
 
917
22
332
Хмм... Проблема решилась, но хз как... У меня есть только предположения...
Собсно вот список того, что я сделал:
1.Установил корректный id для моей аннотации.
2.Поменял setRegistryName(TPI.ID, "portal_deactivator"); на setRegistryName(new ResourceLocation(TPI.ID, "portal_deactivator"));
3.Скопипастил ванильный крафт динамита, и подстроил под себя, стараясь не ставить лишние пробелы(ну мало ли).
4.У меня в папке recipe крафт моего блока стоял первым, а предмета - последним. Между ними было несколько не рабочих крафтов(ну по алфавиту). Я их удалил. Это всего лишь предположение, но возможно майнкрафт, доходил до ошибочного рецепта, и дальше не читал. Я завтра попробую создать ещё пару рецептов. Хотя, судя по времени, уже сегодня...
 
Сверху