package de.tobiyas.racesandclasses.saving.dataconverter.v1_1_11; import java.io.File; import java.util.Collection; import java.util.UUID; import de.tobiyas.racesandclasses.RacesAndClasses; import de.tobiyas.racesandclasses.saving.PlayerSavingData; import de.tobiyas.racesandclasses.saving.dataconverter.Converter; import de.tobiyas.racesandclasses.saving.serializer.DatabasePlayerDataSerializer; import de.tobiyas.racesandclasses.saving.serializer.YAMLPlayerDataSerializer; import de.tobiyas.util.file.FileUtils; public class YMLToDatabaseConverter implements Converter { @Override public void convert() { RacesAndClasses plugin = RacesAndClasses.getPlugin(); DatabasePlayerDataSerializer dbSerializer = new DatabasePlayerDataSerializer(plugin); YAMLPlayerDataSerializer ymlSerializer = new YAMLPlayerDataSerializer(plugin); File toConvertDir = new File(plugin.getDataFolder(), "PlayerDataYML"); Collection<File> files = FileUtils.getAllFiles(toConvertDir); //Convert: System.out.println("Converting " + files.size() + " files to DB."); for(File file : files){ if(!file.getName().endsWith(".yml")){ file.delete(); continue; } try{ UUID id = UUID.fromString(file.getName().replace(".yml", "")); PlayerSavingData data = ymlSerializer.loadDataNow(id); dbSerializer.saveData(data, true); file.delete(); }catch(Throwable exp){} } toConvertDir.delete(); } @Override public boolean isApplyable() { RacesAndClasses plugin = RacesAndClasses.getPlugin(); if(!plugin.getConfigManager().getGeneralConfig().isConfig_savePlayerDataToDB()) return false; if(!plugin.getConfigManager().getGeneralConfig().isConfig_convert_toDB_orFile()) return false; File toConvertDir = new File(plugin.getDataFolder(), "PlayerDataYML"); if(!toConvertDir.exists()) return false; DatabasePlayerDataSerializer dbSerializer = new DatabasePlayerDataSerializer(plugin); if(!dbSerializer.isFunctional()) return false; return true; } @Override public int getVersion() { return 0x1010a; } }