diff options
Diffstat (limited to 'bukkit/src/main/java/com')
| -rw-r--r-- | bukkit/src/main/java/com/leonardobishop/quests/bukkit/BukkitQuestsPlugin.java | 51 | ||||
| -rw-r--r-- | bukkit/src/main/java/com/leonardobishop/quests/bukkit/config/BukkitQuestsLoader.java | 25 |
2 files changed, 42 insertions, 34 deletions
diff --git a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/BukkitQuestsPlugin.java b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/BukkitQuestsPlugin.java index aedb94ee..cf30af2a 100644 --- a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/BukkitQuestsPlugin.java +++ b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/BukkitQuestsPlugin.java @@ -464,22 +464,7 @@ public class BukkitQuestsPlugin extends JavaPlugin implements Quests { File config = new File(this.getDataFolder() + File.separator + "config.yml"); if (!config.exists()) { - try { - config.createNewFile(); - try (InputStream in = BukkitQuestsPlugin.class.getClassLoader().getResourceAsStream("resources/bukkit/config.yml"); - OutputStream out = new FileOutputStream(config)) { - byte[] buffer = new byte[1024]; - int lenght = in.read(buffer); - while (lenght != -1) { - out.write(buffer, 0, lenght); - lenght = in.read(buffer); - } - } catch (IOException e) { - e.printStackTrace(); - } - } catch (IOException e) { - e.printStackTrace(); - } + writeResourceToFile("resources/bukkit/config.yml", config); } File questsDirectory = new File(this.getDataFolder() + File.separator + "quests"); @@ -498,23 +483,27 @@ public class BukkitQuestsPlugin extends JavaPlugin implements Quests { for (String name : examples) { File file = new File(this.getDataFolder() + File.separator + "quests" + File.separator + name); - try { - file.createNewFile(); - try (InputStream in = BukkitQuestsPlugin.class.getClassLoader().getResourceAsStream("resources/bukkit/quests/" + name); - OutputStream out = new FileOutputStream(file)) { - byte[] buffer = new byte[1024]; - int lenght = in.read(buffer); - while (lenght != -1) { - out.write(buffer, 0, lenght); - lenght = in.read(buffer); - } - } catch (IOException e) { - e.printStackTrace(); - } - } catch (IOException e) { - e.printStackTrace(); + writeResourceToFile("resources/bukkit/quests/" + name, file); + } + } + } + + private void writeResourceToFile(String resource, File file) { + try { + file.createNewFile(); + try (InputStream in = BukkitQuestsPlugin.class.getClassLoader().getResourceAsStream(resource); + OutputStream out = new FileOutputStream(file)) { + byte[] buffer = new byte[1024]; + int length = in.read(buffer); + while (length != -1) { + out.write(buffer, 0, length); + length = in.read(buffer); } + } catch (IOException e) { + e.printStackTrace(); } + } catch (IOException e) { + e.printStackTrace(); } } diff --git a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/config/BukkitQuestsLoader.java b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/config/BukkitQuestsLoader.java index 89de88d7..d1f893b0 100644 --- a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/config/BukkitQuestsLoader.java +++ b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/config/BukkitQuestsLoader.java @@ -17,6 +17,8 @@ import com.leonardobishop.quests.common.questcontroller.QuestController; import com.leonardobishop.quests.common.tasktype.TaskType; import com.leonardobishop.quests.common.tasktype.TaskTypeManager; import org.apache.commons.lang.StringUtils; +import org.bukkit.configuration.ConfigurationSection; +import org.bukkit.configuration.MemorySection; import org.bukkit.configuration.file.FileConfiguration; import org.bukkit.configuration.file.YamlConfiguration; import org.bukkit.inventory.ItemStack; @@ -78,9 +80,26 @@ public class BukkitQuestsLoader implements QuestsLoader { } } - for (String id : plugin.getConfig().getConfigurationSection("categories").getKeys(false)) { - ItemStack displayItem = plugin.getItemStack("categories." + id + ".display", plugin.getConfig()); - boolean permissionRequired = plugin.getConfig().getBoolean("categories." + id + ".permission-required", false); + ConfigurationSection categories; + File categoriesFile = new File(plugin.getDataFolder() + File.separator + "categories.yml"); + if (categoriesFile.exists()) { + YamlConfiguration categoriesConfiguration = YamlConfiguration.loadConfiguration(categoriesFile); + if (categoriesConfiguration.isConfigurationSection("categories")) { + categories = categoriesConfiguration.getConfigurationSection("categories"); + } else { + categories = new YamlConfiguration(); + } + } else { + if (plugin.getConfig().isConfigurationSection("categories")) { + categories = plugin.getConfig().getConfigurationSection("categories"); + } else { + categories = new YamlConfiguration(); + } + } + + for (String id : categories.getKeys(false)) { + ItemStack displayItem = plugin.getItemStack(id + ".display", categories); + boolean permissionRequired = categories.getBoolean(id + ".permission-required", false); Category category = new Category(id, permissionRequired); questManager.registerCategory(category); |
