Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package net.craftersland.customenderchest.commands;
- import net.craftersland.customenderchest.*;
- import org.bukkit.command.*;
- import java.io.*;
- import org.bukkit.*;
- import java.util.*;
- import org.bukkit.configuration.file.*;
- import org.bukkit.inventory.*;
- import org.bukkit.entity.*;
- import org.bukkit.plugin.*;
- public class FileToMysqlCmd
- {
- private EnderChest pl;
- public FileToMysqlCmd(final EnderChest plugin) {
- this.pl = plugin;
- }
- public void runCmd(final CommandSender sender, final boolean overwrite) {
- if (this.pl.getConfigHandler().getString("database.typeOfDatabase").equalsIgnoreCase("mysql")) {
- if (this.pl.getMysqlSetup().getConnection() != null) {
- final File dataFolder = new File("plugins" + System.getProperty("file.separator") + EnderChest.pluginName + System.getProperty("file.separator") + "PlayerData");
- if (dataFolder.exists()) {
- sender.sendMessage(this.pl.getConfigHandler().getStringWithColor("chatMessages.flatfileImport-started"));
- Bukkit.getScheduler().runTaskAsynchronously((Plugin)this.pl, (Runnable)new Runnable() {
- @Override
- public void run() {
- final File[] fileList = dataFolder.listFiles();
- EnderChest.log.info("Starting importing data from flatfile to mysql! " + fileList.length + " files found...");
- int progress = 0;
- File[] array;
- for (int length = (array = fileList).length, j = 0; j < length; ++j) {
- final File f = array[j];
- ++progress;
- try {
- if (f.getName().endsWith(".yml")) {
- final UUID playerUUID = UUID.fromString(f.getName().substring(0, 36));
- if (!FileToMysqlCmd.this.pl.getStorageInterface().hasDataFile(playerUUID)) {
- final FileConfiguration ymlFormat = (FileConfiguration)YamlConfiguration.loadConfiguration(f);
- final int invSize = ymlFormat.getInt("EnderChestSize");
- final Inventory inv = Bukkit.createInventory((InventoryHolder)null, invSize);
- final ArrayList<ItemStack> items = new ArrayList<ItemStack>();
- for (int i = 0; i < inv.getSize(); ++i) {
- final ItemStack item = ymlFormat.getItemStack("EnderChestInventory." + i);
- items.add(item);
- }
- final ItemStack[] itemsList = items.toArray(new ItemStack[items.size()]);
- inv.setContents(itemsList);
- items.clear();
- FileToMysqlCmd.this.pl.getStorageInterface().saveEnderChest(playerUUID, inv, ymlFormat.getString("PlayerLastName"), invSize);
- }
- else if (overwrite) {
- final FileConfiguration ymlFormat = (FileConfiguration)YamlConfiguration.loadConfiguration(f);
- final int invSize = ymlFormat.getInt("EnderChestSize");
- final Inventory inv = Bukkit.createInventory((InventoryHolder)null, invSize);
- final ArrayList<ItemStack> items = new ArrayList<ItemStack>();
- for (int i = 0; i < inv.getSize(); ++i) {
- final ItemStack item = ymlFormat.getItemStack("EnderChestInventory." + i);
- items.add(item);
- }
- final ItemStack[] itemsList = items.toArray(new ItemStack[items.size()]);
- inv.setContents(itemsList);
- items.clear();
- FileToMysqlCmd.this.pl.getStorageInterface().saveEnderChest(playerUUID, inv);
- final Player p = Bukkit.getPlayer(playerUUID);
- if (p != null && p.isOnline()) {
- final String enderChestTitle = FileToMysqlCmd.this.pl.getEnderChestUtils().getTitle(p);
- final Inventory invT = Bukkit.getServer().createInventory((InventoryHolder)p, (int)FileToMysqlCmd.this.pl.getStorageInterface().loadSize(playerUUID), enderChestTitle);
- FileToMysqlCmd.this.pl.getStorageInterface().loadEnderChest(p, invT);
- FileToMysqlCmd.this.pl.getDataHandler().setData(p.getUniqueId(), invT);
- }
- }
- }
- }
- catch (Exception e) {
- EnderChest.log.warning("Failed to import file: " + f.getName() + " .Error: " + e.getMessage());
- }
- EnderChest.log.info("Import progress: " + progress + " / " + fileList.length);
- }
- EnderChest.log.info("Data import is complete!");
- }
- });
- }
- else {
- sender.sendMessage(this.pl.getConfigHandler().getStringWithColor("chatMessages.flatfileImport-datafolder"));
- }
- }
- else {
- sender.sendMessage(this.pl.getConfigHandler().getStringWithColor("chatMessages.flatfileImport-connection"));
- }
- }
- else {
- sender.sendMessage(this.pl.getConfigHandler().getStringWithColor("chatMessages.flatfileImport-mysql"));
- }
- }
- }
Add Comment
Please, Sign In to add comment