Pallemann Posted April 7, 2021 Posted April 7, 2021 Hey, I am fairly new to working on mods on the Minecraft Version 1.16.4. I have dabbled a little in an older version, MC 1.8 to be specific, and created a mod with a friend there. I am now trying to convert my 1.8 mod into one that works with the newest Forge and MC version 1.16.4. I am trying to redo everything I did in the old mod by myself. I have read and sorted through a lot of tutorials and guides on how to create new items and blocks and how to add logic to them etc. for MinecraftForge 1.16.4. I dont have any issues regarding that. I do have issues though with trying to edit the Vanilla Items of the game. In the pervious build of my mod, I modified the stack limit of eggs for example, so that one stack can hold 64 eggs. I would like to change the Vanilla items myself and not install any external mod for that. The line of code was rather simple back then: Items.egg.setMaxStackSize(64); I have tried around a little and somewhere I found a post saying I could just override the Item.Properties by naming the item the same as in the Vanilla game and then only these properties would be overwritten and the rest would stay the same. public static final DeferredRegister<Item> VANILLA_ITEMS = DeferredRegister.create(ForgeRegistries.ITEMS, "minecraft"); public static final RegistryObject<Item> EGG = VANILLA_ITEMS.register("egg", () -> new Item((new Item.Properties()).maxStackSize(64))); Unfortunately this didn't work. When launching the game I didn't get any error messages or anything like that, but it just didn't do anything. The egg stack size didn't change and stayed at 16. Is this the right way to approach this or is it maybe more complicated or maybe even less complicated to change these properties? Help would be much appreciated. Thank you in advance. Quote
ChampionAsh5357 Posted April 7, 2021 Posted April 7, 2021 Did you attach the register to the mod event bus? Also, you should probably check what class the "egg" is using and update accordingly. This will remove all the features associated with the egg. Another thing to note is that you shouldn't replace vanilla entries unless absolutely necessary. It could lead to compatibility issues and a few others (although, since you're only modifying a property, it should be fine). 1 Quote
DavidM Posted April 7, 2021 Posted April 7, 2021 On 4/7/2021 at 12:21 AM, Pallemann said: Is this the right way to approach this or is it maybe more complicated or maybe even less complicated to change these properties? Expand Haven't tested this, but have you tried using reflection to change the Item#maxStackSize field? 1 Quote Some tips: Reveal hidden contents Modder Support: Reveal hidden contents 1. Do not follow tutorials on YouTube, especially TechnoVision (previously called Loremaster) and HarryTalks, due to their promotion of bad practice and usage of outdated code. 2. Always post your code. 3. Never copy and paste code. You won't learn anything from doing that. 4. Quote Programming via Eclipse's hotfixes will get you nowhere Expand 5. Learn to use your IDE, especially the debugger. 6. Quote The "picture that's worth 1000 words" only works if there's an obvious problem or a freehand red circle around it. Expand Support & Bug Reports: Reveal hidden contents 1. Read the EAQ before asking for help. Remember to provide the appropriate log(s). 2. Versions below 1.11 are no longer supported due to their age. Update to a modern version of Minecraft to receive support.
Pallemann Posted April 7, 2021 Author Posted April 7, 2021 On 4/7/2021 at 2:20 AM, ChampionAsh5357 said: Did you attach the register to the mod event bus? Also, you should probably check what class the "egg" is using and update accordingly. This will remove all the features associated with the egg. Another thing to note is that you shouldn't replace vanilla entries unless absolutely necessary. It could lead to compatibility issues and a few others (although, since you're only modifying a property, it should be fine). Expand Thank you for your help. Stupidly I have forgotten to register the event bus for the vanilla items. Now that registered the event bus for the vanilla items it works and the stack size is overwritten. I did however, as you mentioned, lose all the properties the egg had, like the sound it made when throwing it and the particle effect when hitting the ground. I did find a solution for that though. I changed this public static final RegistryObject<Item> EGG = VANILLA_ITEMS.register("egg", () -> new Item((new Item.Properties()).maxStackSize(64))); into this public static final RegistryObject<EggItem> EGG = VANILLA_ITEMS.register("egg", () -> new EggItem((new Item.Properties()).maxStackSize(64).group(ItemGroup.MATERIALS))); and now the egg regained all its properties when throwing and the particle effects etc, but the stacksize is increased to 64. Just as I was hoping to achieve. I haven't done extensive testing, only crafting a cake and throwing the eggs, but it seems that this did not break the game or any properties with the EggItem. Thank you again for your help. Quote
Pallemann Posted April 7, 2021 Author Posted April 7, 2021 On 4/7/2021 at 3:59 AM, DavidM said: Haven't tested this, but have you tried using reflection to change the Item#maxStackSize field? Expand Thank you for your suggestion. I have read about using reflection, but haven't tried it myself either. I did find a solution without using reflection though, which seems to work as intended. Quote
redspecsgaming Posted April 8, 2021 Posted April 8, 2021 @diessieben07 what would be the correct way to do this then? I have just started modding myself and have found little to no info on how to adjust vanilla items/blocks. From what I am gathering, in general its not suggested. I personally am looking to make logs unbreakable by hand and was aiming down an override path as described in this post but I am guessing this isnt the right idea. Would love some insight. Quote
Draco18s Posted April 9, 2021 Posted April 9, 2021 On 4/8/2021 at 9:50 PM, redspecsgaming said: I personally am looking to make logs unbreakable by hand Expand BreakSpeedEvent Quote 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.
redspecsgaming Posted April 9, 2021 Posted April 9, 2021 Legend! I had just figured out how to do it with BreakEvent and cancelling the event but this event is so much better! Thank you! 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.