diff options
author | snowleo <schneeleo@gmail.com> | 2012-11-03 02:06:21 +0100 |
---|---|---|
committer | snowleo <schneeleo@gmail.com> | 2012-11-03 02:06:21 +0100 |
commit | 59878a94e4cb4919300400bff6ff9c0bc78e4fd1 (patch) | |
tree | 8ed7472e5cb1bc8db37477b6aedc8102a25470b3 /Essentials2Compat | |
parent | aba2540bcd66f5f8103c97192b5d7af09aac9914 (diff) | |
download | Essentials-59878a94e4cb4919300400bff6ff9c0bc78e4fd1.tar Essentials-59878a94e4cb4919300400bff6ff9c0bc78e4fd1.tar.gz Essentials-59878a94e4cb4919300400bff6ff9c0bc78e4fd1.tar.lz Essentials-59878a94e4cb4919300400bff6ff9c0bc78e4fd1.tar.xz Essentials-59878a94e4cb4919300400bff6ff9c0bc78e4fd1.zip |
Make Timestamps more flexible
Diffstat (limited to 'Essentials2Compat')
-rw-r--r-- | Essentials2Compat/src/com/earth2me/essentials/EssentialsUpgrade.java | 730 |
1 files changed, 0 insertions, 730 deletions
diff --git a/Essentials2Compat/src/com/earth2me/essentials/EssentialsUpgrade.java b/Essentials2Compat/src/com/earth2me/essentials/EssentialsUpgrade.java deleted file mode 100644 index 02e6c918f..000000000 --- a/Essentials2Compat/src/com/earth2me/essentials/EssentialsUpgrade.java +++ /dev/null @@ -1,730 +0,0 @@ -package com.earth2me.essentials; - -import net.ess3.Warps; -import net.ess3.economy.WorthHolder; -import net.ess3.storage.ManagedFile; -import static net.ess3.I18n._; -import net.ess3.api.IEssentials; -import net.ess3.settings.Spawns; -import net.ess3.storage.StoredLocation; -import net.ess3.storage.YamlStorageWriter; -import java.io.*; -import java.math.BigInteger; -import java.security.DigestInputStream; -import java.security.MessageDigest; -import java.util.*; -import java.util.logging.Level; -import java.util.logging.Logger; -import org.bukkit.Bukkit; -import org.bukkit.Material; -import org.bukkit.World; -import org.bukkit.inventory.ItemStack; - - -@Deprecated -public class EssentialsUpgrade -{ - private final static Logger LOGGER = Logger.getLogger("Minecraft"); - private final transient IEssentials ess; - private final transient EssentialsConf doneFile; - - EssentialsUpgrade(final IEssentials essentials) - { - ess = essentials; - if (!ess.getPlugin().getDataFolder().exists()) - { - ess.getPlugin().getDataFolder().mkdirs(); - } - doneFile = new EssentialsConf(new File(ess.getPlugin().getDataFolder(), "upgrades-done.yml")); - doneFile.load(); - } - - private void moveWorthValuesToWorthYml() - { - if (doneFile.getBoolean("moveWorthValuesToWorthYml", false)) - { - return; - } - try - { - final File configFile = new File(ess.getPlugin().getDataFolder(), "config.yml"); - if (!configFile.exists()) - { - return; - } - final EssentialsConf conf = new EssentialsConf(configFile); - conf.load(); - final WorthHolder worth = new WorthHolder(ess); - boolean found = false; - for (Material mat : Material.values()) - { - final int id = mat.getId(); - final double value = conf.getDouble("worth-" + id, Double.NaN); - if (!Double.isNaN(value)) - { - found = true; - worth.setPrice(new ItemStack(mat, 1, (short)0, (byte)0), value); - } - } - if (found) - { - removeLinesFromConfig(configFile, "\\s*#?\\s*worth-[0-9]+.*", "# Worth values have been moved to worth.yml"); - } - doneFile.setProperty("moveWorthValuesToWorthYml", true); - doneFile.save(); - } - catch (Throwable e) - { - LOGGER.log(Level.SEVERE, _("upgradingFilesError"), e); - } - } - - private void moveMotdRulesToFile(String name) - { - if (doneFile.getBoolean("move" + name + "ToFile", false)) - { - return; - } - try - { - final File file = new File(ess.getPlugin().getDataFolder(), name + ".txt"); - if (file.exists()) - { - return; - } - final File configFile = new File(ess.getPlugin().getDataFolder(), "config.yml"); - if (!configFile.exists()) - { - return; - } - final EssentialsConf conf = new EssentialsConf(configFile); - conf.load(); - List<String> lines = conf.getStringList(name); - if (lines != null && !lines.isEmpty()) - { - if (!file.createNewFile()) - { - throw new IOException("Failed to create file " + file); - } - PrintWriter writer = new PrintWriter(file); - - for (String line : lines) - { - writer.println(line); - } - writer.close(); - } - doneFile.setProperty("move" + name + "ToFile", true); - doneFile.save(); - } - catch (Throwable e) - { - LOGGER.log(Level.SEVERE, _("upgradingFilesError"), e); - } - } - - private void removeLinesFromConfig(File file, String regex, String info) throws Exception - { - boolean needUpdate = false; - final BufferedReader bReader = new BufferedReader(new FileReader(file)); - final File tempFile = File.createTempFile("essentialsupgrade", ".tmp.yml", ess.getPlugin().getDataFolder()); - final BufferedWriter bWriter = new BufferedWriter(new FileWriter(tempFile)); - do - { - final String line = bReader.readLine(); - if (line == null) - { - break; - } - if (line.matches(regex)) - { - if (!needUpdate && info != null) - { - bWriter.write(info, 0, info.length()); - bWriter.newLine(); - } - needUpdate = true; - } - else - { - if (line.endsWith("\r\n")) - { - bWriter.write(line, 0, line.length() - 2); - } - else if (line.endsWith("\r") || line.endsWith("\n")) - { - bWriter.write(line, 0, line.length() - 1); - } - else - { - bWriter.write(line, 0, line.length()); - } - bWriter.newLine(); - } - } - while (true); - bReader.close(); - bWriter.close(); - if (needUpdate) - { - if (!file.renameTo(new File(file.getParentFile(), file.getName().concat("." + System.currentTimeMillis() + ".upgradebackup")))) - { - throw new Exception(_("configFileMoveError")); - } - if (!tempFile.renameTo(file)) - { - throw new Exception(_("configFileRenameError")); - } - } - else - { - tempFile.delete(); - } - } - - private void updateUsersToNewDefaultHome() - { - if (doneFile.getBoolean("updateUsersToNewDefaultHome", false)) - { - return; - } - final File userdataFolder = new File(ess.getPlugin().getDataFolder(), "userdata"); - if (!userdataFolder.exists() || !userdataFolder.isDirectory()) - { - return; - } - final File[] userFiles = userdataFolder.listFiles(); - - for (File file : userFiles) - { - if (!file.isFile() || !file.getName().endsWith(".yml")) - { - continue; - } - final EssentialsConf config = new EssentialsConf(file); - try - { - config.load(); - if (config.hasProperty("home") && !config.hasProperty("home.default")) - { - @SuppressWarnings("unchecked") - final List<Object> vals = (List<Object>)config.getProperty("home"); - if (vals == null) - { - continue; - } - World world = ess.getServer().getWorlds().get(0); - if (world != null) - { - final StoredLocation loc = new StoredLocation( - (String)vals.get(5), - ((Number)vals.get(0)).doubleValue(), - ((Number)vals.get(1)).doubleValue(), - ((Number)vals.get(2)).doubleValue(), - ((Number)vals.get(3)).floatValue(), - ((Number)vals.get(4)).floatValue()); - - final String worldName = world.getName().toLowerCase(Locale.ENGLISH); - if (worldName != null && !worldName.isEmpty()) - { - config.removeProperty("home"); - config.setProperty("home.default", worldName); - config.setProperty("home.worlds." + worldName, loc); - config.save(); - } - } - } - } - catch (RuntimeException ex) - { - LOGGER.log(Level.INFO, "File: " + file.toString()); - throw ex; - } - } - doneFile.setProperty("updateUsersToNewDefaultHome", true); - doneFile.save(); - } - - private void updateUsersPowerToolsFormat() - { - if (doneFile.getBoolean("updateUsersPowerToolsFormat", false)) - { - return; - } - final File userdataFolder = new File(ess.getPlugin().getDataFolder(), "userdata"); - if (!userdataFolder.exists() || !userdataFolder.isDirectory()) - { - return; - } - final File[] userFiles = userdataFolder.listFiles(); - - for (File file : userFiles) - { - if (!file.isFile() || !file.getName().endsWith(".yml")) - { - continue; - } - final EssentialsConf config = new EssentialsConf(file); - try - { - config.load(); - if (config.hasProperty("powertools")) - { - @SuppressWarnings("unchecked") - final Map<String, Object> powertools = config.getConfigurationSection("powertools").getValues(false); - if (powertools == null) - { - continue; - } - for (Map.Entry<String, Object> entry : powertools.entrySet()) - { - if (entry.getValue() instanceof String) - { - List<String> temp = new ArrayList<String>(); - temp.add((String)entry.getValue()); - ((Map<String, Object>)powertools).put(entry.getKey(), temp); - } - } - config.save(); - } - } - catch (RuntimeException ex) - { - LOGGER.log(Level.INFO, "File: " + file.toString()); - throw ex; - } - } - doneFile.setProperty("updateUsersPowerToolsFormat", true); - doneFile.save(); - } - - private void updateUsersHomesFormat() - { - if (doneFile.getBoolean("updateUsersHomesFormat", false)) - { - return; - } - final File userdataFolder = new File(ess.getPlugin().getDataFolder(), "userdata"); - if (!userdataFolder.exists() || !userdataFolder.isDirectory()) - { - return; - } - final File[] userFiles = userdataFolder.listFiles(); - - for (File file : userFiles) - { - if (!file.isFile() || !file.getName().endsWith(".yml")) - { - continue; - } - final EssentialsConf config = new EssentialsConf(file); - try - { - - config.load(); - if (config.hasProperty("home") && config.hasProperty("home.default")) - { - @SuppressWarnings("unchecked") - final String defworld = (String)config.getProperty("home.default"); - final StoredLocation defloc = getFakeLocation(config, "home.worlds." + defworld); - if (defloc != null) - { - config.setProperty("homes.home", defloc); - } - - Set<String> worlds = config.getConfigurationSection("home.worlds").getKeys(false); - StoredLocation loc; - String worldName; - - if (worlds == null) - { - continue; - } - for (String world : worlds) - { - if (defworld.equalsIgnoreCase(world)) - { - continue; - } - loc = getFakeLocation(config, "home.worlds." + world); - if (loc == null) - { - continue; - } - worldName = loc.getWorldName().toLowerCase(Locale.ENGLISH); - if (worldName != null && !worldName.isEmpty()) - { - config.setProperty("homes." + worldName, loc); - } - } - config.removeProperty("home"); - config.save(); - } - - } - catch (RuntimeException ex) - { - LOGGER.log(Level.INFO, "File: " + file.toString()); - throw ex; - } - } - doneFile.setProperty("updateUsersHomesFormat", true); - doneFile.save(); - } - - /* - * private void moveUsersDataToUserdataFolder() { final File usersFile = new File(ess.getDataFolder(), "users.yml"); - * if (!usersFile.exists()) { return; } final EssentialsConf usersConfig = new EssentialsConf(usersFile); - * usersConfig.load(); for (String username : usersConfig.getKeys(null)) { final User user = new User(new - * OfflinePlayer(username, ess), ess); final String nickname = usersConfig.getString(username + ".nickname"); if - * (nickname != null && !nickname.isEmpty() && !nickname.equals(username)) { user.setNickname(nickname); } final - * List<String> mails = usersConfig.getStringList(username + ".mail", null); if (mails != null && !mails.isEmpty()) - * { user.setMails(mails); } if (!user.hasHome()) { @SuppressWarnings("unchecked") final List<Object> vals = - * (List<Object>)usersConfig.getProperty(username + ".home"); if (vals != null) { World world = - * ess.getServer().getWorlds().get(0); if (vals.size() > 5) { world = getFakeWorld((String)vals.get(5)); } if (world - * != null) { user.setHome("home", new Location(world, ((Number)vals.get(0)).doubleValue(), - * ((Number)vals.get(1)).doubleValue(), ((Number)vals.get(2)).doubleValue(), ((Number)vals.get(3)).floatValue(), - * ((Number)vals.get(4)).floatValue())); } } } } usersFile.renameTo(new File(usersFile.getAbsolutePath() + ".old")); - * } - */ - private void convertWarps() - { - final File warpsFolder = new File(ess.getPlugin().getDataFolder(), "warps"); - if (!warpsFolder.exists()) - { - warpsFolder.mkdirs(); - } - final File[] listOfFiles = warpsFolder.listFiles(); - if (listOfFiles.length >= 1) - { - for (int i = 0; i < listOfFiles.length; i++) - { - final String filename = listOfFiles[i].getName(); - if (listOfFiles[i].isFile() && filename.endsWith(".dat")) - { - try - { - final BufferedReader rx = new BufferedReader(new FileReader(listOfFiles[i])); - double x, y, z; - float yaw, pitch; - String worldName; - try - { - if (!rx.ready()) - { - continue; - } - x = Double.parseDouble(rx.readLine().trim()); - if (!rx.ready()) - { - continue; - } - y = Double.parseDouble(rx.readLine().trim()); - if (!rx.ready()) - { - continue; - } - z = Double.parseDouble(rx.readLine().trim()); - if (!rx.ready()) - { - continue; - } - yaw = Float.parseFloat(rx.readLine().trim()); - if (!rx.ready()) - { - continue; - } - pitch = Float.parseFloat(rx.readLine().trim()); - worldName = rx.readLine(); - } - finally - { - rx.close(); - } - if (worldName != null) - { - final StoredLocation loc = new StoredLocation(worldName, x, y, z, yaw, pitch); - ((Warps)ess.getWarps()).setWarp(filename.substring(0, filename.length() - 4), loc); - if (!listOfFiles[i].renameTo(new File(warpsFolder, filename + ".old"))) - { - throw new Exception(_("fileRenameError", filename)); - } - } - - } - catch (Exception ex) - { - LOGGER.log(Level.SEVERE, null, ex); - } - } - } - - } - /*final File warpFile = new File(ess.getDataFolder(), "warps.txt"); - if (warpFile.exists()) - { - try - { - final BufferedReader rx = new BufferedReader(new FileReader(warpFile)); - try - { - for (String[] parts = new String[0]; rx.ready(); parts = rx.readLine().split(":")) - { - if (parts.length < 6) - { - continue; - } - final String name = parts[0]; - final double x = Double.parseDouble(parts[1].trim()); - final double y = Double.parseDouble(parts[2].trim()); - final double z = Double.parseDouble(parts[3].trim()); - final float yaw = Float.parseFloat(parts[4].trim()); - final float pitch = Float.parseFloat(parts[5].trim()); - if (name.isEmpty()) - { - continue; - } - World w = null; - for (World world : ess.getServer().getWorlds()) - { - if (world.getEnvironment() != World.Environment.NETHER) - { - w = world; - break; - } - } - final Location loc = new Location(name, x, y, z, yaw, pitch); - ess.getWarps().setWarp(name, loc); - if (!warpFile.renameTo(new File(ess.getDataFolder(), "warps.txt.old"))) - { - throw new Exception(_("fileRenameError", "warps.txt")); - } - } - } - finally - { - rx.close(); - } - } - catch (Exception ex) - { - LOGGER.log(Level.SEVERE, null, ex); - } - }*/ - } - - /* - * private void sanitizeAllUserFilenames() { if (doneFile.getBoolean("sanitizeAllUserFilenames", false)) { return; } - * final File usersFolder = new File(ess.getDataFolder(), "userdata"); if (!usersFolder.exists()) { return; } final - * File[] listOfFiles = usersFolder.listFiles(); for (int i = 0; i < listOfFiles.length; i++) { final String - * filename = listOfFiles[i].getName(); if (!listOfFiles[i].isFile() || !filename.endsWith(".yml")) { continue; } - * final String sanitizedFilename = Util.sanitizeFileName(filename.substring(0, filename.length() - 4)) + ".yml"; if - * (sanitizedFilename.equals(filename)) { continue; } final File tmpFile = new File(listOfFiles[i].getParentFile(), - * sanitizedFilename + ".tmp"); final File newFile = new File(listOfFiles[i].getParentFile(), sanitizedFilename); if - * (!listOfFiles[i].renameTo(tmpFile)) { LOGGER.log(Level.WARNING, _("userdataMoveError", filename, - * sanitizedFilename)); continue; } if (newFile.exists()) { LOGGER.log(Level.WARNING, _("duplicatedUserdata", - * filename, sanitizedFilename)); continue; } if (!tmpFile.renameTo(newFile)) { LOGGER.log(Level.WARNING, - * _("userdataMoveBackError", sanitizedFilename, sanitizedFilename)); } } - * doneFile.setProperty("sanitizeAllUserFilenames", true); doneFile.save(); } - */ - /* - * private World getFakeWorld(final String name) { final File bukkitDirectory = - * ess.getDataFolder().getParentFile().getParentFile(); final File worldDirectory = new File(bukkitDirectory, name); - * if (worldDirectory.exists() && worldDirectory.isDirectory()) { return new FakeWorld(worldDirectory.getName(), - * World.Environment.NORMAL); } return null; - } - */ - public StoredLocation getFakeLocation(EssentialsConf config, String path) - { - String worldName = config.getString((path != null ? path + "." : "") + "world"); - if (worldName == null || worldName.isEmpty()) - { - return null; - } - return new StoredLocation(worldName, - config.getDouble((path != null ? path + "." : "") + "x", 0), - config.getDouble((path != null ? path + "." : "") + "y", 0), - config.getDouble((path != null ? path + "." : "") + "z", 0), - (float)config.getDouble((path != null ? path + "." : "") + "yaw", 0), - (float)config.getDouble((path != null ? path + "." : "") + "pitch", 0)); - } - - private void deleteOldItemsCsv() - { - if (doneFile.getBoolean("deleteOldItemsCsv", false)) - { - return; - } - final File file = new File(ess.getPlugin().getDataFolder(), "items.csv"); - if (file.exists()) - { - try - { - final Set<BigInteger> oldconfigs = new HashSet<BigInteger>(); - oldconfigs.add(new BigInteger("66ec40b09ac167079f558d1099e39f10", 16)); // sep 1 - oldconfigs.add(new BigInteger("34284de1ead43b0bee2aae85e75c041d", 16)); // crlf - oldconfigs.add(new BigInteger("c33bc9b8ee003861611bbc2f48eb6f4f", 16)); // jul 24 - oldconfigs.add(new BigInteger("6ff17925430735129fc2a02f830c1daa", 16)); // crlf - - MessageDigest digest = ManagedFile.getDigest(); - final BufferedInputStream bis = new BufferedInputStream(new FileInputStream(file)); - final DigestInputStream dis = new DigestInputStream(bis, digest); - final byte[] buffer = new byte[1024]; - try - { - while (dis.read(buffer) != -1) - { - } - } - finally - { - dis.close(); - } - - BigInteger hash = new BigInteger(1, digest.digest()); - if (oldconfigs.contains(hash) && !file.delete()) - { - throw new IOException("Could not delete file " + file.toString()); - } - doneFile.setProperty("deleteOldItemsCsv", true); - doneFile.save(); - } - catch (IOException ex) - { - Bukkit.getLogger().log(Level.SEVERE, ex.getMessage(), ex); - } - } - } - - private void updateSpawnsToNewSpawnsConfig() - { - if (doneFile.getBoolean("updateSpawnsToNewSpawnsConfig", false)) - { - return; - } - final File configFile = new File(ess.getPlugin().getDataFolder(), "spawn.yml"); - if (configFile.exists()) - { - - final EssentialsConf config = new EssentialsConf(configFile); - try - { - config.load(); - if (!config.hasProperty("spawns")) - { - final Spawns spawns = new Spawns(); - Set<String> keys = config.getKeys(false); - for (String group : keys) - { - StoredLocation loc = getFakeLocation(config, group); - spawns.getSpawns().put(group.toLowerCase(Locale.ENGLISH), loc); - } - if (!configFile.renameTo(new File(ess.getPlugin().getDataFolder(), "spawn.yml.old"))) - { - throw new Exception(_("fileRenameError", "spawn.yml")); - } - PrintWriter writer = new PrintWriter(configFile); - try - { - new YamlStorageWriter(writer).save(spawns); - } - finally - { - writer.close(); - } - } - } - catch (Exception ex) - { - Bukkit.getLogger().log(Level.SEVERE, ex.getMessage(), ex); - } - } - doneFile.setProperty("updateSpawnsToNewSpawnsConfig", true); - doneFile.save(); - } - - private void updateJailsToNewJailsConfig() - { - if (doneFile.getBoolean("updateJailsToNewJailsConfig", false)) - { - return; - } - final File configFile = new File(ess.getPlugin().getDataFolder(), "jail.yml"); - if (configFile.exists()) - { - - final EssentialsConf config = new EssentialsConf(configFile); - try - { - config.load(); - if (!config.hasProperty("jails")) - { - final net.ess3.settings.Jails jails = new net.ess3.settings.Jails(); - Set<String> keys = config.getKeys(false); - for (String jailName : keys) - { - StoredLocation loc = getFakeLocation(config, jailName); - jails.getJails().put(jailName.toLowerCase(Locale.ENGLISH), loc); - } - if (!configFile.renameTo(new File(ess.getPlugin().getDataFolder(), "jail.yml.old"))) - { - throw new Exception(_("fileRenameError", "jail.yml")); - } - PrintWriter writer = new PrintWriter(configFile); - try - { - new YamlStorageWriter(writer).save(jails); - } - finally - { - writer.close(); - } - } - } - catch (Exception ex) - { - Bukkit.getLogger().log(Level.SEVERE, ex.getMessage(), ex); - } - } - doneFile.setProperty("updateJailsToNewJailsConfig", true); - doneFile.save(); - } - - private void warnMetrics() - { - if (doneFile.getBoolean("warnMetrics", false)) - { - return; - } - //todo - metrics - // ess.getSettings().setMetricsEnabled(false); - doneFile.setProperty("warnMetrics", true); - doneFile.save(); - } - - public void beforeSettings() - { - if (!ess.getPlugin().getDataFolder().exists()) - { - ess.getPlugin().getDataFolder().mkdirs(); - } - moveWorthValuesToWorthYml(); - moveMotdRulesToFile("motd"); - moveMotdRulesToFile("rules"); - } - - public void afterSettings() - { - //TODO? - //sanitizeAllUserFilenames(); - updateUsersToNewDefaultHome(); - //moveUsersDataToUserdataFolder(); - convertWarps(); - updateUsersPowerToolsFormat(); - updateUsersHomesFormat(); - deleteOldItemsCsv(); - updateSpawnsToNewSpawnsConfig(); - updateJailsToNewJailsConfig(); - warnMetrics(); - } -} |