From c9b15b44b1d55ea67bf80c6eb24b5df83525e227 Mon Sep 17 00:00:00 2001 From: Esophose Date: Sun, 4 Aug 2019 00:52:23 -0600 Subject: [PATCH] Files load, fix boss panel bug --- .../epicbosses/file/ConfigFileHandler.java | 4 +--- .../epicbosses/file/EditorFileHandler.java | 4 +--- .../epicbosses/managers/BossPanelManager.java | 8 ++++---- .../managers/files/AutoSpawnFileManager.java | 4 +--- .../managers/files/BossesFileManager.java | 4 +--- .../managers/files/CommandsFileManager.java | 4 +--- .../managers/files/DropTableFileManager.java | 4 +--- .../managers/files/ItemsFileManager.java | 8 +++----- .../managers/files/MessagesFileManager.java | 4 +--- .../managers/files/MinionsFileManager.java | 4 +--- .../managers/files/SkillsFileManager.java | 4 +--- .../epicbosses/utils/file/FileHandler.java | 19 ++++++++++++++++--- .../epicbosses/utils/file/YmlFileHandler.java | 15 ++++++++++++--- 13 files changed, 44 insertions(+), 42 deletions(-) diff --git a/plugin-modules/Core/src/com/songoda/epicbosses/file/ConfigFileHandler.java b/plugin-modules/Core/src/com/songoda/epicbosses/file/ConfigFileHandler.java index 00da3a0..c1a91cd 100644 --- a/plugin-modules/Core/src/com/songoda/epicbosses/file/ConfigFileHandler.java +++ b/plugin-modules/Core/src/com/songoda/epicbosses/file/ConfigFileHandler.java @@ -1,8 +1,6 @@ package com.songoda.epicbosses.file; -import com.songoda.epicbosses.utils.Versions; import com.songoda.epicbosses.utils.file.YmlFileHandler; -import com.songoda.epicbosses.utils.version.VersionHandler; import org.bukkit.plugin.java.JavaPlugin; import java.io.File; @@ -15,6 +13,6 @@ import java.io.File; public class ConfigFileHandler extends YmlFileHandler { public ConfigFileHandler(JavaPlugin javaPlugin) { - super(javaPlugin, true, new File(javaPlugin.getDataFolder(), new VersionHandler().getVersion().isHigherThanOrEqualTo(Versions.v1_13_R1) ? "current" : "legacy" + "/config.yml")); + super(javaPlugin, true, new File(javaPlugin.getDataFolder(), "config.yml")); } } diff --git a/plugin-modules/Core/src/com/songoda/epicbosses/file/EditorFileHandler.java b/plugin-modules/Core/src/com/songoda/epicbosses/file/EditorFileHandler.java index d729c3e..c7e7924 100644 --- a/plugin-modules/Core/src/com/songoda/epicbosses/file/EditorFileHandler.java +++ b/plugin-modules/Core/src/com/songoda/epicbosses/file/EditorFileHandler.java @@ -1,8 +1,6 @@ package com.songoda.epicbosses.file; -import com.songoda.epicbosses.utils.Versions; import com.songoda.epicbosses.utils.file.YmlFileHandler; -import com.songoda.epicbosses.utils.version.VersionHandler; import org.bukkit.plugin.java.JavaPlugin; import java.io.File; @@ -15,7 +13,7 @@ import java.io.File; public class EditorFileHandler extends YmlFileHandler { public EditorFileHandler(JavaPlugin javaPlugin) { - super(javaPlugin, true, new File(javaPlugin.getDataFolder(), new VersionHandler().getVersion().isHigherThanOrEqualTo(Versions.v1_13_R1) ? "current" : "legacy" + "/editor.yml")); + super(javaPlugin, true, new File(javaPlugin.getDataFolder(), "editor.yml")); } } \ No newline at end of file diff --git a/plugin-modules/Core/src/com/songoda/epicbosses/managers/BossPanelManager.java b/plugin-modules/Core/src/com/songoda/epicbosses/managers/BossPanelManager.java index 225d7e1..638e738 100644 --- a/plugin-modules/Core/src/com/songoda/epicbosses/managers/BossPanelManager.java +++ b/plugin-modules/Core/src/com/songoda/epicbosses/managers/BossPanelManager.java @@ -805,15 +805,15 @@ public class BossPanelManager implements ILoadable, IReloadable { private void loadAddItemsMenu() { PanelBuilder panelBuilder = new PanelBuilder(this.customBosses.getEditor().getConfigurationSection("AddItemsMenu")); - this.addItemsBuilder = this.addItemsBuilder.cloneBuilder(); - this.customItemAddItemsMenu = new AddItemsPanel(this, panelBuilder, this.customBosses, new CustomItemsAddItemsParentPanelHandler(this)); + this.addItemsBuilder = panelBuilder.cloneBuilder(); + this.customItemAddItemsMenu = new AddItemsPanel(this, panelBuilder.cloneBuilder(), this.customBosses, new CustomItemsAddItemsParentPanelHandler(this)); } private void reloadAddItemsMenu() { PanelBuilder panelBuilder = new PanelBuilder(this.customBosses.getEditor().getConfigurationSection("AddItemsMenu")); - this.addItemsBuilder = this.addItemsBuilder.cloneBuilder(); - this.customItemAddItemsMenu.initializePanel(panelBuilder); + this.addItemsBuilder = panelBuilder.cloneBuilder(); + this.customItemAddItemsMenu.initializePanel(panelBuilder.cloneBuilder()); } //--------------------------------------------- diff --git a/plugin-modules/Core/src/com/songoda/epicbosses/managers/files/AutoSpawnFileManager.java b/plugin-modules/Core/src/com/songoda/epicbosses/managers/files/AutoSpawnFileManager.java index 3b4aa33..6bf4451 100644 --- a/plugin-modules/Core/src/com/songoda/epicbosses/managers/files/AutoSpawnFileManager.java +++ b/plugin-modules/Core/src/com/songoda/epicbosses/managers/files/AutoSpawnFileManager.java @@ -6,8 +6,6 @@ import com.songoda.epicbosses.file.AutoSpawnFileHandler; import com.songoda.epicbosses.utils.ILoadable; import com.songoda.epicbosses.utils.IReloadable; import com.songoda.epicbosses.utils.ISavable; -import com.songoda.epicbosses.utils.Versions; -import com.songoda.epicbosses.utils.version.VersionHandler; import java.io.File; import java.util.HashMap; @@ -24,7 +22,7 @@ public class AutoSpawnFileManager implements ILoadable, ISavable, IReloadable { private AutoSpawnFileHandler autoSpawnFileHandler; public AutoSpawnFileManager(CustomBosses plugin) { - File file = new File(plugin.getDataFolder(), new VersionHandler().getVersion().isHigherThanOrEqualTo(Versions.v1_13_R1) ? "current" : "legacy" + "/autospawns.json"); + File file = new File(plugin.getDataFolder(), "autospawns.json"); this.autoSpawnFileHandler = new AutoSpawnFileHandler(plugin, true, file); } diff --git a/plugin-modules/Core/src/com/songoda/epicbosses/managers/files/BossesFileManager.java b/plugin-modules/Core/src/com/songoda/epicbosses/managers/files/BossesFileManager.java index 99683d3..31af222 100644 --- a/plugin-modules/Core/src/com/songoda/epicbosses/managers/files/BossesFileManager.java +++ b/plugin-modules/Core/src/com/songoda/epicbosses/managers/files/BossesFileManager.java @@ -7,8 +7,6 @@ import com.songoda.epicbosses.file.BossesFileHandler; import com.songoda.epicbosses.utils.ILoadable; import com.songoda.epicbosses.utils.IReloadable; import com.songoda.epicbosses.utils.ISavable; -import com.songoda.epicbosses.utils.Versions; -import com.songoda.epicbosses.utils.version.VersionHandler; import java.io.File; import java.util.ArrayList; @@ -27,7 +25,7 @@ public class BossesFileManager implements ILoadable, ISavable, IReloadable { private BossesFileHandler bossesFileHandler; public BossesFileManager(CustomBosses customBosses) { - File file = new File(customBosses.getDataFolder(), new VersionHandler().getVersion().isHigherThanOrEqualTo(Versions.v1_13_R1) ? "current" : "legacy" + "/bosses.json"); + File file = new File(customBosses.getDataFolder(), "bosses.json"); this.bossesFileHandler = new BossesFileHandler(customBosses, true, file); this.bossEntityContainer = customBosses.getBossEntityContainer(); diff --git a/plugin-modules/Core/src/com/songoda/epicbosses/managers/files/CommandsFileManager.java b/plugin-modules/Core/src/com/songoda/epicbosses/managers/files/CommandsFileManager.java index da1a4b7..d8e198a 100644 --- a/plugin-modules/Core/src/com/songoda/epicbosses/managers/files/CommandsFileManager.java +++ b/plugin-modules/Core/src/com/songoda/epicbosses/managers/files/CommandsFileManager.java @@ -5,8 +5,6 @@ import com.songoda.epicbosses.file.CommandsFileHandler; import com.songoda.epicbosses.utils.ILoadable; import com.songoda.epicbosses.utils.IReloadable; import com.songoda.epicbosses.utils.ISavable; -import com.songoda.epicbosses.utils.Versions; -import com.songoda.epicbosses.utils.version.VersionHandler; import java.io.File; import java.util.HashMap; @@ -24,7 +22,7 @@ public class CommandsFileManager implements ILoadable, ISavable, IReloadable { private CommandsFileHandler commandsFileHandler; public CommandsFileManager(CustomBosses customBosses) { - File file = new File(customBosses.getDataFolder(), new VersionHandler().getVersion().isHigherThanOrEqualTo(Versions.v1_13_R1) ? "current" : "legacy" + "/commands.json"); + File file = new File(customBosses.getDataFolder(), "commands.json"); this.commandsFileHandler = new CommandsFileHandler(customBosses, true, file); } diff --git a/plugin-modules/Core/src/com/songoda/epicbosses/managers/files/DropTableFileManager.java b/plugin-modules/Core/src/com/songoda/epicbosses/managers/files/DropTableFileManager.java index b32c314..c9d1728 100644 --- a/plugin-modules/Core/src/com/songoda/epicbosses/managers/files/DropTableFileManager.java +++ b/plugin-modules/Core/src/com/songoda/epicbosses/managers/files/DropTableFileManager.java @@ -5,8 +5,6 @@ import com.songoda.epicbosses.file.DropTableFileHandler; import com.songoda.epicbosses.utils.ILoadable; import com.songoda.epicbosses.utils.IReloadable; import com.songoda.epicbosses.utils.ISavable; -import com.songoda.epicbosses.utils.Versions; -import com.songoda.epicbosses.utils.version.VersionHandler; import org.bukkit.plugin.java.JavaPlugin; import java.io.File; @@ -24,7 +22,7 @@ public class DropTableFileManager implements ILoadable, ISavable, IReloadable { private DropTableFileHandler dropTableFileHandler; public DropTableFileManager(JavaPlugin javaPlugin) { - File file = new File(javaPlugin.getDataFolder(), new VersionHandler().getVersion().isHigherThanOrEqualTo(Versions.v1_13_R1) ? "current" : "legacy" + "/droptables.json"); + File file = new File(javaPlugin.getDataFolder(), "droptables.json"); this.dropTableFileHandler = new DropTableFileHandler(javaPlugin, true, file); } diff --git a/plugin-modules/Core/src/com/songoda/epicbosses/managers/files/ItemsFileManager.java b/plugin-modules/Core/src/com/songoda/epicbosses/managers/files/ItemsFileManager.java index eac8bb0..5b26e3f 100644 --- a/plugin-modules/Core/src/com/songoda/epicbosses/managers/files/ItemsFileManager.java +++ b/plugin-modules/Core/src/com/songoda/epicbosses/managers/files/ItemsFileManager.java @@ -1,14 +1,12 @@ package com.songoda.epicbosses.managers.files; -import com.songoda.epicbosses.utils.Versions; -import com.songoda.epicbosses.utils.version.VersionHandler; -import lombok.Getter; +import com.songoda.epicbosses.file.ItemStackFileHandler; import com.songoda.epicbosses.utils.ILoadable; import com.songoda.epicbosses.utils.IReloadable; import com.songoda.epicbosses.utils.ISavable; import com.songoda.epicbosses.utils.itemstack.ItemStackConverter; -import com.songoda.epicbosses.file.ItemStackFileHandler; import com.songoda.epicbosses.utils.itemstack.holder.ItemStackHolder; +import lombok.Getter; import org.bukkit.inventory.ItemStack; import org.bukkit.plugin.java.JavaPlugin; @@ -29,7 +27,7 @@ public class ItemsFileManager implements ILoadable, ISavable, IReloadable { private ItemStackFileHandler itemStackFileHandler; public ItemsFileManager(JavaPlugin javaPlugin) { - File file = new File(javaPlugin.getDataFolder(), new VersionHandler().getVersion().isHigherThanOrEqualTo(Versions.v1_13_R1) ? "current" : "legacy" + "/items.json"); + File file = new File(javaPlugin.getDataFolder(), "items.json"); this.itemStackFileHandler = new ItemStackFileHandler(javaPlugin, file, true); } diff --git a/plugin-modules/Core/src/com/songoda/epicbosses/managers/files/MessagesFileManager.java b/plugin-modules/Core/src/com/songoda/epicbosses/managers/files/MessagesFileManager.java index 0f3877d..bcbfcab 100644 --- a/plugin-modules/Core/src/com/songoda/epicbosses/managers/files/MessagesFileManager.java +++ b/plugin-modules/Core/src/com/songoda/epicbosses/managers/files/MessagesFileManager.java @@ -5,8 +5,6 @@ import com.songoda.epicbosses.file.MessagesFileHandler; import com.songoda.epicbosses.utils.ILoadable; import com.songoda.epicbosses.utils.IReloadable; import com.songoda.epicbosses.utils.ISavable; -import com.songoda.epicbosses.utils.Versions; -import com.songoda.epicbosses.utils.version.VersionHandler; import java.io.File; import java.util.HashMap; @@ -24,7 +22,7 @@ public class MessagesFileManager implements ILoadable, ISavable, IReloadable { private MessagesFileHandler messagesFileHandler; public MessagesFileManager(CustomBosses customBosses) { - File file = new File(customBosses.getDataFolder(), new VersionHandler().getVersion().isHigherThanOrEqualTo(Versions.v1_13_R1) ? "current" : "legacy" + "/messages.json"); + File file = new File(customBosses.getDataFolder(), "messages.json"); this.messagesFileHandler = new MessagesFileHandler(customBosses, true, file); } diff --git a/plugin-modules/Core/src/com/songoda/epicbosses/managers/files/MinionsFileManager.java b/plugin-modules/Core/src/com/songoda/epicbosses/managers/files/MinionsFileManager.java index fb853cc..da02c6b 100644 --- a/plugin-modules/Core/src/com/songoda/epicbosses/managers/files/MinionsFileManager.java +++ b/plugin-modules/Core/src/com/songoda/epicbosses/managers/files/MinionsFileManager.java @@ -7,8 +7,6 @@ import com.songoda.epicbosses.file.MinionsFileHandler; import com.songoda.epicbosses.utils.ILoadable; import com.songoda.epicbosses.utils.IReloadable; import com.songoda.epicbosses.utils.ISavable; -import com.songoda.epicbosses.utils.Versions; -import com.songoda.epicbosses.utils.version.VersionHandler; import java.io.File; import java.util.Map; @@ -24,7 +22,7 @@ public class MinionsFileManager implements ILoadable, ISavable, IReloadable { private MinionsFileHandler minionsFileHandler; public MinionsFileManager(CustomBosses customBosses) { - File file = new File(customBosses.getDataFolder(), new VersionHandler().getVersion().isHigherThanOrEqualTo(Versions.v1_13_R1) ? "current" : "legacy" + "/minions.json"); + File file = new File(customBosses.getDataFolder(), "minions.json"); this.minionsFileHandler = new MinionsFileHandler(customBosses, true, file); this.minionEntityContainer = customBosses.getMinionEntityContainer(); diff --git a/plugin-modules/Core/src/com/songoda/epicbosses/managers/files/SkillsFileManager.java b/plugin-modules/Core/src/com/songoda/epicbosses/managers/files/SkillsFileManager.java index c0b9bcb..7be867f 100644 --- a/plugin-modules/Core/src/com/songoda/epicbosses/managers/files/SkillsFileManager.java +++ b/plugin-modules/Core/src/com/songoda/epicbosses/managers/files/SkillsFileManager.java @@ -6,8 +6,6 @@ import com.songoda.epicbosses.skills.Skill; import com.songoda.epicbosses.utils.ILoadable; import com.songoda.epicbosses.utils.IReloadable; import com.songoda.epicbosses.utils.ISavable; -import com.songoda.epicbosses.utils.Versions; -import com.songoda.epicbosses.utils.version.VersionHandler; import java.io.File; import java.util.HashMap; @@ -24,7 +22,7 @@ public class SkillsFileManager implements ILoadable, IReloadable, ISavable { private SkillsFileHandler skillsFileHandler; public SkillsFileManager(CustomBosses plugin) { - File file = new File(plugin.getDataFolder(), new VersionHandler().getVersion().isHigherThanOrEqualTo(Versions.v1_13_R1) ? "current" : "legacy" + "/skills.json"); + File file = new File(plugin.getDataFolder(), "skills.json"); this.skillsFileHandler = new SkillsFileHandler(plugin, true, file); } diff --git a/plugin-modules/Core/src/com/songoda/epicbosses/utils/file/FileHandler.java b/plugin-modules/Core/src/com/songoda/epicbosses/utils/file/FileHandler.java index 2e3a759..fe5fe33 100644 --- a/plugin-modules/Core/src/com/songoda/epicbosses/utils/file/FileHandler.java +++ b/plugin-modules/Core/src/com/songoda/epicbosses/utils/file/FileHandler.java @@ -1,9 +1,18 @@ package com.songoda.epicbosses.utils.file; +import com.songoda.epicbosses.utils.Versions; +import com.songoda.epicbosses.utils.version.VersionHandler; import lombok.Getter; import org.bukkit.plugin.java.JavaPlugin; import java.io.File; +import java.io.IOException; +import java.io.InputStream; +import java.net.URI; +import java.net.URISyntaxException; +import java.nio.file.Files; +import java.nio.file.Paths; +import java.util.regex.Pattern; /** * @author Charles Cullen @@ -27,11 +36,15 @@ public abstract class FileHandler implements IFileHandler { public void createFile() { if(!this.file.exists()) { if(this.saveResource) { - String path = this.file.getName(); + String name = this.file.getName(); + String folder = new VersionHandler().getVersion().isHigherThanOrEqualTo(Versions.v1_13_R1) ? "/current/" : "/legacy/"; + String path = folder + name; - if(this.javaPlugin.getResource(path) != null) { - this.javaPlugin.saveResource(path, false); + try (InputStream resourceStream = this.getClass().getResourceAsStream(path)) { + Files.copy(resourceStream, new File(this.javaPlugin.getDataFolder(), name).toPath()); return; + } catch (IOException e) { + e.printStackTrace(); } } diff --git a/plugin-modules/Core/src/com/songoda/epicbosses/utils/file/YmlFileHandler.java b/plugin-modules/Core/src/com/songoda/epicbosses/utils/file/YmlFileHandler.java index c584fa9..b861e65 100644 --- a/plugin-modules/Core/src/com/songoda/epicbosses/utils/file/YmlFileHandler.java +++ b/plugin-modules/Core/src/com/songoda/epicbosses/utils/file/YmlFileHandler.java @@ -1,10 +1,15 @@ package com.songoda.epicbosses.utils.file; +import com.songoda.epicbosses.utils.Versions; +import com.songoda.epicbosses.utils.version.VersionHandler; import lombok.Getter; import org.bukkit.configuration.file.FileConfiguration; import org.bukkit.plugin.java.JavaPlugin; import java.io.File; +import java.io.IOException; +import java.io.InputStream; +import java.nio.file.Files; /** * @author Charles Cullen @@ -28,11 +33,15 @@ public class YmlFileHandler implements IFileHandler { public void createFile() { if(!this.file.exists()) { if(this.saveResource) { - String path = this.file.getName(); + String name = this.file.getName(); + String folder = new VersionHandler().getVersion().isHigherThanOrEqualTo(Versions.v1_13_R1) ? "/current/" : "/legacy/"; + String path = folder + name; - if(this.javaPlugin.getResource(path) != null) { - this.javaPlugin.saveResource(path, false); + try (InputStream resourceStream = this.getClass().getResourceAsStream(path)) { + Files.copy(resourceStream, new File(this.javaPlugin.getDataFolder(), name).toPath()); return; + } catch (IOException e) { + e.printStackTrace(); } }