Guest User

Untitled

a guest
Dec 24th, 2018
64
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.33 KB | None | 0 0
  1. package net.craftersland.customenderchest.commands;
  2.  
  3. import net.craftersland.customenderchest.*;
  4. import org.bukkit.command.*;
  5. import java.io.*;
  6. import org.bukkit.*;
  7. import java.util.*;
  8. import org.bukkit.configuration.file.*;
  9. import org.bukkit.inventory.*;
  10. import org.bukkit.entity.*;
  11. import org.bukkit.plugin.*;
  12.  
  13. public class FileToMysqlCmd
  14. {
  15. private EnderChest pl;
  16.  
  17. public FileToMysqlCmd(final EnderChest plugin) {
  18. this.pl = plugin;
  19. }
  20.  
  21. public void runCmd(final CommandSender sender, final boolean overwrite) {
  22. if (this.pl.getConfigHandler().getString("database.typeOfDatabase").equalsIgnoreCase("mysql")) {
  23. if (this.pl.getMysqlSetup().getConnection() != null) {
  24. final File dataFolder = new File("plugins" + System.getProperty("file.separator") + EnderChest.pluginName + System.getProperty("file.separator") + "PlayerData");
  25. if (dataFolder.exists()) {
  26. sender.sendMessage(this.pl.getConfigHandler().getStringWithColor("chatMessages.flatfileImport-started"));
  27. Bukkit.getScheduler().runTaskAsynchronously((Plugin)this.pl, (Runnable)new Runnable() {
  28. @Override
  29. public void run() {
  30. final File[] fileList = dataFolder.listFiles();
  31. EnderChest.log.info("Starting importing data from flatfile to mysql! " + fileList.length + " files found...");
  32. int progress = 0;
  33. File[] array;
  34. for (int length = (array = fileList).length, j = 0; j < length; ++j) {
  35. final File f = array[j];
  36. ++progress;
  37. try {
  38. if (f.getName().endsWith(".yml")) {
  39. final UUID playerUUID = UUID.fromString(f.getName().substring(0, 36));
  40. if (!FileToMysqlCmd.this.pl.getStorageInterface().hasDataFile(playerUUID)) {
  41. final FileConfiguration ymlFormat = (FileConfiguration)YamlConfiguration.loadConfiguration(f);
  42. final int invSize = ymlFormat.getInt("EnderChestSize");
  43. final Inventory inv = Bukkit.createInventory((InventoryHolder)null, invSize);
  44. final ArrayList<ItemStack> items = new ArrayList<ItemStack>();
  45. for (int i = 0; i < inv.getSize(); ++i) {
  46. final ItemStack item = ymlFormat.getItemStack("EnderChestInventory." + i);
  47. items.add(item);
  48. }
  49. final ItemStack[] itemsList = items.toArray(new ItemStack[items.size()]);
  50. inv.setContents(itemsList);
  51. items.clear();
  52. FileToMysqlCmd.this.pl.getStorageInterface().saveEnderChest(playerUUID, inv, ymlFormat.getString("PlayerLastName"), invSize);
  53. }
  54. else if (overwrite) {
  55. final FileConfiguration ymlFormat = (FileConfiguration)YamlConfiguration.loadConfiguration(f);
  56. final int invSize = ymlFormat.getInt("EnderChestSize");
  57. final Inventory inv = Bukkit.createInventory((InventoryHolder)null, invSize);
  58. final ArrayList<ItemStack> items = new ArrayList<ItemStack>();
  59. for (int i = 0; i < inv.getSize(); ++i) {
  60. final ItemStack item = ymlFormat.getItemStack("EnderChestInventory." + i);
  61. items.add(item);
  62. }
  63. final ItemStack[] itemsList = items.toArray(new ItemStack[items.size()]);
  64. inv.setContents(itemsList);
  65. items.clear();
  66. FileToMysqlCmd.this.pl.getStorageInterface().saveEnderChest(playerUUID, inv);
  67. final Player p = Bukkit.getPlayer(playerUUID);
  68. if (p != null && p.isOnline()) {
  69. final String enderChestTitle = FileToMysqlCmd.this.pl.getEnderChestUtils().getTitle(p);
  70. final Inventory invT = Bukkit.getServer().createInventory((InventoryHolder)p, (int)FileToMysqlCmd.this.pl.getStorageInterface().loadSize(playerUUID), enderChestTitle);
  71. FileToMysqlCmd.this.pl.getStorageInterface().loadEnderChest(p, invT);
  72. FileToMysqlCmd.this.pl.getDataHandler().setData(p.getUniqueId(), invT);
  73. }
  74. }
  75. }
  76. }
  77. catch (Exception e) {
  78. EnderChest.log.warning("Failed to import file: " + f.getName() + " .Error: " + e.getMessage());
  79. }
  80. EnderChest.log.info("Import progress: " + progress + " / " + fileList.length);
  81. }
  82. EnderChest.log.info("Data import is complete!");
  83. }
  84. });
  85. }
  86. else {
  87. sender.sendMessage(this.pl.getConfigHandler().getStringWithColor("chatMessages.flatfileImport-datafolder"));
  88. }
  89. }
  90. else {
  91. sender.sendMessage(this.pl.getConfigHandler().getStringWithColor("chatMessages.flatfileImport-connection"));
  92. }
  93. }
  94. else {
  95. sender.sendMessage(this.pl.getConfigHandler().getStringWithColor("chatMessages.flatfileImport-mysql"));
  96. }
  97. }
  98. }
Add Comment
Please, Sign In to add comment