aboutsummaryrefslogtreecommitdiffstats
path: root/bukkit/src/main/java
diff options
context:
space:
mode:
Diffstat (limited to 'bukkit/src/main/java')
-rw-r--r--bukkit/src/main/java/com/leonardobishop/quests/bukkit/BukkitQuestsPlugin.java51
-rw-r--r--bukkit/src/main/java/com/leonardobishop/quests/bukkit/config/BukkitQuestsLoader.java25
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);