Advertisement
Guest User

Untitled

a guest
May 27th, 2015
306
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 8.42 KB | None | 0 0
  1. package de.Technick.SkyPvP.Data;
  2.  
  3. import java.sql.ResultSet;
  4. import java.sql.SQLException;
  5. import java.util.ArrayList;
  6. import java.util.HashMap;
  7. import java.util.List;
  8. import java.util.UUID;
  9.  
  10. import org.bukkit.Bukkit;
  11. import org.bukkit.Location;
  12. import org.bukkit.Material;
  13. import org.bukkit.SkullType;
  14. import org.bukkit.block.BlockState;
  15. import org.bukkit.block.Sign;
  16. import org.bukkit.block.Skull;
  17. import org.bukkit.configuration.file.FileConfiguration;
  18. import org.bukkit.conversations.PlayerNamePrompt;
  19. import org.bukkit.entity.Player;
  20.  
  21. public class StatsSQL {
  22.  
  23. public static boolean exists(String playername) {
  24. ResultSet rs = MySQL.getResult("SELECT * FROM SkyPvPStats WHERE UUID='"
  25. + getUUID(playername) + "'");
  26. try {
  27. if (rs.next()) {
  28. return true;
  29. }
  30. } catch (SQLException e) {
  31. e.printStackTrace();
  32. }
  33. return false;
  34. }
  35.  
  36. public static void createPlayer(String playername) {
  37. if (!exists(playername)) {
  38. MySQL.update(
  39.  
  40. "INSERT INTO SkyPvPStats (Playername, UUID, Kills, Deaths, Points) VALUES ('"
  41. + playername + "', '" + getUUID(playername) + "', '0', '0', '0')");
  42. }
  43. }
  44.  
  45. public static int getKills(String playername) {
  46. if (exists(playername)) {
  47. ResultSet rs = MySQL
  48. .getResult("SELECT Kills FROM SkyPvPStats WHERE UUID = '"
  49. + getUUID(playername) + "'");
  50. try {
  51. if (rs.next()) {
  52. return rs.getInt("Kills");
  53. }
  54. } catch (SQLException e) {
  55. e.printStackTrace();
  56. }
  57. }
  58. return 0;
  59. }
  60.  
  61. public static int getDeaths(String playername) {
  62. if (exists(playername)) {
  63. ResultSet rs = MySQL
  64. .getResult("SELECT Deaths FROM SkyPvPStats WHERE UUID = '" + getUUID(playername) + "'");
  65. try {
  66. if (rs.next()) {
  67. return rs.getInt("Deaths");
  68. }
  69. } catch (SQLException e) {
  70. e.printStackTrace();
  71. }
  72. }
  73. return 0;
  74. }
  75.  
  76. public static int getPoints(String playername) {
  77. if (exists(playername)) {
  78. ResultSet rs = MySQL
  79. .getResult("SELECT Points FROM SkyPvPStats WHERE UUID = '"
  80. + getUUID(playername) + "'");
  81. try {
  82. if (rs.next()) {
  83. return rs.getInt("Points");
  84. }
  85. } catch (SQLException e) {
  86. e.printStackTrace();
  87. }
  88. }
  89. return 100;
  90. }
  91.  
  92. public static void addKills(String playername, int amount) {
  93. if (exists(playername)) {
  94. int Kills = getKills(playername) + amount;
  95. MySQL.update("UPDATE SkyPvPStats SET Kills = '" + Kills + "' WHERE UUID = '" + getUUID(playername) + "'");
  96. }
  97. }
  98.  
  99. public static void addDeaths(String playername, int amount) {
  100. if (exists(playername)) {
  101. int Deaths = getDeaths(playername) + amount;
  102. MySQL.update("UPDATE SkyPvPStats SET Deaths = '" + Deaths + "' WHERE UUID = '" + getUUID(playername) + "'");
  103. }
  104. }
  105.  
  106. public static void addPoints(String playername, int amount) {
  107. if (exists(playername)) {
  108. int Points = getPoints(playername) + amount;
  109. if (Points < 0) {
  110. Points = 0;
  111. }
  112. MySQL.update("UPDATE SkyPvPStats SET Points = '" + Points + "' WHERE UUID = '" + getUUID(playername) + "'");
  113. }
  114. }
  115.  
  116. public static void removePoints(String playername, int amount) {
  117. if (exists(playername)) {
  118. int Points = getPoints(playername) - amount;
  119. if (Points < 0) {
  120. Points = 0;
  121. }
  122. MySQL.update("UPDATE SkyPvPStats SET Points = '" + Points + "' WHERE UUID = '" + getUUID(playername) + "'");
  123. }
  124. }
  125.  
  126. public static ArrayList<String> getTopPlayers() {
  127. @SuppressWarnings({ "rawtypes", "unchecked" })
  128. ArrayList<String> top = new ArrayList();
  129.  
  130. ResultSet rs = MySQL.getResult("SELECT * FROM SkyPvPStats ORDER BY Points DESC LIMIT 5");
  131. try {
  132. while (rs.next()) {
  133. top.add(rs.getString("Playername"));
  134. }
  135. } catch (SQLException e) {
  136. e.printStackTrace();
  137. }
  138. return top;
  139. }
  140.  
  141. public static double round(double einheit, int dezimalzahl) {
  142. double p = Math.pow(10.0D, dezimalzahl);
  143. return Math.round(einheit * p) / p;
  144. }
  145.  
  146. public static float getKD(String playername) {
  147. float kills = (float) getKills(playername);
  148. float tode = (float) getDeaths(playername);
  149. if ((kills == (float) 0.0F) && (tode == 0.0F)) {
  150. return 0.0F;
  151. }
  152. if ((kills > 0.0F) && (tode == 0.0F)) {
  153. return kills;
  154. }
  155. if ((tode > 0.0F) && (kills == 0.0F)) {
  156. return 0.0F;
  157. }
  158. if (kills / tode > 0.0001D) {
  159. Math.round(0.1D);
  160. return (float) round(kills / tode, 3);
  161. }
  162. if (kills > tode) {
  163. return kills / tode;
  164. }
  165. if (tode / kills > 0.0001D) {
  166. Math.round(0.1D);
  167. return (float) round(tode / kills, 3);
  168. }
  169. if (tode > kills) {
  170. return tode / kills;
  171. }
  172. return kills / tode;
  173. }
  174.  
  175. static HashMap<String, Long> RankingCooldown = new HashMap<String, Long>();
  176. static HashMap<String, Integer> Ranking = new HashMap<String, Integer>();
  177.  
  178. public static int getRanking(String playername) {
  179. if (Ranking.containsKey(playername)) {
  180. Long current = System.currentTimeMillis();
  181. Long end = RankingCooldown.get(playername);
  182. if (end > current) {
  183. return Ranking.get(playername);
  184. } else {
  185. RankingCooldown.put(playername,
  186. System.currentTimeMillis() + 30000);
  187. ResultSet rs = MySQL .getResult("SELECT * FROM SkyPvPStats ORDER BY Points desc");
  188. int i = 0;
  189. try {
  190. while (rs.next()) {
  191. i++;
  192. if (rs.getString("Playername").equalsIgnoreCase(
  193. playername)) {
  194. Ranking.put(playername, i);
  195. return i;
  196. }
  197. }
  198. } catch (SQLException e) {
  199. }
  200. }
  201. } else {
  202. RankingCooldown.put(playername, System.currentTimeMillis() + 30000);
  203. ResultSet rs = MySQL.getResult("SELECT * FROM SkyPvPStats ORDER BY Points desc");
  204. int i = 0;
  205. try {
  206. while (rs.next()) {
  207. i++;
  208. if (rs.getString("Playername").equalsIgnoreCase(playername)) {
  209. Ranking.put(playername, i);
  210. return i;
  211. }
  212. }
  213. } catch (SQLException e) {
  214. }
  215. }
  216.  
  217. return 0;
  218. }
  219.  
  220. static HashMap<Integer, String> rang = new HashMap<>();
  221.  
  222. public static void getTop5(Player p){
  223.  
  224. ResultSet rs = MySQL.getResult("SELECT UUID FROM SkyPvPStats ORDER BY Points DESC LIMIT 5");
  225. int i = 0;
  226. try {
  227. while(rs.next()) {
  228. i++;
  229. try {
  230. rang.put(i, rs.getString("UUID"));
  231. } catch (SQLException e) {
  232. e.printStackTrace();
  233. }
  234. }
  235. } catch (SQLException e) {
  236. e.printStackTrace();
  237. }
  238.  
  239. String name = Bukkit.getOfflinePlayer(UUID.fromString(rang.get(i +1))).getName();
  240. p.sendMessage("§cPlatz §c" + i + 1+ " §8- §6" + name);
  241.  
  242. }
  243.  
  244.  
  245. // static HashMap<Integer, String> ranking = new HashMap<>();
  246. //
  247. // public static void setTopKills() {
  248. // ResultSet rs = MySQL.getResult("SELECT UUID FROM SkyPvPStats ORDER BY Points DESC LIMIT 5");
  249. // int i = 0;
  250. //
  251. // try {
  252. // while(rs.next()) {
  253. // i++;
  254. // ranking.put(i, rs.getString("UUID"));
  255. // }
  256. // } catch (SQLException e) {
  257. // e.printStackTrace();
  258. // }
  259. //
  260. // FileConfiguration cfg = MySQL.getFileConfiguration();
  261. //
  262. // Location loc1 = new Location(Bukkit.getWorld("world"), 12, 152, 6);
  263. // Location loc2 = new Location(Bukkit.getWorld("world"), 13, 152, 6);
  264. // Location loc3 = new Location(Bukkit.getWorld("world"), 14, 152, 6);
  265. // Location loc4 = new Location(Bukkit.getWorld("world"), 15, 152, 6);
  266. // Location loc5 = new Location(Bukkit.getWorld("world"), 16, 152, 6);
  267. //
  268. // List<Location> LOC = new ArrayList<>();
  269. // LOC.add(loc1);
  270. // LOC.add(loc2);
  271. // LOC.add(loc3);
  272. // LOC.add(loc4);
  273. // LOC.add(loc5);
  274. //
  275. // for(int a = 0; a < LOC.size(); a++) {
  276. // int id = i;
  277. //
  278. // LOC.get(i).getBlock().setType(Material.SKULL);
  279. // Skull s = (Skull) LOC.get(i).getBlock().getState();
  280. // s.setSkullType(SkullType.PLAYER);
  281. // String name = Bukkit.getOfflinePlayer(UUID.fromString(ranking.get(i))).getName();
  282. //
  283. // s.setOwner(name);
  284. // s.update();
  285. //
  286. // Location newloc = new Location(LOC.get(i).getWorld(), LOC.get(i).getX(), LOC.get(i).getY() -1, LOC.get(i).getZ());
  287. //
  288. // if(newloc.getBlock().getState() instanceof Sign) {
  289. // BlockState b = newloc.getBlock().getState();
  290. // Sign S = (Sign) b;
  291. // S.setLine(0, "§6Platz #§e" + id + 1);
  292. // S.setLine(1, name);
  293. // S.setLine(2, "");
  294. // S.setLine(3, "§e" + StatsSQL.getPoints(ranking.get(id)) + " §cPunkte");
  295. // }
  296. // }
  297. //
  298. // }
  299. private static String getUUID(String playername) {
  300. return Bukkit.getOfflinePlayer(playername).getUniqueId().toString();
  301. }
  302.  
  303.  
  304. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement