123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100 |
- package com.gmail.nossr50.config.mods;
- import java.util.ArrayList;
- import java.util.HashMap;
- import java.util.Iterator;
- import java.util.List;
- import java.util.Set;
- import org.bukkit.configuration.ConfigurationSection;
- import com.gmail.nossr50.config.ConfigLoader;
- import com.gmail.nossr50.datatypes.mods.CustomTool;
- import com.gmail.nossr50.skills.repair.Repairable;
- import com.gmail.nossr50.skills.repair.RepairableFactory;
- public class CustomToolsConfig extends ConfigLoader {
- private static CustomToolsConfig instance;
- private List<Repairable> repairables;
- public List<Integer> customAxeIDs = new ArrayList<Integer>();
- public List<Integer> customBowIDs = new ArrayList<Integer>();
- public List<Integer> customHoeIDs = new ArrayList<Integer>();
- public List<Integer> customPickaxeIDs = new ArrayList<Integer>();
- public List<Integer> customShovelIDs = new ArrayList<Integer>();
- public List<Integer> customSwordIDs = new ArrayList<Integer>();
- public List<Integer> customIDs = new ArrayList<Integer>();
- public List<CustomTool> customToolList = new ArrayList<CustomTool>();
- public HashMap<Integer, CustomTool> customTools = new HashMap<Integer, CustomTool>();
- private CustomToolsConfig() {
- super("ModConfigs", "tools.yml");
- }
- public static CustomToolsConfig getInstance() {
- if (instance == null) {
- instance = new CustomToolsConfig();
- }
- return instance;
- }
- @Override
- protected void loadKeys() {
- repairables = new ArrayList<Repairable>();
- loadTool("Axes", customAxeIDs);
- loadTool("Bows", customBowIDs);
- loadTool("Hoes", customHoeIDs);
- loadTool("Pickaxes", customPickaxeIDs);
- loadTool("Shovels", customShovelIDs);
- loadTool("Swords", customSwordIDs);
- }
- private void loadTool(String toolType, List<Integer> idList) {
- ConfigurationSection toolSection = config.getConfigurationSection(toolType);
- Set<String> toolConfigSet = toolSection.getKeys(false);
- Iterator<String> iterator = toolConfigSet.iterator();
- while (iterator.hasNext()) {
- String toolName = iterator.next();
- int id = config.getInt(toolType + "." + toolName + ".ID", 0);
- double multiplier = config.getDouble(toolType + "." + toolName + ".XP_Modifier", 1.0);
- boolean abilityEnabled = config.getBoolean(toolType + "." + toolName + ".Ability_Enabled", true);
- int tier = config.getInt(toolType + "." + toolName + ".Tier", 1);
- boolean repairable = config.getBoolean(toolType + "." + toolName + ".Repairable");
- int repairID = config.getInt(toolType + "." + toolName + ".Repair_Material_ID", 0);
- byte repairData = (byte) config.getInt(toolType + "." + toolName + ".Repair_Material_Data_Value", 0);
- int repairQuantity = config.getInt(toolType + "." + toolName + ".Repair_Material_Quantity", 0);
- short durability = (short) config.getInt(toolType + "." + toolName + ".Durability", 0);
- if (id == 0) {
- plugin.getLogger().warning("Missing ID. This item will be skipped.");
- continue;
- }
- if (repairable && (repairID == 0 || repairQuantity == 0 || durability == 0)) {
- plugin.getLogger().warning("Incomplete repair information. This item will be unrepairable.");
- repairable = false;
- }
- CustomTool tool;
- if (repairable) {
- repairables.add(RepairableFactory.getRepairable(id, repairID, repairData, repairQuantity, durability));
- }
- tool = new CustomTool(tier, abilityEnabled, multiplier, durability, id);
- idList.add(id);
- customIDs.add(id);
- customToolList.add(tool);
- customTools.put(id, tool);
- }
- }
- public List<Repairable> getLoadedRepairables() {
- if(repairables == null) return new ArrayList<Repairable>();
- return repairables;
- }
- }
|