42 lines
2.1 KiB
Diff
42 lines
2.1 KiB
Diff
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
From: Doc <nachito94@msn.com>
|
|
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
|
|
}
|