Advertisement
Guest User

Untitled

a guest
Apr 16th, 2017
87
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 14.63 KB | None | 0 0
  1. package net.mcshockwave.bungee;
  2.  
  3. import net.md_5.bungee.BungeeCord;
  4. import net.md_5.bungee.api.ChatColor;
  5. import net.md_5.bungee.api.scheduler.ScheduledTask;
  6.  
  7. import java.net.URL;
  8. import java.sql.Connection;
  9. import java.sql.DriverManager;
  10. import java.sql.ResultSet;
  11. import java.sql.SQLException;
  12. import java.sql.Statement;
  13. import java.util.ArrayList;
  14. import java.util.LinkedHashMap;
  15. import java.util.Scanner;
  16. import java.util.concurrent.TimeUnit;
  17.  
  18. import com.sun.org.apache.xml.internal.security.exceptions.Base64DecodingException;
  19. import com.sun.org.apache.xml.internal.security.utils.Base64;
  20.  
  21. public class SQLTable {
  22. public static ArrayList<SQLTable> tables = new ArrayList<>();
  23.  
  24. public static final SQLTable ADMINS = new SQLTable("ADMINS");
  25. public static final SQLTable BanHistory = new SQLTable("BanHistory");
  26. public static final SQLTable Banned = new SQLTable("Banned");
  27. public static final SQLTable BattleBaneItems = new SQLTable("BattleBaneItems");
  28. public static final SQLTable Coins = new SQLTable("Coins");
  29. public static final SQLTable CurrentChallenges = new SQLTable("CurrentChallenges");
  30. public static final SQLTable Dojo = new SQLTable("Dojo");
  31. public static final SQLTable ForceCosts = new SQLTable("ForceCosts");
  32. public static final SQLTable ForceCooldowns = new SQLTable("ForceCooldowns");
  33. public static final SQLTable Friends = new SQLTable("Friends");
  34. public static final SQLTable IPBans = new SQLTable("IPBans");
  35. public static final SQLTable IPLogs = new SQLTable("IPLogs");
  36. public static final SQLTable JunMODS = new SQLTable("JunMODS");
  37. public static final SQLTable Level = new SQLTable("Level");
  38. public static final SQLTable MinigameMaps = new SQLTable("MinigameMaps");
  39. public static final SQLTable MiscItems = new SQLTable("MiscItems");
  40. public static final SQLTable ModCommands = new SQLTable("ModCommands");
  41. public static final SQLTable MODS = new SQLTable("MODS");
  42. public static final SQLTable Muted = new SQLTable("Muted");
  43. public static final SQLTable MynerimItems = new SQLTable("MynerimItems");
  44. public static final SQLTable NetMultipliers = new SQLTable("NetMultipliers");
  45. public static final SQLTable nickNames = new SQLTable("nickNames");
  46. public static final SQLTable OldUsernames = new SQLTable("OldUsernames");
  47. public static final SQLTable OPS = new SQLTable("OPS");
  48. public static final SQLTable PermaItems = new SQLTable("PermaItems");
  49. public static final SQLTable Points = new SQLTable("Points");
  50. public static final SQLTable PrivateMutes = new SQLTable("PrivateMutes");
  51. public static final SQLTable RedeemCodes = new SQLTable("RedeemCodes");
  52. public static final SQLTable Rules = new SQLTable("Rules");
  53. public static final SQLTable Scavenger = new SQLTable("Scavenger");
  54. public static final SQLTable Settings = new SQLTable("Settings");
  55. public static final SQLTable SkillTokens = new SQLTable("SkillTokens");
  56. public static final SQLTable SRMODS = new SQLTable("SRMODS");
  57. public static final SQLTable Statistics = new SQLTable("Statistics");
  58. public static final SQLTable Tips = new SQLTable("Tips");
  59. public static final SQLTable TTTMaps = new SQLTable("TTTMaps");
  60. public static final SQLTable Updater = new SQLTable("Updater");
  61. public static final SQLTable Youtubers = new SQLTable("Youtubers");
  62. public static final SQLTable VIPS = new SQLTable("VIPS");
  63. public static final SQLTable Zombiez = new SQLTable("Zombiez");
  64.  
  65. public String name;
  66.  
  67. public SQLTable(String name) {
  68. this.name = name;
  69. tables.add(this);
  70. }
  71.  
  72. public String name() {
  73. return name;
  74. }
  75.  
  76. public static String SQL_IP = "192.99.39.117";
  77.  
  78. public static String SqlIP = SQL_IP;
  79. public static String SqlName = "vahost24";
  80. public static String SqlUser = SqlName;
  81.  
  82. public static Statement stmt = null;
  83. public static Connection con = null;
  84.  
  85. public static ScheduledTask conRestart = null;
  86.  
  87. public static void enable() {
  88. BungeeCord.getInstance().getLogger().info("Enabling SQL Connection");
  89. if (conRestart != null) {
  90. conRestart.cancel();
  91. }
  92. try {
  93. con = DriverManager.getConnection("jdbc:mysql://" + SqlIP + ":3306/" + SqlName, SqlUser, new StringBuffer(
  94. new String(Base64.decode(pswd()))).reverse().toString());
  95. stmt = con.createStatement();
  96.  
  97. if (stmt == null) {
  98. restartConnection();
  99. return;
  100. }
  101.  
  102. conRestart = BungeeCord.getInstance().getScheduler().schedule(BungeeLink.ins, new Runnable() {
  103. public void run() {
  104. try {
  105. if (stmt == null || con == null || stmt.isClosed() || con.isClosed()) {
  106. restartConnection();
  107. }
  108. } catch (SQLException e) {
  109. restartConnection();
  110. e.printStackTrace();
  111. }
  112. }
  113. }, 10, 10, TimeUnit.MINUTES);
  114. } catch (SQLException | Base64DecodingException e) {
  115. BungeeCord.getInstance().getLogger().severe("SQL Connection enable FAILED!");
  116. BungeeCord.getInstance().getScheduler().schedule(BungeeLink.ins, new Runnable() {
  117. public void run() {
  118. restartConnection();
  119. }
  120. }, 1, TimeUnit.SECONDS);
  121. e.printStackTrace();
  122. }
  123. }
  124.  
  125. private static byte[] pswd() {
  126. try {
  127. URL url = new URL("http://mcsw.us/xebEgx.txt");
  128. Scanner in = new Scanner(url.openStream());
  129. String enc = in.next();
  130. in.close();
  131. return new StringBuffer(enc).reverse().toString().getBytes();
  132. } catch (Exception e) {
  133. e.printStackTrace();
  134. }
  135. return new byte[0];
  136. }
  137.  
  138. public static void restartConnection() {
  139. BungeeCord.getInstance().getLogger().info("Restarting SQL Connection");
  140. try {
  141. if (stmt != null) {
  142. stmt.close();
  143. }
  144. if (con != null) {
  145. con.close();
  146. }
  147. BungeeCord.getInstance().getLogger().info("SQL Connection successfully restarted!");
  148. } catch (SQLException e) {
  149. BungeeCord.getInstance().getLogger().severe("SQL Restart FAILED!");
  150. e.printStackTrace();
  151. }
  152. enable();
  153. }
  154.  
  155. public boolean has(String col, String val) {
  156. String in = "SELECT " + col + " FROM " + name() + " WHERE " + col + "='" + val + "';";
  157. try {
  158. ResultSet rs = stmt.executeQuery(in);
  159. if (!rs.next())
  160. return false;
  161. Object o = rs.getObject(col);
  162. return o != null;
  163. } catch (SQLException e) {
  164. e.printStackTrace();
  165. }
  166. restartConnection();
  167. return false;
  168. }
  169.  
  170. public String get(String col, String val, String colGet) {
  171. String in = "SELECT " + colGet + " FROM " + name() + " WHERE " + col + "='" + val + "';";
  172. try {
  173. ResultSet rs = stmt.executeQuery(in);
  174. if (!rs.next())
  175. return null;
  176. String s = rs.getString(colGet);
  177. return s;
  178. } catch (SQLException e) {
  179. e.printStackTrace();
  180. }
  181. restartConnection();
  182. return null;
  183. }
  184.  
  185. public String getWhere(String where, String colGet) {
  186. String in = "SELECT " + colGet + " FROM " + name() + " WHERE " + where + ";";
  187. try {
  188. ResultSet rs = stmt.executeQuery(in);
  189. if (!rs.next())
  190. return null;
  191. String s = rs.getString(colGet);
  192. return s;
  193. } catch (SQLException e) {
  194. e.printStackTrace();
  195. }
  196. restartConnection();
  197. return null;
  198. }
  199.  
  200. public int getIntWhere(String where, String colGet) {
  201. String in = "SELECT " + colGet + " FROM " + name() + " WHERE " + where + ";";
  202. try {
  203. ResultSet rs = stmt.executeQuery(in);
  204. if (!rs.next())
  205. return -1;
  206. int s = rs.getInt(colGet);
  207. return s;
  208. } catch (SQLException e) {
  209. e.printStackTrace();
  210. }
  211. restartConnection();
  212. return -1;
  213. }
  214.  
  215. public int getInt(String col, String val, String colGet) {
  216. String in = "SELECT " + colGet + " FROM " + name() + " WHERE " + col + "='" + val + "';";
  217. try {
  218. ResultSet rs = stmt.executeQuery(in);
  219. if (!rs.next())
  220. return -1;
  221. int s = rs.getInt(colGet);
  222. return s;
  223. } catch (SQLException e) {
  224. e.printStackTrace();
  225. }
  226. restartConnection();
  227. return -1;
  228. }
  229.  
  230. public float getFloat(String col, String val, String colGet) {
  231. String in = "SELECT " + colGet + " FROM " + name() + " WHERE " + col + "='" + val + "';";
  232. try {
  233. ResultSet rs = stmt.executeQuery(in);
  234. if (!rs.next())
  235. return -1;
  236. float s = rs.getFloat(colGet);
  237. return s;
  238. } catch (SQLException e) {
  239. e.printStackTrace();
  240. }
  241. restartConnection();
  242. return -1;
  243. }
  244.  
  245. public ArrayList<String> getAll(String col, String val) {
  246. String in = "SELECT " + col + " FROM " + name() + " WHERE " + col + "='" + val + "';";
  247. try {
  248. ResultSet rs = stmt.executeQuery(in);
  249. ArrayList<String> b = new ArrayList<String>();
  250. while (rs.next()) {
  251. b.add(rs.getString(col));
  252. }
  253. return b;
  254. } catch (Exception e) {
  255. e.printStackTrace();
  256. }
  257. restartConnection();
  258. return null;
  259. }
  260.  
  261. public ArrayList<String> getAll(String col, String val, String colGet) {
  262. String in = "SELECT " + colGet + " FROM " + name() + " WHERE " + col + "='" + val + "';";
  263. try {
  264. ResultSet rs = stmt.executeQuery(in);
  265. ArrayList<String> b = new ArrayList<String>();
  266. while (rs.next()) {
  267. b.add(rs.getString(colGet));
  268. }
  269. return b;
  270. } catch (Exception e) {
  271. e.printStackTrace();
  272. }
  273. restartConnection();
  274. return null;
  275. }
  276.  
  277. public ArrayList<String> getAll(String colGet) {
  278. String in = "SELECT " + colGet + " FROM " + name() + ";";
  279. try {
  280. ResultSet rs = stmt.executeQuery(in);
  281. ArrayList<String> b = new ArrayList<String>();
  282. while (rs.next()) {
  283. b.add(rs.getString(colGet));
  284. }
  285. return b;
  286. } catch (Exception e) {
  287. e.printStackTrace();
  288. }
  289. restartConnection();
  290. return null;
  291. }
  292.  
  293. public void add(String... add) {
  294. String in = "INSERT INTO " + name() + " (" + add[0];
  295. String vals = "'" + add[1] + "'";
  296. for (int i = 2; i < add.length; i++) {
  297. String s = add[i];
  298. if (i % 2 == 0) {
  299. in += ", " + s;
  300. } else {
  301. vals += ", '" + s + "'";
  302. }
  303. }
  304. in += ") VALUES (" + vals + ");";
  305. try {
  306. stmt.execute(in);
  307. } catch (SQLException e) {
  308. e.printStackTrace();
  309. restartConnection();
  310. }
  311. }
  312.  
  313. public void set(String col, String val, String whereCol, String whereVal) {
  314. String in = "UPDATE " + name() + " SET " + col + "='" + val + "' WHERE " + whereCol + "='" + whereVal + "';";
  315. try {
  316. stmt.executeUpdate(in);
  317. } catch (SQLException e) {
  318. e.printStackTrace();
  319. restartConnection();
  320. }
  321. }
  322.  
  323. public void del(String col, String val) {
  324. String in = "DELETE FROM " + name() + " WHERE " + col + "='" + val + "';";
  325. try {
  326. stmt.execute(in);
  327. } catch (SQLException e) {
  328. e.printStackTrace();
  329. restartConnection();
  330. }
  331. }
  332.  
  333. public boolean hasWhere(String col, String where) {
  334. String in = "SELECT " + col + " FROM " + name() + " WHERE " + where + ";";
  335. try {
  336. ResultSet rs = stmt.executeQuery(in);
  337. if (!rs.next())
  338. return false;
  339. Object o = rs.getObject(col);
  340. return o != null;
  341. } catch (SQLException e) {
  342. e.printStackTrace();
  343. }
  344. restartConnection();
  345. return false;
  346. }
  347.  
  348. public LinkedHashMap<String, String> getAllOrder(String col1, String col2, int ord) {
  349. LinkedHashMap<String, String> ret = new LinkedHashMap<>();
  350. String in = "SELECT * FROM " + name() + " ORDER BY " + col2 + " DESC LIMIT 0, " + ord + ";";
  351. try {
  352. ResultSet rs = stmt.executeQuery(in);
  353. while (rs.next()) {
  354. ret.put(rs.getString(col1), rs.getString(col2));
  355. }
  356. } catch (Exception e) {
  357. e.printStackTrace();
  358. }
  359. restartConnection();
  360. return ret;
  361. }
  362.  
  363. public ResultSet getRSet(String where) {
  364. String in = "SELECT * FROM " + name() + " WHERE " + where + ";";
  365. try {
  366. ResultSet rs = stmt.executeQuery(in);
  367. return rs;
  368. } catch (SQLException e) {
  369. e.printStackTrace();
  370. }
  371. restartConnection();
  372. return null;
  373. }
  374.  
  375. public void delWhere(String where) {
  376. String in = "DELETE FROM " + name() + " WHERE " + where + ";";
  377. try {
  378. stmt.execute(in);
  379. } catch (SQLException e) {
  380. restartConnection();
  381. e.printStackTrace();
  382. }
  383. }
  384.  
  385. /*
  386. * Example: "DELETE FROM %s WHERE 1" would purge table
  387. */
  388. public void execute(String exec) {
  389. String in = String.format(exec, "'" + name() + "'");
  390. try {
  391. stmt.execute(in);
  392. } catch (SQLException e) {
  393. e.printStackTrace();
  394. restartConnection();
  395. }
  396. }
  397.  
  398. public static boolean hasRank(String name, Rank r) {
  399. if (r == Rank.JR_MOD) {
  400. return JunMODS.has("Username", name) || MODS.has("Username", name) || SRMODS.has("Username", name)
  401. || ADMINS.has("Username", name);
  402. } else if (r == Rank.MOD) {
  403. return MODS.has("Username", name) || SRMODS.has("Username", name) || ADMINS.has("Username", name);
  404. } else if (r == Rank.SR_MOD) {
  405. return SRMODS.has("Username", name) || ADMINS.has("Username", name);
  406. } else if (r == Rank.ADMIN) {
  407. return ADMINS.has("Username", name);
  408. } else if (VIPS.has("Username", name) || JunMODS.has("Username", name) || MODS.has("Username", name)
  409. || SRMODS.has("Username", name) || ADMINS.has("Username", name)) {
  410. return VIPS.getInt("Username", name, "TypeID") >= r.val || JunMODS.has("Username", name)
  411. || MODS.has("Username", name) || SRMODS.has("Username", name) || ADMINS.has("Username", name);
  412. } else if (r == Rank.YOUTUBE) {
  413. return Youtubers.has("Username", name) || JunMODS.has("Username", name) || MODS.has("Username", name)
  414. || SRMODS.has("Username", name) || ADMINS.has("Username", name);
  415. } else
  416. return false;
  417. }
  418.  
  419. public static void setRank(String name, Rank r) {
  420. if (r != Rank.YOUTUBE) {
  421. clearRank(name);
  422. }
  423. if (r == Rank.ADMIN) {
  424. ADMINS.add("Username", name);
  425. } else if (r == Rank.SR_MOD) {
  426. SRMODS.add("Username", name);
  427. } else if (r == Rank.MOD) {
  428. MODS.add("Username", name);
  429. } else if (r == Rank.JR_MOD) {
  430. JunMODS.add("Username", name);
  431. } else if (r == Rank.YOUTUBE) {
  432. Youtubers.add("Username", name);
  433. } else if (r != null) {
  434. VIPS.add("Username", name, "TypeId", r.val + "");
  435. }
  436. }
  437.  
  438. public static void clearRank(String name) {
  439. SQLTable[] tables = { ADMINS, SRMODS, MODS, JunMODS, VIPS };
  440. for (SQLTable t : tables) {
  441. t.del("Username", name);
  442. }
  443. }
  444.  
  445. public enum Rank {
  446. COAL(
  447. 0,
  448. ChatColor.DARK_GRAY),
  449. IRON(
  450. 1,
  451. ChatColor.GRAY),
  452. GOLD(
  453. 2,
  454. ChatColor.YELLOW),
  455. DIAMOND(
  456. 3,
  457. ChatColor.AQUA),
  458. EMERALD(
  459. 4,
  460. ChatColor.GREEN),
  461. OBSIDIAN(
  462. 5,
  463. ChatColor.DARK_PURPLE),
  464. NETHER(
  465. 6,
  466. ChatColor.DARK_RED),
  467. ENDER(
  468. 7,
  469. ChatColor.BLACK),
  470. YOUTUBE(
  471. 0,
  472. ChatColor.DARK_RED),
  473. JR_MOD(
  474. 0,
  475. ChatColor.YELLOW),
  476. MOD(
  477. 0,
  478. ChatColor.GOLD),
  479. SR_MOD(
  480. 0,
  481. ChatColor.BLUE),
  482. ADMIN(
  483. 0,
  484. ChatColor.RED);
  485.  
  486. int val;
  487. public ChatColor sufColor;
  488.  
  489. Rank(int val, ChatColor sufColor) {
  490. this.val = val;
  491. }
  492. }
  493. }
  494. Contact GitHub API Training Shop Blog About
  495. © 2017 GitHub, Inc. Terms Privacy Security Status Help
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement