Jump to content

[1.12.2] Enchantments and RecipeFactory


Black_dog20

Recommended Posts

I have for the past hour or two tried to get my recipe factory to play nice with an custom enchantment.

The problem is that when I read the json file and creats the recipe, the factory can find my enchantment, but upon loading into a world and crafting the recipe, it no longer has the enchantment.

The item stil has the enchantment glow.

 

My enchantment registration

@EventBusSubscriber(modid = Reference.MOD_ID)
public class ModEnchantments {

	public static final CustomEnchantment myEnchantment = (CustomEnchantment) new CustomEnchantment().setRegistryName(new ResourceLocation(Reference.MOD_ID, "myEnchantment"));
	
	@SubscribeEvent
	public static void registerEnchantments(RegistryEvent.Register<Enchantment> event) {
		IForgeRegistry<Enchantment> r = event.getRegistry();
		r.register(myEnchantment);
	}
}

 

My recipe factory

public class Factory implements IRecipeFactory {

	@Override
	public IRecipe parse(final JsonContext context, final JsonObject json) {
		final String group = JsonUtils.getString(json, "group", "");
		final CraftingHelper.ShapedPrimer primer = RecipeUtil.parseShaped(context, json);
		JsonObject resultJson = JsonUtils.getJsonObject(json, "result");
		final ItemStack result = CraftingHelper.getItemStack(JsonUtils.getJsonObject(json, "result"), context);

		String enchantName = JsonUtils.getString(resultJson, "enchantment");
	    int enchantLvl = JsonUtils.getInt(resultJson, "enchantment_lvl");

	    Enchantment enchantment = Enchantment.getEnchantmentByLocation(enchantName);
	    if (enchantment == null)
	    	throw new JsonSyntaxException("Unknown enchantment '" + enchantName + "'");

	    Map<Enchantment, Integer> enchMap = Collections.singletonMap(enchantment, enchantLvl);
	    EnchantmentHelper.setEnchantments(enchMap, result);
			
		return new ShapedEnchantedItemRecipe(group.isEmpty() ? null : new ResourceLocation(group), result, primer);
	}
}

 

 

Link to comment
Share on other sites

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now

Announcements



×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.