bug fix
This commit is contained in:
@@ -35,16 +35,20 @@ public interface EnchVal {
|
|||||||
@DataGenOnly
|
@DataGenOnly
|
||||||
Holder<Enchantment> datagenDirect(RegistrateProvider pvd);
|
Holder<Enchantment> datagenDirect(RegistrateProvider pvd);
|
||||||
|
|
||||||
|
default Optional<Holder<Enchantment>> safeHolder() {
|
||||||
|
return Optional.ofNullable(CommonHooks.resolveLookup(Registries.ENCHANTMENT)).flatMap(e -> e.get(id()));
|
||||||
|
}
|
||||||
|
|
||||||
default Holder<Enchantment> holder() {
|
default Holder<Enchantment> holder() {
|
||||||
return Optional.ofNullable(CommonHooks.resolveLookup(Registries.ENCHANTMENT)).orElseThrow().getOrThrow(id());
|
return safeHolder().orElseThrow();
|
||||||
}
|
}
|
||||||
|
|
||||||
default int getLv(ItemStack stack) {
|
default int getLv(ItemStack stack) {
|
||||||
return stack.getEnchantmentLevel(holder());
|
return safeHolder().map(stack::getEnchantmentLevel).orElse(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
default int getLvIntrinsic(ItemStack stack) {
|
default int getLvIntrinsic(ItemStack stack) {
|
||||||
return stack.getOrDefault(DataComponents.ENCHANTMENTS, ItemEnchantments.EMPTY).getLevel(holder());
|
return safeHolder().map(e -> stack.getOrDefault(DataComponents.ENCHANTMENTS, ItemEnchantments.EMPTY).getLevel(e)).orElse(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
interface Impl extends EnchVal {
|
interface Impl extends EnchVal {
|
||||||
|
|||||||
Reference in New Issue
Block a user