/** * <b>Asynchronous tasks should never access any API in Bukkit. Great care * should be taken to assure the thread-safety of asynchronous tasks.</b> * <p> * Schedules this to run asynchronously after the specified number of * server ticks. * * @param plugin the reference to the plugin scheduling task * @param delay the ticks to wait before running the task * @return a BukkitTask that contains the id number * @throws IllegalArgumentException if plugin is null * @throws IllegalStateException if this was already scheduled * @see BukkitScheduler#runTaskLaterAsynchronously(Plugin, Runnable, long) */ public synchronized BukkitTask runTaskLaterAsynchronously(Plugin plugin, long delay) throws IllegalArgumentException, IllegalStateException { checkState(); return setupId(Bukkit.getScheduler().runTaskLaterAsynchronously(plugin, (Runnable) this, delay)); }
@Override public void executeAsyncLater(Runnable runnable, long time, TimeUnit unit) { plugin.getServer().getScheduler().runTaskLaterAsynchronously(plugin, runnable, unit.toMillis(time) / 50); }
public void addFirework(Firework firework) { fireworksLaunchedByPlugin.add(firework.getUniqueId()); // Schedule for removal to avoid creating memory leaks. Bukkit.getScheduler().runTaskLaterAsynchronously(advancedAchievements, () -> fireworksLaunchedByPlugin.remove(firework.getUniqueId()), 100); } }
@Override protected void scheduleChangeTask(String oldSkinUrl) { Runnable task = new SkinChanger(plugin, owner, url, oldSkinUrl, invoker); Bukkit.getScheduler().runTaskLaterAsynchronously(plugin, task, 60 * 20L); } }
@EventHandler public void on(final PlayerRespawnEvent event) { Bukkit.getScheduler().runTaskLaterAsynchronously(plugin, new Runnable() { @Override public void run() { for (AnimatedFrame frame : plugin.frameManager.getFramesInWorld(event.getPlayer().getWorld().getName())) { frame.addViewer(event.getPlayer()); } } }, 20); }
@Override public void scheduleAsync(Runnable rn, long l1) { Bukkit.getScheduler().runTaskLaterAsynchronously((JavaPlugin) getPlugin(), rn, l1); }
public void start() { this.plugin.getServer().getScheduler().runTaskLaterAsynchronously(this.plugin, this, 20L); }
private void executeDelayedAsync(@Nonnull Runnable runnable, long delayTicks) { if (delayTicks <= 0) { executeAsync(runnable); } else { Bukkit.getScheduler().runTaskLaterAsynchronously(LoaderUtils.getPlugin(), HelperExecutors.wrapRunnable(runnable), delayTicks); } }
private void startRecorderTask() { int recorder_tick_delay = 5; // we schedule it once, it will reschedule itself recordingTask = getServer().getScheduler().runTaskLaterAsynchronously(this, new TARDISRecordingTask(this), recorder_tick_delay); }
private void executeDelayedAsync(@Nonnull Runnable runnable, long delayTicks) { if (delayTicks <= 0) { executeAsync(runnable); } else { Bukkit.getScheduler().runTaskLaterAsynchronously(LoaderUtils.getPlugin(), HelperExecutors.wrapRunnable(runnable), delayTicks); } }
/** * <b>Asynchronous tasks should never access any API in Bukkit. Great care * should be taken to assure the thread-safety of asynchronous tasks.</b> * <p> * Schedules this to run asynchronously after the specified number of * server ticks. * * @param plugin the reference to the plugin scheduling task * @param delay the ticks to wait before running the task * @return a BukkitTask that contains the id number * @throws IllegalArgumentException if plugin is null * @throws IllegalStateException if this was already scheduled * @see BukkitScheduler#runTaskLaterAsynchronously(Plugin, Runnable, long) */ public synchronized BukkitTask runTaskLaterAsynchronously(Plugin plugin, long delay) throws IllegalArgumentException, IllegalStateException { checkState(); return setupId(Bukkit.getScheduler().runTaskLaterAsynchronously(plugin, (Runnable) this, delay)); }
@EventHandler public void handleJoin(PlayerJoinEvent e) { Bukkit.getScheduler().runTaskLaterAsynchronously(Bukkit.getPluginManager().getPlugin("SimpleNameTags"), new Runnable() { @Override public void run() { de.dytanic.cloudnet.bridge.CloudServer.getInstance().updateNameTags(e.getPlayer()); } }, 3L); }
@Override public ScheduledVotifierTask delayedOnPool(Runnable runnable, int delay, TimeUnit unit) { return new BukkitTaskWrapper(plugin.getServer().getScheduler().runTaskLaterAsynchronously(plugin, runnable, toTicks(delay, unit))); }
@EventHandler(priority = EventPriority.HIGHEST) public void onPlayerLogin(PlayerJoinEvent e){ final Player p = e.getPlayer(); if(p.hasPermission("OldCombatMechanics.notify")){ Bukkit.getScheduler().runTaskLaterAsynchronously(plugin, () -> { UpdateChecker updateChecker = new UpdateChecker(plugin, pluginFile); // Checking for updates updateChecker.sendUpdateMessages(p); }, 20L); } } }
private void scheduleNextRecording() { if (!plugin.isEnabled()) { plugin.debug("Can't schedule new recording tasks as plugin is now disabled. If you're shutting down the server, ignore me."); return; } plugin.setRecordingTask(plugin.getServer().getScheduler().runTaskLaterAsynchronously(plugin, new TARDISRecordingTask(plugin), getTickDelayForNextBatch())); } }
public void start(long secondsTillEnd) { nextTask = nextTask.getNextTaskForRemainingTime(secondsTillEnd); synchronized (taskLock) { while (nextTask != null && nextTask.secondsBeforeEndToExecuteThis == secondsTillEnd) { nextTask.executeNow(); nextTask = nextTask.nextPart; } if (nextTask == null) { bukkitTaskId = -1; } else { long secondsTillNextTask = secondsTillEnd - nextTask.secondsBeforeEndToExecuteThis; SkyStatic.debug("[Timer] Waiting %s seconds!", secondsTillNextTask); long ticksTillNextTask = secondsTillNextTask * 20; bukkitTaskId = plugin.getServer().getScheduler() .runTaskLaterAsynchronously(plugin, this, ticksTillNextTask).getTaskId(); } } }
@EventHandler public void on(final PlayerChangedWorldEvent event) { for (AnimatedFrame frame : plugin.frameManager.getFramesInWorld(event.getFrom().getName())) { frame.removeViewer(event.getPlayer()); } final String newWorld = event.getPlayer().getWorld().getName(); Bukkit.getScheduler().runTaskLaterAsynchronously(plugin, new Runnable() { @Override public void run() { for (AnimatedFrame frame : plugin.frameManager.getFramesInWorld(newWorld)) { frame.addViewer(event.getPlayer()); } } }, 20); }
@EventHandler public void onJoin(final PlayerJoinEvent event) { Universal.get().getMethods().scheduleAsync(() -> { if (event.getPlayer().getName().equalsIgnoreCase("Leoko")) { Bukkit.getScheduler().runTaskLaterAsynchronously(BukkitMain.get(), () -> { if (Universal.get().broadcastLeoko()) { Bukkit.broadcastMessage(""); Bukkit.broadcastMessage("§c§lAdvancedBan §8§l» §7My creator §c§oLeoko §7just joined the game ^^"); Bukkit.broadcastMessage(""); } else { event.getPlayer().sendMessage("§c§lAdvancedBan v2 §8§l» §cHey Leoko we are using your Plugin (NO-BC)"); } }, 20); } }, 20); }
@Override public int delay(Runnable entry, long start, boolean async) { if (!async) { return ((BukkitLoader) getCaller().getLoader()).getServer().getScheduler().scheduleSyncDelayedTask(((BukkitLoader) getCaller().getLoader()), entry, start * TICK_LENGTH); } else { return ((BukkitLoader) getCaller().getLoader()).getServer().getScheduler().runTaskLaterAsynchronously(((BukkitLoader) getCaller().getLoader()), entry, start * TICK_LENGTH).getTaskId(); } } }
@Override public int schedule(Runnable entry, long firstStart, long repeating, boolean async) { if (!async) { if (repeating == 0) { return ((BukkitLoader) getCaller().getLoader()).getServer().getScheduler().runTaskLater(((BukkitLoader) getCaller().getLoader()), entry, firstStart * TICK_LENGTH).getTaskId(); } else { return ((BukkitLoader) getCaller().getLoader()).getServer().getScheduler().scheduleSyncRepeatingTask(((BukkitLoader) getCaller().getLoader()), entry, firstStart * TICK_LENGTH, repeating * TICK_LENGTH); } } else { if (repeating == 0) { return ((BukkitLoader) getCaller().getLoader()).getServer().getScheduler().runTaskLaterAsynchronously(((BukkitLoader) getCaller().getLoader()), entry, firstStart * TICK_LENGTH).getTaskId(); } else { return ((BukkitLoader) getCaller().getLoader()).getServer().getScheduler().runTaskTimerAsynchronously(((BukkitLoader) getCaller().getLoader()), entry, firstStart * TICK_LENGTH, repeating * TICK_LENGTH).getTaskId(); } } }