@Override protected void onPlayerLeave(final Player player, LeaveRegionReason reason) { PreCon.notNull(player); Scheduler.runTaskLater( Nucleus.getPlugin(), 10, new Runnable() { @Override public void run() { // prevent player from leaving jail Location tpLocation = getRandomTeleport(); if (tpLocation == null) tpLocation = getCenter(); player.teleport(tpLocation); } }); }
/** * Called when a teleport is scheduled. * * @see com.jcwhatever.nucleus.managed.teleport.Teleporter * @see com.jcwhatever.nucleus.managed.teleport.ITeleportManager */ public class TeleportScheduledEvent extends PlayerEvent implements ICancellable, Cancellable { private static final HandlerList handlers = new HandlerListExt(Nucleus.getPlugin(), TeleportScheduledEvent.class); private final Location _to; private int _delay; private boolean _isCancelled; /** * Constructor. * * @param player The player scheduled to be teleported. * @param to The location to be teleported to. * @param delay The teleport delay in ticks. */ public TeleportScheduledEvent(Player player, Location to, int delay) { super(player); PreCon.notNull(player); PreCon.notNull(to); _to = to; _delay = delay; } /** Get the teleport delay in ticks. */ public int getDelayTicks() { return _delay; } /** * Set the teleport delay. * * @param ticks The number of ticks to delay. */ public void setDelayTicks(int ticks) { _delay = ticks; } /** Get a direct reference to the location the player will be teleported to. */ public Location getTo() { return _to; } @Override public boolean isCancelled() { return _isCancelled; } @Override public void setCancelled(boolean isCancelled) { _isCancelled = isCancelled; } @Override public HandlerList getHandlers() { return handlers; } public static HandlerList getHandlerList() { return handlers; } }