josephcsible Posted December 25, 2017 Posted December 25, 2017 (edited) I want some of my mod's items to be disableable in the config file, so that if the player or pack maker doesn't want them, they don't have to be loaded into memory. When I disable items this way, I get this error for recipes for the disabled items: com.google.gson.JsonSyntaxException: Unknown item 'mymod:myitem' at net.minecraftforge.common.crafting.CraftingHelper.getItemStack(CraftingHelper.java:211) ~[CraftingHelper.class:?] at net.minecraftforge.common.crafting.CraftingHelper.lambda$init$14(CraftingHelper.java:516) ~[CraftingHelper.class:?] at net.minecraftforge.common.crafting.CraftingHelper.getRecipe(CraftingHelper.java:408) ~[CraftingHelper.class:?] at net.minecraftforge.common.crafting.CraftingHelper.lambda$loadRecipes$22(CraftingHelper.java:711) ~[CraftingHelper.class:?] The game still works fine, and all of the recipes are there except for the ones that make/use the disabled item, so the only problem that this is causing is the log spam. Is there a way to not load crafting recipes for some items in 1.12? In 1.11 and prior versions, I'm used to being able to conditionally add the recipe via Java, but I don't know of an equivalent for that in JSON. Edited December 25, 2017 by josephcsible Quote
josephcsible Posted December 25, 2017 Author Posted December 25, 2017 The reason I wanted disabling them to not register them is to make the mod more RAM-friendly. If I register them and just hide them, there's no real point. Quote
josephcsible Posted December 25, 2017 Author Posted December 25, 2017 Doesn't registering the item mean that I have to register a model for it too? Quote
josephcsible Posted December 25, 2017 Author Posted December 25, 2017 I just thought of something: even if I do still register the items, how would I then go about disabling the crafting recipe? Would I have to basically hardcode what CraftTweaker does, or is there an easier way? Quote
Matryoshika Posted December 25, 2017 Posted December 25, 2017 You can't really "disable" a recipe. It's rather the other way around. You can "enable" a recipe. Unless you specifically make a recipe for an item, it won't have one. To remove an item from a creative tab (and per extension JEI as well), use an if-statement in the item's constructor when adding to the creative tab (Item::setCreativeTab), or override CreativeTabs::displayAllRelevantItems in your own tab and remove your disabled items from the list given to you. For full-fledged removal, you could possibly override Item::onUpdate and make sure that the items remove themselves from player's inventories if they should be disabled (players can still use /give etc) Quote Also previously known as eAndPi. "Pi, is there a station coming up where we can board your train of thought?" -Kronnn Published Mods: Underworld Handy links: Vic_'s Forge events Own WIP Tutorials.
josephcsible Posted December 25, 2017 Author Posted December 25, 2017 I still feel like I'm missing something. How can I make a JSON recipe either work or not work depending on a configuration setting? Quote
josephcsible Posted December 25, 2017 Author Posted December 25, 2017 Ah, conditions for recipes were exactly what I was looking for. Thanks! (For anyone else who reads this, note that it's minecraft:item_exists, not forge:item_exists). Quote
Recommended Posts
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.