Posted April 22, 20214 yr Ok, I made a new enchantment and tried to register it. But the IDE told me "Inferred type 'I' for type parameter 'I' is not within its bound; should extend 'net.minecraft.enchantment.Enchantment'". The question is: I've already "extends Enchantment" in my custom enchantment code. What is wrong with my code or registry? Really Grateful for helping! My Custom Enchantment Code: package x.x.enchantment; import net.minecraft.enchantment.Enchantment; import net.minecraft.enchantment.EnchantmentType; import net.minecraft.inventory.EquipmentSlotType; public class ShadowbornEnchantment extends Enchantment { public ShadowbornEnchantment(Rarity p_i46731_1_, EquipmentSlotType[] p_i46731_3_) { super(p_i46731_1_, EnchantmentType.ARMOR_HEAD, p_i46731_3_); } public int getMinEnchantability(int p_77321_1_) { return 10; } public int getMaxEnchantability(int p_223551_1_) { return super.getMinEnchantability(p_223551_1_) + 50; } public int getMaxLevel() { return 1; } } My register Code: package love.marblegate.flowingagony.registry; import love.x.x.enchantment.ShadowbornEnchantment; import net.minecraft.enchantment.Enchantment; import net.minecraft.inventory.EquipmentSlotType; import net.minecraftforge.fml.RegistryObject; import net.minecraftforge.registries.DeferredRegister; import net.minecraftforge.registries.ForgeRegistries; public class EnchantmentRegistry { private static final EquipmentSlotType[] ARMOR_SLOTS = new EquipmentSlotType[]{EquipmentSlotType.HEAD, EquipmentSlotType.CHEST, EquipmentSlotType.LEGS, EquipmentSlotType.FEET}; public static final DeferredRegister<Enchantment> ENCHANTMENT = DeferredRegister.create(ForgeRegistries.ENCHANTMENTS, "flowingagony"); public static final RegistryObject<Enchantment> shadowborn_enchantment = ENCHANTMENT.register("shadowborn", new ShadowbornEnchantment(Enchantment.Rarity.VERY_RARE, ARMOR_SLOTS)); } Edited April 22, 20214 yr by HeidFanatic Solved Problem
April 22, 20214 yr Author Problem Solved. I've checked other people's code: package x.x.flowingagony.registry; import love.marblegate.flowingagony.enchantment.ShadowbornEnchantment; import net.minecraft.enchantment.Enchantment; import net.minecraft.inventory.EquipmentSlotType; import net.minecraftforge.fml.RegistryObject; import net.minecraftforge.registries.DeferredRegister; import net.minecraftforge.registries.ForgeRegistries; public class EnchantmentRegistry { private static final EquipmentSlotType[] ARMOR_SLOTS = new EquipmentSlotType[]{EquipmentSlotType.HEAD, EquipmentSlotType.CHEST, EquipmentSlotType.LEGS, EquipmentSlotType.FEET}; public static final DeferredRegister<Enchantment> ENCHANTMENT = DeferredRegister.create(ForgeRegistries.ENCHANTMENTS, "flowingagony"); public static final RegistryObject<Enchantment> shadowborn_enchantment = ENCHANTMENT.register("shadowborn", () -> new ShadowbornEnchantment(Enchantment.Rarity.VERY_RARE, ARMOR_SLOTS)); } This code works!
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.