Posted January 3, 20214 yr This has been happening for a while. I have the Code written down in my files but for some reason its not registering the block into minecraft. same Thing with my ore. the ore was spawning in the map but it still wasn't actually registered into the game therefore i wasn't able to equip it package com.vicken.mod3.util; import com.vicken.mod3.items.ItemBase; import com.vicken.mod3.items.TeleportStaff; import com.vicken.mod3.list.SoundList; import com.vicken.mod3.my_mod; import net.minecraft.block.Block; import net.minecraft.block.Blocks; import net.minecraft.block.OreBlock; import net.minecraft.block.SoundType; import net.minecraft.block.material.Material; import net.minecraft.item.*; import net.minecraftforge.common.ToolType; import net.minecraftforge.fml.RegistryObject; import net.minecraftforge.fml.javafmlmod.FMLJavaModLoadingContext; import net.minecraftforge.registries.DeferredRegister; import net.minecraftforge.registries.ForgeRegistries; public class RegistryHandler<name> { public static final DeferredRegister<Item> ITEMS = new DeferredRegister<>(ForgeRegistries.ITEMS, my_mod.Mod_ID); public static final DeferredRegister<Block> BLOCKS = new DeferredRegister<>(ForgeRegistries.BLOCKS, my_mod.Mod_ID); public static void init() { ITEMS.register(FMLJavaModLoadingContext.get().getModEventBus()); BLOCKS.register(FMLJavaModLoadingContext.get().getModEventBus()); } // Items public static final RegistryObject<Item> RUBY = ITEMS.register("ruby", ItemBase::new); public static final RegistryObject<Item> NETHERITE_INGOT = ITEMS.register("netherite_ingot", ItemBase::new); public static final RegistryObject<Item> FRUIT = ITEMS.register("fruit", () -> new Item(new Item.Properties().group(ModItemGroup.instance) .food(new Food.Builder().hunger(4).saturation(2).build()))); public static final RegistryObject<Item> TELEPORT_STAFF = ITEMS.register("teleport_staff", () -> new TeleportStaff(new Item.Properties().group(ModItemGroup.instance).maxDamage(50))); // Blocks public static final RegistryObject<Block> NETHERITE_BLOCK = BLOCKS.register("netherite_block", () -> new Block(Block.Properties.create(Material.IRON).sound(SoundType.METAL).hardnessAndResistance(1f, 1200f).harvestLevel(2).harvestTool(ToolType.PICKAXE).lightValue(10))); public static final RegistryObject<OreBlock> NETHERITE_ORE = BLOCKS.register("netherite_ore", () -> new OreBlock(Block.Properties.from(Blocks.IRON_ORE))); //Discs public static final RegistryObject<Item> BEN10_MUSIC_DISC = ITEMS.register("ben10_disc", () -> new MusicDiscItem(1, SoundList.BEN10_DISC_LAZY, new Item.Properties().maxStackSize(1).group(ModItemGroup.instance))); // a new creative tab public static class ModItemGroup extends ItemGroup { public static final ModItemGroup instance = new ModItemGroup(ItemGroup.GROUPS.length, "ExtrasMod"); private ModItemGroup(int index, String label) { super(index, label); } @Override public ItemStack createIcon() { return new ItemStack(RUBY.get()); } } } Edited January 3, 20214 yr by Somonestolemyusername
January 3, 20214 yr Author well i registered the block (line:47) but when i middle clicked it to get the ore. in the console it said, my_mod:netherite_ore gave null item
January 3, 20214 yr Author i tried that before it gave me an error Edited January 3, 20214 yr by Somonestolemyusername
January 3, 20214 yr Author i tried but it gave me and error saying Required Type: block Provided: RegistryObject <net.minecraft.block.Block> @SubscribeEvent public static void registerItems(final RegistryEvent.Register<Item> event) { { event.getRegistry().registerAll ( ItemList.netherite_block = new BlockItem(RegistryHandler.NETHERITE_BLOCK, new Item.Properties().group(RegistryHandler.ModItemGroup.instance)).setRegistryName(RegistryHandler.NETHERITE_BLOCK.getRegistryName()) ); } Edited January 3, 20214 yr by Somonestolemyusername
January 3, 20214 yr Author ok well i added the BlockItem but then it still did not add the block in the game as and item
January 3, 20214 yr Author the code is.down below. Also since I changed the code my Ore generation.java has errors. @SubscribeEvent public static void registerBlock(final RegistryEvent.Register<Block> event) { event.getRegistry().registerAll ( BlockList.netherite_block = new Block(Block.Properties.create(Material.IRON).sound(SoundType.METAL)).setRegistryName(location("netherite_block")) ); } @SubscribeEvent public static void registerItems(final RegistryEvent.Register<Item> event) { event.getRegistry().registerAll ( ItemList.netherite_block = new BlockItem(BlockList.netherite_block, new Item.Properties().group(RegistryHandler.ModItemGroup.instance)).setRegistryName( Edited January 3, 20214 yr by Somonestolemyusername
January 3, 20214 yr Author also it not even did not let you put the block in your inv but it got deleted from the game Edited January 3, 20214 yr by Somonestolemyusername
January 3, 20214 yr Author how can I fix the Block to get into the game and be a Block item without deleting it from the game? Edited January 3, 20214 yr by Somonestolemyusername
January 3, 20214 yr Author package com.vicken.mod3.util; import com.vicken.mod3.items.ItemBase; import com.vicken.mod3.items.TeleportStaff; import com.vicken.mod3.list.BlockList; import com.vicken.mod3.list.ItemList; import com.vicken.mod3.list.SoundList; import com.vicken.mod3.my_mod; import net.minecraft.block.Block; import net.minecraft.block.Blocks; import net.minecraft.block.OreBlock; import net.minecraft.block.SoundType; import net.minecraft.block.material.Material; import net.minecraft.client.renderer.entity.layers.ArmorLayer; import net.minecraft.item.*; import net.minecraft.util.ResourceLocation; import net.minecraftforge.common.ToolType; import net.minecraftforge.event.RegistryEvent; import net.minecraftforge.eventbus.api.SubscribeEvent; import net.minecraftforge.fml.RegistryObject; import net.minecraftforge.fml.javafmlmod.FMLJavaModLoadingContext; import net.minecraftforge.registries.DeferredRegister; import net.minecraftforge.registries.ForgeRegistries; import static com.vicken.mod3.my_mod.Mod_ID; public class RegistryHandler<name> { public static final DeferredRegister<Item> ITEMS = new DeferredRegister<>(ForgeRegistries.ITEMS, Mod_ID); public static final DeferredRegister<Block> BLOCKS = new DeferredRegister<>(ForgeRegistries.BLOCKS, Mod_ID); public static void init() { ITEMS.register(FMLJavaModLoadingContext.get().getModEventBus()); BLOCKS.register(FMLJavaModLoadingContext.get().getModEventBus()); } // Items public static final RegistryObject<Item> RUBY = ITEMS.register("ruby", ItemBase::new); public static final RegistryObject<Item> NETHERITE_INGOT = ITEMS.register("netherite_ingot", ItemBase::new); public static final RegistryObject<Item> FRUIT = ITEMS.register("fruit", () -> new Item(new Item.Properties().group(ModItemGroup.instance) .food(new Food.Builder().hunger(4).saturation(2).build()))); public static final RegistryObject<Item> TELEPORT_STAFF = ITEMS.register("teleport_staff", () -> new TeleportStaff(new Item.Properties().group(ModItemGroup.instance).maxDamage(50))); // Blocks public static final RegistryObject<OreBlock> NETHERITE_ORE = BLOCKS.register("netherite_ore", () -> new OreBlock(Block.Properties.from(Blocks.IRON_ORE))); @SubscribeEvent public static void registerBlock(final RegistryEvent.Register<Block> event) { event.getRegistry().registerAll ( BlockList.netherite_block = new Block(Block.Properties.create(Material.IRON).sound(SoundType.METAL)).setRegistryName(location("netherite_block")) ); } @SubscribeEvent public static void registerItems(final RegistryEvent.Register<Item> event) { event.getRegistry().registerAll ( ItemList.netherite_block = new BlockItem(BlockList.netherite_block, new Item.Properties().group(RegistryHandler.ModItemGroup.instance)).setRegistryName(BlockList.netherite_block.getRegistryName()) ); } public static ResourceLocation location(String name) { return new ResourceLocation(Mod_ID, name); } //Discs public static final RegistryObject<Item> BEN10_MUSIC_DISC = ITEMS.register("ben10_disc", () -> new MusicDiscItem(1, SoundList.BEN10_DISC_LAZY, new Item.Properties().maxStackSize(1).group(ModItemGroup.instance))); //Armor // a new creative tab public static class ModItemGroup extends ItemGroup { public static final ModItemGroup instance = new ModItemGroup(ItemGroup.GROUPS.length, "ExtrasMod"); private ModItemGroup(int index, String label) { super(index, label); } @Override public ItemStack createIcon() { return new ItemStack(RUBY.get()); } } }
January 3, 20214 yr Author i added the ore thing but then it messed up my ore generation so i deleted it until i figure out how to id it into the ore gen
January 3, 20214 yr Author well mainly this topic was about the netherite block but i also included the netherite ore because if i figure out how to fix the netherite block i can fix the netherite ore
January 3, 20214 yr Author 2 minutes ago, diesieben07 said: Then how are you surprised that your ore still does not have items...? I did not delete the OreGeneration.java file i just deleted the BlockItem part of the ore. also i do not understand what u meant to say here Edited January 3, 20214 yr by Somonestolemyusername
January 4, 20214 yr Author the ore isint broken it works perfectly its just like the netherite block(the ore did not get deleted) it did not appear in the inv. but when i add block items to the ore it gives an error for OreGeneration.java because its supposed to be RegistryHandler.NETHERITE_ORE.get().getDefaultState(), 10)) and I dont know what i would change it to if i make it with the ItemList.netherite_ore method
January 4, 20214 yr Author well i want to do it with DeferredRegister but I dont know how im going to add it in with that. I was gonna watch the technovison tut but he made his vids unlisted so idk how im gonna make the block item with deferred register
January 4, 20214 yr 7 minutes ago, Somonestolemyusername said: well i want to do it with DeferredRegister but I dont know how im going to add it in with that. I was gonna watch the technovison tut but he made his vids unlisted so idk how im gonna make the block item with deferred register You could always read the documentation on how to use deferred register.
January 4, 20214 yr Author Just now, diesieben07 said: You add the BlockItem like any other item. what you mean by that?? u mean like this? public static final RegistryObject<BlockItem> NETHERITE_BLOCK = BLOCKS.register("netherite_block", () -> new Item.Properties().group(RegistryHandler.ModItemGroup.instance)))
January 4, 20214 yr Author well i made the DeferredRegistry Block but how do i do the DeferredRegistry BlockItem so it appears in my inv
January 4, 20214 yr Author 24 minutes ago, diesieben07 said: I told you: "Your issue is because you did not add a BlockItem for your blocks". You then added the BlockItem for netherite_block. Then you complained that it still did not work for the ore. I am baffled by this, because you obviously did not apply the fix for the ore and yet are surprised that the ore is still broken. i did say it was for the ore because i also added that to it but then acedently undoed all of it which made me lose everything i wrote there Edited January 4, 20214 yr by Somonestolemyusername
January 5, 20214 yr Author so that when i right click the item on the ground it appears as the block and when i middle click it it appears in my inv
January 5, 20214 yr 4 minutes ago, Somonestolemyusername said: but I mean how do i make it connect to the block? Using the class BlockItem.
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.