diff --git a/paper-api/src/main/java/org/bukkit/inventory/ItemFactory.java b/paper-api/src/main/java/org/bukkit/inventory/ItemFactory.java index 0a814c1f65..c1ee9659f0 100644 --- a/paper-api/src/main/java/org/bukkit/inventory/ItemFactory.java +++ b/paper-api/src/main/java/org/bukkit/inventory/ItemFactory.java @@ -327,7 +327,7 @@ public interface ItemFactory { * *
If the provided ItemStack is already enchanted, the existing enchants will be removed before enchanting.
* - *Levels must be in range {@code [1, 30]}.
+ *Enchantment tables use levels in the range {@code [1, 30]}.
* * @param itemStack ItemStack to enchant * @param levels levels to use for enchanting @@ -336,7 +336,7 @@ public interface ItemFactory { * @return enchanted copy of the provided ItemStack * @throws IllegalArgumentException on bad arguments */ - @NotNull ItemStack enchantWithLevels(@NotNull ItemStack itemStack, @org.jetbrains.annotations.Range(from = 1, to = 30) int levels, boolean allowTreasure, @NotNull java.util.Random random); + @NotNull ItemStack enchantWithLevels(@NotNull ItemStack itemStack, int levels, boolean allowTreasure, @NotNull java.util.Random random); // Paper end - enchantWithLevels API // Paper start - enchantWithLevels with tag specification /** @@ -344,7 +344,7 @@ public interface ItemFactory { * *If the provided ItemStack is already enchanted, the existing enchants will be removed before enchanting.
* - *Levels must be in range {@code [1, 30]}.
+ *Enchantment tables use levels in the range {@code [1, 30]}.
* * @param itemStack ItemStack to enchant * @param levels levels to use for enchanting @@ -353,6 +353,6 @@ public interface ItemFactory { * @return enchanted copy of the provided ItemStack * @throws IllegalArgumentException on bad arguments */ - @NotNull ItemStack enchantWithLevels(@NotNull ItemStack itemStack, @org.jetbrains.annotations.Range(from = 1, to = 30) int levels, @NotNull io.papermc.paper.registry.set.RegistryKeySet<@NotNull Enchantment> keySet, @NotNull java.util.Random random); + @NotNull ItemStack enchantWithLevels(@NotNull ItemStack itemStack, int levels, @NotNull io.papermc.paper.registry.set.RegistryKeySet<@NotNull Enchantment> keySet, @NotNull java.util.Random random); // Paper end - enchantWithLevels with tag specification } diff --git a/paper-api/src/main/java/org/bukkit/inventory/ItemStack.java b/paper-api/src/main/java/org/bukkit/inventory/ItemStack.java index c84cddac86..5644b35015 100644 --- a/paper-api/src/main/java/org/bukkit/inventory/ItemStack.java +++ b/paper-api/src/main/java/org/bukkit/inventory/ItemStack.java @@ -683,7 +683,7 @@ public class ItemStack implements Cloneable, ConfigurationSerializable, Translat * *If this ItemStack is already enchanted, the existing enchants will be removed before enchanting.
* - *Levels must be in range {@code [1, 30]}.
+ *Enchantment tables use levels in the range {@code [1, 30]}.
* * @param levels levels to use for enchanting * @param allowTreasure whether to allow enchantments where {@link org.bukkit.enchantments.Enchantment#isTreasure()} returns true @@ -692,7 +692,7 @@ public class ItemStack implements Cloneable, ConfigurationSerializable, Translat * @throws IllegalArgumentException on bad arguments */ @NotNull - public ItemStack enchantWithLevels(final @org.jetbrains.annotations.Range(from = 1, to = 30) int levels, final boolean allowTreasure, final @NotNull java.util.Random random) { + public ItemStack enchantWithLevels(final int levels, final boolean allowTreasure, final @NotNull java.util.Random random) { return Bukkit.getServer().getItemFactory().enchantWithLevels(this, levels, allowTreasure, random); } @@ -701,7 +701,7 @@ public class ItemStack implements Cloneable, ConfigurationSerializable, Translat * *If the provided ItemStack is already enchanted, the existing enchants will be removed before enchanting.
* - *Levels must be in range {@code [1, 30]}.
+ *Enchantment tables use levels in the range {@code [1, 30]}.
* * @param levels levels to use for enchanting * @param keySet registry key set defining the set of possible enchantments, e.g. {@link io.papermc.paper.registry.keys.tags.EnchantmentTagKeys#IN_ENCHANTING_TABLE}. @@ -709,7 +709,7 @@ public class ItemStack implements Cloneable, ConfigurationSerializable, Translat * @return enchanted copy of the provided ItemStack * @throws IllegalArgumentException on bad arguments */ - public @NotNull ItemStack enchantWithLevels(final @org.jetbrains.annotations.Range(from = 1, to = 30) int levels, final @NotNull io.papermc.paper.registry.set.RegistryKeySet<@NotNull Enchantment> keySet, final @NotNull java.util.Random random) { + public @NotNull ItemStack enchantWithLevels(final int levels, final @NotNull io.papermc.paper.registry.set.RegistryKeySet<@NotNull Enchantment> keySet, final @NotNull java.util.Random random) { return Bukkit.getItemFactory().enchantWithLevels(this, levels, keySet, random); } diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemFactory.java b/paper-server/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemFactory.java index 424a1495b3..10edd98d17 100644 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemFactory.java +++ b/paper-server/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemFactory.java @@ -349,7 +349,6 @@ public final class CraftItemFactory implements ItemFactory { ) { Preconditions.checkArgument(itemStack != null, "Argument 'itemStack' must not be null"); Preconditions.checkArgument(!itemStack.isEmpty(), "Argument 'itemStack' cannot be empty"); - Preconditions.checkArgument(levels > 0 && levels <= 30, "Argument 'levels' must be in range [1, 30] (attempted " + levels + ")"); Preconditions.checkArgument(random != null, "Argument 'random' must not be null"); final net.minecraft.world.item.ItemStack internalStack = CraftItemStack.asNMSCopy(itemStack); if (internalStack.isEnchanted()) {