diff --git a/Plugin/src/main/java/com/willfp/ecoenchants/EcoEnchantsPlugin.java b/Plugin/src/main/java/com/willfp/ecoenchants/EcoEnchantsPlugin.java index 3342bd42..90e193d2 100644 --- a/Plugin/src/main/java/com/willfp/ecoenchants/EcoEnchantsPlugin.java +++ b/Plugin/src/main/java/com/willfp/ecoenchants/EcoEnchantsPlugin.java @@ -19,6 +19,7 @@ public class EcoEnchantsPlugin extends JavaPlugin { put("config", 5.0); put("lang", 5.0); put("target", 1.0); + put("rarity", 1.0); }}; /** diff --git a/Plugin/src/main/java/com/willfp/ecoenchants/config/ConfigManager.java b/Plugin/src/main/java/com/willfp/ecoenchants/config/ConfigManager.java index c7c043bd..c36eab24 100644 --- a/Plugin/src/main/java/com/willfp/ecoenchants/config/ConfigManager.java +++ b/Plugin/src/main/java/com/willfp/ecoenchants/config/ConfigManager.java @@ -1,9 +1,6 @@ package com.willfp.ecoenchants.config; -import com.willfp.ecoenchants.config.configs.Config; -import com.willfp.ecoenchants.config.configs.EnchantmentConfig; -import com.willfp.ecoenchants.config.configs.Lang; -import com.willfp.ecoenchants.config.configs.Target; +import com.willfp.ecoenchants.config.configs.*; import java.util.HashSet; import java.util.Set; @@ -12,6 +9,7 @@ public class ConfigManager { private static final Lang LANG = new Lang(); private static final Config CONFIG = new Config(); private static final Target TARGET = new Target(); + private static final Rarity RARITY = new Rarity(); private static final Set enchantmentConfigs = new HashSet<>(); /** @@ -22,6 +20,7 @@ public class ConfigManager { LANG.reload(); CONFIG.reload(); TARGET.reload(); + RARITY.reload(); updateEnchantmentConfigs(); } @@ -80,4 +79,12 @@ public class ConfigManager { public static Target getTarget() { return TARGET; } + + /** + * Get rarity.yml + * @return rarity.yml + */ + public static Rarity getRarity() { + return RARITY; + } } \ No newline at end of file diff --git a/Plugin/src/main/java/com/willfp/ecoenchants/config/configs/Config.java b/Plugin/src/main/java/com/willfp/ecoenchants/config/configs/Config.java index d3fe30b1..c285d1e8 100644 --- a/Plugin/src/main/java/com/willfp/ecoenchants/config/configs/Config.java +++ b/Plugin/src/main/java/com/willfp/ecoenchants/config/configs/Config.java @@ -53,8 +53,4 @@ public class Config extends YamlConfig { public ItemStack getItemStack(String path) { return config.getItemStack(path); } - - public Set getRarities() { - return config.getConfigurationSection("obtaining.rarities").getKeys(false); - } } diff --git a/Plugin/src/main/java/com/willfp/ecoenchants/config/configs/Rarity.java b/Plugin/src/main/java/com/willfp/ecoenchants/config/configs/Rarity.java new file mode 100644 index 00000000..2a2ed18d --- /dev/null +++ b/Plugin/src/main/java/com/willfp/ecoenchants/config/configs/Rarity.java @@ -0,0 +1,20 @@ +package com.willfp.ecoenchants.config.configs; + +import com.willfp.ecoenchants.config.YamlConfig; +import org.bukkit.Material; + +import java.util.HashSet; +import java.util.Set; + +/** + * Wrapper for config.yml + */ +public class Rarity extends YamlConfig { + public Rarity() { + super("rarity"); + } + + public Set getRarities() { + return config.getConfigurationSection("rarities").getKeys(false); + } +} diff --git a/Plugin/src/main/java/com/willfp/ecoenchants/enchantments/EnchantmentRarity.java b/Plugin/src/main/java/com/willfp/ecoenchants/enchantments/EnchantmentRarity.java index e7dd81af..6103e47c 100644 --- a/Plugin/src/main/java/com/willfp/ecoenchants/enchantments/EnchantmentRarity.java +++ b/Plugin/src/main/java/com/willfp/ecoenchants/enchantments/EnchantmentRarity.java @@ -94,13 +94,13 @@ public class EnchantmentRarity { * Called on /ecoreload */ public static void update() { - Set raritiesNames = ConfigManager.getConfig().getRarities(); + Set raritiesNames = ConfigManager.getRarity().getRarities(); raritiesNames.forEach((rarity) -> { String name = rarity; - double probability = ConfigManager.getConfig().getDouble("obtaining.rarities." + rarity + ".table-probability"); - int minimumLevel = ConfigManager.getConfig().getInt("obtaining.rarities." + rarity + ".minimum-level"); - double villagerProbability = ConfigManager.getConfig().getDouble("obtaining.rarities." + rarity + ".villager-probability"); - double lootProbability = ConfigManager.getConfig().getDouble("obtaining.rarities." + rarity + ".loot-probability"); + double probability = ConfigManager.getConfig().getDouble("rarities." + rarity + ".table-probability"); + int minimumLevel = ConfigManager.getConfig().getInt("rarities." + rarity + ".minimum-level"); + double villagerProbability = ConfigManager.getConfig().getDouble("rarities." + rarity + ".villager-probability"); + double lootProbability = ConfigManager.getConfig().getDouble("rarities." + rarity + ".loot-probability"); new EnchantmentRarity(name, probability, minimumLevel, villagerProbability, lootProbability); }); diff --git a/Plugin/src/main/resources/config.yml b/Plugin/src/main/resources/config.yml index cc1003e0..cd5aba8e 100644 --- a/Plugin/src/main/resources/config.yml +++ b/Plugin/src/main/resources/config.yml @@ -61,51 +61,6 @@ loot: enabled: true # Enable reduction factor: 7.5 # Factor to reduce probability by. Done as compound, so second pass is (factor) times less likely than first, third less likely than second, etc -obtaining: - rarities: - # Table Probability is the chance of getting enchantment as a percentage from an enchanting table - # Minimum Level is the minimum xp level you have to be to get the enchantment - # You can add more rarities by following the pattern. - # Remember, enchantments are more likely to be high-level the closer they are to maximum-obtainable-level - # Villager probability is the chance of a villager having this trade as a percentage. Vanilla default for all enchantments is 2.7%, however you can choose this per-rarity. - # Loot probability is the chance of an item in a loot chest having this enchantment as a percentage - - common: - table-probability: 30 - minimum-level: 1 - villager-probability: 10.5 - loot-probability: 12 - uncommon: - table-probability: 20 - minimum-level: 5 - villager-probability: 9 - loot-probability: 16 - rare: - table-probability: 20 - minimum-level: 15 - villager-probability: 7.5 - loot-probability: 18 - epic: - table-probability: 10 - minimum-level: 16 - villager-probability: 6 - loot-probability: 20 - legendary: - table-probability: 8 - minimum-level: 20 - villager-probability: 4.5 - loot-probability: 15 - special: - table-probability: 2 - minimum-level: 30 - villager-probability: 3 - loot-probability: 5 - veryspecial: - table-probability: 1 - minimum-level: 30 - villager-probability: 1.5 - loot-probability: 2 - # # Enchantment-specific config has now been moved to their own files. # Check the /enchants directory. diff --git a/Plugin/src/main/resources/rarity.yml b/Plugin/src/main/resources/rarity.yml new file mode 100644 index 00000000..6c13ab23 --- /dev/null +++ b/Plugin/src/main/resources/rarity.yml @@ -0,0 +1,45 @@ +config-version: 1.0 + +rarities: + # Table Probability is the chance of getting enchantment as a percentage from an enchanting table + # Minimum Level is the minimum xp level you have to be to get the enchantment + # You can add more rarities by following the pattern. + # Remember, enchantments are more likely to be high-level the closer they are to maximum-obtainable-level + # Villager probability is the chance of a villager having this trade as a percentage. Vanilla default for all enchantments is 2.7%, however you can choose this per-rarity. + # Loot probability is the chance of an item in a loot chest having this enchantment as a percentage + + common: + table-probability: 30 + minimum-level: 1 + villager-probability: 10.5 + loot-probability: 12 + uncommon: + table-probability: 20 + minimum-level: 5 + villager-probability: 9 + loot-probability: 16 + rare: + table-probability: 20 + minimum-level: 15 + villager-probability: 7.5 + loot-probability: 18 + epic: + table-probability: 10 + minimum-level: 16 + villager-probability: 6 + loot-probability: 20 + legendary: + table-probability: 8 + minimum-level: 20 + villager-probability: 4.5 + loot-probability: 15 + special: + table-probability: 2 + minimum-level: 30 + villager-probability: 3 + loot-probability: 5 + veryspecial: + table-probability: 1 + minimum-level: 30 + villager-probability: 1.5 + loot-probability: 2 \ No newline at end of file