public <T> Future<T> submit(Callable<T> task) { if (task instanceof CriticalCallable) { return submitCritical(task); } return submitNonCritical(task); }
private void actOnQuitEvent(PlayerQuitEvent event) { long time = System.currentTimeMillis(); Player player = event.getPlayer(); UUID uuid = player.getUniqueId(); AFKListener.AFK_TRACKER.loggedOut(uuid, time); processing.submit(processors.player().banAndOpProcessor(uuid, player::isBanned, player.isOp())); processing.submit(processors.player().endSessionProcessor(uuid, time)); processing.submit(processors.info().playerPageUpdateProcessor(uuid)); } }
private void actOnLoginEvent(ClientConnectionEvent.Login event) { GameProfile profile = event.getProfile(); UUID uuid = profile.getUniqueId(); boolean banned = isBanned(profile); processing.submit(processors.player().banAndOpProcessor(uuid, () -> banned, false)); }
@Override public void enable() { if (Check.isBukkitAvailable() && connectionSystem.isServerAvailable()) { return; } if (config.isTrue(ExportSettings.JS_AND_CSS)) { processing.submitNonCritical(htmlExport::exportJs); processing.submitNonCritical(htmlExport::exportCss); processing.submitNonCritical(htmlExport::exportPlugins); } if (config.isTrue(ExportSettings.PLAYERS_PAGE)) { processing.submitNonCritical(htmlExport::exportPlayersPage); } if (config.isTrue(ExportSettings.PLAYER_PAGES)) { processing.submitNonCritical(htmlExport::exportAvailablePlayers); } if (config.isTrue(ExportSettings.SERVER_PAGE)) { processing.submitNonCritical(htmlExport::exportAvailableServerPages); } }
private void actOnChatEvent(AsyncPlayerChatEvent event) { Player p = event.getPlayer(); UUID uuid = p.getUniqueId(); String name = p.getName(); String displayName = p.getDisplayName(); processing.submit(processorFactory.nameProcessor(uuid, name, displayName)); } }
private void handleKill(long time, UUID victimUUID, Entity killerEntity) { Runnable processor = null; if (killerEntity instanceof Player) { processor = handlePlayerKill(time, victimUUID, (Player) killerEntity); } else if (killerEntity instanceof Tameable) { processor = handlePetKill(time, victimUUID, (Tameable) killerEntity); } else if (killerEntity instanceof Projectile) { processor = handleProjectileKill(time, victimUUID, (Projectile) killerEntity); } if (processor != null) { processing.submit(processor); } }
private void runBackupTask(Sender sender, String[] args, Database database) { processing.submitCritical(() -> { try { sender.sendMessage(locale.getString(ManageLang.PROGRESS_START)); createNewBackup(args[0], database); sender.sendMessage(locale.getString(ManageLang.PROGRESS_SUCCESS)); } catch (Exception e) { errorHandler.log(L.ERROR, ManageBackupCommand.class, e); sender.sendMessage(locale.getString(ManageLang.PROGRESS_FAIL, e.getMessage())); } }); }
private void actOnQuitEvent(ClientConnectionEvent.Disconnect event) { long time = System.currentTimeMillis(); Player player = event.getTargetEntity(); UUID uuid = player.getUniqueId(); SpongeAFKListener.AFK_TRACKER.loggedOut(uuid, time); boolean banned = isBanned(player.getProfile()); processing.submit(processors.player().banAndOpProcessor(uuid, () -> banned, false)); processing.submit(processors.player().endSessionProcessor(uuid, time)); processing.submit(processors.info().playerPageUpdateProcessor(uuid)); } }
@EventHandler(priority = EventPriority.MONITOR) public void onPlayerLogin(PlayerLoginEvent event) { try { PlayerLoginEvent.Result result = event.getResult(); UUID uuid = event.getPlayer().getUniqueId(); boolean op = event.getPlayer().isOp(); boolean banned = result == PlayerLoginEvent.Result.KICK_BANNED; processing.submit(processors.player().banAndOpProcessor(uuid, () -> banned, op)); } catch (Exception e) { errorHandler.log(L.ERROR, this.getClass(), e); } }
private void refreshServerMap() { processing.submitNonCritical(() -> { if (latestServerMapRefresh < System.currentTimeMillis() - TimeUnit.SECONDS.toMillis(15L)) { FetchOperations fetch = dbSystem.getDatabase().fetch(); mainServer = fetch.getBungeeInformation().orElse(null); bukkitServers = fetch.getBukkitServers(); latestServerMapRefresh = System.currentTimeMillis(); } }); }
public void submit(Runnable runnable) { if (runnable instanceof CriticalRunnable) { submitCritical(runnable); return; } submitNonCritical(runnable); }
private void actOnChatEvent(@First Player player) { UUID uuid = player.getUniqueId(); String name = player.getName(); String displayName = player.getDisplayNameData().displayName().get().toPlain(); processing.submit(processorFactory.nameProcessor(uuid, name, displayName)); }
private void handleKill(long time, Living dead, Entity killerEntity) { Runnable processor = null; UUID victimUUID = getUUID(dead); if (killerEntity instanceof Player) { processor = handlePlayerKill(time, victimUUID, (Player) killerEntity); } else if (killerEntity instanceof Wolf) { processor = handleWolfKill(time, victimUUID, (Wolf) killerEntity); } else if (killerEntity instanceof Projectile) { processor = handleProjectileKill(time, victimUUID, (Projectile) killerEntity); } if (processor != null) { processing.submit(processor); } }
private void runClearTask(Sender sender, Database database) { processing.submitCritical(() -> { try { sender.sendMessage(locale.getString(ManageLang.PROGRESS_START)); database.remove().everything(); sender.sendMessage(locale.getString(ManageLang.PROGRESS_SUCCESS)); } catch (DBOpException e) { sender.sendMessage(locale.getString(ManageLang.PROGRESS_FAIL, e.getMessage())); errorHandler.log(L.ERROR, this.getClass(), e); } }); } }
@Override public void onCommand(Sender sender, String commandLabel, String[] args) { if (!webServer.isEnabled()) { sender.sendMessage(locale.getString(CommandLang.CONNECT_WEBSERVER_NOT_ENABLED)); return; } processing.submitNonCritical(() -> testServers(sender)); }
@Override public void run() { try { if (database.check().isPlayerRegistered(uuid)) { return; } database.save().registerNewUser(uuid, registered, name); } finally { for (Runnable process : afterProcess) { processing.submit(process); } } } }
private void cache(UUID uuid, String html) { ResponseCache.cacheResponse(PageId.PLAYER.of(uuid), () -> new InspectPageResponse(uuid, html)); if (config.get(ExportSettings.PLAYER_PAGES)) { processing.submitNonCritical(() -> htmlExport.exportPlayer(uuid)); } if (config.get(ExportSettings.PLAYER_JSON)) { processing.submitNonCritical(() -> jsonExport.exportPlayerJSON(uuid)); } }
private void cache(UUID serverUUID, String html) { ResponseCache.cacheResponse(PageId.SERVER.of(serverUUID), () -> new AnalysisPageResponse(html)); if (!networkUUID.equals(serverUUID)) { ResponseCache.clearResponse(PageId.SERVER.of(networkUUID)); } if (config.get(ExportSettings.SERVER_PAGE)) { processing.submitNonCritical(() -> htmlExport.exportServer(serverUUID)); } if (config.get(ExportSettings.SERVER_JSON)) { processing.submitNonCritical(() -> jsonExport.exportServerJSON(serverUUID)); } }
private void findAndProcessImporter(Sender sender, String importArg) { Optional<Importer> foundImporter = importSystem.getImporter(importArg); if (foundImporter.isPresent()) { Importer importer = foundImporter.get(); processing.submitNonCritical(() -> { sender.sendMessage(locale.getString(ManageLang.PROGRESS_START)); importer.processImport(); sender.sendMessage(locale.getString(ManageLang.PROGRESS_SUCCESS)); }); } else { sender.sendMessage(locale.getString(ManageLang.FAIL_IMPORTER_NOT_FOUND, importArg)); } } }
private Response refreshNow(UUID serverUUID) { processing.submitNonCritical(() -> { try { infoSystem.generateAnalysisPage(serverUUID); } catch (NoServersException | ConnectionFailException e) { ResponseCache.cacheResponse(PageId.SERVER.of(serverUUID), () -> responseFactory.notFound404(e.getMessage())); } catch (WebException e) { ResponseCache.cacheResponse(PageId.SERVER.of(serverUUID), () -> responseFactory.internalErrorResponse(e, "Failed to generate Analysis Page")); } }); return responseFactory.refreshingAnalysisResponse(); }