From c5bc880ab11ed9da1ddfe93594249ef6f53e08a2 Mon Sep 17 00:00:00 2001 From: JaTiTV Date: Tue, 19 Apr 2022 18:03:44 +0200 Subject: [PATCH] Add SQLITE & Bugfix Add: SQLITE as storage medium Change: The MYSQL connection has been slightly optimized Fix: The command 'gui-item slot ' dat not set the item to the right place? --- CommandGUI V2/pom.xml | 2 +- .../Spigot/Listener/GUI_Listener.java | 52 +++++-- .../Listener/UseItem_Listener/Events.java | 2 +- .../Spigot/cmdManagement/Commands.java | 7 +- .../register/RegisterCommand.java | 2 +- .../Spigot/config/config/ConfigCreate.java | 2 +- .../Spigot/config/config/SelectConfig.java | 5 +- .../commandguiv2/Spigot/gui/OpenGUI.java | 12 +- .../commandguiv2/Spigot/system/Load.java | 28 +++- .../commandguiv2/Spigot/system/Metrics.java | 1 - .../Spigot/system/database/SQLITE.java | 135 ++++++++++++++++++ .../system/database/Select_Database.java | 121 +++++++++++----- .../Spigot/system/database/StorageType.java | 7 + 13 files changed, 309 insertions(+), 67 deletions(-) create mode 100644 CommandGUI V2/src/main/java/de/jatitv/commandguiv2/Spigot/system/database/SQLITE.java create mode 100644 CommandGUI V2/src/main/java/de/jatitv/commandguiv2/Spigot/system/database/StorageType.java diff --git a/CommandGUI V2/pom.xml b/CommandGUI V2/pom.xml index 2956aaa..79fda5a 100644 --- a/CommandGUI V2/pom.xml +++ b/CommandGUI V2/pom.xml @@ -6,7 +6,7 @@ net.t2code CommandGUI_V2 - 2.7.0_Snapshot-3 + 2.7.0_Snapshot-5 jar CommandGUI diff --git a/CommandGUI V2/src/main/java/de/jatitv/commandguiv2/Spigot/Listener/GUI_Listener.java b/CommandGUI V2/src/main/java/de/jatitv/commandguiv2/Spigot/Listener/GUI_Listener.java index 419a162..5b8d602 100644 --- a/CommandGUI V2/src/main/java/de/jatitv/commandguiv2/Spigot/Listener/GUI_Listener.java +++ b/CommandGUI V2/src/main/java/de/jatitv/commandguiv2/Spigot/Listener/GUI_Listener.java @@ -30,6 +30,7 @@ import org.bukkit.scheduler.BukkitRunnable; import java.io.File; import java.io.IOException; +import java.util.Objects; public class GUI_Listener implements Listener { @@ -53,15 +54,16 @@ public class GUI_Listener implements Listener { if (e.getCurrentItem().getType() == ItemVersion.getHead() || e.getCurrentItem().getType() == ItemVersion.getGreenWool().getType() || e.getCurrentItem().getType() == ItemVersion.getRedWool().getType() || e.getCurrentItem().getType() == Material.valueOf(function.item.toUpperCase().replace(".", "_"))) { - if (slot.permission || !player.hasPermission(slot.permissionToUse)) { + if (slot.permission && !player.hasPermission(slot.permissionToUse)) { player.sendMessage(SelectMessages.NoPermissionForItem.replace("[item]", Replace.replace(prefix, function.name)) .replace("[perm]", slot.permissionToUse)); continue; } if (!slot.enable) continue; - if (!e.getCurrentItem().getItemMeta().getDisplayName().equals(Replace.replace(prefix, function.name))) continue; + send.debugmsg(Main.plugin, function.name); if (function.cost_Enable) { if (function.command_Enable || function.message_Enable || function.openGUI_Enable || function.serverChange) { + if (!Vault.buy(prefix, player, function.price)) { new BukkitRunnable() { @Override @@ -78,7 +80,9 @@ public class GUI_Listener implements Listener { execute(function, slot, player, e, gui); } } - } else execute(function, slot, player, e, gui); + } else { + execute(function, slot, player, e, gui); + } } } } @@ -86,8 +90,8 @@ public class GUI_Listener implements Listener { } private static void execute(Function function, Slot slot, Player player, InventoryClickEvent e, Gui gui) { - if (function.togglePermission) togglePerm(function, player); - if (function.toggleUseItem) toggleUseItem(player); + if (function.togglePermission) togglePerm(function, gui, player); + if (function.toggleUseItem) toggleUseItem(player, gui); if (function.command_Enable) command(function, player); if (function.openGUI_Enable) openGUI(function, player); if (function.message_Enable) message(function, player); @@ -131,7 +135,7 @@ public class GUI_Listener implements Listener { new BukkitRunnable() { @Override public void run() { - OpenGUI.openGUI(player, slot.openGUI); + OpenGUI.openGUI(player, slot.openGUI, true); } }.runTaskLater(plugin, 1L); } @@ -227,7 +231,6 @@ public class GUI_Listener implements Listener { if (!function.customSound_NoSound) { try { player.playSound(player.getLocation(), Sound.valueOf(function.customSound_Sound.toUpperCase().replace(".", "_")), 3, 1); - } catch (Exception e1) { send.console("§4\n§4\n§4\n" + SelectMessages.SoundNotFound.replace("[prefix]", prefix) .replace("[sound]", "§6GUI: §e" + Replace.replace(prefix, gui.GUI_Name) + "§r §6Slot: §e" + slot.slot + " §6CustomSound: §9" + function.customSound_Sound)); @@ -237,16 +240,39 @@ public class GUI_Listener implements Listener { } else player.playSound(player.getLocation(), SelectConfig.Sound_Click, 3, 1); } - private static void togglePerm(Function slot, Player player) { - if (player.hasPermission(slot.togglePermissionPerm)) { - Bukkit.getServer().dispatchCommand(Bukkit.getServer().getConsoleSender(), SelectConfig.togglePermFalse.replace("[player]", player.getName()).replace("[perm]", slot.togglePermissionPerm)); + private static void togglePerm(Function function, Gui gui, Player player) { + if (player.hasPermission(function.togglePermissionPerm)) { + Bukkit.getServer().dispatchCommand(Bukkit.getServer().getConsoleSender(), SelectConfig.togglePermFalse.replace("[player]", player.getName()).replace("[perm]", function.togglePermissionPerm)); + new BukkitRunnable() { + @Override + public void run() { + player.closeInventory(); + OpenGUI.openGUI(player, gui.Command_Command, false); + } + }.runTaskLater(plugin, 4L); } else - Bukkit.getServer().dispatchCommand(Bukkit.getServer().getConsoleSender(), SelectConfig.togglePermTrue.replace("[player]", player.getName()).replace("[perm]", slot.togglePermissionPerm)); + Bukkit.getServer().dispatchCommand(Bukkit.getServer().getConsoleSender(), SelectConfig.togglePermTrue.replace("[player]", player.getName()).replace("[perm]", function.togglePermissionPerm)); + new BukkitRunnable() { + @Override + public void run() { + player.closeInventory(); + OpenGUI.openGUI(player, gui.Command_Command, false); + } + }.runTaskLater(plugin, 4L); } - private static void toggleUseItem(Player player) { + private static void toggleUseItem(Player player, Gui gui) { if (Events.useItemHashMap.get(player)) { Commands.itemOff(player); - } else Commands.itemOn(player); + } else { + Commands.itemOn(player); + } + new BukkitRunnable() { + @Override + public void run() { + player.closeInventory(); + OpenGUI.openGUI(player, gui.Command_Command, false); + } + }.runTaskLater(plugin, 2L); } } \ No newline at end of file diff --git a/CommandGUI V2/src/main/java/de/jatitv/commandguiv2/Spigot/Listener/UseItem_Listener/Events.java b/CommandGUI V2/src/main/java/de/jatitv/commandguiv2/Spigot/Listener/UseItem_Listener/Events.java index 0a3b85f..8a9cb3f 100644 --- a/CommandGUI V2/src/main/java/de/jatitv/commandguiv2/Spigot/Listener/UseItem_Listener/Events.java +++ b/CommandGUI V2/src/main/java/de/jatitv/commandguiv2/Spigot/Listener/UseItem_Listener/Events.java @@ -201,7 +201,7 @@ public class Events implements Listener { } } if (!SelectConfig.UseItem_Permission || p.hasPermission("commandgui.useitem")) { - OpenGUI.openGUI(p, SelectConfig.UseItem_OpenGUI); + OpenGUI.openGUI(p, SelectConfig.UseItem_OpenGUI, true); } else { p.sendMessage(SelectMessages.NoPermissionForUseItem.replace("[perm]", "commandgui.useitem") .replace("[gui]", SelectConfig.UseItem_OpenGUI)); diff --git a/CommandGUI V2/src/main/java/de/jatitv/commandguiv2/Spigot/cmdManagement/Commands.java b/CommandGUI V2/src/main/java/de/jatitv/commandguiv2/Spigot/cmdManagement/Commands.java index 4de55f9..3ff09a8 100644 --- a/CommandGUI V2/src/main/java/de/jatitv/commandguiv2/Spigot/cmdManagement/Commands.java +++ b/CommandGUI V2/src/main/java/de/jatitv/commandguiv2/Spigot/cmdManagement/Commands.java @@ -186,7 +186,7 @@ public class Commands { send.player(player, SelectMessages.ItemSlot_wrongValue); return; } - ItemStack itm1 = player.getInventory().getItem(setSlot - 1); + ItemStack itm1 = player.getInventory().getItem(setSlot + 1); if (itm1 != null) { if (itm1.getType() == Material.valueOf(SelectConfig.UseItem_Material) || itm1.getType() == ItemVersion.getHead()) { if (itm1.getItemMeta().getDisplayName().equals(SelectConfig.UseItem_Name)) { @@ -212,6 +212,7 @@ public class Commands { } } Select_Database.setSlot(player, setSlot); + Events.useItemSlotHashMap.replace(player,setSlot); if (Events.useItemHashMap.get(player)) { Give_UseItem.onGive(player); } @@ -224,7 +225,7 @@ public class Commands { Gui gui = Main.guiHashMap.get(SelectConfig.DefaultGUI); if (gui.GUI_Enable || player.hasPermission("commandgui.bypass")) { if (!gui.Command_Permission_Enable || player.hasPermission("commandgui.command") || player.hasPermission("commandgui.bypass")) { - OpenGUI.openGUI(player, SelectConfig.DefaultGUI); + OpenGUI.openGUI(player, SelectConfig.DefaultGUI, true); } else player.sendMessage(SelectMessages.NoPermissionForCommand.replace("[cmd]", "/commandgui") .replace("[perm]", "commandgui.command")); } else player.sendMessage(SelectMessages.GUIIsDisabled.replace("[gui]", gui.GUI_Name)); @@ -236,7 +237,7 @@ public class Commands { Gui gui = Main.guiHashMap.get(arg); if (gui.GUI_Enable || player.hasPermission("commandgui.bypass")) { if (!gui.Command_Permission_Enable || player.hasPermission("commandgui.command." + gui.Command_Command) || player.hasPermission("commandgui.bypass")) { - OpenGUI.openGUI(player, arg); + OpenGUI.openGUI(player, arg, true); } else player.sendMessage(SelectMessages.NoPermissionForCommand.replace("[cmd]", "/commandgui " + gui.Command_Command) .replace("[perm]", "commandgui.command." + arg.toLowerCase())); } else player.sendMessage(SelectMessages.GUIIsDisabled.replace("[gui]", gui.Command_Command)); diff --git a/CommandGUI V2/src/main/java/de/jatitv/commandguiv2/Spigot/cmdManagement/register/RegisterCommand.java b/CommandGUI V2/src/main/java/de/jatitv/commandguiv2/Spigot/cmdManagement/register/RegisterCommand.java index e66bb03..e9f36de 100644 --- a/CommandGUI V2/src/main/java/de/jatitv/commandguiv2/Spigot/cmdManagement/register/RegisterCommand.java +++ b/CommandGUI V2/src/main/java/de/jatitv/commandguiv2/Spigot/cmdManagement/register/RegisterCommand.java @@ -26,7 +26,7 @@ public class RegisterCommand extends Command { Gui gui = Main.guiHashMap.get(alias); if (gui.GUI_Enable || player.hasPermission("commandgui.bypass")) { if (!gui.Command_Permission_Enable || player.hasPermission("commandgui.command." + alias) || player.hasPermission("commandgui.bypass")) { - OpenGUI.openGUI(player, alias); + OpenGUI.openGUI(player, alias, true); } else player.sendMessage(SelectMessages.NoPermissionForCommand.replace("[cmd]", "/commandgui " + alias) .replace("[perm]", "commandgui.command." + alias)); } else player.sendMessage(SelectMessages.GUIIsDisabled.replace("[gui]", gui.GUI_Name)); diff --git a/CommandGUI V2/src/main/java/de/jatitv/commandguiv2/Spigot/config/config/ConfigCreate.java b/CommandGUI V2/src/main/java/de/jatitv/commandguiv2/Spigot/config/config/ConfigCreate.java index 5f285d1..1962125 100644 --- a/CommandGUI V2/src/main/java/de/jatitv/commandguiv2/Spigot/config/config/ConfigCreate.java +++ b/CommandGUI V2/src/main/java/de/jatitv/commandguiv2/Spigot/config/config/ConfigCreate.java @@ -34,7 +34,7 @@ public class ConfigCreate { Config.set("Plugin.Currency", "$", yamlConfiguration); Config.set("Plugin.DefaultGUI", "default", yamlConfiguration); - Config.set("Storage.Type", "YML", yamlConfiguration); + Config.set("Storage.Type", "SQLITE", yamlConfiguration); Config.set("Storage.MySQL.IP", "localhost", yamlConfiguration); Config.set("Storage.MySQL.Port", 3306, yamlConfiguration); Config.set("Storage.MySQL.Database", "database", yamlConfiguration); diff --git a/CommandGUI V2/src/main/java/de/jatitv/commandguiv2/Spigot/config/config/SelectConfig.java b/CommandGUI V2/src/main/java/de/jatitv/commandguiv2/Spigot/config/config/SelectConfig.java index 659ad25..e724c8e 100644 --- a/CommandGUI V2/src/main/java/de/jatitv/commandguiv2/Spigot/config/config/SelectConfig.java +++ b/CommandGUI V2/src/main/java/de/jatitv/commandguiv2/Spigot/config/config/SelectConfig.java @@ -4,6 +4,7 @@ import de.jatitv.commandguiv2.Spigot.Main; import de.jatitv.commandguiv2.Spigot.config.configConverter.ConfigConverterUnderV5; import de.jatitv.commandguiv2.Spigot.config.languages.SelectMessages; import de.jatitv.commandguiv2.Spigot.system.database.MySQL; +import de.jatitv.commandguiv2.Spigot.system.database.StorageType; import de.jatitv.commandguiv2.Util; import net.t2code.lib.Spigot.Lib.messages.send; import net.t2code.lib.Spigot.Lib.minecraftVersion.MCVersion; @@ -29,7 +30,7 @@ public class SelectConfig { public static String Currency; public static List mainCommands; - public static String Storage; + public static StorageType Storage; public static Boolean Bungee; public static String thisServer; @@ -139,7 +140,7 @@ public class SelectConfig { Currency = yamlConfiguration.getString("Plugin.Currency"); DefaultGUI = yamlConfiguration.getString("Plugin.DefaultGUI"); - Storage = yamlConfiguration.getString("Storage.Type").toUpperCase(); + Storage = StorageType.valueOf(yamlConfiguration.getString("Storage.Type").toUpperCase()); MySQL.ip = yamlConfiguration.getString("Storage.MySQL.IP"); MySQL.port = yamlConfiguration.getInt("Storage.MySQL.Port"); diff --git a/CommandGUI V2/src/main/java/de/jatitv/commandguiv2/Spigot/gui/OpenGUI.java b/CommandGUI V2/src/main/java/de/jatitv/commandguiv2/Spigot/gui/OpenGUI.java index b7d444d..96f3979 100644 --- a/CommandGUI V2/src/main/java/de/jatitv/commandguiv2/Spigot/gui/OpenGUI.java +++ b/CommandGUI V2/src/main/java/de/jatitv/commandguiv2/Spigot/gui/OpenGUI.java @@ -26,7 +26,7 @@ public class OpenGUI { private static Plugin plugin = Main.plugin; private static String prefix = Util.getPrefix(); - public static void openGUI(Player player, String guiString) { + public static void openGUI(Player player, String guiString, Boolean sound) { Gui gui = Main.guiHashMap.get(guiString); Long long_ = Long.valueOf(System.currentTimeMillis()); switch (guiString) { @@ -76,7 +76,9 @@ public class OpenGUI { } for (Slot slot : gui.slots) { Function function = Main.functionHashMap.get(slot.function); - if (slot.permission || !player.hasPermission(slot.permissionToSee)) continue; + if (slot.permission && !player.hasPermission(slot.permissionToSee)) continue; + if (slot.slot < 0 || slot.slot > gui.GUI_Lines * 9) continue; + if (slot.enable) { if (function.empty) { ItemStack air = new ItemStack(Material.AIR); @@ -121,8 +123,10 @@ public class OpenGUI { } } - if (SelectConfig.Sound_Enable && SelectConfig.Sound_OpenInventory_Enable) { - player.playSound(player.getLocation(), SelectConfig.Sound_OpenInventory, 3, 1); + if (sound) { + if (SelectConfig.Sound_Enable && SelectConfig.Sound_OpenInventory_Enable) { + player.playSound(player.getLocation(), SelectConfig.Sound_OpenInventory, 3, 1); + } } player.openInventory(inventory); send.debug(plugin, "§6" + player.getName() + " §5Open §6" + Replace.replace(prefix, gui.GUI_Name) + " §5" + " §7- §e" + (System.currentTimeMillis() - long_.longValue()) + "ms"); diff --git a/CommandGUI V2/src/main/java/de/jatitv/commandguiv2/Spigot/system/Load.java b/CommandGUI V2/src/main/java/de/jatitv/commandguiv2/Spigot/system/Load.java index 1846917..39a5873 100644 --- a/CommandGUI V2/src/main/java/de/jatitv/commandguiv2/Spigot/system/Load.java +++ b/CommandGUI V2/src/main/java/de/jatitv/commandguiv2/Spigot/system/Load.java @@ -17,6 +17,9 @@ import de.jatitv.commandguiv2.Spigot.Main; import de.jatitv.commandguiv2.Spigot.objects.Obj_Select; import de.jatitv.commandguiv2.Spigot.config.config.ConfigCreate; import de.jatitv.commandguiv2.Spigot.config.config.SelectConfig; +import de.jatitv.commandguiv2.Spigot.system.database.SQLITE; +import de.jatitv.commandguiv2.Spigot.system.database.StorageType; +import de.jatitv.commandguiv2.Spigot.system.database.YML; import net.t2code.lib.Spigot.Lib.messages.T2CodeTemplate; import net.t2code.lib.Spigot.Lib.messages.send; import net.t2code.lib.Spigot.Lib.minecraftVersion.MCVersion; @@ -26,6 +29,7 @@ import org.bukkit.Bukkit; import org.bukkit.plugin.Plugin; import java.io.*; +import java.sql.SQLException; import java.util.List; public class Load { @@ -108,7 +112,8 @@ public class Load { } send.console(prefix + " §8-------------------------------"); - if (SelectConfig.Storage.equals("MYSQL")) { + switch (SelectConfig.Storage) { + case MYSQL: MySQL.main(); send.console(prefix + " §2Storage medium §6MySQL §2is used."); try { @@ -126,9 +131,26 @@ public class Load { } catch (Exception e) { e.printStackTrace(); } - - } else { + break; + case YML: send.console(prefix + " §2Storage medium §6YML §2is used."); + break; + default: + case SQLITE: + try { + SQLITE.main(); + send.console(prefix + " §2Storage medium §6SQLITE §2is used."); + SQLITE.query("CREATE TABLE IF NOT EXISTS `gui-item` (" + + "UUID TEXT NOT NULL," + + "Name TEXT NOT NULL," + + "Status INTEGER NOT NULL DEFAULT 1," + + "Slot INTEGER," + + "PRIMARY KEY(UUID)" + + ");"); + } catch (SQLException e) { + e.printStackTrace(); + } + break; } if (Main.PaPi) { send.console(prefix + " §2PlaceholderAPI successfully connected!"); diff --git a/CommandGUI V2/src/main/java/de/jatitv/commandguiv2/Spigot/system/Metrics.java b/CommandGUI V2/src/main/java/de/jatitv/commandguiv2/Spigot/system/Metrics.java index f6f62c3..b66b828 100644 --- a/CommandGUI V2/src/main/java/de/jatitv/commandguiv2/Spigot/system/Metrics.java +++ b/CommandGUI V2/src/main/java/de/jatitv/commandguiv2/Spigot/system/Metrics.java @@ -35,7 +35,6 @@ public class Metrics { int pluginId = Util.getBstatsID(); // <-- Replace with the id of your plugin! Metrics metrics = new Metrics(Main.plugin, pluginId); metrics.addCustomChart(new Metrics.SimplePie("updatecheckonjoin", () -> String.valueOf(SelectConfig.UpdateCheckOnJoin))); - metrics.addCustomChart(new Metrics.SimplePie("storage_type_mysql", () -> SelectConfig.Storage)); } private final Plugin plugin; diff --git a/CommandGUI V2/src/main/java/de/jatitv/commandguiv2/Spigot/system/database/SQLITE.java b/CommandGUI V2/src/main/java/de/jatitv/commandguiv2/Spigot/system/database/SQLITE.java new file mode 100644 index 0000000..1564893 --- /dev/null +++ b/CommandGUI V2/src/main/java/de/jatitv/commandguiv2/Spigot/system/database/SQLITE.java @@ -0,0 +1,135 @@ +package de.jatitv.commandguiv2.Spigot.system.database; + +import de.jatitv.commandguiv2.Spigot.Main; +import de.jatitv.commandguiv2.Util; +import net.t2code.lib.Spigot.Lib.messages.send; +import org.bukkit.Bukkit; + +import java.io.File; +import java.sql.*; +import java.util.ArrayList; +import java.util.HashMap; + +public class SQLITE { + protected static String url; + private static Connection con; + + public static void main() throws SQLException { + long long_ = System.currentTimeMillis(); + File directory = new File(Main.getPath() + "/Storage"); + if (!directory.exists()) { + directory.mkdir(); + } + url = "jdbc:sqlite:" + Main.plugin.getDataFolder() + "/Storage/data.db"; + con = DriverManager.getConnection(url); + Bukkit.getConsoleSender().sendMessage(Util.getPrefix() + " §2Datenbank erfolgreich verbunden." + " §7- §e" + (System.currentTimeMillis() - long_) + "ms"); + DatabaseMetaData dbmd = con.getMetaData(); + } + + public static void query(String query) { + + send.debug(Main.plugin, query); + try { + Statement stmt = con.createStatement(); + stmt.execute(query); + stmt.close(); + } catch (SQLException e) { + System.err.println(e.getMessage()); + } + } + + public static void query(ArrayList queryList) { + try { + Statement stmt = con.createStatement(); + for (String query : queryList) { + send.debug(Main.plugin, query); + stmt.addBatch(query); + } + stmt.executeBatch(); + stmt.close(); + } catch (SQLException e) { + System.err.println(e.getMessage()); + } + } + + + public static HashMap> selectAll(String query) { + send.debug(Main.plugin, query); + HashMap> Result = new HashMap<>(); + try { + Statement stmt = con.createStatement(); + ResultSet rs = stmt.executeQuery(query); + int columns = rs.getMetaData().getColumnCount(); + while (rs.next()) { + ArrayList columnList = new ArrayList<>(); + for (int i = 1; i <= columns; i++) { + columnList.add(rs.getString(i)); + } + Result.put(rs.getString(1), columnList); + } + rs.close(); + stmt.close(); + } catch (SQLException ex) { + System.err.println(ex.getMessage()); + } + return Result; + } + + public static String select(String query) { + send.debug(Main.plugin, query); + String Ausgabe = ""; + try { + Statement stmt = con.createStatement(); + ResultSet rs = stmt.executeQuery(query); + while (rs.next()) { + Ausgabe = String.valueOf(rs.getString(1)); + } + rs.close(); + stmt.close(); + } catch (SQLException ex) { + System.err.println(ex.getMessage()); + } + return Ausgabe; + } + + public static int count(String query) { + send.debug(Main.plugin, query); + int count = 0; + try { + Statement stmt = con.createStatement(); + ResultSet rs = stmt.executeQuery(query); + while (rs.next()) { + count++; + } + rs.close(); + stmt.close(); + } catch (SQLException ex) { + System.err.println(ex.getMessage()); + } + return count; + } + + public static ArrayList selectRow(String query) { + send.debug(Main.plugin, query); + ArrayList Result = new ArrayList<>(); + try { + Statement stmt = con.createStatement(); + ResultSet rs = stmt.executeQuery(query); + int columns = rs.getMetaData().getColumnCount(); + while (rs.next()) { + for (int i = 1; i <= columns; i++) { + Result.add(rs.getString(i)); + } + } + rs.close(); + stmt.close(); + } catch (SQLException ex) { + System.err.println(ex.getMessage()); + } + return Result; + } + + public static void close() throws SQLException { + if (con != null) con.close(); + } +} diff --git a/CommandGUI V2/src/main/java/de/jatitv/commandguiv2/Spigot/system/database/Select_Database.java b/CommandGUI V2/src/main/java/de/jatitv/commandguiv2/Spigot/system/database/Select_Database.java index 8b838a7..aee094a 100644 --- a/CommandGUI V2/src/main/java/de/jatitv/commandguiv2/Spigot/system/database/Select_Database.java +++ b/CommandGUI V2/src/main/java/de/jatitv/commandguiv2/Spigot/system/database/Select_Database.java @@ -7,65 +7,112 @@ import org.bukkit.entity.Player; public class Select_Database { public static void nameCheck(Player player) { - if (SelectConfig.Storage.equals("MYSQL")) { - MySQL.query("UPDATE `gui-item` SET Name='" + player.getName() + "' WHERE UUID='" + player.getUniqueId() + "';"); - } + switch (SelectConfig.Storage){ + case MYSQL: + MySQL.query("UPDATE `gui-item` SET Name='" + player.getName() + "' WHERE UUID='" + player.getUniqueId() + "';"); + break; + case YML: + + break; + case SQLITE: + default: + SQLITE.query("UPDATE `gui-item` SET Name='" + player.getName() + "' WHERE UUID='" + player.getUniqueId() + "';"); + break; } + +} + public static void setSlot(Player player, Integer slot) { - if (SelectConfig.Storage.equals("MYSQL")) { - MySQL.query("INSERT INTO `gui-item` (`UUID`, `Name`, `Slot`) VALUES ('" + player.getUniqueId() + "', '" + player.getName() - + "','" + slot + "') ON DUPLICATE KEY UPDATE `Name` = '" + player.getName() + "', `Slot` = '" + slot + "';"); - } else { - YML.setGuiitemSlot(player, slot); + switch (SelectConfig.Storage) { + case MYSQL: + MySQL.query("INSERT INTO `gui-item` (`UUID`, `Name`, `Slot`) VALUES ('" + player.getUniqueId() + "', '" + player.getName() + + "','" + slot + "') ON DUPLICATE KEY UPDATE `Name` = '" + player.getName() + "', `Slot` = '" + slot + "';"); + break; + case YML: + YML.setGuiitemSlot(player, slot); + break; + case SQLITE: + default: + SQLITE.query("INSERT INTO `gui-item` (`UUID`, `Name`, `Slot`) VALUES ('" + player.getUniqueId() + "', '" + player.getName() + + "','" + slot + "') ON CONFLICT(UUID) DO UPDATE SET `Name` = '" + player.getName() + "', `Slot` = '" + slot + "';"); + break; } } public static void setItemStatusTrue(Player player) { Events.useItemHashMap.replace(player, true); - if (SelectConfig.Storage.equals("MYSQL")) { - MySQL.query("INSERT INTO `gui-item` (`UUID`, `Name`) VALUES ('" + player.getUniqueId() + "', '" + player.getName() - + "') ON DUPLICATE KEY UPDATE `Name` = '" + player.getName() + "', `Status` = '1';"); - } else { - YML.setGuiitemOn(player); + switch (SelectConfig.Storage) { + case MYSQL: + MySQL.query("INSERT INTO `gui-item` (`UUID`, `Name`) VALUES ('" + player.getUniqueId() + "', '" + player.getName() + + "') ON DUPLICATE KEY UPDATE `Name` = '" + player.getName() + "', `Status` = '1';"); + break; + case YML: + YML.setGuiitemOn(player); + break; + case SQLITE: + default: + SQLITE.query("INSERT INTO `gui-item` (`UUID`, `Name`) VALUES ('" + player.getUniqueId() + "', '" + player.getName() + + "') ON CONFLICT(UUID) DO UPDATE SET `Name` = '" + player.getName() + "', `Status` = '1';"); + break; } } public static void setItemStatusFalse(Player player) { Events.useItemHashMap.replace(player, false); - if (SelectConfig.Storage.equals("MYSQL")) { - - MySQL.query("INSERT INTO `gui-item` (`UUID`, `Name`, `Status`) VALUES ('" + player.getUniqueId() + "', '" + player.getName() - + "', '0') ON DUPLICATE KEY UPDATE `Name` = '" + player.getName() + "', `Status` = '0';"); - } else { - YML.setGuiitemOff(player); + switch (SelectConfig.Storage) { + case MYSQL: + MySQL.query("INSERT INTO `gui-item` (`UUID`, `Name`, `Status`) VALUES ('" + player.getUniqueId() + "', '" + player.getName() + + "', '0') ON DUPLICATE KEY UPDATE `Name` = '" + player.getName() + "', `Status` = '0';"); + break; + case YML: + YML.setGuiitemOff(player); + break; + case SQLITE: + default: + SQLITE.query("INSERT INTO `gui-item` (`UUID`, `Name`, `Status`) VALUES ('" + player.getUniqueId() + "', '" + player.getName() + + "', '0') ON CONFLICT(UUID) DO UPDATE SET `Name` = '" + player.getName() + "', `Status` = '0';"); + break; } } public static Boolean selectItemStatus(Player player) { - if (SelectConfig.Storage.equals("MYSQL")) { - if (MySQL.count("SELECT * FROM `gui-item` WHERE BINARY UUID='" + player.getUniqueId() + "'") > 0) { - if (MySQL.select("SELECT `Status` FROM `gui-item` WHERE `UUID`='" + player.getUniqueId() + "';").equals("1")) { + switch (SelectConfig.Storage) { + case MYSQL: + String result = MySQL.select("SELECT `Status` FROM `gui-item` WHERE `UUID`='" + player.getUniqueId() + "';"); + if(result == null || result.equals("")){ return true; - } else return false; - } else { - return true; - } - } else { - return YML.selectGuiitemOn(player); + } + return result.equals("1"); + case YML: + return YML.selectGuiitemOn(player); + case SQLITE: + default: + String result2 = SQLITE.select("SELECT `Status` FROM `gui-item` WHERE `UUID`='" + player.getUniqueId() + "';"); + if(result2 == null || result2.equals("")){ + return true; + } + return result2.equals("1"); } } public static Integer selectSlot(Player player) { - if (SelectConfig.Storage.equals("MYSQL")) { - if (MySQL.count("SELECT * FROM `gui-item` WHERE BINARY UUID='" + player.getUniqueId() + "'") > 0) { - if (MySQL.select("SELECT `Slot` FROM `gui-item` WHERE `UUID`='" + player.getUniqueId() + "';") != "null") { - return Integer.valueOf(MySQL.select("SELECT `Slot` FROM `gui-item` WHERE `UUID`='" + player.getUniqueId() + "';")); - } else return null; - } else return null; - - } else { - return YML.selectSlot(player); + switch (SelectConfig.Storage) { + case MYSQL: + String result = MySQL.select("SELECT `Slot` FROM `gui-item` WHERE `UUID`='" + player.getUniqueId() + "';"); + if(result == null || result.equals("")|| result.equals("null")){ + return null; + } + return Integer.parseInt(result); + case YML: + return YML.selectSlot(player); + case SQLITE: + default: + String result2 = SQLITE.select("SELECT `Slot` FROM `gui-item` WHERE `UUID`='" + player.getUniqueId() + "';"); + if(result2 == null || result2.equals("") || result2.equals("null")){ + return null; + } + return Integer.parseInt(result2); } } diff --git a/CommandGUI V2/src/main/java/de/jatitv/commandguiv2/Spigot/system/database/StorageType.java b/CommandGUI V2/src/main/java/de/jatitv/commandguiv2/Spigot/system/database/StorageType.java new file mode 100644 index 0000000..ee77759 --- /dev/null +++ b/CommandGUI V2/src/main/java/de/jatitv/commandguiv2/Spigot/system/database/StorageType.java @@ -0,0 +1,7 @@ +package de.jatitv.commandguiv2.Spigot.system.database; + +public enum StorageType { + MYSQL, + SQLITE, + YML +}