Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- private final Main main;
- private final Map<UUID, Miner> miners = new IdentityHashMap<>();
- public Events(Main main) {
- this.main = main;
- }
- @EventHandler
- public void onBreak(PlayerMoveEvent e) {
- UUID uuid = e.getPlayer().getUniqueId();
- Miner miner = miners.computeIfAbsent(uuid, v -> {
- Miner newMiner = new Miner(uuid, 0);
- load(newMiner).thenAccept(u -> System.out.println("ПРибавил результат из бд"));
- return newMiner;
- });
- miner.incrementAndGet();
- }
- @EventHandler
- public void onLeave(PlayerQuitEvent e) {
- UUID uuid = e.getPlayer().getUniqueId();
- Miner miner = miners.get(uuid);
- if(miner == null) {
- return;
- }
- executor.execute(() -> {
- PreparedStatement ps = null;
- try {
- ps = miner.isDone()
- ? main.getDatabaseSQL().getConnection().prepareStatement(
- "INSERT INTO `miner_skills` (`uuid`, `exp`) VALUES(?, ?) " +
- "ON DUPLICATE KEY UPDATE `exp` = ?;")
- : main.getDatabaseSQL().getConnection().prepareStatement(
- "INSERT INTO `miner_skills` (`uuid`, `exp`) VALUES(?, ?) " +
- "ON DUPLICATE KEY UPDATE `exp` = `exp` + ?;"
- );
- ps.setString(1, uuid.toString());
- ps.setInt(2, miner.getScore());
- ps.setInt(3, miner.getScore());
- ps.execute();
- } catch (SQLException ex) {
- ex.printStackTrace();
- } finally {
- if(ps != null) {
- try {
- ps.close();
- } catch (SQLException ex) {
- ex.printStackTrace();
- }
- }
- }
- });
- }
- public CompletableFuture<Void> load(Miner miner) {
- return miner.completeAsync(() -> {
- try (PreparedStatement ps = main.getDatabaseSQL().getConnection().prepareStatement(
- "SELECT `exp` FROM `miner_skills` WHERE `uuid` = ? LIMIT 1;"
- )) {
- ps.setString(1, miner.getUuid().toString());
- try (ResultSet rs = ps.executeQuery()) {
- if(rs.next()) {
- miner.incrementAndGet(rs.getInt(1));
- }
- }
- } catch (SQLException e) {
- throw new RuntimeException(e);
- }
- return null;
- }, executor);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement