Example #1
1
  @EventHandler(priority = EventPriority.LOWEST, ignoreCancelled = true)
  public void onPlayerPortal(PlayerPortalEvent event) {
    // if knockback is set to 0, or portal redirection is disabled, simply return
    if (Config.KnockBack() == 0.0 || !Config.portalRedirection()) return;

    Location newLoc = BorderCheckTask.checkPlayer(event.getPlayer(), event.getTo(), true, false);
    if (newLoc != null) event.setTo(newLoc);
  }
  /**
   * Called when the portal is ready to take the player to the destination.
   *
   * @param event The Portal event.
   */
  @EventHandler
  public void playerPortal(PlayerPortalEvent event) {
    if (event.isCancelled()) {
      return;
    }
    PortalDetector detector = new PortalDetector(this.plugin);
    try {
      String destString = detector.getNotchPortalDestination(event.getPlayer(), event.getFrom());
      if (destString != null) {
        this.plugin.log(Level.FINER, "Found a Multiverse Sign");
        DestinationFactory df = this.plugin.getCore().getDestFactory();
        event.useTravelAgent(true);
        MVDestination dest = df.getDestination(destString);
        event.setPortalTravelAgent(
            new MVTravelAgent(this.plugin.getCore(), dest, event.getPlayer()));
        event.setTo(dest.getLocation(event.getPlayer()));
      }

    } catch (NoMultiverseSignFoundException e) {
      // This will simply act as a notch portal.
      this.plugin.log(Level.FINER, "Did NOT find a Multiverse Sign");
    } catch (MoreThanOneSignFoundException e) {
      this.plugin
          .getCore()
          .getMessaging()
          .sendMessage(
              event.getPlayer(),
              String.format(
                  "%sSorry %sbut more than 1 sign was found where the second line was [mv] or [multiverse]. Please remove one of the signs.",
                  ChatColor.RED, ChatColor.WHITE),
              false);
      event.setCancelled(true);
    }
  }
 /**
  * This method is called when a player actually portals via a vanilla style portal.
  *
  * @param event The Event that was fired.
  */
 @EventHandler(priority = EventPriority.HIGH)
 public void playerPortal(PlayerPortalEvent event) {
   if (event.isCancelled() || (event.getFrom() == null)) {
     return;
   }
   // The adjust should have happened much earlier.
   if (event.getTo() == null) {
     return;
   }
   MultiverseWorld fromWorld = this.worldManager.getMVWorld(event.getFrom().getWorld().getName());
   MultiverseWorld toWorld = this.worldManager.getMVWorld(event.getTo().getWorld().getName());
   if (event.getFrom().getWorld().equals(event.getTo().getWorld())) {
     // The player is Portaling to the same world.
     this.plugin.log(
         Level.FINER,
         "Player '" + event.getPlayer().getName() + "' is portaling to the same world.");
     return;
   }
   event.setCancelled(
       !pt.playerHasMoneyToEnter(fromWorld, toWorld, event.getPlayer(), event.getPlayer(), true));
   if (event.isCancelled()) {
     this.plugin.log(
         Level.FINE,
         "Player '"
             + event.getPlayer().getName()
             + "' was DENIED ACCESS to '"
             + event.getTo().getWorld().getName()
             + "' because they don't have the FUNDS required to enter.");
     return;
   }
   if (plugin.getMVConfig().getEnforceAccess()) {
     event.setCancelled(
         !pt.playerCanGoFromTo(fromWorld, toWorld, event.getPlayer(), event.getPlayer()));
     if (event.isCancelled()) {
       this.plugin.log(
           Level.FINE,
           "Player '"
               + event.getPlayer().getName()
               + "' was DENIED ACCESS to '"
               + event.getTo().getWorld().getName()
               + "' because they don't have: multiverse.access."
               + event.getTo().getWorld().getName());
     }
   } else {
     this.plugin.log(
         Level.FINE,
         "Player '"
             + event.getPlayer().getName()
             + "' was allowed to go to '"
             + event.getTo().getWorld().getName()
             + "' because enforceaccess is off.");
   }
   if (!plugin.getMVConfig().isUsingDefaultPortalSearch()
       && event.getPortalTravelAgent() != null) {
     event.getPortalTravelAgent().setSearchRadius(plugin.getMVConfig().getPortalSearchRadius());
   }
 }
  @EventHandler(priority = EventPriority.HIGHEST)
  public void onPlayerPortal(PlayerPortalEvent event) {
    if (event.isCancelled()) return;

    final Player player = event.getPlayer();

    if (player.getWorld() != plugin.getIslandWorld()) return;
    if (player.isOp()) return;
    if (player.hasPermission("islandworld.bypass.island")) return;

    if (!(plugin.getConfig().getBoolean("flags.use-portal", false)
        || plugin.canBuildOnLocation(player, event.getFrom()))) event.setCancelled(true);

    plugin.debug("Event :" + event.getEventName() + ", cancelled:" + event.isCancelled());
  }
Example #5
0
 @EventHandler(priority = EventPriority.MONITOR)
 public void onPlayerPortal(PlayerPortalEvent event) {
   redrawAll(event.getPlayer());
 }
 @Override
 public void onPlayerPortal(PlayerPortalEvent event) {
   plugin.checkPlayerPosition(event.getPlayer());
 }
  @EventHandler(priority = EventPriority.NORMAL)
  public void onPlayerPortal(PlayerPortalEvent event) {
    if (event.isCancelled()) {
      this.plugin.log(Level.FINEST, "PlayerPortalEvent was cancelled! NOT teleporting!");
      return;
    }
    Location originalTo = event.getTo();
    if (originalTo != null) {
      originalTo = originalTo.clone();
    }
    Location currentLocation = event.getFrom().clone();
    String currentWorld = currentLocation.getWorld().getName();

    PortalType type = PortalType.END;
    if (event.getFrom().getBlock().getType() == Material.PORTAL) {
      type = PortalType.NETHER;
      event.useTravelAgent(true);
    }

    String linkedWorld = this.plugin.getWorldLink(currentWorld, type);

    if (linkedWorld != null) {
      this.linkChecker.getNewTeleportLocation(event, currentLocation, linkedWorld);
    } else if (this.nameChecker.isValidNetherName(currentWorld)) {
      if (type == PortalType.NETHER) {
        this.plugin.log(Level.FINER, "");
        this.linkChecker.getNewTeleportLocation(
            event,
            currentLocation,
            this.nameChecker.getNormalName(currentWorld, PortalType.NETHER));
      } else {
        this.linkChecker.getNewTeleportLocation(
            event,
            currentLocation,
            this.nameChecker.getEndName(
                this.nameChecker.getNormalName(currentWorld, PortalType.NETHER)));
      }
    } else if (this.nameChecker.isValidEndName(currentWorld)) {
      if (type == PortalType.NETHER) {
        this.linkChecker.getNewTeleportLocation(
            event,
            currentLocation,
            this.nameChecker.getNetherName(
                this.nameChecker.getNormalName(currentWorld, PortalType.END)));
      } else {
        this.linkChecker.getNewTeleportLocation(
            event, currentLocation, this.nameChecker.getNormalName(currentWorld, PortalType.END));
      }
    } else {
      if (type == PortalType.END) {
        this.linkChecker.getNewTeleportLocation(
            event, currentLocation, this.nameChecker.getEndName(currentWorld));
      } else {
        this.linkChecker.getNewTeleportLocation(
            event, currentLocation, this.nameChecker.getNetherName(currentWorld));
      }
    }
    if (event.getTo() == null || event.getFrom() == null) {
      return;
    }
    if (event.getFrom().getWorld().equals(event.getTo().getWorld())) {
      // The player is Portaling to the same world.
      this.plugin.log(
          Level.FINER,
          "Player '"
              + event.getPlayer().getName()
              + "' is portaling to the same world.  Ignoring.");
      event.setTo(originalTo);
      return;
    }
    MultiverseWorld fromWorld = this.worldManager.getMVWorld(event.getFrom().getWorld().getName());
    MultiverseWorld toWorld = this.worldManager.getMVWorld(event.getTo().getWorld().getName());

    if (!event.isCancelled()
        && fromWorld.getEnvironment() == World.Environment.THE_END
        && type == PortalType.END) {
      this.plugin.log(
          Level.FINE,
          "Player '"
              + event.getPlayer().getName()
              + "' will be teleported to the spawn of '"
              + toWorld.getName()
              + "' since they used an end exit portal.");
      event.getPortalTravelAgent().setCanCreatePortal(false);
      if (toWorld.getBedRespawn()
          && event.getPlayer().getBedSpawnLocation() != null
          && event.getPlayer().getBedSpawnLocation().getWorld().getUID()
              == toWorld.getCBWorld().getUID()) {
        event.setTo(event.getPlayer().getBedSpawnLocation());
      } else {
        event.setTo(toWorld.getSpawnLocation());
      }
    }
  }
 @EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true)
 public void onPlayerPortal(PlayerPortalEvent event) {
   if (windwalkers.containsKey(event.getPlayer().getName())) {
     turnOff(event.getPlayer());
   }
 }