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.

Tsurayamiku

Members
  • Joined

  • Last visited

  1. I changed to Supplier, but got 2 errors: "The return type is incompatible with IArmorMaterial.getRepairMaterial()" and "The method fromItems(IItemProvider...) in the type Ingredient is not applicable for the arguments (Supplier<Item>)" package com.tsurayamiku.hwga.lists; import org.apache.logging.log4j.util.Supplier; import com.tsurayamiku.hwga.Main; import net.minecraft.inventory.EquipmentSlotType; import net.minecraft.item.IArmorMaterial; import net.minecraft.item.Item; import net.minecraft.item.crafting.Ingredient; import net.minecraft.util.ResourceLocation; import net.minecraft.util.SoundEvent; public enum ArmourMaterialList implements IArmorMaterial{ shukuryo("shukuryo", 400, new int[] {8, 10, 9, 7}, 25, ItemList.SHUKURYO_INGOT.get(), "item.armor.equip_netherite", 10, 10); private static final int[] max_damage_array = new int[] {13, 15, 16, 11}; private String name, equipSound; private int durability, enchantability, knockbackResistance; private Supplier<Item> repairItem; private int[] damageReductionAmounts; private float toughness; private ArmourMaterialList(String name, int durability, int[] damageReductionAmounts, int enchantability, Item repairItem, String equipSound, float toughness, int knockbackResistance) { this.name = name; this.durability = durability; this.damageReductionAmounts = damageReductionAmounts; this.enchantability = enchantability; this.equipSound = equipSound; this.toughness = toughness; this.repairItem = (Supplier<Item>) repairItem; this.knockbackResistance = knockbackResistance; } @Override public int getDurability(EquipmentSlotType slot) { return max_damage_array[slot.getIndex()] * this.durability; } @Override public int getDamageReductionAmount(EquipmentSlotType slot) { return this.damageReductionAmounts[slot.getIndex()]; } @Override public int getEnchantability() { return this.enchantability; } @Override public SoundEvent getSoundEvent() { return new SoundEvent(new ResourceLocation(equipSound)); } @Override public Supplier<Ingredient> getRepairMaterial() { return (Supplier<Ingredient>) Ingredient.fromItems(this.repairItem); } @Override public String getName() { return Main.MOD_ID + ":" + this.name; } @Override public float getToughness() { return this.toughness; } @Override public float getKnockbackResistance() { return this.knockbackResistance; } }
  2. How do I change the type to Supplier?
  3. package com.tsurayamiku.hwga.lists; import com.tsurayamiku.hwga.Main; import net.minecraft.inventory.EquipmentSlotType; import net.minecraft.item.IArmorMaterial; import net.minecraft.item.Item; import net.minecraft.item.crafting.Ingredient; import net.minecraft.util.ResourceLocation; import net.minecraft.util.SoundEvent; public enum ArmourMaterialList implements IArmorMaterial{ shukuryo("shukuryo", 400, new int[] {8, 10, 9, 7}, 25, ItemList.SHUKURYO.get(), "item.armor.equip_netherite", 10, 10); private static final int[] max_damage_array = new int[] {13, 15, 16, 11}; private String name, equipSound; private int durability, enchantability, knockbackResistance; private Item repairItem; private int[] damageReductionAmounts; private float toughness; private ArmourMaterialList(String name, int durability, int[] damageReductionAmounts, int enchantability, Item repairItem, String equipSound, float toughness, int knockbackResistance) { this.name = name; this.durability = durability; this.damageReductionAmounts = damageReductionAmounts; this.enchantability = enchantability; this.equipSound = equipSound; this.toughness = toughness; this.repairItem = repairItem; this.knockbackResistance = knockbackResistance; } @Override public int getDurability(EquipmentSlotType slot) { return max_damage_array[slot.getIndex()] * this.durability; } @Override public int getDamageReductionAmount(EquipmentSlotType slot) { return this.damageReductionAmounts[slot.getIndex()]; } @Override public int getEnchantability() { return this.enchantability; } @Override public SoundEvent getSoundEvent() { return new SoundEvent(new ResourceLocation(equipSound)); } @Override public Ingredient getRepairMaterial() { return Ingredient.fromItems(this.repairItem); } @Override public String getName() { return Main.MOD_ID + ":" + this.name; } @Override public float getToughness() { return this.toughness; } @Override public float getKnockbackResistance() { return this.knockbackResistance; } }
  4. I'm already using get (). In the part where I must pass the item to be used as repairMaterial I am putting "ItemList.SHUKURYO.get ()", but it is still not working.
  5. I'm calling on the ArmorMaterialList enum class, at the top, with the other properties. shukuryo("shukuryo", 400, new int[] {8, 10, 9, 7}, 25, ItemList.SHUKURYO.get(), "item.armor.equip_netherite", 10, 10);
  6. I start develop my mod withou DeferredRegister, following the tutorials, but now I'm updating to DeferredRegister and I get stuck in my armor. I created a enum for Armor Material extending IArmorMaterial and all works correctly, except for the repair material. After I change all the items to DeferredRegister and run the game I got the error "Registry Object not present". I didn't got this error before update to DeferredRegisters. The Eclipse DOESN'T shows any error when I changed the ItemList.shukuryo to ItemList.SHUKURYO.get(). But the game doesn't load completely and gives the error. I can't change the type of repairMaterial because it requires ingridient. What changes when I create an item with "public static Item" to "public RegistryObject<Item>"? How do I the correctly DeferredRegister item to the repairMaterial?
  7. I found a way to create, damage and return item with durability decrease. Thank you a lot for help me!!
  8. I'm new at minecraft modding and I can't find any tutorial to create an item with durability for craft. My idea is create a saw that gives more wood planks when you put with a log. The way I'm creating the items: public static final RegistryObject<Item> EXAMPLE_ITEM = ITEMS.register("example_item", () -> new Item(new Item.Properties().group(ItemGroup.MISC))); I also have a class to special items. I saw that have a method called "canContinueUsing". I guess that's what I need, but I can make it work. But how I create a container item and how I damage it when used to craft and make stay in grid after craft result?

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.