package eu.docserver.docplugin; import java.sql.Connection; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import org.bukkit.entity.Player; import org.bukkit.plugin.java.JavaPlugin; public class DatabaseFunc { private final JavaPlugin plugin; private MySQL db = null; private String adress, port, database, user, pass; private Connection c = null; private Statement state = null; public DatabaseFunc(JavaPlugin plugin) { this.plugin = plugin; this.adress = plugin.getConfig().getString("db_adress"); this.port = plugin.getConfig().getString("db_port"); this.database = plugin.getConfig().getString("db_database"); this.user = plugin.getConfig().getString("db_user"); this.pass = plugin.getConfig().getString("db_pass"); db = new MySQL(adress, port, database, user, pass); } public void closeCo() { try { state.close(); } catch (SQLException e) { e.printStackTrace(); } state = null; try { c.close(); } catch (SQLException e) { e.printStackTrace(); } c = null; } private void checkCo() { if (c == null) { plugin.getLogger().info("Restarting db connection"); c = db.open(); } if (state == null) try { state = c.createStatement(); } catch (SQLException e) { e.printStackTrace(); } } public int getMoney(String username) throws SQLException { checkCo(); ResultSet res = state.executeQuery("SELECT money FROM user WHERE login = '" + username + "';"); res.next(); int money = res.getInt("money"); return (money); } public void showMoney(String username) throws SQLException { checkCo(); Player player = plugin.getServer().getPlayer(username); ResultSet res = state.executeQuery("SELECT money FROM user WHERE login = '" + player.getName() + "';"); res.next(); int money = res.getInt("money"); player.sendMessage("Vous avez actuellement " + money + "$."); } public void addMoney(String username, int to_add) throws SQLException { checkCo(); int money = getMoney(username) + to_add; state.executeUpdate("UPDATE user SET money = '" + money + "' WHERE login = '" + username + "';"); } public Player getUser(String name) { return (plugin.getServer().getPlayer(name)); } public int getRank(String username) throws SQLException { checkCo(); ResultSet res = state.executeQuery("SELECT level FROM user WHERE login = '" + username + "';"); res.next(); int level = res.getInt("level"); return (level); } public boolean checkOfflinePlayer(String username) throws SQLException { checkCo(); ResultSet res = state.executeQuery("SELECT id FROM user WHERE login = '" + username + "';"); boolean ok = res.next() ? true : false; return ok; } public String getRankName(String username) throws SQLException { int level = getRank(username); switch (level) { case -1: return ("Sous-fifre"); case 0: return ("En attente"); case 1: return ("Membre"); case 2: return ("Donateur"); case 3: return ("Mod�rateur"); case 5: return ("Admin"); default: return ("Unknown rank"); } } public void addLogTime(String username, int i) throws SQLException { checkCo(); state.executeUpdate("UPDATE user SET log = log + " + i + " WHERE login = '" + username + "';"); } public int getLogTime(String username) throws SQLException { checkCo(); ResultSet res = state.executeQuery("SELECT log FROM user WHERE login = '" + username + "';"); res.next(); int log = res.getInt("log"); return (log); } }