Posted July 20, 20178 yr Hey, I just updated my mod and I'm not to up-to-date with the registry system yet. I updated all of my registry methods in my ModItems, ModBlocks, and ModEntities. The only problem is (and it's very much my fault for not knowing this) I have no clue where to call these methods and what to put in the method for the RegistryEvent. Here's one of my register methods Spoiler @SubscribeEvent public static void registerItem(final RegistryEvent.Register<Item> event) { final IForgeRegistry<Item> regi = event.getRegistry(); for(int i=0; i <= itemlist.size(); i++) { regi.register(itemlist.get(i)); itemlist.get(i).setCreativeTab(items); //Sets the creative tab Utils.getLogger().info("Registered Item: " + itemlist.get(i).getUnlocalizedName().substring(5)); } }
July 20, 20178 yr Registry events work as any other Forge event - you subscribe it to the event bus, and that's it. Forge will call it when stuff will be registered. Check out my mods: BTAM Armor sets Avoid Exploding Creepers Tools compressor Anti Id Conflict Key bindings overhaul Colourfull blocks Invisi Zones
July 20, 20178 yr Author Hm, I should have known better. Thanks Edited July 20, 20178 yr by GooberGunter
July 20, 20178 yr Author But wait, when I register the event on the event bus, what do I do about the RegistryEvent argument I have in the actual method?
July 20, 20178 yr Author Right, right, right. I keep thinking about it as registry still and not an actual event.
July 20, 20178 yr A little complains about the code. 1. You don't do whitespaces (or whatever english calls it) after annotations. 2. Unnecessary fori loop, it'd better be foreach. Now it looks something like this: @SubscribeEvent public static void registerItem(final RegistryEvent.Register<Item> event) { final IForgeRegistry<Item> regi = event.getRegistry(); for(Item item : itemList) { regi.register(item); item.setCreativeTab(items); //Sets the creative tab Utils.getLogger().info("Registered Item: " + item.getUnlocalizedName().substring(5)); } } 3. Not sure why to store registry in `regi`, is this too hard to just `event.getRegistry().register()`? Simplier and cleaner.
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.