diff --git a/paper-api/src/main/java/org/bukkit/inventory/view/AnvilView.java b/paper-api/src/main/java/org/bukkit/inventory/view/AnvilView.java index 8963fefac..3c1aa1e03 100644 --- a/paper-api/src/main/java/org/bukkit/inventory/view/AnvilView.java +++ b/paper-api/src/main/java/org/bukkit/inventory/view/AnvilView.java @@ -65,4 +65,28 @@ public interface AnvilView extends InventoryView { * @param levels the levels to set */ void setMaximumRepairCost(int levels); + + // Paper start - bypass anvil level restrictions + /** + * Returns whether this view will bypass the vanilla enchantment level restriction + * when applying enchantments to an item or not. + *

+ * By default, vanilla will limit enchantments applied to items to the respective + * {@link org.bukkit.enchantments.Enchantment#getMaxLevel()}, even if the applied enchantment itself is above said + * limit. + * Disabling this limit via {@link AnvilView#bypassEnchantmentLevelRestriction(boolean)} allows for, e.g., enchanted + * books to be applied fully, even if their enchantments are beyond the limit. + * + * @return {@code true} if this view bypasses the vanilla restrictions. + */ + boolean bypassesEnchantmentLevelRestriction(); + + /** + * Sets if enchantments applied via this anvil view may bypass vanilla's level restrictions. + * + * @param bypassEnchantmentLevelRestriction if this view bypasses the vanilla level restrictions. + * @see AnvilView#bypassesEnchantmentLevelRestriction() + */ + void bypassEnchantmentLevelRestriction(boolean bypassEnchantmentLevelRestriction); + // Paper end - bypass anvil level restrictions }