Jump to content

[1.15.2] Recipes Not Working Properly


Techno

Recommended Posts

I cannot seem to get any recipes to load, whether I am using vanilla items or items from my own mod! Same thing goes for smelting recipes or shapeless crafting. My custom items are registered, named, and textured (and I can use them in-game perfectly), so that is not the problem. From what I can gather, forge must not be able to locate my data folder, since my JSON files are valid but don't seem to do anything. What exactly is the problem here?? 

 

Edited by Techno
Link to comment
Share on other sites


public class WitcheryItems {

    public static final List<Item> ITEMS = new ArrayList<>();

    // Items
    public static final Item SOFT_CLAY_JAR = new ItemBase("soft_clay_jar");
    public static final Item CLAY_JAR = new ItemBase("clay_jar");

}
   @SubscribeEvent
    public static void onRegisterItems(RegistryEvent.Register<Item> event) {
        event.getRegistry().registerAll(WitcheryItems.ITEMS.toArray(new Item[0]));
    }

You creating the items, but you never actually register them.

Witchery.ITEMS is a empty ArrayList, then in registerAll you access it and assign a new empty Item to it.

This won't work, and it looks like that's the issue. Unless I overlooked where you're adding SOFT_CLAY_JAR and CLAY_JAR to the ITEMS array.

Link to comment
Share on other sites

Apparently I'm a complete and utter jerk and come to this forum just like to make fun of people, be confrontational, and make your personal life miserable.  If you think this is the case, JUST REPORT ME.  Otherwise you're just going to get reported when you reply to my posts and point it out, because odds are, I was trying to be nice.

 

Exception: If you do not understand Java, I WILL NOT HELP YOU and your thread will get locked.

 

DO NOT PM ME WITH PROBLEMS. No help will be given.

Link to comment
Share on other sites

47 minutes ago, KindOfWay said:


public class WitcheryItems {

    public static final List<Item> ITEMS = new ArrayList<>();

    // Items
    public static final Item SOFT_CLAY_JAR = new ItemBase("soft_clay_jar");
    public static final Item CLAY_JAR = new ItemBase("clay_jar");

}

   @SubscribeEvent
    public static void onRegisterItems(RegistryEvent.Register<Item> event) {
        event.getRegistry().registerAll(WitcheryItems.ITEMS.toArray(new Item[0]));
    }

You creating the items, but you never actually register them.

Witchery.ITEMS is a empty ArrayList, then in registerAll you access it and assign a new empty Item to it.

This won't work, and it looks like that's the issue. Unless I overlooked where you're adding SOFT_CLAY_JAR and CLAY_JAR to the ITEMS array.

Sorry for the confusion, but they most definitely are registered. In the ItemBase class constructor, I add each Item instance to the ArrayList, accessed statically from WitcheryItems. This is to make the code more readable and repeat less code overall. They are definitely registered because the items all work normally in-game, have textures, and can be accessed from the creative menu.

Edited by Techno
Link to comment
Share on other sites

Does nobody seriously have any idea? Is something broken with Forge? I have never run into this problem despite years of messing around with modding. I even tried recompiling forge and starting over from scratch but i STILL cannot get recipes to work! :(

Edited by Techno
Link to comment
Share on other sites

Did you fix the two problems I pointed out?

Apparently I'm a complete and utter jerk and come to this forum just like to make fun of people, be confrontational, and make your personal life miserable.  If you think this is the case, JUST REPORT ME.  Otherwise you're just going to get reported when you reply to my posts and point it out, because odds are, I was trying to be nice.

 

Exception: If you do not understand Java, I WILL NOT HELP YOU and your thread will get locked.

 

DO NOT PM ME WITH PROBLEMS. No help will be given.

Link to comment
Share on other sites

1 hour ago, Draco18s said:

Did you fix the two problems I pointed out?

I was just using ItemBase to test an item, it was never meant to be a solid solution. As for the second problem, I don't see why it's bad practice to create an Item outside of the registry event. The items all still get registered using the proper event and the code is much more readable while preventing a TON of repeated code. Why would it ever be better to type out the line below for every single item or block? 

 

event.getRegistry().register(new Item(new Item.Properties().group(ItemGroup.MISC)).setRegistryName("name");

 

instead i can just type:

 

Item i = new ItemType("name");

 

and the rest is handled in the class constructor. Is there something I am missing?

Edited by Techno
Link to comment
Share on other sites

12 hours ago, Techno said:

I don't see why it's bad practice to create an Item outside of the registry event.

Its because setRegistryName doesn't work properly. If you don't pass your mod ID, Forge has to figure out what the mod ID should be, and it does that by checking what mod is currently "active" in the registration process.

 

But because you've created your items in a static block, Forge cannot know what the correct mod ID is because your static code is being called at an unknown time. Oh, and specifying the mod ID might not be sufficient. Forge does a lot of things in the background and items MUST be created at a controlled time, and if its done too early, unexpected things might break.

Edited by Draco18s

Apparently I'm a complete and utter jerk and come to this forum just like to make fun of people, be confrontational, and make your personal life miserable.  If you think this is the case, JUST REPORT ME.  Otherwise you're just going to get reported when you reply to my posts and point it out, because odds are, I was trying to be nice.

 

Exception: If you do not understand Java, I WILL NOT HELP YOU and your thread will get locked.

 

DO NOT PM ME WITH PROBLEMS. No help will be given.

Link to comment
Share on other sites

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...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Announcements



  • Recently Browsing

    • No registered users viewing this page.
  • Posts

    • @bluedisgusted That actually fully fixed it, thank you so much
    • Hi, I would like to know how to create multiple hitboxes for the player like the ender dragon. I've searched everywhere but I haven't found anything.
    • FOLKWIN EXPERT RECOVERY is the crypto hero we all need in the ongoing battle against cryptocurrency theft. With the rise in popularity of digital assets like Bitcoin and Ethereum, crypto crime has also been on the rise as hackers look to steal funds stored in virtual wallets. Many a crypto investor has fallen victim to clever scams and hacking schemes that drain wallets of their precious coins. But fear not, for FOLKWIN EXPERT RECOVERY has arrived as a beacon of hope for those who have had their hard-earned crypto stolen. This service is like a superhero for tracking down lost or stolen cryptocurrency, utilizing their advanced forensic technology and expertise to follow the blockchain paper trail and identify where your funds have gone. Their team of ethical hackers act like detectives, piecing together crypto transactions and unmasking the thieves behind complex cybercrimes. No case is too difficult for FOLKWIN EXPERT RECOVERY; they have recovered millions in stolen crypto assets from around the globe. Their mission is to reunite victims with their lost funds and bring criminals who prey on cryptocurrency investors to justice. With their help, those who have been robbed of their digital fortunes now have a crypto guardian to call upon in their time of need. FOLKWIN EXPERT RECOVERY gives victims the hope that all is not lost forever when crypto theft occurs.For support, Contact details is: TELEGRAM: @FOLKWIN_EXPERT_RECOVERY, EMAIL: FOLKWINEXPERTRECOVERY at TECH-CENTER dot COM, WEBSITE: WWW.FOLKWINEXPERTRECOVERY.COM .  are the heroes we need in the ongoing battle to make cryptocurrency ownership safe and secure for all. Get FOLKWIN EXPERT RECOVERY on your side when you have issues like this by dialing: Do this and thank me later. God Blessings to all, I'm forever grateful oh God for the successful recovery. I recommend FOLKWIN EXPERT RECOVERY the best ever and i'm so happy i got all my lost money back. Best Regards. Pamela K Ingram.
    • Made it work. As a note, one of the times it didn't recognize the recipe cause the MOD_ID constant I was using somewhere was NOT referencing my MOD_ID but rather another static variable with the same name. Maybe OP is having a similar problem
    • What exactly is the issue?
  • Topics

×
×
  • Create New...

Important Information

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