private void processOnlinePlayers() { // Check for online players and execute their commands. List<QueuedPlayer> processNow = new ArrayList<>(); lock.lock(); try { for (Iterator<QueuedPlayer> it = due.values().iterator(); it.hasNext(); ) { QueuedPlayer qp = it.next(); if (platform.isPlayerOnline(qp)) { if (processNow.size() < MAXIMUM_ONLINE_PLAYERS_TO_EXECUTE) { processNow.add(qp); it.remove(); } } } } finally { lock.unlock(); } if (!processNow.isEmpty()) { if (verbose) { platform.log(Level.INFO, String.format("Executing commands for %d online players...", processNow.size())); } for (int i = 0; i < processNow.size(); i++) { QueuedPlayer qp = processNow.get(i); platform.executeAsyncLater(new PlayerCommandExecutor(qp, platform), DELAY_BETWEEN_PLAYERS * (i + 1), TimeUnit.MILLISECONDS); } } }
@EventHandler public void onPostLogin(final PlayerJoinEvent event) { if (event.getPlayer().hasPermission("buycraft.admin") && !upToDate) { plugin.getPlatform().executeAsyncLater(new Runnable() { @Override public void run() { event.getPlayer().sendMessage(TextFormat.YELLOW + plugin.getI18n().get("update_available", lastKnownVersion.getVersion())); } }, 3, TimeUnit.SECONDS); } } }
@EventHandler public void onPlayerJoin(final PlayerJoinEvent event) { if (event.getPlayer().hasPermission("buycraft.admin") && !upToDate) { plugin.getPlatform().executeAsyncLater(new Runnable() { @Override public void run() { event.getPlayer().sendMessage(ChatColor.YELLOW + plugin.getI18n().get("update_available", lastKnownVersion.getVersion())); } }, 3, TimeUnit.SECONDS); } } }
@EventHandler public void onPostLogin(final PostLoginEvent event) { if (event.getPlayer().hasPermission("buycraft.admin") && !upToDate) { plugin.getPlatform().executeAsyncLater(new Runnable() { @Override public void run() { event.getPlayer().sendMessage(ChatColor.YELLOW + plugin.getI18n().get("update_available", lastKnownVersion.getVersion())); } }, 3, TimeUnit.SECONDS); } } }
inProgress.set(false); if (scheduleAgain) platform.executeAsyncLater(this, nextCheck, TimeUnit.SECONDS);
@Listener public void onPlayerJoinEvent(ClientConnectionEvent.Join event) { if (event.getTargetEntity().hasPermission("buycraft.admin") && !upToDate) { plugin.getPlatform().executeAsyncLater(() -> { try { event.getTargetEntity().sendMessage( Text.builder() .append(Text.of(plugin.getI18n().get("update_available", lastKnownVersion.getVersion()))) .onClick(TextActions.openUrl(new URL("https://server.buycraft.net"))) .color(TextColors.YELLOW) .build()); } catch (MalformedURLException e) { throw new AssertionError(e); // seriously? } }, 3, TimeUnit.SECONDS); } } }
platform.executeAsyncLater(duePlayerFetcher = new DuePlayerFetcher(platform, configuration.isVerbose()), 1, TimeUnit.SECONDS); completedCommandsTask = new PostCompletedCommandsTask(platform); commandExecutor = new QueuedCommandExecutor(platform, completedCommandsTask);
platform.executeAsyncLater(duePlayerFetcher = new DuePlayerFetcher(platform, configuration.isVerbose()), 1, TimeUnit.SECONDS); completedCommandsTask = new PostCompletedCommandsTask(platform); commandExecutor = new QueuedCommandExecutor(platform, completedCommandsTask);