public PluginRunnable registerTask(String name, AbsRunnable runnable) { return runnableFactory.create(name, runnable); }
@Override public void disable() { runnableFactory.cancelAllKnownTasks(); }
@Override public void onCommand(Sender sender, String commandLabel, String[] args) { runnableFactory.create("Reload task", new AbsRunnable() { @Override public void run() { try { plugin.reloadPlugin(true); } catch (Exception e) { errorHandler.log(L.CRITICAL, this.getClass(), e); sender.sendMessage(locale.getString(CommandLang.RELOAD_FAILED)); } sender.sendMessage(locale.getString(CommandLang.RELOAD_COMPLETE)); } }).runTaskAsynchronously(); } }
private void registerIndexCreationTask() { try { runnableFactory.create("Database Index Creation", new CreateIndexTask(this)) .runTaskLaterAsynchronously(TimeAmount.toTicks(1, TimeUnit.MINUTES)); } catch (Exception ignore) { // Task failed to register because plugin is being disabled } }
private void scheduleDBCheckTask() { long checkPeriod = TimeAmount.toTicks(config.get(TimeSettings.CONFIG_UPDATE_INTERVAL), TimeUnit.MILLISECONDS); runnableFactory.create("Config Update DB Checker", new AbsRunnable() { @Override public void run() { updateConfigFromDBIfUpdated(); } }).runTaskTimerAsynchronously(checkPeriod, checkPeriod); }
private void registerPatchTask() { Patch[] patches = patches(); try { runnableFactory.create("Database Patch", new PatchTask(patches, locale, logger, errorHandler)) .runTaskLaterAsynchronously(TimeAmount.toTicks(5L, TimeUnit.SECONDS)); } catch (Exception ignore) { // Task failed to register because plugin is being disabled } }
@Override public void scheduleClean(long secondsDelay) { dbCleanTask = runnableFactory.create("DB Clean Task", new AbsRunnable() { @Override public void run() { try { if (isOpen()) { clean(); } } catch (DBOpException e) { errorHandler.log(L.ERROR, this.getClass(), e); cancel(); } } }).runTaskTimerAsynchronously( TimeAmount.toTicks(secondsDelay, TimeUnit.SECONDS), TimeAmount.toTicks(config.get(TimeSettings.CLEAN_DATABASE_PERIOD), TimeUnit.MILLISECONDS) ); }
private void startConnectionPingTask() { stopConnectionPingTask(); try { // Maintains Connection. connectionPingTask = runnableFactory.create("DBConnectionPingTask " + getType().getName(), new KeepAliveTask(connection, () -> getNewConnection(databaseFile), logger, errorHandler) ).runTaskTimerAsynchronously(60L * 20L, 60L * 20L); } catch (Exception ignored) { // Task failed to register because plugin is being disabled } }
@EventHandler public void onPlayerJoin(PlayerJoinEvent joinEvent) { Player player = joinEvent.getPlayer(); runnableFactory.create("Add Player to Ping list", new AbsRunnable() { @Override public void run() { if (player.isOnline()) { addPlayer(player); } } }).runTaskLater(TimeAmount.toTicks(config.get(TimeSettings.PING_PLAYER_LOGIN_DELAY), TimeUnit.MILLISECONDS)); }
private void startConnectionPingTask() { stopConnectionPingTask(); try { // Maintains Connection. connectionPingTask = runnableFactory.create("DBConnectionPingTask " + getType().getName(), new KeepAliveTask(connection, () -> getNewConnection(databaseFile), logger, errorHandler) ).runTaskTimerAsynchronously(60L * 20L, 60L * 20L); } catch (Exception ignored) { // Task failed to register because plugin is being disabled } }
@EventHandler public void onPlayerJoin(ServerConnectedEvent joinEvent) { ProxiedPlayer player = joinEvent.getPlayer(); runnableFactory.create("Add Player to Ping list", new AbsRunnable() { @Override public void run() { if (player.isConnected()) { addPlayer(player); } } }).runTaskLater(TimeAmount.toTicks(config.get(TimeSettings.PING_PLAYER_LOGIN_DELAY), TimeUnit.MILLISECONDS)); }
@Subscribe public void onPlayerJoin(ServerConnectedEvent joinEvent) { Player player = joinEvent.getPlayer(); runnableFactory.create("Add Player to Ping list", new AbsRunnable() { @Override public void run() { if (player.isActive()) { addPlayer(player); } } }).runTaskLater(TimeAmount.toTicks(config.get(TimeSettings.PING_PLAYER_LOGIN_DELAY), TimeUnit.MILLISECONDS)); }
@Listener public void onPlayerJoin(ClientConnectionEvent.Join joinEvent) { Player player = joinEvent.getTargetEntity(); runnableFactory.create("Add Player to Ping list", new AbsRunnable() { @Override public void run() { if (player.isOnline()) { addPlayer(player); } } }).runTaskLater(TimeAmount.toTicks(config.get(TimeSettings.PING_PLAYER_LOGIN_DELAY), TimeUnit.MILLISECONDS)); }
@Override public void enable() { super.enable(); plugin.registerListener(pingCountTimer); long startDelay = TimeAmount.toTicks(config.get(TimeSettings.PING_SERVER_ENABLE_DELAY), TimeUnit.MILLISECONDS); runnableFactory.create("PingCountTimer", pingCountTimer) .runTaskTimer(startDelay, PingCountTimerSponge.PING_INTERVAL); // +40 ticks / 2 seconds so that update check task runs first. long storeDelay = TimeAmount.toTicks(config.get(TimeSettings.CONFIG_UPDATE_INTERVAL), TimeUnit.MILLISECONDS) + 40; registerTask("Config Store Task", configStoreTask).runTaskLaterAsynchronously(storeDelay); shutdownHook.register(); }
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(); }
@Override public Response handleRequest(Map<String, String> variables) throws WebException { if (Check.isBungeeAvailable()) { return new BadRequestResponse("Not supposed to be called on a Bungee server"); } if (Check.isVelocityAvailable()) { return new BadRequestResponse("Not supposed to be called on a Velocity server"); } if (config.isFalse(PluginSettings.BUNGEE_COPY_CONFIG)) { return new BadRequestResponse("Bungee config settings overridden on this server."); } try { setSettings(variables); logger.info("----------------------------------"); logger.info("The Received Bungee Database Settings, restarting Plan.."); logger.info("----------------------------------"); return DefaultResponses.SUCCESS.get(); } finally { runnableFactory.create("Bungee Setup Restart Task", new AbsRunnable() { @Override public void run() { plugin.reloadPlugin(true); } }).runTaskLater(TimeAmount.toTicks(2L, TimeUnit.SECONDS)); } }
private void registerTasks() { registerTask(tpsCountTimer).runTaskTimerAsynchronously(1000, TimeAmount.toTicks(1L, TimeUnit.SECONDS)); registerTask(networkPageRefreshTask).runTaskTimerAsynchronously(1500, TimeAmount.toTicks(5L, TimeUnit.MINUTES)); registerTask(logsFolderCleanTask).runTaskLaterAsynchronously(TimeAmount.toTicks(30L, TimeUnit.SECONDS)); plugin.registerListener(pingCountTimer); long startDelay = TimeAmount.toTicks(config.get(TimeSettings.PING_SERVER_ENABLE_DELAY), TimeUnit.MILLISECONDS); runnableFactory.create("PingCountTimer", pingCountTimer).runTaskTimer(startDelay, PingCountTimerBungee.PING_INTERVAL); registerTask(playersPageRefreshTask) .runTaskTimerAsynchronously(TimeAmount.toTicks(5L, TimeUnit.MINUTES), TimeAmount.toTicks(5L, TimeUnit.MINUTES)); // +40 ticks / 2 seconds so that update check task runs first. long storeDelay = TimeAmount.toTicks(config.get(TimeSettings.CONFIG_UPDATE_INTERVAL), TimeUnit.MILLISECONDS) + 40; registerTask("Config Store Task", networkConfigStoreTask).runTaskLaterAsynchronously(storeDelay); } }
private void registerTasks() { registerTask(tpsCountTimer).runTaskTimerAsynchronously(1000, TimeAmount.toTicks(1L, TimeUnit.SECONDS)); registerTask(networkPageRefreshTask).runTaskTimerAsynchronously(1500, TimeAmount.toTicks(5L, TimeUnit.MINUTES)); registerTask(logsFolderCleanTask).runTaskLaterAsynchronously(TimeAmount.toTicks(30L, TimeUnit.SECONDS)); plugin.registerListener(pingCountTimer); long startDelay = TimeAmount.toTicks(config.get(TimeSettings.PING_SERVER_ENABLE_DELAY), TimeUnit.MILLISECONDS); runnableFactory.create("PingCountTimer", pingCountTimer).runTaskTimer(startDelay, PingCountTimerVelocity.PING_INTERVAL); registerTask(playersPageRefreshTask) .runTaskTimerAsynchronously(TimeAmount.toTicks(5L, TimeUnit.MINUTES), TimeAmount.toTicks(5L, TimeUnit.MINUTES)); // +40 ticks / 2 seconds so that update check task runs first. long storeDelay = TimeAmount.toTicks(config.get(TimeSettings.CONFIG_UPDATE_INTERVAL), TimeUnit.MILLISECONDS) + 40; registerTask("Config Store Task", networkConfigStoreTask).runTaskLaterAsynchronously(storeDelay); } }