Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- private HashMap<String, Inventory> inventoryHashMap = new HashMap<>();
- public void loadPlayer(Player player) {
- ExecutorService executorService = Executors.newFixedThreadPool(2);
- executorService.submit(() -> {
- // BEIM JOIN(Hier wird das Inventory aus der Datenbank runtergeladen und in der Hashmap gepackt.
- if (exsistsPlayer(player.getUniqueId().toString())) {
- Inventory inv = getInventoryFromBase64Code(getDataFromMySQL(player), player);
- inventoryHashMap.put(player.getUniqueId().toString(), inv);
- } else {
- Inventory inventory = getDefaultInventory(player);
- inventoryHashMap.put(player.getUniqueId().toString(), inventory);
- }
- // inventoryHashMap.put(player.getUniqueId().toString(), getInventoryFromMySQL(player));
- });
- }
- public void uploadPlayer(Player player) {
- // BEIM QUITTEN(Hier wird das Inventory aus der HashMap wieder hochgeladen beim quitten)
- ExecutorService executorService = Executors.newFixedThreadPool(2);
- executorService.submit(() -> {
- if (!exsistsPlayer(player.getUniqueId().toString())) {
- createPlayer(player.getUniqueId().toString(), toBase64(getInventory(player)));
- inventoryHashMap.remove(player.getUniqueId().toString());
- } else {
- updateDataStringToMySQL(player.getUniqueId().toString(), toBase64(getInventory(player)));
- inventoryHashMap.remove(player.getUniqueId().toString());
- }
- });
- }
- public Inventory getInventory(Player player) {
- // Du bekommst das Inventory aus der HashMap..
- if (inventoryHashMap.containsKey(player.getUniqueId().toString())) {
- return inventoryHashMap.get(player.getUniqueId().toString());
- }
- return null;
- }
- public void updateInventory(Player player, Inventory inventory) {
- // WENN DER SPIER DAS INVENTORY VERÄNDERT HAT wird es in der Hashmap geupdatet und später wenn der Spieler den Server verlasst wird das Inventory auf die Datenbank hochgeladen lo, huso
- inventoryHashMap.put(player.getUniqueId().toString(), inventory);
- }
- private String getDataFromMySQL(Player player) {
- try {
- PreparedStatement preparedStatement = MySQL.connection.prepareStatement("SELECT * FROM knockwars_inventory WHERE uuid = ?");
- preparedStatement.setString(1, player.getUniqueId().toString());
- ResultSet resultSet = preparedStatement.executeQuery();
- if (resultSet.next()) {
- return resultSet.getString("inventory");
- }
- } catch (SQLException e) {
- e.printStackTrace();
- }
- return "null";
- }
- private void updateDataStringToMySQL(String uuid, String data) {
- try {
- PreparedStatement preparedStatement = MySQL.connection.prepareStatement("UPDATE knockwars_inventory SET inventory = ? WHERE uuid = ? ");
- preparedStatement.setString(1, data);
- preparedStatement.setString(2, uuid);
- preparedStatement.executeUpdate();
- } catch (SQLException e) {
- e.printStackTrace();
- }
- }
- private boolean exsistsPlayer(String uuid) {
- try {
- PreparedStatement preparedStatement = MySQL.connection.prepareStatement("SELECT * FROM knockwars_inventory WHERE uuid = ?");
- preparedStatement.setString(1, uuid);
- ResultSet resultSet = preparedStatement.executeQuery();
- if (resultSet.next()) {
- return true;
- }
- } catch (SQLException e) {
- e.printStackTrace();
- }
- return false;
- }
- private void createPlayer(String uuid, String data) {
- try {
- PreparedStatement preparedStatement = MySQL.connection.prepareStatement("INSERT INTO knockwars_inventory (uuid,inventory) VALUES (?,?)");
- preparedStatement.setString(1, uuid);
- preparedStatement.setString(2, data);
- preparedStatement.executeUpdate();
- } catch (SQLException e) {
- e.printStackTrace();
- }
- }
- public void createTable() {
- //uuid,inv
- try {
- PreparedStatement preparedStatement = MySQL.connection.prepareStatement("CREATE TABLE IF NOT EXISTS knockwars_inventory(uuid VARCHAR(64),inventory TEXT(20000))");
- preparedStatement.execute();
- } catch (SQLException e) {
- e.printStackTrace();
- }
- }
- public String toBase64(Inventory inv) {
- try {
- ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
- BukkitObjectOutputStream dataOutput = new BukkitObjectOutputStream(outputStream);
- dataOutput.writeInt(inv.getSize());
- for (int i = 0; i < inv.getSize(); i++) {
- dataOutput.writeObject(inv.getItem(i));
- }
- dataOutput.close();
- return Base64Coder.encodeLines(outputStream.toByteArray());
- } catch (Exception ex) {
- ex.printStackTrace();
- }
- return null;
- }
- public Inventory getInventoryFromBase64Code(String data, Player p) {
- try {
- ByteArrayInputStream inputStream = new ByteArrayInputStream(Base64Coder.decodeLines(data));
- BukkitObjectInputStream dataInput = new BukkitObjectInputStream(inputStream);
- Inventory inv = Bukkit.getServer().createInventory(p, dataInput.readInt(), "Sortiere dein Inventar");
- for (int i = 0; i < inv.getSize(); i++) {
- inv.setItem(i, (ItemStack) dataInput.readObject());
- }
- dataInput.close();
- return inv;
- } catch (Exception ex) {
- ex.printStackTrace();
- }
- return null;
- }
- public Inventory getDefaultInventory(Player player) {
- Inventory sortieren2Inv = KnockWars.getInstance().invSortieren2;
- sortieren2Inv = Bukkit.getServer().createInventory(player, 9, "Sortiere dein Inventar");
- ItemStack item1 = new ItemStack(Material.STICK);
- ItemMeta meta1 = item1.getItemMeta();
- meta1.addEnchant(Enchantment.KNOCKBACK, 1, true);
- meta1.setDisplayName("§fKnüpel");
- item1.setItemMeta(meta1);
- ItemStack item3 = new ItemStack(Material.SANDSTONE, 64);
- ItemMeta meta3 = item3.getItemMeta();
- item3.setItemMeta(meta3);
- ItemStack item4 = new ItemStack(Material.SANDSTONE, 64);
- ItemMeta meta4 = item4.getItemMeta();
- item4.setItemMeta(meta4);
- sortieren2Inv.setItem(1, ItemBuilder.createItem1(257, (short) 0, "§fSpitzhacke", false, new String[0]));
- sortieren2Inv.setItem(2, item3);
- sortieren2Inv.setItem(3, item4);
- sortieren2Inv.setItem(0, item1);
- return sortieren2Inv;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement