Advertisement
Guest User

Untitled

a guest
Apr 22nd, 2017
78
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 5 5.52 KB | None | 0 0
  1. package me.ikileey.pscash.databases;
  2.  
  3. import java.io.File;
  4. import java.sql.Connection;
  5. import java.sql.DriverManager;
  6. import java.sql.PreparedStatement;
  7. import java.sql.ResultSet;
  8. import java.sql.Statement;
  9.  
  10. import org.bukkit.Bukkit;
  11. import org.bukkit.entity.Player;
  12.  
  13. import me.ikileey.pscash.Main;
  14. import me.ikileey.pscash.messages.Mensagens;
  15. import me.ikileey.pscash.utils.Cash;
  16.  
  17. public class SQLite {
  18.  
  19.     public static Connection connection;
  20.    
  21.     public static String sql = "org.sqlite.JDBC";
  22.    
  23.     public static void setConnection(){
  24.         try {
  25.             Bukkit.getConsoleSender().sendMessage("[PsCash] Conectando no SQLite..");
  26.             Class.forName("org.sqlite.JDBC");
  27.             connection = DriverManager.getConnection("jdbc:sqlite:" + Main.pl.getDataFolder().getAbsolutePath() + File.separator + "database.db");
  28.         } catch (ClassNotFoundException e) {
  29.             e.printStackTrace();
  30.         }
  31.         catch (Exception e2) {
  32.             e2.printStackTrace();
  33.         }
  34.     }
  35.    
  36.    
  37.     public static void startDatabase(){
  38.         try {
  39.             setConnection();
  40.             final Statement stmt = connection.createStatement();
  41.             stmt.execute("CREATE TABLE IF NOT EXISTS cash (player VARCHAR(25), valor INTEGER)");
  42.             stmt.close();
  43.             Bukkit.getConsoleSender().sendMessage("[PsCash] Conectado com sucesso!");
  44.         } catch (Exception e) {
  45.             e.printStackTrace();
  46.         }
  47.     }
  48.    
  49.  
  50.     public static void addCash(String p, Integer valor) {
  51.         try {
  52.             if (!containsCash(p)) {
  53.                 Class.forName(sql);
  54.                 final PreparedStatement pstmt2 = connection
  55.                         .prepareStatement("INSERT INTO cash (player, valor) VALUES (?, ?)");
  56.                 pstmt2.setString(1, p);
  57.                 pstmt2.setInt(2, valor);
  58.                 pstmt2.execute();
  59.             } else {
  60.                 Class.forName(sql);
  61.                 final PreparedStatement pstmt = connection
  62.                         .prepareStatement("SELECT * FROM cash WHERE player = ?;");
  63.                 pstmt.setString(1, p);
  64.                 final ResultSet result = pstmt.executeQuery();
  65.                 Integer vm = 0;
  66.                 if (result.next()) {
  67.                     vm = result.getInt("valor") + valor;
  68.                 }
  69.                 final PreparedStatement pstmt2 = connection
  70.                         .prepareStatement("UPDATE cash SET valor = ? WHERE player = ?;");
  71.                 pstmt2.setInt(1, vm);
  72.                 pstmt2.setString(2, p);
  73.                 pstmt2.executeUpdate();
  74.  
  75.                 result.close();
  76.                 pstmt.close();
  77.                 pstmt2.close();
  78.             }
  79.  
  80.         } catch (Exception e) {
  81.             e.printStackTrace();
  82.         }
  83.     }
  84.    
  85.     public static void setCash(String p, Integer valor) {
  86.         try {
  87.             if (!containsCash(p)) {
  88.                 Class.forName(sql);
  89.                 final PreparedStatement pstmt2 = connection
  90.                         .prepareStatement("INSERT INTO cash (player, valor) VALUES (?, ?)");
  91.                 pstmt2.setString(1, p);
  92.                 pstmt2.setInt(2, valor);
  93.                 pstmt2.execute();
  94.             } else {
  95.                 Class.forName(sql);
  96.                 final PreparedStatement pstmt = connection
  97.                         .prepareStatement("SELECT * FROM cash WHERE player = ?;");
  98.                 pstmt.setString(1, p);
  99.                
  100.                 final PreparedStatement pstmt2 = connection
  101.                         .prepareStatement("UPDATE cash SET valor = ? WHERE player = ?;");
  102.                 pstmt2.setInt(1, valor);
  103.                 pstmt2.setString(2, p);
  104.                 pstmt2.executeUpdate();
  105.  
  106.                 pstmt.close();
  107.                 pstmt2.close();
  108.             }
  109.  
  110.         } catch (Exception e) {
  111.             e.printStackTrace();
  112.         }
  113.     }
  114.    
  115.     public static void takeCash(String p, Integer valor) {
  116.         try {
  117.             Class.forName(sql);
  118.             final PreparedStatement pstmt = connection
  119.                     .prepareStatement("SELECT * FROM cash WHERE player = ?;");
  120.             pstmt.setString(1, p);
  121.             final ResultSet result = pstmt.executeQuery();
  122.             Integer vm = 0;
  123.             if (result.next()) {
  124.                 vm = result.getInt("valor") - valor;
  125.             }
  126.             final PreparedStatement pstmt2 = connection
  127.                     .prepareStatement("UPDATE cash SET valor = ? WHERE player = ?;");
  128.             pstmt2.setInt(1, vm);
  129.             pstmt2.setString(2, p);
  130.             pstmt2.executeUpdate();
  131.            
  132.             result.close();
  133.             pstmt.close();
  134.             pstmt2.close();
  135.  
  136.         } catch (Exception e) {
  137.             e.printStackTrace();
  138.         }
  139.     }
  140.  
  141.     public static boolean containsCash(String p) {
  142.         try {
  143.             Class.forName(sql);
  144.             final PreparedStatement pstmt = connection
  145.                     .prepareStatement("SELECT * FROM cash WHERE player=?");
  146.             pstmt.setString(1, p);
  147.             final ResultSet resultSet = pstmt.executeQuery();
  148.             return resultSet.next() && resultSet.getString("player").equalsIgnoreCase(p);
  149.  
  150.         } catch (Exception e) {
  151.             e.printStackTrace();
  152.             return false;
  153.         }
  154.  
  155.     }
  156.    
  157.     public static Long getCash(String p) {
  158.         try {
  159.             Class.forName(sql);
  160.  
  161.             final PreparedStatement pstmt = connection
  162.                     .prepareStatement("SELECT * FROM cash WHERE player = ?");
  163.             pstmt.setString(1, p);
  164.             final ResultSet result = pstmt.executeQuery();
  165.             if (result.next()) {
  166.                 return result.getLong("valor");
  167.             }
  168.  
  169.             result.close();
  170.             pstmt.close();
  171.         } catch (Exception e) {
  172.             e.printStackTrace();
  173.         }
  174.         return (long) 0;
  175.     }
  176.    
  177.     public static void getTopCash(Player p) {
  178.         p.sendMessage(Mensagens.getRank("top_msg"));
  179.         p.sendMessage("");
  180.         String msg = Mensagens.getRank("rank_top_posicao").replace("%o%", "ΒΊ");
  181.         try {
  182.             Class.forName(sql);
  183.             final ResultSet result = connection.createStatement()
  184.                     .executeQuery("SELECT * FROM cash ORDER BY valor DESC LIMIT 5;");
  185.             int i = 0;
  186.             while (result.next()) {
  187.                 i++;
  188.                 p.sendMessage(msg.replace("@Posicao", new StringBuilder(String.valueOf(i)).toString()).replace("@Player", result.getString("player")).replace("@Cash", new StringBuilder(String.valueOf(result.getLong("valor"))).toString()).replace("@V", Cash.format(result.getLong("valor"))));
  189.  
  190.             }
  191.             result.close();
  192.             p.sendMessage("");
  193.         } catch (Exception e) {
  194.             p.sendMessage(Mensagens.getRank("no_rank"));
  195.         }
  196.     }
  197.  
  198. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement