T2C-OPSecurity/src/main/java/de/jatitv/opsecurity/config/config/ConfigConvert.java

195 lines
8.2 KiB
Java

package de.jatitv.opsecurity.config.config;
import de.jatitv.opsecurity.system.Main;
import de.jatitv.opsecurity.system.NameHistory;
import de.jatitv.opsecurity.util.send;
import org.bukkit.configuration.file.YamlConfiguration;
import java.io.File;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.List;
public class ConfigConvert {
public static void convert() {
try {
renameConfig();
} catch (Exception e) {
e.printStackTrace();
}
try {
configConvert();
} catch (Exception e) {
e.printStackTrace();
}
try {
renameLanguages();
} catch (Exception e) {
e.printStackTrace();
}
}
private static void renameConfig() {
Path configOld = Paths.get(Main.getPath() + "/Config.yml");
Path config = Paths.get(Main.getPath() + "/config.yml");
if(Files.exists(configOld) && !Files.isDirectory(configOld)) {
if(Files.exists(config) && !Files.isDirectory(config)) {
return;
}
String replace = Main.getPath().toString() + "/";
send.convert(configOld.toString().replace(replace, ""), config.toString().replace(replace, ""));
try {
Files.move(configOld, config);
} catch (IOException e) {
e.printStackTrace();
}
}
}
private static void configConvert() {
File config = new File(Main.plugin.getDataFolder().getPath(), "config.yml");
YamlConfiguration yamlConfiguration = YamlConfiguration.loadConfiguration(config);
if (yamlConfiguration.get("ConfigVersion") == null) {
try {
if (yamlConfiguration.get("Plugin.language") != null) {
switch (yamlConfiguration.getString("Plugin.language")) {
case "de_DE":
yamlConfiguration.set("Plugin.language", "german");
send.convert("config.yml", "Plugin.language: de_DE", "Plugin.language: german");
try {
yamlConfiguration.save(config);
} catch (IOException tac) {
tac.printStackTrace();
}
break;
case "en_EN":
yamlConfiguration.set("Plugin.language", "english");
send.convert("config.yml", "Plugin.language: en_EN", "Plugin.language: english");
try {
yamlConfiguration.save(config);
} catch (IOException tac) {
tac.printStackTrace();
}
break;
case "no_NO":
yamlConfiguration.set("Plugin.language", "norwegian");
send.convert("config.yml", "Plugin.language: no_NO", "Plugin.language: norwegian");
try {
yamlConfiguration.save(config);
} catch (IOException tac) {
tac.printStackTrace();
}
break;
}
}
} catch (Exception e) {
e.printStackTrace();
}
if (yamlConfiguration.get("Timer") != null){
Boolean enable = yamlConfiguration.getBoolean("Timer.Enable");
Integer time = yamlConfiguration.getInt("Timer.RefreshTime_inSec");
yamlConfiguration.set("Check.Timer.Enable", enable);
send.convert("config.yml", "Timer.Enable: " + enable, "Check.Timer.Enable: " + enable);
yamlConfiguration.set("Check.Timer.RefreshTime_inSec", time);
send.convert("config.yml", "Timer.RefreshTime_inSec: " + time, "Check.Timer.RefreshTime_inSec: " + time);
yamlConfiguration.set("Timer", null);
try {
yamlConfiguration.save(config);
} catch (IOException tac) {
tac.printStackTrace();
}
}
List<String> oldOPs = yamlConfiguration.getStringList("OP_Whitelist.Whitelist");
yamlConfiguration.set("OP_Whitelist.Whitelist", null);
convertPlayer("OP_Whitelist.Whitelist", "OP_Whitelist.Whitelist.", oldOPs, yamlConfiguration);
List<String> oldPerms = yamlConfiguration.getStringList("Permission_Whitelist.Player");
yamlConfiguration.set("Permission_Whitelist.Player", null);
convertPlayer("Permission_Whitelist.Player", "Permission_Whitelist.Whitelist.", oldPerms, yamlConfiguration);
try {
yamlConfiguration.save(config);
} catch (IOException tac) {
tac.printStackTrace();
}
}
}
private static void convertPlayer(String oldPath, String newPath, List<String> oldPlayer, YamlConfiguration yamlConfiguration) {
for (String Player : oldPlayer) {
try {
String uuid = NameHistory.getPlayerUUID(Player);
if (uuid == null) {
send.warning(Main.plugin,
"The UUID of the player §6" + Player + " §ecould not be found. Please check the config.yml and / or if the player exists / if the player name is correct!");
send.convert("config.yml", oldPath + ": " + Player, newPath + ": " + Player + ": UUID: Player UUID not found!");
yamlConfiguration.set(newPath + Player + ".UUID", "Player UUID not found!");
} else {
send.convert("config.yml", oldPath + ": " + Player, newPath + ": " + Player + ": UUID: " + uuid);
yamlConfiguration.set(newPath + Player + ".UUID", uuid);
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
private static void renameLanguages() {
String replace = Main.getPath().toString() + "/languages/";
Path messagesDEold = Paths.get(Main.getPath() + "/languages/de_DE_Messages.yml");
Path messagesDE = Paths.get(Main.getPath() + "/languages/german_messages.yml");
if(Files.exists(messagesDEold) && !Files.isDirectory(messagesDEold)) {
if(Files.exists(messagesDE) && !Files.isDirectory(messagesDE)) {
return;
}
send.convert(messagesDEold.toString().replace(replace, ""), messagesDE.toString().replace(replace, ""));
try {
Files.move(messagesDEold, messagesDE);
} catch (IOException e) {
e.printStackTrace();
}
}
Path messagesENold = Paths.get(Main.getPath() + "/languages/en_EN_Messages.yml");
Path messagesEN = Paths.get(Main.getPath() + "/languages/english_messages.yml");
if(Files.exists(messagesENold) && !Files.isDirectory(messagesENold)) {
if(Files.exists(messagesEN) && !Files.isDirectory(messagesEN)) {
return;
}
send.convert(messagesENold.toString().replace(replace, ""), messagesEN.toString().replace(replace, ""));
try {
Files.move(messagesENold, messagesEN);
} catch (IOException e) {
e.printStackTrace();
}
}
Path messagesNOold = Paths.get(Main.getPath() + "/languages/no_NO_Messages.yml");
Path messagesNO = Paths.get(Main.getPath() + "/languages/norwegian_messages.yml");
if(Files.exists(messagesNOold) && !Files.isDirectory(messagesNOold)) {
if(Files.exists(messagesNO) && !Files.isDirectory(messagesNO)) {
return;
}
send.convert(messagesNOold.toString().replace(replace, ""), messagesNO.toString().replace(replace, ""));
try {
Files.move(messagesNOold, messagesNO);
} catch (IOException e) {
e.printStackTrace();
}
}
}
}