diff --git a/src/main/java/xyz/alexcrea/cuanvil/enchant/EnchantmentProperties.java b/src/main/java/xyz/alexcrea/cuanvil/enchant/EnchantmentProperties.java new file mode 100644 index 0000000..cb481df --- /dev/null +++ b/src/main/java/xyz/alexcrea/cuanvil/enchant/EnchantmentProperties.java @@ -0,0 +1,57 @@ +package xyz.alexcrea.cuanvil.enchant; + +// to bind EnchantmentRarity to an enchantment... +public enum EnchantmentProperties { + + AQUA_AFFINITY(EnchantmentRarity.RARE), + BANE_OF_ARTHROPODS(EnchantmentRarity.UNCOMMON), + BINDING_CURSE(EnchantmentRarity.VERY_RARE), + BLAST_PROTECTION(EnchantmentRarity.RARE), + CHANNELING(EnchantmentRarity.VERY_RARE), + DEPTH_STRIDER(EnchantmentRarity.RARE), + EFFICIENCY(EnchantmentRarity.COMMON), + FLAME(EnchantmentRarity.RARE), + FEATHER_FALLING(EnchantmentRarity.UNCOMMON), + FIRE_ASPECT(EnchantmentRarity.RARE), + FIRE_PROTECTION(EnchantmentRarity.UNCOMMON), + FORTUNE(EnchantmentRarity.RARE), + FROST_WALKER(EnchantmentRarity.RARE), + IMPALING(EnchantmentRarity.RARE), + INFINITY(EnchantmentRarity.VERY_RARE), + KNOCKBACK(EnchantmentRarity.UNCOMMON), + LOOTING(EnchantmentRarity.RARE), + LOYALTY(EnchantmentRarity.COMMON), + LUCK_OF_THE_SEA(EnchantmentRarity.RARE), + LURE(EnchantmentRarity.RARE), + MENDING(EnchantmentRarity.RARE), + MULTISHOT(EnchantmentRarity.RARE), + PIERCING(EnchantmentRarity.COMMON), + POWER(EnchantmentRarity.COMMON), + PROJECTILE_PROTECTION(EnchantmentRarity.UNCOMMON), + PROTECTION(EnchantmentRarity.COMMON), + PUNCH(EnchantmentRarity.RARE), + QUICK_CHARGE(EnchantmentRarity.UNCOMMON), + RESPIRATION(EnchantmentRarity.RARE), + RIPTIDE(EnchantmentRarity.RARE), + SILK_TOUCH(EnchantmentRarity.VERY_RARE), + SHARPNESS(EnchantmentRarity.COMMON), + SMITE(EnchantmentRarity.UNCOMMON), + SOUL_SPEED(EnchantmentRarity.VERY_RARE), + SWIFT_SNEAK(EnchantmentRarity.VERY_RARE), + SWEEPING(EnchantmentRarity.RARE), + THORNS(EnchantmentRarity.VERY_RARE), + UNBREAKING(EnchantmentRarity.UNCOMMON), + VANISHING_CURSE(EnchantmentRarity.VERY_RARE) + + ; + + private final EnchantmentRarity rarity; + EnchantmentProperties(EnchantmentRarity rarity){ + this.rarity = rarity; + } + + public EnchantmentRarity getRarity() { + return rarity; + } + +} diff --git a/src/main/java/xyz/alexcrea/cuanvil/enchant/EnchantmentRarity.java b/src/main/java/xyz/alexcrea/cuanvil/enchant/EnchantmentRarity.java new file mode 100644 index 0000000..e1ff834 --- /dev/null +++ b/src/main/java/xyz/alexcrea/cuanvil/enchant/EnchantmentRarity.java @@ -0,0 +1,33 @@ +package xyz.alexcrea.cuanvil.enchant; + +// because spigot (1.18) do not support enchantment rarity, I need to do it myself... +public enum EnchantmentRarity { + + NO_RARITY(0, 0), + COMMON(1), + UNCOMMON(2), + RARE(4), + VERY_RARE(8) + + ; + + private final int itemValue; + private final int bookValue; + + EnchantmentRarity(int itemValue, int bookValue){ + this.itemValue = itemValue; + this.bookValue = bookValue; + } + EnchantmentRarity(int itemValue){ + this(itemValue, Math.max(1,itemValue/2)); + } + + public int getBookValue() { + return bookValue; + } + + public int getItemValue() { + return itemValue; + } + +} diff --git a/src/main/java/xyz/alexcrea/cuanvil/gui/config/EnchantCostConfigGui.java b/src/main/java/xyz/alexcrea/cuanvil/gui/config/EnchantCostConfigGui.java index 9a0d58d..83980f7 100644 --- a/src/main/java/xyz/alexcrea/cuanvil/gui/config/EnchantCostConfigGui.java +++ b/src/main/java/xyz/alexcrea/cuanvil/gui/config/EnchantCostConfigGui.java @@ -6,6 +6,8 @@ import org.bukkit.enchantments.Enchantment; import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.meta.ItemMeta; import xyz.alexcrea.cuanvil.config.ConfigHolder; +import xyz.alexcrea.cuanvil.enchant.EnchantmentProperties; +import xyz.alexcrea.cuanvil.enchant.EnchantmentRarity; import xyz.alexcrea.cuanvil.gui.config.settings.EnchantCostSettingsGui; import xyz.alexcrea.cuanvil.gui.util.GuiGlobalItems; import xyz.alexcrea.cuanvil.util.StringUtil; @@ -30,12 +32,18 @@ public class EnchantCostConfigGui extends AbstractEnchantConfigGui