Exception message: java.lang.IllegalArgumentException: Duplicate registration jade
you're registering "jade" twice, I think that should be the only thing wrong
oh also, your enum constants should be all uppercased (it won't cause any errors of course, but it's the standard)
Sure, i played around with the code a bit and added a ".get()" to the end of the material, this removed all errors. Except its wrong because now I launch and the game crashes, yet eclipse gives me no errors.
Heres my list:
package djofox.gemstones.materials;
import java.util.function.Supplier;
import djofox.gemstones.init.ItemInit;
import net.minecraft.item.IItemTier;
import net.minecraft.item.crafting.Ingredient;
import net.minecraft.util.LazyValue;
public enum ToolMaterialList implements IItemTier {
beryl(0, 131, 15.0f, 2.75f, 30, () -> {
return Ingredient.of(ItemInit.beryl.get());
}),
jade(2, 500, 7.0f, 2.25f, 23, () -> {
return Ingredient.of(ItemInit.jade.get());
}),
moissanite(2, 500, 7.0f, 2.25f, 23, () -> {
return Ingredient.of(ItemInit.moissanite.get());
}),
kunzite(0, 315, 12f, 0.5f, 20, () -> {
return Ingredient.of(ItemInit.kunzite.get());
}),
orpiment(2, 258, 10f, 0.5f, 20, () -> {
return Ingredient.of(ItemInit.orpiment.get());
}),
mercurySulfide(2, 1012, 5.5f, 2.0f, 14, () -> {
return Ingredient.of(ItemInit.mercurySulfide.get());
}),
blackDiamond(3, 2757, 8.0f, 3.0f, 2, () -> {
return Ingredient.of(ItemInit.blackDiamond.get());
}),
treatedCarbide(4, 2560, 10.0f, 5.0f, 2, () -> {
return Ingredient.of(ItemInit.siliconCarbide.get());
});
private final int level;
private final int uses;
private final float speed;
private final float damage;
private final int enchantmentValue;
private final LazyValue<Ingredient> repairIngredient;
private ToolMaterialList(int p_i48458_3_, int p_i48458_4_, float p_i48458_5_, float p_i48458_6_, int p_i48458_7_, Supplier<Ingredient> p_i48458_8_) {
this.level = p_i48458_3_;
this.uses = p_i48458_4_;
this.speed = p_i48458_5_;
this.damage = p_i48458_6_;
this.enchantmentValue = p_i48458_7_;
this.repairIngredient = new LazyValue<>(p_i48458_8_);
}
public int getUses() {
return this.uses;
}
public float getSpeed() {
return this.speed;
}
public float getAttackDamageBonus() {
return this.damage;
}
public int getLevel() {
return this.level;
}
public int getEnchantmentValue() {
return this.enchantmentValue;
}
public Ingredient getRepairIngredient() {
return this.repairIngredient.get();
}
}
Heres my init class which causes the crash (from taking other stuff)
And heres the error I get when I crash (I dont know if you need it but better safe than sorry)
Ohh ok, that makes sense, but even still how could I fix it? I cant initialize my items before I do my ToolMaterialList because my items class uses it.