Posted October 24, 20204 yr I want to register an Enchantment public static final DeferredRegister<Enchantment> ENCHANTMENT = DeferredRegister.create(ForgeRegistries.ENCHANTMENTS, Cave.Mod_Id); public static final RegistryObject<Enchantment> DOUBLE_DROP = ENCHANTMENT.register("double_drops", DoubleDrops::new); But this way dosent work
October 24, 20204 yr what does "not work" mean? also do you do something like this? ITEMS.register(FMLJavaModLoadingContext.get().getModEventBus()); Edited October 24, 20204 yr by MostafaSabry55 forgot to add code
October 24, 20204 yr Author Yes I add this to my main class but not for Items (for Enchantments) and Eclipse say there is an Error at .register("name", class:new)
October 24, 20204 yr Author yes: package net.luis.cave.enchantment; import net.minecraft.enchantment.Enchantment; import net.minecraft.enchantment.EnchantmentType; import net.minecraft.inventory.EquipmentSlotType; import net.minecraft.item.AxeItem; import net.minecraft.item.HoeItem; import net.minecraft.item.ItemStack; import net.minecraft.item.PickaxeItem; import net.minecraft.item.ShovelItem; public class DoubleDrops extends Enchantment { protected DoubleDrops(Rarity rarityIn, EnchantmentType typeIn, EquipmentSlotType[] slots) { super(Enchantment.Rarity.VERY_RARE, EnchantmentType.DIGGER, slots); } @Override public int getMinLevel() { return 1; } @Override public int getMaxLevel() { return 1; } @Override public boolean isTreasureEnchantment() { return false; } @Override public boolean isCurse() { return false; } @Override public boolean isAllowedOnBooks() { return true; } @Override public boolean canApplyAtEnchantingTable(ItemStack stack) { if (stack.getItem() instanceof PickaxeItem ) return true; if (stack.getItem() instanceof AxeItem ) return true; if (stack.getItem() instanceof ShovelItem ) return true; if (stack.getItem() instanceof HoeItem ) return true; return false; } } The Register class: package net.luis.cave.init; import net.luis.cave.Cave; import net.luis.cave.enchantment.DoubleDrops; import net.luis.cave.items.BaseItem; import net.minecraft.enchantment.Enchantment; import net.minecraft.item.Item; import net.minecraftforge.event.RegistryEvent; import net.minecraftforge.eventbus.api.SubscribeEvent; import net.minecraftforge.fml.RegistryObject; import net.minecraftforge.registries.DeferredRegister; import net.minecraftforge.registries.ForgeRegistries; public class CaveEnchantment { public static final DeferredRegister<Enchantment> ENCHANTMENT = DeferredRegister.create(ForgeRegistries.ENCHANTMENTS, Cave.Mod_Id); public static final RegistryObject<Enchantment> DOUBLE_DROPS = ENCHANTMENT.register("double_drops", DoubleDrops::new); } and the Eclipse Error:
October 24, 20204 yr 19 minutes ago, Luis_ST said: DoubleDrops::new 19 minutes ago, Luis_ST said: DoubleDrops(Rarity rarityIn, EnchantmentType typeIn, EquipmentSlotType[] slots) 1) You aren't providing the required parameters of the constructor. 21 minutes ago, Luis_ST said: super(Enchantment.Rarity.VERY_RARE, EnchantmentType.DIGGER, slots); 2) If you already called the super constructor with hardcoded parameters(except for slots), why in your constructor are you requesting these arguments? 25 minutes ago, Luis_ST said: protected 3) Your constructor is protected and the two classes are not in the same package. Set it to public.
October 24, 20204 yr Author 1 hour ago, Danebi said: 1) You aren't providing the required parameters of the constructor. 2) If you already called the super constructor with hardcoded parameters(except for slots), why in your constructor are you requesting these arguments? 3) Your constructor is protected and the two classes are not in the same package. Set it to public. 1. What is meant by slots? can you give me an code example? 2. When I remove "EquipmentSlotType[]" slots in the constructor Eclipse shows an error: The constructor Enchantment(Enchantment.Rarity, EnchantmentType) is undefined 3. I set it to public
October 24, 20204 yr Author 7 minutes ago, Luis_ST said: 1. What is meant by slots? can you give me an code example? 2. When I remove "EquipmentSlotType[]" slots in the constructor Eclipse shows an error: The constructor Enchantment(Enchantment.Rarity, EnchantmentType) is undefined 3. I set it to public I fixed it there are no more problems Thanks for helping
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.