diff options
Diffstat (limited to 'patches/api/0496-Add-AnvilView-bypassEnchantmentLevelRestriction.patch')
-rw-r--r-- | patches/api/0496-Add-AnvilView-bypassEnchantmentLevelRestriction.patch | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/patches/api/0496-Add-AnvilView-bypassEnchantmentLevelRestriction.patch b/patches/api/0496-Add-AnvilView-bypassEnchantmentLevelRestriction.patch new file mode 100644 index 0000000000..f236c650cf --- /dev/null +++ b/patches/api/0496-Add-AnvilView-bypassEnchantmentLevelRestriction.patch @@ -0,0 +1,42 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Doc <[email protected]> +Date: Sun, 6 Oct 2024 16:45:20 -0300 +Subject: [PATCH] Add AnvilView#bypassEnchantmentLevelRestriction + +Anvils, by default, limit applied enchantment levels to their respective +maximum level. The added API enables plugins to disable this behaviour, +allowing enchantments that are overleveled to be applied via the anvil. + +diff --git a/src/main/java/org/bukkit/inventory/view/AnvilView.java b/src/main/java/org/bukkit/inventory/view/AnvilView.java +index 0344b3db789baf1da0b59f2d2cd66154b69b38a9..cc5ffd28a6d6244b99a94e52c6f5a0f73a64aed7 100644 +--- a/src/main/java/org/bukkit/inventory/view/AnvilView.java ++++ b/src/main/java/org/bukkit/inventory/view/AnvilView.java +@@ -59,4 +59,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. ++ * <p> ++ * 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 + } |