package net.t2code.opsecurity.config; import net.t2code.opsecurity.Util; import net.t2code.opsecurity.config.config.Config; import net.t2code.opsecurity.config.language.Language; import net.t2code.opsecurity.config.opWhitelist.OPWhitelist; import net.t2code.opsecurity.config.permissionWhitelist.PermissionWhitelist; import net.t2code.opsecurity.objects.PlayerCash; import net.t2code.opsecurity.objects.PlayerObject; import net.t2code.opsecurity.system.Main; import net.t2code.t2codelib.SPIGOT.api.messages.T2Creplace; import net.t2code.t2codelib.SPIGOT.api.messages.T2Csend; import net.t2code.t2codelib.SPIGOT.system.config.languages.SelectLibMsg; import org.bukkit.GameMode; import org.bukkit.Sound; import org.bukkit.configuration.file.YamlConfiguration; import java.io.File; import java.io.IOException; import java.util.*; public class FileSelect { public static void selectConfig() { File config = new File(Main.getPath(), "config.yml"); YamlConfiguration yamlConfiguration = YamlConfiguration.loadConfiguration(config); for (Config value : Config.values()) { switch (value.configParam) { case STRING: if (!yamlConfiguration.contains(value.path)) { yamlConfiguration.set(value.path, value.valueString); } value.valueString = T2Creplace.replace(Util.getPrefix(), Objects.requireNonNull(yamlConfiguration.getString(value.path))); break; case SOUND: if (!yamlConfiguration.contains(value.path)) { yamlConfiguration.set(value.path, value.sound.toString()); } try { value.sound = Sound.valueOf(yamlConfiguration.getString(value.path)); } catch (Exception ex) { T2Csend.console("§4\n§4\n§4\n" + SelectLibMsg.soundNotFound.replace("[prefix]", Util.getPrefix()) .replace("[sound]", "§8" + value.path + ": §6" + yamlConfiguration.getString(value.path)) + "§4\n§4\n§4\n"); } break; case BOOLEAN: if (!yamlConfiguration.contains(value.path)) { yamlConfiguration.set(value.path, value.valueBoolean); } value.valueBoolean = yamlConfiguration.getBoolean(value.path); break; case INTEGER: if (!yamlConfiguration.contains(value.path)) { yamlConfiguration.set(value.path, value.valueInt); } value.valueInt = yamlConfiguration.getInt(value.path); break; } } try { yamlConfiguration.save(config); } catch (IOException e) { e.printStackTrace(); } } private static ArrayList defaultLanguages = new ArrayList<>(Arrays.asList("german", "english")); public static void selectLanguage() { long long_ = System.currentTimeMillis(); for (String language : defaultLanguages) { File config = new File(Main.getPath(), "languages/" + language + ".yml"); YamlConfiguration yamlConfiguration = YamlConfiguration.loadConfiguration(config); for (Language value : Language.values()) { if (!yamlConfiguration.contains(value.path)) { switch (language) { case "german": yamlConfiguration.set(value.path, value.german); break; case "english": yamlConfiguration.set(value.path, value.english); break; } } } T2Csend.debug(Main.getPlugin(), "save: " + language); try { yamlConfiguration.save(config); } catch (IOException e) { e.printStackTrace(); } } String selectMSG; File config = new File(Main.getPath(), "languages/" + Config.language.valueString + ".yml"); T2Csend.debug(Main.getPlugin(), config.getAbsolutePath()); if (!config.isFile()) { T2Csend.console(Util.getPrefix()); T2Csend.console(Util.getPrefix() + " §4!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"); T2Csend.console(Util.getPrefix() + " §4The selected §c" + Config.language.valueString + " §4language file was not found."); T2Csend.console(Util.getPrefix() + " §6The default language §eEnglish §6is used!"); T2Csend.console(Util.getPrefix() + " §4!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"); T2Csend.console(Util.getPrefix()); config = new File(Main.getPath(), "languages/" + "english.yml"); selectMSG = "english"; } else selectMSG = Config.language.valueString; YamlConfiguration yamlConfiguration = YamlConfiguration.loadConfiguration(config); for (Language value : Language.values()) { T2Csend.debug(Main.getPlugin(), "Select: File: " + config.getName() + " Path: " + value.path); value.value = T2Creplace.replace(Util.getPrefix(), yamlConfiguration.getString(value.path)); } T2Csend.console(Util.getPrefix() + " §2Language successfully selected to: §6" + selectMSG + " §7- §e" + (System.currentTimeMillis() - long_) + "ms"); } public static void selectOpWhitelist() { PlayerCash.getOpHashMap().clear(); File config = new File(Main.getPath(), "opWhitelist.yml"); YamlConfiguration yamlConfiguration = YamlConfiguration.loadConfiguration(config); for (OPWhitelist value : OPWhitelist.values()) { switch (value.cEnum) { case BOOLEAN: if (!yamlConfiguration.contains(value.path)) { yamlConfiguration.set(value.path, value.valueBoolean); } value.valueBoolean = yamlConfiguration.getBoolean(value.path); break; case STRINGLIST: if (!yamlConfiguration.contains(value.path)) { yamlConfiguration.set(value.path, value.valueStringList); } value.valueStringList = T2Creplace.replace(Util.getPrefix(), yamlConfiguration.getStringList(value.path)); break; case PLAYERLIST: if (!yamlConfiguration.contains(value.pathPlayerListPath)) { yamlConfiguration.set(value.pathPlayerName.replace("KEY", "player1"), value.valuePlayerName); yamlConfiguration.set(value.pathPlayerUuid.replace("KEY", "player1"), value.valuePlayerUuid); yamlConfiguration.set(value.pathPlayerName.replace("KEY", "player2"), value.valuePlayerName); yamlConfiguration.set(value.pathPlayerUuid.replace("KEY", "player2"), value.valuePlayerUuid); } for (String key : yamlConfiguration.getConfigurationSection(value.pathPlayerListPath).getKeys(false)) { String name = yamlConfiguration.getString(value.pathPlayerName.replace("KEY", key)); PlayerObject playerObject = new PlayerObject( name, yamlConfiguration.getString(value.pathPlayerUuid.replace("KEY", key)).replace("-", "")); PlayerCash.getOpHashMap().put(name, playerObject); } break; case GAMEMODE: if (!yamlConfiguration.contains(value.path)) { yamlConfiguration.set(value.path, value.valueGameMode.toString()); } try { value.valueGameMode = GameMode.valueOf(yamlConfiguration.getString(value.path).toUpperCase()); } catch (Exception ex) { ex.printStackTrace(); value.valueGameMode = GameMode.SURVIVAL; } break; } } try { yamlConfiguration.save(config); } catch (IOException e) { e.printStackTrace(); } } public static void selectPermissionWhitelist() { PlayerCash.getPermissionHashMap().clear(); File config = new File(Main.getPath(), "permissionWhitelist.yml"); YamlConfiguration yamlConfiguration = YamlConfiguration.loadConfiguration(config); for (PermissionWhitelist value : PermissionWhitelist.values()) { switch (value.cEnum) { case BOOLEAN: if (!yamlConfiguration.contains(value.path)) { yamlConfiguration.set(value.path, value.valueBoolean); } value.valueBoolean = yamlConfiguration.getBoolean(value.path); break; case STRINGLIST: if (!yamlConfiguration.contains(value.path)) { yamlConfiguration.set(value.path, value.valueStringList); } value.valueStringList = T2Creplace.replace(Util.getPrefix(), yamlConfiguration.getStringList(value.path)); break; case PLAYERLIST: if (!yamlConfiguration.contains(value.pathPlayerListPath)) { yamlConfiguration.set(value.pathPlayerName.replace("KEY", "player1"), value.valuePlayerName); yamlConfiguration.set(value.pathPlayerUuid.replace("KEY", "player1"), value.valuePlayerUuid); yamlConfiguration.set(value.pathPlayerName.replace("KEY", "player2"), value.valuePlayerName); yamlConfiguration.set(value.pathPlayerUuid.replace("KEY", "player2"), value.valuePlayerUuid); } for (String key : yamlConfiguration.getConfigurationSection(value.pathPlayerListPath).getKeys(false)) { String name = yamlConfiguration.getString(value.pathPlayerName.replace("KEY", key)); PlayerObject playerObject = new PlayerObject( name, yamlConfiguration.getString(value.pathPlayerUuid.replace("KEY", key)).replace("-", "")); PlayerCash.getPermissionHashMap().put(name, playerObject); } break; } } try { yamlConfiguration.save(config); } catch (IOException e) { e.printStackTrace(); } } }