package me.gtacraft.economy; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.util.UUID; import me.gtacraft.economy.database.SQLConnectionThread; import me.gtacraft.economy.database.SQLVars; import me.vaqxine.GPDA.ScoreboardAPI; import org.bukkit.Bukkit; /** * Created by Connor on 7/6/14. Designed for the GTA-Economy project. */ public class EconomyAPI { public static double getUserBalance(UUID uuid) { if (GTAEconomy.player_balances.containsKey(uuid)) { double amount = GTAEconomy.player_balances.get(uuid); if (amount < 0) { setUserBalance(uuid, 0); return 0; } return amount; } try { PreparedStatement statement = SQLConnectionThread.getConnection().prepareStatement(SQLVars.SELECT_PLAYER .replace("%uuid%", uuid.toString())); statement.execute(); ResultSet rs = statement.getResultSet(); if (rs.next()) { return rs.getDouble("balance"); } } catch (SQLException err) { err.printStackTrace(); return 0.0; } return 0.0; } public static void setUserBalance(UUID uuid, double value) { if (GTAEconomy.player_balances.containsKey(uuid)) { GTAEconomy.player_balances.remove(uuid); GTAEconomy.player_balances.put(uuid, value); if (Bukkit.getPluginManager().getPlugin("GPDA") != null) { ScoreboardAPI.updateScoreboard(Bukkit.getOfflinePlayer(uuid).getPlayer(), false); } } } public static void pushPlayerDataToSQLSync(UUID uuid) { if (!(GTAEconomy.player_balances.containsKey(uuid))) return; Connection con = null; PreparedStatement pst = null; String query = SQLVars.UPDATE_PLAYER .replace("%balance%", GTAEconomy.player_balances.get(uuid)+"") .replace("%uuid%", uuid.toString()); try { pst = SQLConnectionThread.getConnection().prepareStatement(query); pst.executeUpdate(); } catch (Exception ex) { ex.printStackTrace(); GTAEconomy.log.error(query, EconomyAPI.class); } finally { try { if (pst != null) { pst.close(); } if (con != null) { con.close(); } } catch (SQLException ex) { ex.printStackTrace(); } } /*GTAEconomy.sql_query.add(SQLVars.UPDATE_PLAYER .replace("%balance%", GTAEconomy.player_balances.get(uuid)+"") .replace("%uuid%", uuid.toString()));*/ GTAEconomy.player_balances.remove(uuid); } public static void modifyPlayerSQLEconomyData(UUID uuid, double x){ Connection con = null; PreparedStatement pst = null; String query = SQLVars.UPDATE_PLAYER .replace("%balance%", "balance" + x) // balance=balance+x .replace("%uuid%", uuid.toString()); try { pst = SQLConnectionThread.getConnection().prepareStatement(query); pst.executeUpdate(); } catch (Exception ex) { ex.printStackTrace(); GTAEconomy.log.error(query, EconomyAPI.class); } finally { try { if (pst != null) { pst.close(); } if (con != null) { con.close(); } } catch (SQLException ex) { ex.printStackTrace(); } } } }