private boolean Update() { synchronized (this.lock) { final long tim = WebAuctionPlus.getCurrentMilli(); final long sinceLast = tim - this.lastUpdate; // update no more than every 5 seconds if (this.lastUpdate == -1 || sinceLast >= 5000) { this.lastUpdate = tim; doUpdate(); return true; } } return false; }
private static void sendMsg(Player p) { if (p == null) return; if (p.hasPermission("wa.webadmin") || p.isOp()) { final String failMsg = WebAuctionPlus.getFailMsg(); if (failMsg == null || failMsg.isEmpty()) { p.sendMessage( WebAuctionPlus.chatPrefix + "Failed to load plugin. Please check the console log."); } else { if (failMsg.contains("|")) { for (String m : failMsg.split("|")) { if (m == null || m.isEmpty() || m.equals("|")) continue; p.sendMessage(WebAuctionPlus.chatPrefix + m); } } else { p.sendMessage(WebAuctionPlus.chatPrefix + failMsg); } } } }
private void doUpdate() { if (WebAuctionPlus.isDebug()) WebAuctionPlus.log.info(WebAuctionPlus.logPrefix + "Updating stats.."); Connection conn = WebAuctionPlus.dataQueries.getConnection(); // total buy nows { PreparedStatement st = null; ResultSet rs = null; this.totalBuyNowCount = 0; try { if (WebAuctionPlus.isDebug()) WebAuctionPlus.log.info("WA Query: Stats::count buy nows"); st = conn.prepareStatement( "SELECT COUNT(*) FROM `" + WebAuctionPlus.dataQueries.dbPrefix() + "Auctions` WHERE `allowBids` = 0"); rs = st.executeQuery(); if (rs.next()) this.totalBuyNowCount = rs.getInt(1); } catch (SQLException e) { WebAuctionPlus.log.warning(WebAuctionPlus.logPrefix + "Unable to get total buy now count"); e.printStackTrace(); } finally { DataQueries.closeResources(st, rs); } } // total auctions { PreparedStatement st = null; ResultSet rs = null; this.totalAuctionCount = 0; try { if (WebAuctionPlus.isDebug()) WebAuctionPlus.log.info("WA Query: Stats::count auctions"); st = conn.prepareStatement( "SELECT COUNT(*) FROM `" + WebAuctionPlus.dataQueries.dbPrefix() + "Auctions` WHERE `allowBids` != 0"); rs = st.executeQuery(); if (rs.next()) this.totalAuctionCount = rs.getInt(1); } catch (SQLException e) { WebAuctionPlus.log.warning(WebAuctionPlus.logPrefix + "Unable to get total auction count"); e.printStackTrace(); } finally { DataQueries.closeResources(st, rs); } } // get max auction id { PreparedStatement st = null; ResultSet rs = null; this.maxAuctionId = -1; try { if (WebAuctionPlus.isDebug()) WebAuctionPlus.log.info("WA Query: Stats::getMaxAuctionID"); st = conn.prepareStatement( "SELECT MAX(`id`) AS `id` FROM `" + WebAuctionPlus.dataQueries.dbPrefix() + "Auctions`"); rs = st.executeQuery(); if (rs.next()) this.maxAuctionId = rs.getInt("id"); } catch (SQLException e) { WebAuctionPlus.log.warning(WebAuctionPlus.logPrefix + "Unable to query for max Auction ID"); e.printStackTrace(); } finally { DataQueries.closeResources(st, rs); } } // get new auctions count { PreparedStatement st = null; ResultSet rs = null; this.newAuctionsCount = 0; try { final boolean isFirst = (this.newAuctionsCount_lastId < 1); if (WebAuctionPlus.isDebug()) WebAuctionPlus.log.info( "WA Query: Stats::getNewAuctionsCount" + (isFirst ? " -first-" : "")); if (isFirst) { // first query st = conn.prepareStatement( "SELECT MAX(`id`) AS `id` FROM `" + WebAuctionPlus.dataQueries.dbPrefix() + "Auctions`"); rs = st.executeQuery(); if (rs.next()) { this.newAuctionsCount = 0; this.newAuctionsCount_lastId = rs.getInt("id"); } } else { // refresher query st = conn.prepareStatement( "SELECT COUNT(*) AS `count`, MAX(`id`) AS `id` FROM `" + WebAuctionPlus.dataQueries.dbPrefix() + "Auctions` WHERE `id` > ?"); st.setInt(1, this.newAuctionsCount_lastId); rs = st.executeQuery(); if (rs.next()) { this.newAuctionsCount = rs.getInt("count"); if (this.newAuctionsCount > 0) this.newAuctionsCount_lastId = rs.getInt("id"); } } } catch (SQLException e) { WebAuctionPlus.log.warning( WebAuctionPlus.logPrefix + "Unable to query for new auctions count"); e.printStackTrace(); } finally { DataQueries.closeResources(st, rs); } } // get ended auctions count { PreparedStatement st = null; ResultSet rs = null; this.endAuctionsCount = 0; try { final boolean isFirst = (this.endAuctionsCount_lastId < 1); if (WebAuctionPlus.isDebug()) WebAuctionPlus.log.info( "WA Query: Stats::getNewSalesCount" + (isFirst ? " -first-" : "")); if (isFirst) { // first query st = conn.prepareStatement( "SELECT MAX(`id`) AS `id` FROM `" + WebAuctionPlus.dataQueries.dbPrefix() + "LogSales`"); rs = st.executeQuery(); if (rs.next()) { this.endAuctionsCount = 0; this.endAuctionsCount_lastId = rs.getInt("id"); } } else { // refresher query st = conn.prepareStatement( "SELECT COUNT(*) AS `count`, MAX(`id`) AS `id` FROM `" + WebAuctionPlus.dataQueries.dbPrefix() + "LogSales` WHERE `id` > ?"); st.setInt(1, this.endAuctionsCount_lastId); rs = st.executeQuery(); if (rs.next()) { this.endAuctionsCount = rs.getInt("count"); if (this.endAuctionsCount > 0) this.endAuctionsCount_lastId = rs.getInt("id"); } } } catch (SQLException e) { WebAuctionPlus.log.warning( WebAuctionPlus.logPrefix + "Unable to query for new sales count"); e.printStackTrace(); } finally { DataQueries.closeResources(st, rs); } } WebAuctionPlus.dataQueries.closeResources(conn); }