diff --git a/missilewars-plugin/src/main/java/de/butzlabben/missilewars/util/SetupUtil.java b/missilewars-plugin/src/main/java/de/butzlabben/missilewars/util/SetupUtil.java deleted file mode 100644 index adeae8c..0000000 --- a/missilewars-plugin/src/main/java/de/butzlabben/missilewars/util/SetupUtil.java +++ /dev/null @@ -1,172 +0,0 @@ -/* - * This file is part of MissileWars (https://github.com/Butzlabben/missilewars). - * Copyright (c) 2018-2021 Daniel Nägele. - * - * MissileWars is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * MissileWars is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with MissileWars. If not, see . - */ - -package de.butzlabben.missilewars.util; - -import de.butzlabben.missilewars.Logger; -import de.butzlabben.missilewars.MissileWars; -import de.butzlabben.missilewars.configuration.Config; -import org.bukkit.configuration.file.YamlConfiguration; -import org.bukkit.plugin.java.JavaPlugin; - -import java.io.*; -import java.net.URL; -import java.nio.charset.StandardCharsets; -import java.nio.file.Files; -import java.util.Enumeration; -import java.util.jar.JarEntry; -import java.util.jar.JarFile; -import java.util.zip.ZipEntry; -import java.util.zip.ZipInputStream; - -/** - * @author Butzlabben - * @since 14.08.2018 - */ -public class SetupUtil { - - private static final int BUFFER_SIZE = 4096; - - private SetupUtil() { - } - - public static boolean isNewConfig(File dir, File file) { - String fileName = file.getName(); - - // check if the directory exists - if (!dir.exists()) { - dir.mkdirs(); - } - - // check if the config file exists - if (!file.exists()) { - try { - file.createNewFile(); - } catch (IOException e) { - Logger.ERROR.log("Could not create " + fileName + "!"); - e.printStackTrace(); - } - return true; - } - - return false; - } - - public static YamlConfiguration getLoadedConfig(File file) { - String fileName = file.getName(); - YamlConfiguration cfg; - - try { - cfg = YamlConfiguration.loadConfiguration(new InputStreamReader(new FileInputStream(file), StandardCharsets.UTF_8)); - } catch (FileNotFoundException e) { - Logger.ERROR.log("Couldn't load " + fileName + "!"); - e.printStackTrace(); - return null; - } - return cfg; - } - - public static void safeFile(File file, YamlConfiguration cfg) { - String fileName = file.getName(); - - try { - cfg.save(file); - } catch (IOException e) { - Logger.ERROR.log("Could not save " + fileName + "!"); - e.printStackTrace(); - } - } - - /** - * Extracts a ZIP file from the plugin's resource folder and saves the contents - * into the specified targetPath. - * - * @param targetPath The directory where the extracted files should be saved. - * @param defaultFile The name of the ZIP file in the plugin's resource folder. - */ - public static void saveDefaultFiles(String targetPath, String defaultFile, JavaPlugin plugin) { - // Ensure the target directory exists - File targetDir = new File(targetPath); - - // Check if the target directory already exists; if so, skip extraction - if (targetDir.exists()) { - Logger.NORMAL.log("Directory '" + targetDir.getPath() + "' already exists. Skipping extraction."); - return; - } - - // Create the target directory if it does not exist - if (!targetDir.mkdirs()) { - Logger.ERROR.log("Failed to create directory '" + targetDir.getPath() + "'"); - return; - } - - // Get the resource as an InputStream - try (InputStream in = plugin.getResource(defaultFile)) { - if (in == null) { - Logger.ERROR.log("Unable to find resource '" + defaultFile + "'!"); - return; - } - - // Unzip the resource to the target directory - Logger.NORMAL.log("Unzipping resource '" + defaultFile + "' to directory: " + targetDir.getPath()); - unzip(in, targetDir); - } catch (IOException e) { - Logger.ERROR.log("Failed to unzip resource '" + defaultFile + "'!"); - e.printStackTrace(); - } - } - - private static void unzip(InputStream in, File targetDir) throws IOException { - try (ZipInputStream zis = new ZipInputStream(in)) { - ZipEntry entry; - while ((entry = zis.getNextEntry()) != null) { - File newFile = new File(targetDir, entry.getName()); - - if (entry.isDirectory()) { - // Handle directory entries - if (!newFile.isDirectory() && !newFile.mkdirs()) { - throw new IOException("Failed to create directory " + newFile); - } - } else { - // Check if file already exists and decide whether to overwrite or not - if (newFile.exists()) { - Logger.WARN.log("File " + newFile.getName() + " already exists. Skipping."); - continue; // Skip if the file exists - } - - // Ensure parent directory exists - File parent = newFile.getParentFile(); - if (!parent.isDirectory() && !parent.mkdirs()) { - throw new IOException("Failed to create directory " + parent); - } - - // Write file content - try (FileOutputStream fos = new FileOutputStream(newFile)) { - byte[] buffer = new byte[1024]; - int len; - while ((len = zis.read(buffer)) > 0) { - fos.write(buffer, 0, len); - } - } - } - zis.closeEntry(); - } - } - } - -} \ No newline at end of file