Im trying add my custom recipe, with my DataManipulator in result ItemStack.
My code:
public static void loadRecipes() {
ItemStack stack = ItemStack.of(ItemTypes.DIAMOND, 1);
StandardHelmet standard_helmet_artifact = new StandardHelmet(Collections.emptyMap());
stack.offer(new ArtifactDataManipulator(standard_helmet_artifact, NevendaarKeys.ARTIFACT)); ///line 456
Sponge.getRegistry().getCraftingRecipeRegistry().
register(ShapedCraftingRecipe.builder().
aisle(" ", "aaa", "a a").
where('a', Ingredient.of(ItemTypes.LEATHER)).
result(stack).
build("standard_helmet", MCDaar.getInstance()));
}
If I call loadRecipes in GameInitializationEvent:
[16:08:03 ERROR] [Sponge]: Could not pass GameInitializationEvent$Impl to Plugin{id=mcdaar, name=MCDaar, version=1.0alpha, authors=[GWM], source=mods/MCDaar.jar}
java.lang.NullPointerException: null
at com.google.common.collect.ImmutableList.copyOf(ImmutableList.java:257) ~[minecraft_server.1.12.2.jar:?]
at org.spongepowered.common.data.SpongeManipulatorRegistry.getDelegate(SpongeManipulatorRegistry.java:266) ~[SpongeManipulatorRegistry.class:1.12.2-7.0.0-BETA-352]
at org.spongepowered.common.data.util.DataUtil.getWildDataProcessor(DataUtil.java:334) ~[DataUtil.class:1.12.2-7.0.0-BETA-352]
at net.minecraft.item.ItemStack.offer(SourceFile:1187) ~[aip.class:?]
at net.minecraft.item.ItemStack.offer(SourceFile:1065) ~[aip.class:?]
at org.spongepowered.api.data.value.mutable.CompositeValueStore.offer(CompositeValueStore.java:270) ~[CompositeValueStore.class:1.12.2-7.0.0-BETA-352]
at ua.gwm.sponge_plugin.mcdaar.utils.NevendaarUtils.loadRecipes(NevendaarUtils.java:456) ~[NevendaarUtils.class:?]
at ua.gwm.sponge_plugin.mcdaar.MCDaar.initialization(MCDaar.java:254) ~[MCDaar.class:?]
at org.spongepowered.common.event.listener.GameInitializationEventListener_MCDaar_initialization6.handle(Unknown Source) ~[?:?]
at org.spongepowered.common.event.RegisteredListener.handle(RegisteredListener.java:95) ~[RegisteredListener.class:1.12.2-7.0.0-BETA-352]
at org.spongepowered.common.event.SpongeEventManager.post(SpongeEventManager.java:371) [SpongeEventManager.class:1.12.2-7.0.0-BETA-352]
at org.spongepowered.common.event.SpongeEventManager.post(SpongeEventManager.java:388) [SpongeEventManager.class:1.12.2-7.0.0-BETA-352]
at org.spongepowered.common.event.SpongeEventManager.post(SpongeEventManager.java:392) [SpongeEventManager.class:1.12.2-7.0.0-BETA-352]
at org.spongepowered.common.SpongeImpl.postState(SpongeImpl.java:204) [SpongeImpl.class:1.12.2-7.0.0-BETA-352]
at org.spongepowered.server.SpongeVanilla.initialize(SpongeVanilla.java:150) [SpongeVanilla.class:1.12.2-7.0.0-BETA-352]
at net.minecraft.server.dedicated.DedicatedServer.handler$onServerInitialize$zoo000(SourceFile:1243) [nz.class:?]
at net.minecraft.server.dedicated.DedicatedServer.func_71197_b(SourceFile:191) [nz.class:?]
at net.minecraft.server.MinecraftServer.run(SourceFile:434) [MinecraftServer.class:?]
at java.lang.Thread.run(Thread.java:748) [?:1.8.0_144]
If I call loadRecipes in GamePostInitializationEvent:
java.lang.IllegalStateException: Cannot register additional Recipes at this time! Recipes can only be registered before Initialization!