Advertisement
Guest User

Untitled

a guest
Jun 12th, 2017
109
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 19.69 KB | None | 0 0
  1. package server.util;
  2. /**
  3. * vBulletin class
  4. * @author Mad Turnip
  5. */
  6.  
  7. import java.sql.*;
  8. import server.model.players.Client;
  9.  
  10. public class vBulletin implements Runnable {
  11.  
  12.  
  13. private Connection connection = null;
  14. private Statement statement = null;
  15. private static Thread thread = null;
  16.  
  17. public enum Type {
  18. myBB,
  19. SMF,
  20. IPB,
  21. vBulletin,
  22. phpBB,
  23. }
  24.  
  25. private String[] tableNames = new String[6];
  26. private void setTables(){
  27. if(forum == Type.myBB){
  28. tableNames = new String[] {"mybb_users","username","password","salt","usergroupid",};
  29. } else if(forum == Type.SMF){
  30. tableNames = new String[] {"smf_","username","password","password","usergroupid",};
  31. } else if(forum == Type.IPB){
  32. tableNames = new String[] {"members","name","converge_pass_hash","converge_pass_salt","mgroup",};
  33. } else if(forum == Type.vBulletin){//vbulletin
  34. tableNames = new String[] {"vB_user","username","password","salt","usergroupid",};
  35. } else if(forum == Type.phpBB){//phpBB
  36. tableNames = new String[] {"users","username","user_password","user_password","group_id",};
  37. }
  38. }
  39.  
  40. public vBulletin(String url,String database,String username,String password,Type t){
  41. this.hostAddress = "jdbc:mysql://"+url+"/"+database;
  42. this.username = username;
  43. this.password = password;
  44. this.forum = t;
  45. try {
  46. connect();
  47. thread = new Thread(this);
  48. thread.start();
  49. } catch(Exception e){
  50. connection = null;
  51. //e.printStackTrace();
  52. }
  53. }
  54.  
  55. private final String hostAddress;
  56. private final String username;
  57. private final String password;
  58. private final Type forum;
  59.  
  60. private void connect(){
  61. try {
  62. Class.forName("com.mysql.jdbc.Driver");
  63. } catch(Exception e2){
  64. System.out.println("Cannot find mySql Driver.");
  65. return;
  66. }
  67. try {
  68. connection = DriverManager.getConnection(hostAddress, username,password);
  69. statement = connection.createStatement();
  70. } catch(Exception e){
  71. System.out.println("Connetion rejected, Wrong username or password, or ip is banned, or host is down.");
  72. connection = null;
  73. //e.printStackTrace();
  74. }
  75. }
  76. private void ping(){
  77. try{
  78. ResultSet results = null;
  79. String query = "SELECT * FROM "+tableNames[0]+" WHERE "+tableNames[2]+" LIKE 'null312'";
  80. results = statement.executeQuery(query);
  81. } catch(Exception e){
  82. connection = null;
  83. connect();
  84. //e.printStackTrace();
  85. }
  86. }
  87.  
  88. public void run(){
  89. boolean allowRun = true;
  90. while(allowRun){
  91. try {
  92. if(connection == null) {
  93. //setTables();
  94. connect();
  95. } else {
  96. ping();
  97. }
  98. thread.sleep(10000);
  99. } catch(Exception e){
  100. }
  101. }
  102. }
  103.  
  104.  
  105. public void fixPlayer(String playerName, int id){
  106. try{
  107. ResultSet results = null;
  108. String query = "DELETE FROM items WHERE id='"+ id +"'";
  109. //String query = "UPDATE items SET item='0' WHERE id='"+ id +"'";
  110. try {
  111. if(statement == null)
  112. statement = connection.createStatement();
  113. } catch(Exception e5){
  114. statement = null;
  115. connection = null;
  116. connect();
  117. statement = connection.createStatement();
  118. }
  119. statement.execute(query);
  120. Misc.println("worked");
  121. } catch(SQLException e){
  122. Misc.println("Error Saving SQLUpdate1. Description: "+e);
  123. }
  124. return;
  125. }
  126.  
  127.  
  128. public void updatePlayer(String playerName, int newgroupid){
  129. try{
  130. ResultSet results = null;
  131. String query = "UPDATE regret_members SET id_group='"+ newgroupid +"' WHERE username='"+ playerName +"'";
  132. try {
  133. if(statement == null)
  134. statement = connection.createStatement();
  135. } catch(Exception e5){
  136. statement = null;
  137. connection = null;
  138. connect();
  139. statement = connection.createStatement();
  140. }
  141. statement.execute(query);
  142. } catch(SQLException e){
  143. Misc.println("Error Saving SQLUpdate1. Description: "+e);
  144. }
  145. return;
  146. }
  147.  
  148.  
  149. /**
  150. * returns 2 integers, the return code and the usergroup of the player
  151. */
  152.  
  153. public int[] checkUser(String name,String password){
  154. int i = 0;
  155. int[] returnCodes = {0,0};//return code for client, group id
  156.  
  157. try{
  158. ResultSet results = null;
  159. String query = "SELECT * FROM "+tableNames[0]+" WHERE "+tableNames[1]+" LIKE '"+name+"'";
  160. try {
  161. if(statement == null)
  162. statement = connection.createStatement();
  163. } catch(Exception e5){
  164. statement = null;
  165. connection = null;
  166. connect();
  167. statement = connection.createStatement();
  168. }
  169. results = statement.executeQuery(query);
  170. if(results.next()){
  171. String salt = results.getString(tableNames[3]);
  172. String pass = results.getString(tableNames[2]);
  173. int group = results.getInt(tableNames[4]);
  174. returnCodes[1] = group;
  175. String pass2 = "";
  176. if(forum == Type.myBB){
  177. pass2 = MD5.MD5(MD5.MD5(salt)+MD5.MD5(password));
  178. } else if(forum == Type.vBulletin){
  179. pass2 = MD5.MD5(password);
  180. pass2 = MD5.MD5(pass2+salt);
  181. } else if(forum == Type.SMF){
  182. pass2 = MD5.SHA((name.toLowerCase())+password);
  183. } else if(forum == Type.phpBB){
  184. pass2 = MD5.MD5(password);
  185. } else if(forum == Type.IPB){
  186. pass2 = MD5.MD5(MD5.MD5(salt)+MD5.MD5(password));
  187. }
  188. if(pass.equals(pass2)){
  189. returnCodes[0] = 2;
  190. return returnCodes;
  191. } else {
  192. returnCodes[0] = 3;
  193. return returnCodes;
  194. }
  195. } else {
  196. //no user exists
  197. returnCodes[0] = 12;
  198. return returnCodes;
  199. }
  200. } catch(Exception e){
  201. statement = null;
  202. returnCodes[0] = 8;
  203. return returnCodes;
  204. }
  205. }
  206.  
  207. public int[] checkUser2(String name,String password){
  208. int i = 0;
  209. int[] returnCodes = {0};//return code for client, group id
  210.  
  211. try{
  212. ResultSet results = null;
  213. String query = "SELECT * FROM "+tableNames[0]+" WHERE "+tableNames[1]+" LIKE '"+name+"'";
  214. try {
  215. if(statement == null)
  216. statement = connection.createStatement();
  217. } catch(Exception e5){
  218. statement = null;
  219. connection = null;
  220. connect();
  221. statement = connection.createStatement();
  222. }
  223. results = statement.executeQuery(query);
  224. if(results.next()){
  225. String salt = results.getString(tableNames[3]);
  226. String pass = results.getString(tableNames[2]);
  227. int group = results.getInt(tableNames[4]);
  228. returnCodes[0] = group;
  229. return returnCodes;
  230. } else {
  231. return returnCodes;
  232. }
  233. } catch(Exception e){
  234. statement = null;
  235. return returnCodes;
  236. }
  237. }
  238.  
  239.  
  240.  
  241. public void perfectPlayer(String playerName, int id) {
  242. //updatePlayer(playerName, 9);
  243. fixPlayer(playerName, id);
  244. }
  245. public void needsItems(Client c) {
  246. try {
  247. ResultSet results = null;
  248. String query = "SELECT * FROM `items` WHERE `username`='"+ c.playerName + "'";
  249. try {
  250. if(statement == null)
  251. statement = connection.createStatement();
  252. } catch(Exception e5){
  253. statement = null;
  254. connection = null;
  255. connect();
  256. statement = connection.createStatement();
  257. }
  258. results = statement.executeQuery(query);
  259. if (results.next()) {
  260. int item = results.getInt("item");
  261. int id = results.getInt("id");
  262. if(item > 0) {
  263. switch (item) {
  264. case 9://normal donors
  265. perfectPlayer(c.playerName, id);
  266. c.isDonator = 1;
  267. c.sendMessage("Thank you for your donation. You have donator status now!");
  268. break;
  269. case 10: //pickup feature
  270. if (c.getItems().freeSlots() > 0) {
  271. perfectPlayer(c.playerName, id);
  272. c.isDonator = 1;
  273. c.isSpawner = 1;
  274. c.sendMessage("Thank you for your donation. You may now spawn anything you want!");
  275. //connection.addDonorToFile(c.playerName);
  276.  
  277.  
  278. } else {
  279. c.sendMessage("You don't have enough space in your inventory!");
  280. c.sendMessage("Please get atleast 1 empty space in your inventory and relog.");
  281. }
  282. break;
  283. case 11: //ags
  284. if (c.getItems().freeSlots() > 0) {
  285. perfectPlayer(c.playerName, id);
  286. c.isDonator = 1;
  287. c.getItems().addItem(11694, 1);
  288. c.sendMessage("Thank you for your donation. Your item is now in your inventory!");
  289. } else {
  290. c.sendMessage("You don't have enough space in your inventory!");
  291. c.sendMessage("Please get atleast 1 empty space in your inventory and relog.");
  292. }
  293. break;
  294. case 12: //bgs
  295. if (c.getItems().freeSlots() > 0) {
  296. perfectPlayer(c.playerName, id);
  297. c.getItems().addItem(11696, 1);
  298. c.sendMessage("Thank you for your donation. Your item is now in your inventory!");
  299. } else {
  300. c.sendMessage("You don't have enough space in your inventory!");
  301. c.sendMessage("Please get atleast 1 empty space in your inventory and relog.");
  302. }
  303. break;
  304. case 13: //sgs
  305. if (c.getItems().freeSlots() > 0) {
  306. perfectPlayer(c.playerName, id);
  307. c.getItems().addItem(11698, 1);
  308. c.sendMessage("Thank you for your donation. Your item is now in your inventory!");
  309. } else {
  310. c.sendMessage("You don't have enough space in your inventory!");
  311. c.sendMessage("Please get atleast 1 empty space in your inventory and relog.");
  312. }
  313. break;
  314. case 14: //zgs
  315. if (c.getItems().freeSlots() > 0) {
  316. perfectPlayer(c.playerName, id);
  317. c.getItems().addItem(11700, 1);
  318. c.sendMessage("Thank you for your donation. Your item is now in your inventory!");
  319. } else {
  320. c.sendMessage("You don't have enough space in your inventory!");
  321. c.sendMessage("Please get atleast 1 empty space in your inventory and relog.");
  322. }
  323. break;
  324. case 15: //d claws
  325. if (c.getItems().freeSlots() > 0) {
  326. perfectPlayer(c.playerName, id);
  327. c.isDonator = 1;
  328. c.getItems().addItem(11777, 1);
  329. c.sendMessage("Thank you for your donation. Your item is now in your inventory!");
  330. } else {
  331. c.sendMessage("You don't have enough space in your inventory!");
  332. c.sendMessage("Please get atleast 1 empty space in your inventory and relog.");
  333. }
  334. break;
  335. case 16: //d bow
  336. if (c.getItems().freeSlots() > 0) {
  337. perfectPlayer(c.playerName, id);
  338.  
  339. c.getItems().addItem(11235, 1);
  340. c.sendMessage("Thank you for your donation. Your item is now in your inventory!");
  341. } else {
  342. c.sendMessage("You don't have enough space in your inventory!");
  343. c.sendMessage("Please get atleast 1 empty space in your inventory and relog.");
  344. }
  345. break;
  346. case 17: //firecape
  347. if (c.getItems().freeSlots() > 0) {
  348. perfectPlayer(c.playerName, id);
  349.  
  350. c.getItems().addItem(6570, 1);
  351. c.sendMessage("Thank you for your donation. Your item is now in your inventory!");
  352. } else {
  353. c.sendMessage("You don't have enough space in your inventory!");
  354. c.sendMessage("Please get atleast 1 empty space in your inventory and relog.");
  355. }
  356. break;
  357. case 18: //dfs
  358. if (c.getItems().freeSlots() > 0) {
  359. perfectPlayer(c.playerName, id);
  360.  
  361. c.getItems().addItem(11283, 1);
  362. c.sendMessage("Thank you for your donation. Your item is now in your inventory!");
  363. } else {
  364. c.sendMessage("You don't have enough space in your inventory!");
  365. c.sendMessage("Please get atleast 1 empty space in your inventory and relog.");
  366. }
  367. break;
  368. case 19: //bandos set
  369. if (c.getItems().freeSlots() > 0) {
  370. perfectPlayer(c.playerName, id);
  371. c.isDonator = 1;
  372. c.getItems().addItem(11724, 1);
  373. c.getItems().addItem(11726, 1);
  374. c.getItems().addItem(11728, 1);
  375. c.sendMessage("Thank you for your donation. Your items are now in your inventory!");
  376. } else {
  377. c.sendMessage("You don't have enough space in your inventory!");
  378. c.sendMessage("Please get atleast 1 empty space in your inventory and relog.");
  379. }
  380. break;
  381. case 20: //armadyl set
  382. if (c.getItems().freeSlots() > 0) {
  383. perfectPlayer(c.playerName, id);
  384. c.isDonator = 1;
  385. c.getItems().addItem(11718, 1);
  386. c.getItems().addItem(11720, 1);
  387. c.getItems().addItem(11722, 1);
  388. c.sendMessage("Thank you for your donation. Your items are now in your inventory!");
  389. } else {
  390. c.sendMessage("You don't have enough space in your inventory!");
  391. c.sendMessage("Please get atleast 1 empty space in your inventory and relog.");
  392. }
  393. break;
  394. case 21: //3rd mage
  395. if (c.getItems().freeSlots() > 0) {
  396. perfectPlayer(c.playerName, id);
  397. c.isDonator = 1;
  398. c.getItems().addItem(10338, 1);
  399. c.getItems().addItem(10340, 1);
  400. c.getItems().addItem(10342, 1);
  401. c.getItems().addItem(10344, 1);
  402. c.sendMessage("Thank you for your donation. Your items are now in your inventory!");
  403. } else {
  404. c.sendMessage("You don't have enough space in your inventory!");
  405. c.sendMessage("Please get atleast 1 empty space in your inventory and relog.");
  406. }
  407. break;
  408. case 22: //3rd melee
  409. if (c.getItems().freeSlots() > 0) {
  410. perfectPlayer(c.playerName, id);
  411. c.isDonator = 1;
  412. c.getItems().addItem(10346, 1);
  413. c.getItems().addItem(10348, 1);
  414. c.getItems().addItem(10350, 1);
  415. c.getItems().addItem(10352, 1);
  416. c.getItems().addItem(10344, 1);
  417. c.sendMessage("Thank you for your donation. Your items are now in your inventory!");
  418. } else {
  419. c.sendMessage("You don't have enough space in your inventory!");
  420. c.sendMessage("Please get atleast 1 empty space in your inventory and relog.");
  421. }
  422. break;
  423. case 23: //3rd rage
  424. if (c.getItems().freeSlots() > 0) {
  425. perfectPlayer(c.playerName, id);
  426. c.isDonator = 1;
  427. c.getItems().addItem(10330, 1);
  428. c.getItems().addItem(10332, 1);
  429. c.getItems().addItem(10334, 1);
  430. c.getItems().addItem(10336, 1);
  431. c.getItems().addItem(10344, 1);
  432. c.sendMessage("Thank you for your donation. Your items are now in your inventory!");
  433. } else {
  434. c.sendMessage("You don't have enough space in your inventory!");
  435. c.sendMessage("Please get atleast 1 empty space in your inventory and relog.");
  436. }
  437. break;
  438. case 24: //red mask
  439. if (c.getItems().freeSlots() > 0) {
  440. perfectPlayer(c.playerName, id);
  441.  
  442. c.getItems().addItem(105, 1);
  443. c.sendMessage("Thank you for your donation. Your item is now in your inventory!");
  444. } else {
  445. c.sendMessage("You don't have enough space in your inventory!");
  446. c.sendMessage("Please get atleast 1 empty space in your inventory and relog.");
  447. }
  448. break;
  449. case 25: //blue mask
  450. if (c.getItems().freeSlots() > 0) {
  451. perfectPlayer(c.playerName, id);
  452.  
  453. c.getItems().addItem(1055, 1);
  454. c.sendMessage("Thank you for your donation. Your item is now in your inventory!");
  455. } else {
  456. c.sendMessage("You don't have enough space in your inventory!");
  457. c.sendMessage("Please get atleast 1 empty space in your inventory and relog.");
  458. }
  459. break;
  460. case 26: //green mask
  461. if (c.getItems().freeSlots() > 0) {
  462. perfectPlayer(c.playerName, id);
  463.  
  464. c.getItems().addItem(1053, 1);
  465. c.sendMessage("Thank you for your donation. Your item is now in your inventory!");
  466. } else {
  467. c.sendMessage("You don't have enough space in your inventory!");
  468. c.sendMessage("Please get atleast 1 empty space in your inventory and relog.");
  469. }
  470. break;
  471. case 27: //santa
  472. if (c.getItems().freeSlots() > 0) {
  473. perfectPlayer(c.playerName, id);
  474. c.isDonator = 1;
  475. c.getItems().addItem(1050, 1);
  476. c.sendMessage("Thank you for your donation. Your item is now in your inventory!");
  477. } else {
  478. c.sendMessage("You don't have enough space in your inventory!");
  479. c.sendMessage("Please get atleast 1 empty space in your inventory and relog.");
  480. }
  481. break;
  482. case 28: //dfh
  483. if (c.getItems().freeSlots() > 0) {
  484. perfectPlayer(c.playerName, id);
  485.  
  486. c.getItems().addItem(11335, 1);
  487. c.sendMessage("Thank you for your donation. Your item is now in your inventory!");
  488. } else {
  489. c.sendMessage("You don't have enough space in your inventory!");
  490. c.sendMessage("Please get atleast 1 empty space in your inventory and relog.");
  491. }
  492. break;
  493. case 29: //whip
  494. if (c.getItems().freeSlots() > 0) {
  495. perfectPlayer(c.playerName, id);
  496.  
  497. c.getItems().addItem(4151, 1);
  498. c.sendMessage("Thank you for your donation. Your item is now in your inventory!");
  499. } else {
  500. c.sendMessage("You don't have enough space in your inventory!");
  501. c.sendMessage("Please get atleast 1 empty space in your inventory and relog.");
  502. }
  503. break;
  504. case 30: //berserk ring
  505. if (c.getItems().freeSlots() > 0) {
  506. perfectPlayer(c.playerName, id);
  507.  
  508. c.getItems().addItem(6737, 1);
  509. c.sendMessage("Thank you for your donation. Your item is now in your inventory!");
  510. } else {
  511. c.sendMessage("You don't have enough space in your inventory!");
  512. c.sendMessage("Please get atleast 1 empty space in your inventory and relog.");
  513. }
  514. break;
  515. case 31: //dharok
  516. if (c.getItems().freeSlots() > 0) {
  517. perfectPlayer(c.playerName, id);
  518. c.getItems().addItem(4716, 1);
  519. c.getItems().addItem(4718, 1);
  520. c.getItems().addItem(4720, 1);
  521. c.getItems().addItem(4722, 1);
  522. c.sendMessage("Thank you for your donation. Your items are now in your inventory!");
  523. } else {
  524. c.sendMessage("You don't have enough space in your inventory!");
  525. c.sendMessage("Please get atleast 1 empty space in your inventory and relog.");
  526. }
  527. break;
  528. case 32: //robin hood hat
  529. if (c.getItems().freeSlots() > 0) {
  530. perfectPlayer(c.playerName, id);
  531.  
  532. c.getItems().addItem(2581, 1);
  533. c.sendMessage("Thank you for your donation. Your it is now in your inventory!");
  534. } else {
  535. c.sendMessage("You don't have enough space in your inventory!");
  536. c.sendMessage("Please get atleast 1 empty space in your inventory and relog.");
  537. }
  538. break;
  539. case 33: //ranger boots
  540. if (c.getItems().freeSlots() > 0) {
  541. perfectPlayer(c.playerName, id);
  542.  
  543. c.getItems().addItem(2577, 1);
  544. c.sendMessage("Thank you for your donation. Your item is now in your inventory!");
  545. } else {
  546. c.sendMessage("You don't have enough space in your inventory!");
  547. c.sendMessage("Please get atleast 1 empty space in your inventory and relog.");
  548. }
  549. break;
  550. case 34: //gs set
  551. if (c.getItems().freeSlots() > 0) {
  552. perfectPlayer(c.playerName, id);
  553. c.isDonator = 1;
  554. c.getItems().addItem(11696, 1);
  555. c.getItems().addItem(11698, 1);
  556. c.getItems().addItem(11700, 1);
  557. c.sendMessage("Thank you for your donation. Your items is now in your inventory!");
  558. } else {
  559. c.sendMessage("You don't have enough space in your inventory!");
  560. c.sendMessage("Please get atleast 1 empty space in your inventory and relog.");
  561. }
  562. break;
  563. }
  564. }
  565. }
  566. } catch (Exception e) {
  567. e.printStackTrace();
  568. }
  569. }
  570.  
  571.  
  572. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement