Jump to content
View in the app

A better way to browse. Learn more.

Forge Forums

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Featured Replies

Posted

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);
	}
}

 

 

  • Author

I just tried a new world and apparently, it was a problem with the world having a different id for the enchantment?? maybe?? 

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

Important Information

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

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.