How to not lag the server with sql updating each time

Discussion in 'Plugin Development' started by michael566, Jun 9, 2014.

Thread Status:
Not open for further replies.
  1. Offline

    michael566

    So I am making a plugin currently where when you mine a certain block it adds a point to your profile on the sql database. But the problem is when you have lots of players all mining at the same time it lags the server. Does anyone know a way so it doesn't lag.

    Thanks
     
  2. Offline

    LegoPal92

    Async.
     
  3. Offline

    michael566


    LegoPal92 Example?
     
  4. Offline

    LegoPal92

    BlockBreakEvent
    if it's the right block,
    Bukkit.getScheduler().runTaskAsynchronously(new Runnable(){
    public void run(){
    UPDATE THE SQL HERE
    }
    };
     
  5. Offline

    michael566

    LegoPal92 Hmm are you sure that thats it im getting errors
     
  6. Offline

    LegoPal92

    michael566

    On what part? Yes, I'm sure. I use it just like that.
     
  7. Offline

    michael566

    LegoPal92 Wait nvm its right now but it still lags
     
  8. Offline

    LegoPal92

    michael566 Show me the code or I can't help any further.
     
  9. Offline

    michael566

    LegoPal92
    Btw it told me to make the blockbreakevent final
    Code:java
    1. @EventHandler
    2. public void onPlayerBlockBreak(final BlockBreakEvent e) {
    3. final Player p = e.getPlayer();
    4. openConnection();
    5.  
    6.  
    7. if (e.getBlock().getType() == Material.DIAMOND_ORE) { //checks for diamond ore
    8. Bukkit.getScheduler().runTaskAsynchronously(this, new Runnable() {
    9. @Override
    10. public void run() {
    11.  
    12.  
    13.  
    14. try {
    15. int previousxp = 0;
    16. PreparedStatement sql = connection.prepareStatement("SELECT xp FROM `playerjoins` WHERE uuid=?");
    17. sql.setString(1, String.valueOf(e.getPlayer().getUniqueId()));
    18. ResultSet resultSet = sql.executeQuery();
    19. resultSet.next();
    20.  
    21. previousxp = resultSet.getInt("xp");
    22. PreparedStatement xpupdate = connection.prepareStatement("UPDATE `playerjoins` SET xp=? WHERE uuid=?;");
    23. xpupdate.setInt(1, previousxp + 270);
    24. xpupdate.setString(2, String.valueOf(e.getPlayer().getUniqueId()));
    25. xpupdate.executeUpdate();
    26.  
    27. if (previousxp >= 305) {
    28. if ((p.getInventory().contains(Material.WOOD_PICKAXE))) {
    29. ItemStack advancedpick = new ItemStack(Material.STONE_PICKAXE);
    30. ItemMeta advancedpickmeta = advancedpick.getItemMeta();
    31. advancedpickmeta.setDisplayName(ChatColor.GRAY + "Advanced Pickaxe");
    32. advancedpick.setItemMeta(advancedpickmeta);
    33. ItemStack basicpick = new ItemStack(Material.WOOD_PICKAXE);
    34. ItemMeta basicpickmeta = basicpick.getItemMeta();
    35. basicpickmeta.setDisplayName("Basic Pickaxe");
    36. basicpick.setItemMeta(basicpickmeta);
    37. p.getInventory().addItem(advancedpick);
    38. p.sendMessage(ChatColor.GREEN + "You have been upgraded to the" + " " + ChatColor.GOLD + "Advanced Pickaxe!");
    39. p.getInventory().remove(basicpick);
    40. //7659
    41.  
    42. }
    43. }
    44.  
    45.  
    46. if (previousxp >= 7659) {
    47. if ((p.getInventory().contains(Material.STONE_PICKAXE))) {
    48. ItemStack uniquepick = new ItemStack(Material.IRON_PICKAXE);
    49. ItemMeta uniquepickmeta = uniquepick.getItemMeta();
    50. uniquepickmeta.setDisplayName(ChatColor.GRAY + "Advanced Pickaxe");
    51. uniquepick.setItemMeta(uniquepickmeta);
    52. ItemStack stonepick = new ItemStack(Material.STONE_PICKAXE);
    53. ItemMeta stonepickmeta = stonepick.getItemMeta();
    54. stonepickmeta.setDisplayName("Advanced Pickaxe");
    55. stonepick.setItemMeta(stonepickmeta);
    56. p.getInventory().addItem(uniquepick);
    57. p.sendMessage(ChatColor.GREEN + "You have been upgraded to the" + " " + ChatColor.GOLD + "Unique Pickaxe!");
    58. p.getInventory().remove(stonepick);
    59. //7659
    60.  
    61. }
    62. }
    63.  
    64. if (previousxp >= 88900) {
    65. if ((p.getInventory().contains(Material.IRON_PICKAXE))) {
    66. ItemStack epicpick = new ItemStack(Material.GOLD_PICKAXE);
    67. ItemMeta epicpickmeta = epicpick.getItemMeta();
    68. epicpickmeta.setDisplayName(ChatColor.GRAY + "Advanced Pickaxe");
    69. epicpick.setItemMeta(epicpickmeta);
    70. ItemStack stonepick = new ItemStack(Material.STONE_PICKAXE);
    71. ItemMeta stonepickmeta = stonepick.getItemMeta();
    72. stonepickmeta.setDisplayName("Basic Pickaxe");
    73. stonepick.setItemMeta(stonepickmeta);
    74. p.getInventory().addItem(epicpick);
    75. p.sendMessage(ChatColor.GREEN + "You have been upgraded to the" + " " + ChatColor.GOLD + "Epic Pickaxe!");
    76. p.getInventory().remove(stonepick);
    77. //7659
    78.  
    79. }
    80. }
    81.  
    82. xpupdate.close();
    83. sql.close();
    84. resultSet.close();
    85.  
    86.  
    87. } catch (Exception ee) {
    88. ee.printStackTrace();
    89. }
    90. } //remove this
    91. });
    92.  
    93. }
    94.  
    95.  
    96.  
    97.  
    98.  
    99. if (e.getBlock().getType() == Material.STONE) { //checks for stone
    100.  
    101.  
    102. try {
    103. int previousxp = 0;
    104. PreparedStatement sql = connection.prepareStatement("SELECT xp FROM `playerjoins` WHERE uuid=?");
    105. sql.setString(1, String.valueOf(e.getPlayer().getUniqueId()));
    106. ResultSet resultSet = sql.executeQuery();
    107. resultSet.next();
    108.  
    109. previousxp = resultSet.getInt("xp");
    110. PreparedStatement xpupdate = connection.prepareStatement("UPDATE `playerjoins` SET xp=? WHERE uuid=?;");
    111. xpupdate.setInt(1, previousxp + 1);
    112. xpupdate.setString(2, String.valueOf(e.getPlayer().getUniqueId()));
    113. xpupdate.executeUpdate();
    114.  
    115. xpupdate.close();
    116. sql.close();
    117. resultSet.close();
    118.  
    119.  
    120.  
    121. } catch (Exception ee) {
    122. ee.printStackTrace();
    123. }
    124.  
    125. }
    126.  
    127. if (e.getBlock().getType() == Material.DIRT) { //checks for dirt
    128.  
    129.  
    130. try {
    131. int previousxp = 0;
    132. PreparedStatement sql = connection.prepareStatement("SELECT xp FROM `playerjoins` WHERE uuid=?");
    133. sql.setString(1, String.valueOf(e.getPlayer().getUniqueId()));
    134. ResultSet resultSet = sql.executeQuery();
    135. resultSet.next();
    136.  
    137. previousxp = resultSet.getInt("xp");
    138. PreparedStatement xpupdate = connection.prepareStatement("UPDATE `playerjoins` SET xp=? WHERE uuid=?;");
    139. xpupdate.setInt(1, previousxp + 1);
    140. xpupdate.setString(2, String.valueOf(e.getPlayer().getUniqueId()));
    141. xpupdate.executeUpdate();
    142.  
    143. xpupdate.close();
    144. sql.close();
    145. resultSet.close();
    146.  
    147.  
    148.  
    149. } catch (Exception ee) {
    150. ee.printStackTrace();
    151. }
    152.  
    153. }
    154. if (e.getBlock().getType() == Material.COBBLESTONE) { //checks for cobblestone
    155.  
    156.  
    157. try {
    158. int previousxp = 0;
    159. PreparedStatement sql = connection.prepareStatement("SELECT xp FROM `playerjoins` WHERE uuid=?");
    160. sql.setString(1, String.valueOf(e.getPlayer().getUniqueId()));
    161. ResultSet resultSet = sql.executeQuery();
    162. resultSet.next();
    163.  
    164. previousxp = resultSet.getInt("xp");
    165. PreparedStatement xpupdate = connection.prepareStatement("UPDATE `playerjoins` SET xp=? WHERE uuid=?;");
    166. xpupdate.setInt(1, previousxp + 1);
    167. xpupdate.setString(2, String.valueOf(e.getPlayer().getUniqueId()));
    168. xpupdate.executeUpdate();
    169.  
    170. xpupdate.close();
    171. sql.close();
    172. resultSet.close();
    173.  
    174.  
    175.  
    176. } catch (Exception ee) {
    177. ee.printStackTrace();
    178. }
    179.  
    180. }
    181.  
    182.  
    183. if (e.getBlock().getType() == Material.MOSSY_COBBLESTONE) { //checks for mossy cobble
    184.  
    185.  
    186. try {
    187. int previousxp = 0;
    188. PreparedStatement sql = connection.prepareStatement("SELECT xp FROM `playerjoins` WHERE uuid=?");
    189. sql.setString(1, String.valueOf(e.getPlayer().getUniqueId()));
    190. ResultSet resultSet = sql.executeQuery();
    191. resultSet.next();
    192.  
    193. previousxp = resultSet.getInt("xp");
    194. PreparedStatement xpupdate = connection.prepareStatement("UPDATE `playerjoins` SET xp=? WHERE uuid=?;");
    195. xpupdate.setInt(1, previousxp + 2);
    196. xpupdate.setString(2, String.valueOf(e.getPlayer().getUniqueId()));
    197. xpupdate.executeUpdate();
    198.  
    199. xpupdate.close();
    200. sql.close();
    201. resultSet.close();
    202.  
    203.  
    204.  
    205. } catch (Exception ee) {
    206. ee.printStackTrace();
    207. }
    208.  
    209. }
    210.  
    211.  
    212.  
    213. if (e.getBlock().getType() == Material.SANDSTONE) { //checks for sandstone
    214.  
    215.  
    216. try {
    217. int previousxp = 0;
    218. PreparedStatement sql = connection.prepareStatement("SELECT xp FROM `playerjoins` WHERE uuid=?");
    219. sql.setString(1, String.valueOf(e.getPlayer().getUniqueId()));
    220. ResultSet resultSet = sql.executeQuery();
    221. resultSet.next();
    222.  
    223. previousxp = resultSet.getInt("xp");
    224. PreparedStatement xpupdate = connection.prepareStatement("UPDATE `playerjoins` SET xp=? WHERE uuid=?;");
    225. xpupdate.setInt(1, previousxp + 2);
    226. xpupdate.setString(2, String.valueOf(e.getPlayer().getUniqueId()));
    227. xpupdate.executeUpdate();
    228.  
    229. xpupdate.close();
    230. sql.close();
    231. resultSet.close();
    232.  
    233.  
    234.  
    235. } catch (Exception ee) {
    236. ee.printStackTrace();
    237. }
    238.  
    239. }
    240.  
    241. if (e.getBlock().getType() == Material.COAL_ORE) { //checks for coal ore
    242.  
    243.  
    244. try {
    245. int previousxp = 0;
    246. PreparedStatement sql = connection.prepareStatement("SELECT xp FROM `playerjoins` WHERE uuid=?");
    247. sql.setString(1, String.valueOf(e.getPlayer().getUniqueId()));
    248. ResultSet resultSet = sql.executeQuery();
    249. resultSet.next();
    250.  
    251. previousxp = resultSet.getInt("xp");
    252. PreparedStatement xpupdate = connection.prepareStatement("UPDATE `playerjoins` SET xp=? WHERE uuid=?;");
    253. xpupdate.setInt(1, previousxp + 3);
    254. xpupdate.setString(2, String.valueOf(e.getPlayer().getUniqueId()));
    255. xpupdate.executeUpdate();
    256.  
    257. xpupdate.close();
    258. sql.close();
    259. resultSet.close();
    260.  
    261.  
    262.  
    263. } catch (Exception ee) {
    264. ee.printStackTrace();
    265. }
    266.  
    267. }
    268. if (e.getBlock().getType() == Material.IRON_ORE) { //checks for iron ore
    269.  
    270.  
    271. try {
    272. int previousxp = 0;
    273. PreparedStatement sql = connection.prepareStatement("SELECT xp FROM `playerjoins` WHERE uuid=?");
    274. sql.setString(1, String.valueOf(e.getPlayer().getUniqueId()));
    275. ResultSet resultSet = sql.executeQuery();
    276. resultSet.next();
    277.  
    278. previousxp = resultSet.getInt("xp");
    279. PreparedStatement xpupdate = connection.prepareStatement("UPDATE `playerjoins` SET xp=? WHERE uuid=?;");
    280. xpupdate.setInt(1, previousxp + 8);
    281. xpupdate.setString(2, String.valueOf(e.getPlayer().getUniqueId()));
    282. xpupdate.executeUpdate();
    283.  
    284. xpupdate.close();
    285. sql.close();
    286. resultSet.close();
    287.  
    288.  
    289.  
    290. } catch (Exception ee) {
    291. ee.printStackTrace();
    292. }
    293.  
    294. }
    295.  
    296.  
    297. if (e.getBlock().getType() == Material.LAPIS_ORE) { //checks for Lapis ore
    298.  
    299.  
    300. try {
    301. int previousxp = 0;
    302. PreparedStatement sql = connection.prepareStatement("SELECT xp FROM `playerjoins` WHERE uuid=?");
    303. sql.setString(1, String.valueOf(e.getPlayer().getUniqueId()));
    304. ResultSet resultSet = sql.executeQuery();
    305. resultSet.next();
    306.  
    307. previousxp = resultSet.getInt("xp");
    308. PreparedStatement xpupdate = connection.prepareStatement("UPDATE `playerjoins` SET xp=? WHERE uuid=?;");
    309. xpupdate.setInt(1, previousxp + 10);
    310. xpupdate.setString(2, String.valueOf(e.getPlayer().getUniqueId()));
    311. xpupdate.executeUpdate();
    312.  
    313. xpupdate.close();
    314. sql.close();
    315. resultSet.close();
    316.  
    317.  
    318.  
    319. } catch (Exception ee) {
    320. ee.printStackTrace();
    321. }
    322.  
    323. }
    324.  
    325.  
    326. if (e.getBlock().getType() == Material.REDSTONE_ORE) { //checks for redstone ore
    327.  
    328.  
    329. try {
    330. int previousxp = 0;
    331. PreparedStatement sql = connection.prepareStatement("SELECT xp FROM `playerjoins` WHERE uuid=?");
    332. sql.setString(1, String.valueOf(e.getPlayer().getUniqueId()));
    333. ResultSet resultSet = sql.executeQuery();
    334. resultSet.next();
    335.  
    336. previousxp = resultSet.getInt("xp");
    337. PreparedStatement xpupdate = connection.prepareStatement("UPDATE `playerjoins` SET xp=? WHERE uuid=?;");
    338. xpupdate.setInt(1, previousxp + 10);
    339. xpupdate.setString(2, String.valueOf(e.getPlayer().getUniqueId()));
    340. xpupdate.executeUpdate();
    341.  
    342. xpupdate.close();
    343. sql.close();
    344. resultSet.close();
    345.  
    346.  
    347.  
    348. } catch (Exception ee) {
    349. ee.printStackTrace();
    350. }
    351.  
    352. }
    353.  
    354. if (e.getBlock().getType() == Material.GOLD_ORE) { //checks for gold ore
    355.  
    356.  
    357. try {
    358. int previousxp = 0;
    359. PreparedStatement sql = connection.prepareStatement("SELECT xp FROM `playerjoins` WHERE uuid=?");
    360. sql.setString(1, String.valueOf(e.getPlayer().getUniqueId()));
    361. ResultSet resultSet = sql.executeQuery();
    362. resultSet.next();
    363.  
    364. previousxp = resultSet.getInt("xp");
    365. PreparedStatement xpupdate = connection.prepareStatement("UPDATE `playerjoins` SET xp=? WHERE uuid=?;");
    366. xpupdate.setInt(1, previousxp + 13);
    367. xpupdate.setString(2, String.valueOf(e.getPlayer().getUniqueId()));
    368. xpupdate.executeUpdate();
    369.  
    370. xpupdate.close();
    371. sql.close();
    372. resultSet.close();
    373.  
    374.  
    375.  
    376. } catch (Exception ee) {
    377. ee.printStackTrace();
    378. }
    379.  
    380. }
    381.  
    382. if (e.getBlock().getType() == Material.DIAMOND_ORE) { //checks for diamond ore
    383.  
    384.  
    385. try {
    386. int previousxp = 0;
    387. PreparedStatement sql = connection.prepareStatement("SELECT xp FROM `playerjoins` WHERE uuid=?");
    388. sql.setString(1, String.valueOf(e.getPlayer().getUniqueId()));
    389. ResultSet resultSet = sql.executeQuery();
    390. resultSet.next();
    391.  
    392. previousxp = resultSet.getInt("xp");
    393. PreparedStatement xpupdate = connection.prepareStatement("UPDATE `playerjoins` SET xp=? WHERE uuid=?;");
    394. xpupdate.setInt(1, previousxp + 20);
    395. xpupdate.setString(2, String.valueOf(e.getPlayer().getUniqueId()));
    396. xpupdate.executeUpdate();
    397.  
    398. xpupdate.close();
    399. sql.close();
    400. resultSet.close();
    401.  
    402.  
    403.  
    404. } catch (Exception ee) {
    405. ee.printStackTrace();
    406. }
    407.  
    408. }
    409.  
    410. if (e.getBlock().getType() == Material.EMERALD_ORE) { //checks for emerald ore
    411.  
    412.  
    413. try {
    414. int previousxp = 0;
    415. PreparedStatement sql = connection.prepareStatement("SELECT xp FROM `playerjoins` WHERE uuid=?");
    416. sql.setString(1, String.valueOf(e.getPlayer().getUniqueId()));
    417. ResultSet resultSet = sql.executeQuery();
    418. resultSet.next();
    419.  
    420. previousxp = resultSet.getInt("xp");
    421. PreparedStatement xpupdate = connection.prepareStatement("UPDATE `playerjoins` SET xp=? WHERE uuid=?;");
    422. xpupdate.setInt(1, previousxp + 28);
    423. xpupdate.setString(2, String.valueOf(e.getPlayer().getUniqueId()));
    424. xpupdate.executeUpdate();
    425.  
    426. xpupdate.close();
    427. sql.close();
    428. resultSet.close();
    429.  
    430.  
    431.  
    432. } catch (Exception ee) {
    433. ee.printStackTrace();
    434. }
    435.  
    436. }
    437.  
    438. if (e.getBlock().getType() == Material.QUARTZ_ORE) { //checks for quartz ore
    439.  
    440.  
    441. try {
    442. int previousxp = 0;
    443. PreparedStatement sql = connection.prepareStatement("SELECT xp FROM `playerjoins` WHERE uuid=?");
    444. sql.setString(1, String.valueOf(e.getPlayer().getUniqueId()));
    445. ResultSet resultSet = sql.executeQuery();
    446. resultSet.next();
    447.  
    448. previousxp = resultSet.getInt("xp");
    449. PreparedStatement xpupdate = connection.prepareStatement("UPDATE `playerjoins` SET xp=? WHERE uuid=?;");
    450. xpupdate.setInt(1, previousxp + 36);
    451. xpupdate.setString(2, String.valueOf(e.getPlayer().getUniqueId()));
    452. xpupdate.executeUpdate();
    453.  
    454. xpupdate.close();
    455. sql.close();
    456. resultSet.close();
    457.  
    458.  
    459.  
    460. } catch (Exception ee) {
    461. ee.printStackTrace();
    462. }
    463.  
    464. if (e.getBlock().getType() == Material.COAL_BLOCK) { //checks for coal blocks
    465.  
    466.  
    467. try {
    468. int previousxp = 0;
    469. PreparedStatement sql = connection.prepareStatement("SELECT xp FROM `playerjoins` WHERE uuid=?");
    470. sql.setString(1, String.valueOf(e.getPlayer().getUniqueId()));
    471. ResultSet resultSet = sql.executeQuery();
    472. resultSet.next();
    473.  
    474. previousxp = resultSet.getInt("xp");
    475. PreparedStatement xpupdate = connection.prepareStatement("UPDATE `playerjoins` SET xp=? WHERE uuid=?;");
    476. xpupdate.setInt(1, previousxp + 54);
    477. xpupdate.setString(2, String.valueOf(e.getPlayer().getUniqueId()));
    478. xpupdate.executeUpdate();
    479.  
    480. xpupdate.close();
    481. sql.close();
    482. resultSet.close();
    483.  
    484.  
    485.  
    486. } catch (Exception ee) {
    487. ee.printStackTrace();
    488. }
    489.  
    490. }
    491.  
    492. }
    493. if (e.getBlock().getType() == Material.IRON_BLOCK) { //checks for iron block
    494.  
    495.  
    496. try {
    497. int previousxp = 0;
    498. PreparedStatement sql = connection.prepareStatement("SELECT xp FROM `playerjoins` WHERE uuid=?");
    499. sql.setString(1, String.valueOf(e.getPlayer().getUniqueId()));
    500. ResultSet resultSet = sql.executeQuery();
    501. resultSet.next();
    502.  
    503. previousxp = resultSet.getInt("xp");
    504. PreparedStatement xpupdate = connection.prepareStatement("UPDATE `playerjoins` SET xp=? WHERE uuid=?;");
    505. xpupdate.setInt(1, previousxp + 122);
    506. xpupdate.setString(2, String.valueOf(e.getPlayer().getUniqueId()));
    507. xpupdate.executeUpdate();
    508.  
    509. xpupdate.close();
    510. sql.close();
    511. resultSet.close();
    512.  
    513.  
    514.  
    515. } catch (Exception ee) {
    516. ee.printStackTrace();
    517. }
    518.  
    519. if (e.getBlock().getType() == Material.REDSTONE_BLOCK) { //checks for restone block
    520.  
    521.  
    522. try {
    523. int previousxp = 0;
    524. PreparedStatement sql = connection.prepareStatement("SELECT xp FROM `playerjoins` WHERE uuid=?");
    525. sql.setString(1, String.valueOf(e.getPlayer().getUniqueId()));
    526. ResultSet resultSet = sql.executeQuery();
    527. resultSet.next();
    528.  
    529. previousxp = resultSet.getInt("xp");
    530. PreparedStatement xpupdate = connection.prepareStatement("UPDATE `playerjoins` SET xp=? WHERE uuid=?;");
    531. xpupdate.setInt(1, previousxp + 150);
    532. xpupdate.setString(2, String.valueOf(e.getPlayer().getUniqueId()));
    533. xpupdate.executeUpdate();
    534.  
    535. xpupdate.close();
    536. sql.close();
    537. resultSet.close();
    538.  
    539.  
    540.  
    541. } catch (Exception ee) {
    542. ee.printStackTrace();
    543. }
    544.  
    545. }
    546.  
    547. }
    548.  
    549. if (e.getBlock().getType() == Material.GOLD_BLOCK) { //checks for gold block
    550.  
    551.  
    552. try {
    553. int previousxp = 0;
    554. PreparedStatement sql = connection.prepareStatement("SELECT xp FROM `playerjoins` WHERE uuid=?");
    555. sql.setString(1, String.valueOf(e.getPlayer().getUniqueId()));
    556. ResultSet resultSet = sql.executeQuery();
    557. resultSet.next();
    558.  
    559. previousxp = resultSet.getInt("xp");
    560. PreparedStatement xpupdate = connection.prepareStatement("UPDATE `playerjoins` SET xp=? WHERE uuid=?;");
    561. xpupdate.setInt(1, previousxp + 175);
    562. xpupdate.setString(2, String.valueOf(e.getPlayer().getUniqueId()));
    563. xpupdate.executeUpdate();
    564.  
    565. xpupdate.close();
    566. sql.close();
    567. resultSet.close();
    568.  
    569.  
    570.  
    571. } catch (Exception ee) {
    572. ee.printStackTrace();
    573. }
    574.  
    575. }
    576.  
    577. if (e.getBlock().getType() == Material.OBSIDIAN) { //checks for obsidian
    578.  
    579.  
    580. try {
    581. int previousxp = 0;
    582. PreparedStatement sql = connection.prepareStatement("SELECT xp FROM `playerjoins` WHERE uuid=?");
    583. sql.setString(1, String.valueOf(e.getPlayer().getUniqueId()));
    584. ResultSet resultSet = sql.executeQuery();
    585. resultSet.next();
    586.  
    587. previousxp = resultSet.getInt("xp");
    588. PreparedStatement xpupdate = connection.prepareStatement("UPDATE `playerjoins` SET xp=? WHERE uuid=?;");
    589. xpupdate.setInt(1, previousxp + 185);
    590. xpupdate.setString(2, String.valueOf(e.getPlayer().getUniqueId()));
    591. xpupdate.executeUpdate();
    592.  
    593. xpupdate.close();
    594. sql.close();
    595. resultSet.close();
    596.  
    597.  
    598.  
    599. } catch (Exception ee) {
    600. ee.printStackTrace();
    601. }
    602.  
    603. }
    604. if (e.getBlock().getType() == Material.DIAMOND_BLOCK) { //checks for diamond block
    605.  
    606.  
    607. try {
    608. int previousxp = 0;
    609. PreparedStatement sql = connection.prepareStatement("SELECT xp FROM `playerjoins` WHERE uuid=?");
    610. sql.setString(1, String.valueOf(e.getPlayer().getUniqueId()));
    611. ResultSet resultSet = sql.executeQuery();
    612. resultSet.next();
    613.  
    614. previousxp = resultSet.getInt("xp");
    615. PreparedStatement xpupdate = connection.prepareStatement("UPDATE `playerjoins` SET xp=? WHERE uuid=?;");
    616. xpupdate.setInt(1, previousxp + 270);
    617. xpupdate.setString(2, String.valueOf(e.getPlayer().getUniqueId()));
    618. xpupdate.executeUpdate();
    619.  
    620. xpupdate.close();
    621. sql.close();
    622. resultSet.close();
    623.  
    624.  
    625.  
    626. } catch (Exception ee) {
    627. ee.printStackTrace();
    628. }
    629.  
    630. }
    631. if (e.getBlock().getType() == Material.EMERALD_BLOCK) { //checks for emerald block
    632.  
    633.  
    634. try {
    635. int previousxp = 0;
    636. PreparedStatement sql = connection.prepareStatement("SELECT xp FROM `playerjoins` WHERE uuid=?");
    637. sql.setString(1, String.valueOf(e.getPlayer().getUniqueId()));
    638. ResultSet resultSet = sql.executeQuery();
    639. resultSet.next();
    640.  
    641. previousxp = resultSet.getInt("xp");
    642. PreparedStatement xpupdate = connection.prepareStatement("UPDATE `playerjoins` SET xp=? WHERE uuid=?;");
    643. xpupdate.setInt(1, previousxp + 378);
    644. xpupdate.setString(2, String.valueOf(e.getPlayer().getUniqueId()));
    645. xpupdate.executeUpdate();
    646.  
    647. xpupdate.close();
    648. sql.close();
    649. resultSet.close();
    650.  
    651.  
    652.  
    653. } catch (Exception ee) {
    654. ee.printStackTrace();
    655. }
    656.  
    657. }
    658. if (e.getBlock().getType() == Material.QUARTZ_BLOCK) { //checks for qurtz block
    659.  
    660.  
    661. try {
    662. int previousxp = 0;
    663. PreparedStatement sql = connection.prepareStatement("SELECT xp FROM `playerjoins` WHERE uuid=?");
    664. sql.setString(1, String.valueOf(e.getPlayer().getUniqueId()));
    665. ResultSet resultSet = sql.executeQuery();
    666. resultSet.next();
    667.  
    668. previousxp = resultSet.getInt("xp");
    669. PreparedStatement xpupdate = connection.prepareStatement("UPDATE `playerjoins` SET xp=? WHERE uuid=?;");
    670. xpupdate.setInt(1, previousxp + 486);
    671. xpupdate.setString(2, String.valueOf(e.getPlayer().getUniqueId()));
    672. xpupdate.executeUpdate();
    673.  
    674. xpupdate.close();
    675. sql.close();
    676. resultSet.close();
    677.  
    678.  
    679.  
    680. } catch (Exception ee) {
    681. ee.printStackTrace();
    682. }
    683.  
    684.  
    685. }
    686.  
     
  10. Offline

    LegoPal92

    That's all fine and dandy, but don't EVER mess with the player async. Just use async for updating sql, and things like that. Intensive things.
     
  11. Offline

    michael566

    LegoPal92 Hmm thanks, but the server is still laggy when I break blocks
     
  12. Offline

    kizepy17

    @michael566
    mabye save everything in a "database" file then have it auto upload to the database with in 5 min ? it might get more lag or les, hehe idk, just comming with an idea that might work.
     
  13. Offline

    michael566

    kizepy17 yeah, that was what I was thinking of.
     
  14. Offline

    dirk103

    On line 4 you have
    openConnection();

    If that establishes a connection to the mysql server
    Then that needs to be in the async runnable
    Otherwise the main thread will be blocked until it
    Connects he socket.

    Also it looks like youre using a connection defined else where.
    To be thread safe ull need to lock connection with a mutex or like wise.
    You should lookup multihreaded programming
     
Thread Status:
Not open for further replies.

Share This Page