public void submit(Runnable runnable) { if (runnable instanceof CriticalRunnable) { submitCritical(runnable); return; } submitNonCritical(runnable); }
public <T> Future<T> submit(Callable<T> task) { if (task instanceof CriticalCallable) { return submitCritical(task); } return submitNonCritical(task); }
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 runRestoreTask(String backupDbName, Sender sender, Database database) { processing.submitCritical(() -> { try { boolean containsDBFileExtension = backupDbName.endsWith(".db"); File backupDBFile = files.getFileFromPluginFolder(backupDbName + (containsDBFileExtension ? "" : ".db")); if (!backupDBFile.exists()) { sender.sendMessage(locale.getString(ManageLang.FAIL_FILE_NOT_FOUND, backupDBFile.getAbsolutePath())); return; } SQLiteDB backupDB = sqliteFactory.usingFile(backupDBFile); backupDB.init(); sender.sendMessage(locale.getString(ManageLang.PROGRESS_START)); database.backup().restore(backupDB); sender.sendMessage(locale.getString(ManageLang.PROGRESS_SUCCESS)); } catch (Exception e) { errorHandler.log(L.ERROR, this.getClass(), e); sender.sendMessage(locale.getString(ManageLang.PROGRESS_FAIL, e.getMessage())); } }); } }
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); } }); } }
private void runMoveTask(final Database fromDatabase, final Database toDatabase, Sender sender) { processing.submitCritical(() -> { try { sender.sendMessage(locale.getString(ManageLang.PROGRESS_START)); fromDatabase.backup().backup(toDatabase); sender.sendMessage(locale.getString(ManageLang.PROGRESS_SUCCESS)); boolean movingToCurrentDB = toDatabase.getType() == dbSystem.getDatabase().getType(); if (movingToCurrentDB) { sender.sendMessage(locale.getString(ManageLang.HOTSWAP_REMINDER, toDatabase.getType().getConfigName())); } } catch (Exception e) { errorHandler.log(L.ERROR, this.getClass(), e); sender.sendMessage(locale.getString(ManageLang.PROGRESS_FAIL, e.getMessage())); } }); } }
private void registerUser(WebUser webUser, Sender sender) { processing.submitCritical(() -> { String userName = webUser.getName(); try { Database database = dbSystem.getDatabase(); boolean userExists = database.check().doesWebUserExists(userName); if (userExists) { sender.sendMessage(locale.getString(CommandLang.FAIL_WEB_USER_EXISTS)); return; } database.save().webUser(webUser); sender.sendMessage(locale.getString(CommandLang.WEB_USER_REGISTER_SUCCESS, userName)); logger.info(locale.getString(CommandLang.WEB_USER_REGISTER_NOTIFY, userName, webUser.getPermLevel())); } catch (Exception e) { errorHandler.log(L.WARN, this.getClass(), e); } }); } }
private void actOnJoinEvent(ClientConnectionEvent.Join event) { Player player = event.getTargetEntity(); UUID uuid = player.getUniqueId(); long time = System.currentTimeMillis(); SpongeAFKListener.AFK_TRACKER.performedAction(uuid, time); String world = player.getWorld().getName(); Optional<GameMode> gameMode = player.getGameModeData().get(Keys.GAME_MODE); String gm = gameMode.map(mode -> mode.getName().toUpperCase()).orElse("ADVENTURE"); InetAddress address = player.getConnection().getAddress().getAddress(); String playerName = player.getName(); String displayName = player.getDisplayNameData().displayName().get().toPlain(); boolean gatheringGeolocations = config.isTrue(DataGatheringSettings.GEOLOCATIONS); processing.submitCritical(() -> sessionCache.cacheSession(uuid, new Session(uuid, serverInfo.getServerUUID(), time, world, gm))); runnableFactory.create("Player Register: " + uuid, processors.player().registerProcessor(uuid, () -> time, playerName, gatheringGeolocations ? processors.player().ipUpdateProcessor(uuid, address, time) : null, processors.player().nameProcessor(uuid, playerName, displayName), processors.info().playerPageUpdateProcessor(uuid) ) ).runTaskAsynchronously(); }
private void actOnJoinEvent(PlayerJoinEvent event) { Player player = event.getPlayer(); // TODO Move update notification to the website. UUID uuid = player.getUniqueId(); long time = System.currentTimeMillis(); AFKListener.AFK_TRACKER.performedAction(uuid, time); String world = player.getWorld().getName(); String gm = player.getGameMode().name(); InetAddress address = player.getAddress().getAddress(); String playerName = player.getName(); String displayName = player.getDisplayName(); boolean gatheringGeolocations = config.isTrue(DataGatheringSettings.GEOLOCATIONS); processing.submitCritical(() -> sessionCache.cacheSession(uuid, new Session(uuid, serverInfo.getServerUUID(), time, world, gm))); runnableFactory.create("Player Register: " + uuid, processors.player().registerProcessor(uuid, player::getFirstPlayed, playerName, gatheringGeolocations ? processors.player().ipUpdateProcessor(uuid, address, time) : null, processors.player().nameProcessor(uuid, playerName, displayName), processors.info().playerPageUpdateProcessor(uuid) ) ).runTaskAsynchronously(); }
private void runRemoveTask(String playerName, Sender sender, String[] args) { processing.submitCritical(() -> { try { UUID uuid = uuidUtility.getUUIDOf(playerName);