Posted October 10, 20205 yr I've been working on my mod for awhile and i'm trying to add a custom slab but I can't get the MaterialColor and Material to work because it says they're private. Here's my code: Java Class: public class CoolSlab extends SlabBlock { public CoolSlab() { super(new Properties(Material.IRON, MaterialColor.AIR).hardnessAndResistance(12, 40).harvestTool(ToolType.PICKAXE).sound(SoundType.GLASS)); } } Deferred Registry: public static final RegistryObject<Block> COOL_SLAB = BLOCKS.register("cool_slab", CoolSlab::new); Edited October 10, 20205 yr by Ron_Parker
October 10, 20205 yr 1 hour ago, Ron_Parker said: super(new Properties(Material.IRON, MaterialColor.AIR).hardnessAndResistance(12, 40).harvestTool(ToolType.PICKAXE).sound(SoundType.GLASS)); Don't hardcode a parameter, just call the superclass directly. This is a waste of an object and resources. 1 hour ago, Ron_Parker said: MaterialColor and Material to work because it says they're private. They are definitely not private. They are static final fields accessible to any who calls it. You might want to try setting up your workspace again. Edited October 10, 20205 yr by ChampionAsh5357
October 11, 20205 yr Author It underlines Properties and says 'Properties(net.minecraft.block.material.Material, net.minecraft.block.material.MaterialColor)' has private access in 'net.minecraft.block.AbstractBlock.Properties'
October 11, 20205 yr I read what you said and not what the code written was. Use the static constructors like create of from instead of using the new instance ones.
October 11, 20205 yr 1 minute ago, Ron_Parker said: What do those look like? Properties::create and Properties::from?
October 11, 20205 yr Examine existing usages using your IDE? Right click -> Find all References 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.
October 11, 20205 yr Author Ok I used Properties::from but it doesn't seem to like it, There are red underlines around the parentheses around CoolGlass (Java Class): public static final RegistryObject<Block> COOL_GLASS = BLOCKS.register("cool_glass", AbstractBlock.Properties::from(CoolGlass));
October 11, 20205 yr Because :: is not literal Java syntax. https://stackoverflow.com/questions/27015495/meaning-of-in-java-syntax 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.
October 11, 20205 yr You are messing up in many fundamental java principals. Guys, please don't give him copy paste code as there are many out there he could find if he cared. The example in DeferredRegister shows what you should be passing in. Which is a Supplier<Block> That supplier is typically created via a lambda, but it doesn't have to be, this is a implementation detail that's completely up to you. That supplier has to return a NEW instance of a Block, or subclass of Block. To create a Block instance you need the Properties instance. Which has a private constructor. So you need to figure out if there are any functions you can access that create a new instance of that class. This is where your IDE comes in, just like Draco said, go to the constructor, right click, find references. The method you should all should be really obvious. I do Forge for free, however the servers to run it arn't free, so anything is appreciated. Consider supporting the team on Patreon
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.