Рецепты крафтов в коде

Версия Minecraft
1.12.2

ReyMagos

Тег-бомбастер
412
7
121
Захотел я как-то проапгрейдить майновскую похлёбку и сделал свою. Суть в том, что я могу скидать в неё любые ингредиенты и получится уникальный экземпляр. Сытость и восстановление рассчитываются в зависимости от ингредиентов. И естественно столкнулся с проблемой её крафта. Заглянул в цветные предметы и о УЖАС. Оказывается майн делает для каждого вида шерсти, кровати, стекла и т.д. отдельный json... Но я продолжил поиски и нашёл крафт фейерверков. Он записан в коде и наследуется от странного класса IForgeRegistryEntry.Impl<IRecipe> и имплементирует IRecipe. Там я нашёл всё, что мне нужно (универсальный крафт). Написал я его такой и думаю, как зарегистрировать. Парочку раз натыкался на такие артефакты)
Java:
//Forge: Made private use GameData/Registry events!
    private static void register(ResourceLocation name, IRecipe recipe)
    {
        ...
    }
Перехожу в GameData и вижу)
Java:
/*
*INTERNAL ONLY
*MODDERS SHOULD HAVE NO REASON TO USE THIS CLASS
*/
public class GameData
{
    ...
}
Но тут я увидел, что public static final RegistryNamespaced<ResourceLocation, IRecipe> REGISTRY = net.minecraftforge.registries.GameData.getWrapper(IRecipe.class); открытый (public). И я такой в комон прокси в ините запихал регистрацию и вот чем меня порадовал фордж)
java.lang.IllegalStateException: Can not register to a locked registry. Modder should use Forge Register methods.
Ну, я конечно пошёл в доки форджа и посмотрел, но ничего стоящего я там не нашёл, может кто-нибудь подсказать решение?

P.S. Есть ещё одна сопутствующая проблема, это создание этой самой похлёбки, как предмета. Метадату делать бесмысленно (очень много крафтов). Думал через сеттер, а после как-то обновлять прдемет, но не смог. Единственный вариант это создавать новый ItemStew с новыми параметрами, но это как-то не очень. Тоже нужна помощь!
 
Решение
Есть RegistryEvent<IRecipe>, регай через него

Думал через сеттер, а после как-то обновлять прдемет, но не смог. Единственный вариант это создавать новый ItemStew с новыми параметрами, но это как-то не очень.
Храни параметры похлебки в нбт
7,099
324
1,510
Есть RegistryEvent<IRecipe>, регай через него

Думал через сеттер, а после как-то обновлять прдемет, но не смог. Единственный вариант это создавать новый ItemStew с новыми параметрами, но это как-то не очень.
Храни параметры похлебки в нбт
 

ReyMagos

Тег-бомбастер
412
7
121
Про нбт тоже думал. Сейчас поподробнее расскажу проблему. У меня ингредиенты надо вводить в конструкторе, чтобы передать в супер нужные данные (наследуется от itemfood) , но по факту предмет то один, нужны его варианты. Немного не допирает как это сделать.

Ps За регистрацию респект!
 
Сверху