Jump to content
View in the app

A better way to browse. Learn more.

Forge Forums

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Ilay

Members
  • Joined

  • Last visited

Everything posted by Ilay

  1. I'm sorry for being dumb but I don't understand: where and how to use the RegistyObject#get? I forgot to mention it in the post but I want to return the item "elementum:deep_earth_axe_capsule". Can you send me an example code that will return that, further explanation or a tutorial that will do that? Also what does register items and blocks dynamically mean and how to fix that?
  2. It doesn't work. I want to return in this case the item "elementum:deep_earth_axe_capsule" and not the empty capsule which "this" referring.
  3. The code was a bit twisted so I think I fixed it. In addition, it's just part of the code, I didn't finish it because I need to know the ID to proceed. I'm also pretty new to java...
  4. Hey, I'm new to modding nd I tried to create a mod for minecraft 1.15.2 but I've encountered problem. I want to return a custom item from the mod as an ItemStack but the parameter of the constructor requires an IItemProvider and I'm not sure how to do that. I tried to return Item but the Item requires the id of the item and I don't know what is the id of the custom block or how to check it. I want to return the item "elementum:deep_earth_axe_capsule". package com.ri.elementum.items; import com.ri.elementum.Elementum; import com.ri.elementum.blocks.ShapeForge; import net.minecraft.block.Block; import net.minecraft.block.Blocks; import net.minecraft.entity.player.PlayerEntity; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.item.ItemUseContext; import net.minecraft.util.ActionResultType; import net.minecraft.util.IItemProvider; import net.minecraft.util.math.BlockPos; import net.minecraft.world.World; public class EmptyCapsuleBase extends Item { public EmptyCapsuleBase() { super(new Item.Properties().maxStackSize(1).group(Elementum.TAB)); } private ItemStack getCapsuleType(ItemStack item, String kind){ switch (kind){ case "deep earth": switch (item.getDisplayName().getString()){ case "Empty Axe Capsule": return new ItemStack(getItemById(0)); //What I want to change: I don't know the item id so I used 0 as a placeholder for the example. } break; } return new ItemStack(getItemById(0)); } @Override public ActionResultType onItemUse(ItemUseContext context){ final World world = context.getWorld(); final BlockPos pos = context.getPos(); final PlayerEntity playerIn = context.getPlayer(); final ItemStack item = context.getItem(); final Block block = world.getBlockState(pos).getBlock(); //System.out.println("World "+world+"\nPos "+pos+"\nPlayer "+playerIn+"\nItem: "+item+"\nblock "+block); if (block == Blocks.GRASS_BLOCK || block == Blocks.DIRT){ playerIn.replaceItemInInventory(playerIn.inventory.currentItem, getCapsuleType(item, "deep earth")); getCapsuleType(item, "deep earth"); } return super.onItemUse(context); } } package com.ri.elementum.util; import com.ri.elementum.blocks.*; import com.ri.elementum.Elementum; import com.ri.elementum.items.EmptyCapsuleBase; import com.ri.elementum.items.ItemBase; import net.minecraft.item.Item; import net.minecraft.block.Block; import net.minecraft.item.PickaxeItem; import net.minecraftforge.fml.RegistryObject; import net.minecraftforge.fml.javafmlmod.FMLJavaModLoadingContext; import net.minecraftforge.registries.DeferredRegister; import net.minecraftforge.registries.ForgeRegistries; public class RegistryHandler { public static final DeferredRegister<Item> ITEMS = new DeferredRegister<>(ForgeRegistries.ITEMS, Elementum.MOD_ID); public static final DeferredRegister<Block> BLOCKS = new DeferredRegister<>(ForgeRegistries.BLOCKS, Elementum.MOD_ID); private static void RegisterToolsCapsules() { final String[] elements = {"empty", "hellfire", "aquarium", "deep_earth", "airium"}; final String[] items = {"pickaxe", "axe", "sword", "hoe", "shovel", "helmet", "chestplate", "leggings", "boots"}; final int[] durability = {0 ,500, 500, 750, 250}; for (int e=0; e<elements.length; e++) { final int e2 = e; for (String i: items) { if (e==0){ ITEMS.register(elements[e]+"_"+i+"_capsule", () -> new EmptyCapsuleBase()); //Where's the items registered. } else { ITEMS.register(elements[e] + "_" + i + "_capsule", () -> new ItemBase(1, durability[e2])); } } } } public static void init() { RegisterToolsCapsules(); ITEMS.register(FMLJavaModLoadingContext.get().getModEventBus()); BLOCKS.register(FMLJavaModLoadingContext.get().getModEventBus()); } public static final RegistryObject<Item> CAPSULE = ITEMS.register("capsule", () -> new ItemBase(16)); public static final RegistryObject<Item> THE_CAPSULE_OF_CONFUSION = ITEMS.register("the_capsule_of_confusion", ItemBase::new); public static final RegistryObject<Item> AQUARIUM = ITEMS.register("aquarium", ItemBase::new); public static final RegistryObject<Item> HELLFIRE = ITEMS.register("hellfire", ItemBase::new); public static final RegistryObject<Item> DEEP_EARTH = ITEMS.register("deep_earth", ItemBase::new); public static final RegistryObject<Item> AIRIUM = ITEMS.register("airium", ItemBase::new); public static final RegistryObject<Item> BOSS_ESSENCE = ITEMS.register("boss_essence", () -> new ItemBase(16)); public static final RegistryObject<Block> SHAPE_FORGE = BLOCKS.register("shape_forge", ShapeForge::new); public static final RegistryObject<Block> ENHANCEMENT_FORGE = BLOCKS.register("enhancement_forge", EnhancementForge::new); public static final RegistryObject<Block> ELEMENTUM_FORGE = BLOCKS.register("elementum_forge", ElementumForge::new); public static final RegistryObject<Block> AQUARIUM_ORE = BLOCKS.register("aquarium_ore", AquariumOre::new); public static final RegistryObject<Block> HELLFIRE_ORE = BLOCKS.register("hellfire_ore", HellfireOre::new); public static final RegistryObject<Block> DEEP_EARTH_ORE = BLOCKS.register("deep_earth_ore", DeepEarthOre::new); public static final RegistryObject<Block> AIRIUM_ORE = BLOCKS.register("airium_ore", AiriumOre::new); public static final RegistryObject<Item> SHAPE_FORGE_ITEM = ITEMS.register("shape_forge", () -> new BlockItemBase(SHAPE_FORGE.get())); public static final RegistryObject<Item> ENHANCEMENT_FORGE_ITEM = ITEMS.register("enhancement_forge", () -> new BlockItemBase(ENHANCEMENT_FORGE.get())); public static final RegistryObject<Item> ELEMENTUM_FORGE_ITEM = ITEMS.register("elementum_forge", () -> new BlockItemBase(ELEMENTUM_FORGE.get())); public static final RegistryObject<Item> AQUARIUM_ORE_ITEM = ITEMS.register("aquarium_ore", () -> new BlockItemBase(AQUARIUM_ORE.get())); public static final RegistryObject<Item> HELLFIRE_ORE_ITEM = ITEMS.register("hellfire_ore", () -> new BlockItemBase(HELLFIRE_ORE.get())); public static final RegistryObject<Item> DEEP_EARTH_ORE_ITEM = ITEMS.register("deep_earth_ore", () -> new BlockItemBase(DEEP_EARTH_ORE.get())); public static final RegistryObject<Item> AIRIUM_ORE_ITEM = ITEMS.register("airium_ore", () -> new BlockItemBase(AIRIUM_ORE.get())); }

Important Information

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

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.