package tntrun.utils; import java.io.File; import java.io.IOException; import java.sql.ResultSet; import java.sql.SQLException; import org.bukkit.Bukkit; import org.bukkit.configuration.file.FileConfiguration; import org.bukkit.configuration.file.YamlConfiguration; import org.bukkit.entity.Player; import tntrun.TNTRun; public class Stats { public static TNTRun pl; public static File file; public Stats(TNTRun plugin){ pl = plugin; file = new File(pl.getDataFolder(), "stats.yml"); if(!file.exists()){ try { file.createNewFile(); } catch (IOException e) { e.printStackTrace(); } } } public static void addPlayedGames(Player player, int value){ if(pl.file){ FileConfiguration config = YamlConfiguration.loadConfiguration(file); if(Bukkit.getOnlineMode()){ if(config.get("stats." + player.getUniqueId().toString() + ".played") == null){ config.set("stats." + player.getUniqueId().toString() + ".played", value); }else{ config.set("stats." + player.getUniqueId().toString() + ".played", config.getInt("stats." + player.getUniqueId().toString() + ".played") + value); } }else{ if(config.get("stats." + player.getName() + ".played") == null){ config.set("stats." + player.getName() + ".played", value); }else{ config.set("stats." + player.getName(), config.getInt("stats." + player.getName() + ".played") + value); } } try { config.save(file); } catch (IOException e) { e.printStackTrace(); } }else{ setValue("played", player, getStat("played", player) + 1); } } public static void addWins(Player player, int value){ if(pl.file){ FileConfiguration config = YamlConfiguration.loadConfiguration(file); if(Bukkit.getOnlineMode()){ if(config.get("stats." + player.getUniqueId().toString() + ".wins") == null){ config.set("stats." + player.getUniqueId().toString() + ".wins", value); }else{ config.set("stats." + player.getUniqueId().toString() + ".wins", config.getInt("stats." + player.getUniqueId().toString() + ".wins") + value); } }else{ if(config.get("stats." + player.getName() + ".wins") == null){ config.set("stats." + player.getName() + ".wins", value); }else{ config.set("stats." + player.getName(), config.getInt("stats." + player.getName() + ".wins") + value); } } try { config.save(file); } catch (IOException e) { e.printStackTrace(); } }else{ setValue("wins", player, getStat("wins", player) + 1); } } public static void addLoses(Player player, int value){ if(pl.file){ FileConfiguration config = YamlConfiguration.loadConfiguration(file); if(Bukkit.getOnlineMode()){ if(config.get("stats." + player.getUniqueId().toString() + ".looses") == null){ config.set("stats." + player.getUniqueId().toString() + ".looses", value); }else{ config.set("stats." + player.getUniqueId().toString() + ".looses", config.getInt("stats." + player.getUniqueId().toString() + ".looses") + value); } }else{ if(config.get("stats." + player.getName() + ".looses") == null){ config.set("stats." + player.getName() + ".looses", value); }else{ config.set("stats." + player.getName(), config.getInt("stats." + player.getName() + ".looses") + value); } } try { config.save(file); } catch (IOException e) { e.printStackTrace(); } }else{ setValue("looses", player, getStat("looses", player) + 1); } } public static int getLooses(Player player){ if(pl.file){ FileConfiguration config = YamlConfiguration.loadConfiguration(file); if(Bukkit.getOnlineMode()){ if(config.get("stats." + player.getUniqueId().toString() + ".looses") == null){ return 0; }else{ return config.getInt("stats." + player.getUniqueId().toString() + ".looses"); } }else{ if(config.get("stats." + player.getName() + ".looses") == null){ return 0; }else{ return config.getInt("stats." + player.getName() + ".looses"); } } } return getStat("looses", player); } public static int getWins(Player player){ if(pl.file){ FileConfiguration config = YamlConfiguration.loadConfiguration(file); if(Bukkit.getOnlineMode()){ if(config.get("stats." + player.getUniqueId().toString() + ".wins") == null){ return 0; }else{ return config.getInt("stats." + player.getUniqueId().toString() + ".wins"); } }else{ if(config.get("stats." + player.getName() + ".wins") == null){ return 0; }else{ return config.getInt("stats." + player.getName() + ".wins"); } } } return getStat("wins", player); } public static int getPlayedGames(Player player){ if(pl.file){ FileConfiguration config = YamlConfiguration.loadConfiguration(file); if(Bukkit.getOnlineMode()){ if(config.get("stats." + player.getUniqueId().toString() + ".played") == null){ return 0; }else{ return config.getInt("stats." + player.getUniqueId().toString() + ".played"); } }else{ if(config.get("stats." + player.getName() + ".played") == null){ return 0; }else{ return config.getInt("stats." + player.getName() + ".played"); } } } return getStat("played", player); } private static int getStat(String statname, Player player) { try { int stat = 0; ResultSet rs; if(Bukkit.getOnlineMode()){ rs = pl.mysql.query("SELECT * FROM `stats` WHERE `username`='" + player.getUniqueId().toString() + "'").getResultSet(); }else{ rs = pl.mysql.query("SELECT * FROM `stats` WHERE `username`='" + player.getName() + "'").getResultSet(); } while (rs.next()) { stat = rs.getInt(statname); } return stat; } catch (SQLException ex) { ex.printStackTrace(); } return 999; } private static void setValue(String statname, Player p, int value) { if (!pl.usestats) { return; } if(Bukkit.getOnlineMode()){ pl.mysql.query("UPDATE `stats` SET `" + statname + "`='" + value + "' WHERE `username`='" + p.getUniqueId().toString() + "';"); }else{ pl.mysql.query("UPDATE `stats` SET `" + statname + "`='" + value + "' WHERE `username`='" + p.getName() + "';"); } } }