aboutsummaryrefslogtreecommitdiffhomepage
path: root/patches/api/0495-Add-AnvilView-bypassEnchantmentLevelRestriction.patch
diff options
context:
space:
mode:
Diffstat (limited to 'patches/api/0495-Add-AnvilView-bypassEnchantmentLevelRestriction.patch')
-rw-r--r--patches/api/0495-Add-AnvilView-bypassEnchantmentLevelRestriction.patch42
1 files changed, 42 insertions, 0 deletions
diff --git a/patches/api/0495-Add-AnvilView-bypassEnchantmentLevelRestriction.patch b/patches/api/0495-Add-AnvilView-bypassEnchantmentLevelRestriction.patch
new file mode 100644
index 0000000000..61af6b9321
--- /dev/null
+++ b/patches/api/0495-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 8963fefac4ce14d0239b92380ca6d3e6b5e5bb25..3c1aa1e036bee08304c1cdca59f6a5bc0ba306c0 100644
+--- a/src/main/java/org/bukkit/inventory/view/AnvilView.java
++++ b/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.
++ * <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
+ }