diff --git a/src/main/java/net/apunch/blacksmith/ReforgeSession.java b/src/main/java/net/apunch/blacksmith/ReforgeSession.java index a4f6d69..e433045 100644 --- a/src/main/java/net/apunch/blacksmith/ReforgeSession.java +++ b/src/main/java/net/apunch/blacksmith/ReforgeSession.java @@ -93,7 +93,12 @@ class ReforgeSession implements Runnable { if (roll < config.getExtraEnchantmentChance() && itemToReforge.getEnchantments().keySet().size() < config.getMaxEnchantments()) { Enchantment enchantment = Enchantment.getByKey(NamespacedKey.fromString(enchantments[random.nextInt(enchantments.length)])); if (Objects.requireNonNull(enchantment).canEnchantItem(itemToReforge)) { - itemToReforge.addEnchantment(enchantment, random.nextInt(enchantment.getMaxLevel() - enchantment.getStartLevel()) + enchantment.getStartLevel()); + int randomBound = enchantment.getMaxLevel() - enchantment.getStartLevel(); + //A workaround for the random method's bound sometimes being negative + if (randomBound >= 0) { + itemToReforge.addEnchantment(enchantment, random.nextInt(randomBound) + + enchantment.getStartLevel()); + } } }