类org.bukkit.event.player.PlayerTeleportEvent源码实例Demo

下面列出了怎么用org.bukkit.event.player.PlayerTeleportEvent的API类实例代码及写法,或者点击链接到github查看源代码。

源代码1 项目: ProjectAres   文件: PlayerMovementListener.java
/**
 * Modify the to location of the given event to prevent the movement and
 * move the player so they are standing on the center of the block at the
 * from location.
 */
private static void resetPosition(final PlayerMoveEvent event) {
    Location newLoc;
    double yValue = event.getFrom().getY();

    if(yValue <= 0 || event instanceof PlayerTeleportEvent) {
        newLoc = event.getFrom();
    } else {
        newLoc = BlockUtils.center(event.getFrom()).subtract(new Vector(0, 0.5, 0));
        if(newLoc.getBlock() != null) {
            switch(newLoc.getBlock().getType()) {
            case STEP:
            case WOOD_STEP:
                newLoc.add(new Vector(0, 0.5, 0));
                break;
            default: break;
            }
        }
    }

    newLoc.setPitch(event.getTo().getPitch());
    newLoc.setYaw(event.getTo().getYaw());
    event.setCancelled(false);
    event.setTo(newLoc);
}
 
源代码2 项目: AACAdditionPro   文件: MovePattern.java
@Override
public void cancelAction(User user, PacketEvent packetEvent)
{
    final IWrapperPlayPosition positionWrapper = packetEvent::getPacket;

    final Vector moveTo = new Vector(positionWrapper.getX(),
                                     positionWrapper.getY(),
                                     positionWrapper.getZ());

    final Location knownPosition = user.getPlayer().getLocation();

    // Not many blocks moved to prevent exploits and world change problems.
    if (moveTo.distanceSquared(knownPosition.toVector()) < 4) {
        // Teleport back the next tick.
        Bukkit.getScheduler().runTask(AACAdditionPro.getInstance(), () -> user.getPlayer().teleport(knownPosition, PlayerTeleportEvent.TeleportCause.UNKNOWN));
    }
}
 
源代码3 项目: Sentinel   文件: SentinelTrait.java
/**
 * Called whenever a player teleports, for use with NPC guarding logic.
 */
public void onPlayerTeleports(final PlayerTeleportEvent event) {
    if (event.getFrom().getWorld().equals(event.getTo().getWorld())) {
        npc.teleport(event.getTo(), PlayerTeleportEvent.TeleportCause.PLUGIN);
    }
    else { // World loading up can cause glitches.
        event.getFrom().getChunk().load();
        event.getTo().getChunk().load();
        Bukkit.getScheduler().runTaskLater(SentinelPlugin.instance, new Runnable() {
            @Override
            public void run() {
                if (!event.getPlayer().getWorld().equals(event.getTo().getWorld())) {
                    return;
                }
                event.getFrom().getChunk().load();
                event.getTo().getChunk().load();
                npc.spawn(event.getTo());
            }
        }, 1);
    }
}
 
源代码4 项目: CombatLogX   文件: ListenerTeleport.java
@EventHandler(priority=EventPriority.HIGH, ignoreCancelled=true)
public void onTeleport(PlayerTeleportEvent e) {
    FileConfiguration config = this.expansion.getConfig("cheat-prevention.yml");
    if(!config.getBoolean("teleportation.prevent-teleport")) return;

    Player player = e.getPlayer();
    ICombatManager manager = this.plugin.getCombatManager();
    if(!manager.isInCombat(player)) return;

    PlayerTeleportEvent.TeleportCause cause = e.getCause();
    if(isAllowed(cause)) {
        if(cause == PlayerTeleportEvent.TeleportCause.ENDER_PEARL && config.getBoolean("teleportation.restart-timer-for-ender-pearl")) {
            manager.tag(player, null, PlayerPreTagEvent.TagType.UNKNOWN, PlayerPreTagEvent.TagReason.UNKNOWN);
        }
        return;
    }

    e.setCancelled(true);
    String message = this.plugin.getLanguageMessageColoredWithPrefix("cheat-prevention.teleportation.block-" + (cause == PlayerTeleportEvent.TeleportCause.ENDER_PEARL ? "pearl" : "other"));
    this.plugin.sendMessage(player, message);
}
 
源代码5 项目: uSkyBlock   文件: PlayerEvents.java
@EventHandler(priority = EventPriority.LOW, ignoreCancelled = true)
public void onTeleport(PlayerTeleportEvent event) {
    if (event.getTo() != null || !plugin.getWorldManager().isSkyWorld(event.getTo().getWorld())) {
        return;
    }
    final Player player = event.getPlayer();
    boolean isAdmin = player.isOp() || player.hasPermission("usb.mod.bypassprotection");
    IslandInfo islandInfo = uSkyBlock.getInstance().getIslandInfo(WorldGuardHandler.getIslandNameAt(event.getTo()));
    if (!isAdmin && islandInfo != null && islandInfo.isBanned(player.getUniqueId())) {
        event.setCancelled(true);
        player.sendMessage(tr("\u00a74That player has forbidden you from teleporting to their island."));
    }
    if (!isAdmin && islandInfo != null && islandInfo.isLocked() && !islandInfo.getMembers().contains(player.getName()) && !islandInfo.isTrusted(player)) {
        event.setCancelled(true);
        player.sendMessage(tr("\u00a74That island is \u00a7clocked.\u00a7e No teleporting to the island."));
    }
    if (!event.isCancelled()) {
        final PlayerInfo playerInfo = plugin.getPlayerInfo(player);
        playerInfo.onTeleport(player);
    }
}
 
源代码6 项目: CombatLogX   文件: NoEntryListener.java
@EventHandler(priority=EventPriority.HIGHEST, ignoreCancelled=true)
public void onTeleport(PlayerTeleportEvent e) {
    ICombatLogX plugin = this.expansion.getPlugin();
    ICombatManager manager = plugin.getCombatManager();

    Player player = e.getPlayer();
    if(!manager.isInCombat(player)) return;

    LivingEntity enemy = manager.getEnemy(player);
    if(enemy == null) return;

    Location toLocation = e.getTo();
    TagType tagType = (enemy instanceof Player ? TagType.PLAYER : TagType.MOB);

    NoEntryHandler handler = this.expansion.getNoEntryHandler();
    if(!handler.isSafeZone(player, toLocation, tagType)) return;

    e.setCancelled(true);
    this.expansion.sendNoEntryMessage(player, enemy);
}
 
源代码7 项目: SonarPet   文件: PetOwnerListener.java
@EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true)
public void onPlayerTeleport(final PlayerTeleportEvent event) {
    final Player p = event.getPlayer();
    final IPet pi = EchoPet.getManager().getPet(p);
    Iterator<IPet> i = EchoPet.getManager().getPets().iterator();
    while (i.hasNext()) {
        IPet pet = i.next();
        if (pet.getEntityPet() instanceof IEntityPacketPet && ((IEntityPacketPet) pet.getEntityPet()).hasInititiated()) {
            if (GeometryUtil.getNearbyEntities(event.getTo(), 50).contains(pet)) {
                ((IEntityPacketPet) pet.getEntityPet()).updatePosition();
            }
        }
    }
    if (pi != null) {
        if (!WorldUtil.allowPets(event.getTo())) {
            Lang.sendTo(p, Lang.PETS_DISABLED_HERE.toString().replace("%world%", WordUtils.capitalizeFully(event.getTo().getWorld().getName())));
            EchoPet.getManager().saveFileData("autosave", pi);
            EchoPet.getSqlManager().saveToDatabase(pi, false);
            EchoPet.getManager().removePet(pi, false);
        }
    }
}
 
@EventHandler(priority = EventPriority.MONITOR)
public void onPlayerTeleport(PlayerTeleportEvent event) {
    if (event.isCancelled()) {
        return;
    }

    Location from = event.getFrom();
    Location to = event.getTo();

    if (from.getWorld().equals(to.getWorld())) {
        return;
    }

    ConsoleLogger.debug("[EVENTS] Player '" + event.getPlayer().getName() + "' going from world '" + from + "' to world '" + to + "'");

    Group groupFrom = groupManager.getGroupFromWorld(from.getWorld().getName());
    Group groupTo = groupManager.getGroupFromWorld(to.getWorld().getName());

    if (groupFrom.equals(groupTo)) {
        return;
    }

    playerManager.addPlayer(event.getPlayer(), groupFrom);
    event.getPlayer().closeInventory();
}
 
@Test
public void noInteractionsSameWorld() {
    // given
    Player player = mock(Player.class);

    World worldFrom = mock(World.class);
    Location from = new Location(worldFrom, 1, 2, 3);
    Location to = new Location(worldFrom, 4, 5, 6);

    PlayerTeleportEvent event = new PlayerTeleportEvent(player, from, to);

    // when
    listener.onPlayerTeleport(event);

    // then
    verifyZeroInteractions(groupManager);
    verifyZeroInteractions(playerManager);
}
 
@Test
public void noPlayerInteractionsSameGroup() {
    // given
    Player player = mock(Player.class);

    World worldFrom = mock(World.class);
    given(worldFrom.getName()).willReturn("world");
    Location from = new Location(worldFrom, 1, 2, 3);
    World worldTo = mock(World.class);
    given(worldTo.getName()).willReturn("world_nether");
    Location to = new Location(worldTo, 4, 5, 6);

    Group group = TestHelper.mockGroup("world");
    given(groupManager.getGroupFromWorld("world")).willReturn(group);
    given(groupManager.getGroupFromWorld("world_nether")).willReturn(group);

    PlayerTeleportEvent event = new PlayerTeleportEvent(player, from, to);

    // when
    listener.onPlayerTeleport(event);

    // then
    verifyZeroInteractions(playerManager);
}
 
@Test
public void shouldAddPlayer() {
    // given
    Player player = mock(Player.class);

    World worldFrom = mock(World.class);
    given(worldFrom.getName()).willReturn("world");
    Location from = new Location(worldFrom, 1, 2, 3);
    World worldTo = mock(World.class);
    given(worldTo.getName()).willReturn("world2");
    Location to = new Location(worldTo, 4, 5, 6);

    Group groupFrom = TestHelper.mockGroup("world");
    Group groupTo = TestHelper.mockGroup("world2");
    given(groupManager.getGroupFromWorld("world")).willReturn(groupFrom);
    given(groupManager.getGroupFromWorld("world2")).willReturn(groupTo);

    PlayerTeleportEvent event = new PlayerTeleportEvent(player, from, to);

    // when
    listener.onPlayerTeleport(event);

    // then
    verify(playerManager).addPlayer(player, groupFrom);
}
 
源代码12 项目: DungeonsXL   文件: DPlayerListener.java
@EventHandler(priority = EventPriority.HIGHEST)
public void onPlayerTeleport(PlayerTeleportEvent event) {
    Player player = event.getPlayer();
    if (isCitizensNPC(player)) {
        return;
    }
    GlobalPlayer dPlayer = dPlayers.get(player);

    World toWorld = event.getTo().getWorld();

    if (dPlayer instanceof InstancePlayer && ((InstancePlayer) dPlayer).getWorld() == toWorld) {
        return;
    }

    if (plugin.getInstanceWorld(toWorld) != null) {
        dPlayer.sendMessage(DMessage.ERROR_JOIN_GROUP.getMessage());
        dPlayer.sendMessage(ChatColor.GOLD + DMessage.CMD_ENTER_HELP.getMessage());
        event.setCancelled(true);
    }
}
 
源代码13 项目: PerWorldInventory   文件: PlayerTeleportListener.java
@EventHandler(priority = EventPriority.MONITOR)
public void onPlayerTeleport(PlayerTeleportEvent event) {
    if (event.isCancelled()) {
        return;
    }

    Location from = event.getFrom();
    Location to = event.getTo();

    if (from.getWorld().equals(to.getWorld())) {
        return;
    }

    ConsoleLogger.debug("[EVENTS] Player '" + event.getPlayer().getName() + "' going from world '" + from + "' to world '" + to + "'");

    Group groupFrom = groupManager.getGroupFromWorld(from.getWorld().getName());
    Group groupTo = groupManager.getGroupFromWorld(to.getWorld().getName());

    if (groupFrom.equals(groupTo)) {
        return;
    }

    playerManager.addPlayer(event.getPlayer(), groupFrom);
    event.getPlayer().closeInventory();
}
 
@Test
public void noInteractionsSameWorld() {
    // given
    Player player = mock(Player.class);

    World worldFrom = mock(World.class);
    Location from = new Location(worldFrom, 1, 2, 3);
    Location to = new Location(worldFrom, 4, 5, 6);

    PlayerTeleportEvent event = new PlayerTeleportEvent(player, from, to);

    // when
    listener.onPlayerTeleport(event);

    // then
    verifyZeroInteractions(groupManager);
    verifyZeroInteractions(playerManager);
}
 
@Test
public void noPlayerInteractionsSameGroup() {
    // given
    Player player = mock(Player.class);

    World worldFrom = mock(World.class);
    given(worldFrom.getName()).willReturn("world");
    Location from = new Location(worldFrom, 1, 2, 3);
    World worldTo = mock(World.class);
    given(worldTo.getName()).willReturn("world_nether");
    Location to = new Location(worldTo, 4, 5, 6);

    Group group = TestHelper.mockGroup("world");
    given(groupManager.getGroupFromWorld("world")).willReturn(group);
    given(groupManager.getGroupFromWorld("world_nether")).willReturn(group);

    PlayerTeleportEvent event = new PlayerTeleportEvent(player, from, to);

    // when
    listener.onPlayerTeleport(event);

    // then
    verifyZeroInteractions(playerManager);
}
 
源代码16 项目: BedWars   文件: HologramManager.java
@EventHandler
public void onPlayerTeleport(PlayerTeleportEvent event) {
	if (HOLOGRAMS.isEmpty() || !event.getFrom().getWorld().equals(event.getTo().getWorld()) /* World change is handled in another event*/) {
		return;
	}
	
	List<Hologram> copy = new ArrayList<>(HOLOGRAMS);
	for (Hologram hologram : copy) {
		if (hologram.isEmpty() || !hologram.hasViewers()) {
			HOLOGRAMS.remove(hologram);
			continue;
		}
		try {
			Player player = event.getPlayer();
			List<Player> viewers = hologram.getViewers();
			Location loc = hologram.getLocation();
			if (viewers.contains(player) && player.getWorld().equals(loc.getWorld())) {
				if (event.getTo().distanceSquared(loc) < VISIBILITY_DISTANCE_SQUARED
					&& event.getFrom().distanceSquared(loc) >= VISIBILITY_DISTANCE_SQUARED) {
					hologram.update(player, hologram.getAllSpawnPackets(), false);
				} else if (event.getTo().distanceSquared(loc) >= VISIBILITY_DISTANCE_SQUARED
					&& event.getFrom().distanceSquared(loc) < VISIBILITY_DISTANCE_SQUARED) {
					hologram.update(player, Arrays.asList(hologram.getFullDestroyPacket()), false);
				}
			}
		} catch (Throwable t) {
		}
	}
}
 
源代码17 项目: civcraft   文件: PlayerListener.java
@EventHandler(priority = EventPriority.MONITOR)
public void onPlayerTeleportEvent(PlayerTeleportEvent event) {
	if (event.getCause().equals(TeleportCause.COMMAND) ||
			event.getCause().equals(TeleportCause.PLUGIN)) {
		CivLog.info("[TELEPORT] "+event.getPlayer().getName()+" to:"+event.getTo().getBlockX()+","+event.getTo().getBlockY()+","+event.getTo().getBlockZ()+
				" from:"+event.getFrom().getBlockX()+","+event.getFrom().getBlockY()+","+event.getFrom().getBlockZ());
	}
}
 
源代码18 项目: PGM   文件: InternalMatchModule.java
/** Prevent teleporting outside the map */
@EventHandler(priority = EventPriority.HIGH)
public void onPlayerTeleport(final PlayerTeleportEvent event) {
  if (event.getCause() == PlayerTeleportEvent.TeleportCause.PLUGIN) {
    double fromY = event.getFrom().getY();
    double toY = event.getTo().getY();

    if ((fromY >= 0.0D && fromY < 255.0D) && (toY < 0.0D || toY >= 255.0D)) {
      event.setCancelled(true);
    }
  }
}
 
源代码19 项目: RedProtect   文件: Compat19.java
@EventHandler(ignoreCancelled = true)
public void onPlayerTeleport(PlayerTeleportEvent e) {

    final Player p = e.getPlayer();
    Location lfrom = e.getFrom();
    Location lto = e.getTo();

    if (e.getCause().equals(PlayerTeleportEvent.TeleportCause.CHORUS_FRUIT)) {
        final Region rfrom = RedProtect.get().rm.getTopRegion(lfrom);
        final Region rto = RedProtect.get().rm.getTopRegion(lto);

        if (rfrom != null && !rfrom.canTeleport(p)) {
            RedProtect.get().lang.sendMessage(p, "playerlistener.region.cantuse");
            e.setCancelled(true);
        }
        if (rto != null && !rto.canTeleport(p)) {
            RedProtect.get().lang.sendMessage(p, "playerlistener.region.cantuse");
            e.setCancelled(true);
        }
    }

    if (p.getInventory().getChestplate() != null &&
            p.getInventory().getChestplate().getType().equals(Material.ELYTRA) &&
            !RedProtect.get().config.globalFlagsRoot().worlds.get(lto.getWorld().getName()).player_glide.allow_elytra) {
        RedProtect.get().lang.sendMessage(p, "globallistener.elytra.cantworld");
        e.setCancelled(true);
    }
}
 
源代码20 项目: PGM   文件: WorldBorderMatchModule.java
/** Prevent teleporting outside the border */
@EventHandler(priority = EventPriority.HIGH)
public void onPlayerTeleport(final PlayerTeleportEvent event) {
  if (event.getCause() == PlayerTeleportEvent.TeleportCause.PLUGIN) {
    if (WorldBorders.isInsideBorder(event.getFrom())
        && !WorldBorders.isInsideBorder(event.getTo())) {
      event.setCancelled(true);
    }
  }
}
 
源代码21 项目: QuickShop-Reremake   文件: SpigotWrapper.java
@Override
public void teleportEntity(
        @NotNull Entity entity,
        @NotNull Location location,
        @Nullable PlayerTeleportEvent.TeleportCause cause) {
    if (cause == null) {
        entity.teleport(location);
    } else {
        entity.teleport(location, cause);
    }
}
 
源代码22 项目: BedWars   文件: HologramManager.java
@EventHandler
public void onPlayerTeleport(PlayerTeleportEvent event) {
	if (HOLOGRAMS.isEmpty() || !event.getFrom().getWorld().equals(event.getTo().getWorld()) /* World change is handled in another event*/) {
		return;
	}
	
	List<Hologram> copy = new ArrayList<>(HOLOGRAMS);
	for (Hologram hologram : copy) {
		if (hologram.isEmpty() || !hologram.hasViewers()) {
			HOLOGRAMS.remove(hologram);
			continue;
		}
		try {
			Player player = event.getPlayer();
			List<Player> viewers = hologram.getViewers();
			Location loc = hologram.getLocation();
			if (viewers.contains(player) && player.getWorld().equals(loc.getWorld())) {
				if (event.getTo().distanceSquared(loc) < VISIBILITY_DISTANCE_SQUARED
					&& event.getFrom().distanceSquared(loc) >= VISIBILITY_DISTANCE_SQUARED) {
					hologram.update(player, hologram.getAllSpawnPackets(), false);
				} else if (event.getTo().distanceSquared(loc) >= VISIBILITY_DISTANCE_SQUARED
					&& event.getFrom().distanceSquared(loc) < VISIBILITY_DISTANCE_SQUARED) {
					hologram.update(player, Arrays.asList(hologram.getFullDestroyPacket()), false);
				}
			}
		} catch (Throwable t) {
		}
	}
}
 
源代码23 项目: Hawk   文件: TickRate.java
@EventHandler(priority = EventPriority.MONITOR)
public void onTeleport(PlayerTeleportEvent e) {
    Location loc = e.getTo();
    if(!loc.getWorld().isChunkLoaded(loc.getBlockX() >> 4, loc.getBlockZ() >> 4)) {
        lastBigTeleportTime.put(e.getPlayer().getUniqueId(), hawk.getHawkPlayer(e.getPlayer()).getCurrentTick());
    }
}
 
源代码24 项目: CardinalPGM   文件: PlayerBoundingBox.java
@EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true)
public void onPlayerMove(PlayerTeleportEvent event) {
    if (event.getPlayer().getUniqueId().equals(this.player)) {
        updateAndTeleport(event.getTo().position());
    } else {
        sendOrRemoveZombies(event.getPlayer(), event.getTo().position(), Bukkit.getPlayer(player).getLocation().position());
    }
}
 
源代码25 项目: helper   文件: CitizensNpcFactory.java
private void tickNpcs() {
    for (NPC npc : this.npcRegistry) {
        if (!npc.isSpawned() || !npc.hasTrait(ClickableTrait.class)) continue;

        Npc helperNpc = npc.getTrait(ClickableTrait.class).npc;

        // ensure npcs stay in the same position
        Location loc = npc.getEntity().getLocation();
        if (loc.getBlockX() != helperNpc.getInitialSpawn().getBlockX() || loc.getBlockZ() != helperNpc.getInitialSpawn().getBlockZ()) {
            npc.teleport(helperNpc.getInitialSpawn().clone(), PlayerTeleportEvent.TeleportCause.PLUGIN);
        }

        // don't let players stand near npcs
        for (Entity entity : npc.getStoredLocation().getWorld().getNearbyEntities(npc.getStoredLocation(), 1.0, 1.0, 1.0)) {
            if (!(entity instanceof Player) || this.npcRegistry.isNPC(entity)) continue;

            final Player p = (Player) entity;

            if (p.getGameMode() == GameMode.CREATIVE || p.getGameMode() == GameMode.SPECTATOR) {
                continue;
            }

            if (npc.getEntity().getLocation().distance(p.getLocation()) < 3.5) {
                p.setVelocity(p.getLocation().getDirection().multiply(-0.5).setY(0.4));
            }
        }
    }
}
 
源代码26 项目: ProjectAres   文件: InternalMatchModule.java
/**
 * Prevent teleporting outside the map
 */
@EventHandler(priority = EventPriority.HIGH)
public void onPlayerTeleport(final PlayerTeleportEvent event) {
    if(event.getCause() == PlayerTeleportEvent.TeleportCause.PLUGIN) {
        double fromY = event.getFrom().getY();
        double toY = event.getTo().getY();

        if((fromY >= 0.0D && fromY < 255.0D) && (toY < 0.0D || toY >= 255.0D)) {
            event.setCancelled(true);
        }
    }
}
 
源代码27 项目: Carbon   文件: ItemListener.java
@EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true)
public void onTeleport(PlayerTeleportEvent e) {
    if (e.getCause() == TeleportCause.ENDER_PEARL && plugin.getConfig().getBoolean("mobSpawning.endermites", true)
            && e.getTo().getWorld().getAllowMonsters()) {
        Random rand = new Random();
        if(rand.nextInt(100) < 5) {//5% probability of spawning
        	EntityEndermite ender = new EntityEndermite(((CraftWorld) e.getFrom().getWorld()).getHandle());
            ender.spawn(e.getFrom());
        }
    }
}
 
源代码28 项目: ProjectAres   文件: PlayerMovementListener.java
/**
 * Fire a CoarsePlayerMoveEvent that wraps the given event, only if it crosses
 * a block boundary, or the PoseFlags change.
 * @param event         The movement event to potentially wrap
 * @return True if the original event was not cancelled, and a coarse event was fired,
 *         and that coarse event was cancelled. In this case, the wrapped event won't
 *         actually be cancelled, but callers should treat it like it is.
 */
private boolean callCoarsePlayerMove(final PlayerMoveEvent event) {
    // Don't fire coarse events for teleports that are not "in-game"
    // e.g. /jumpto command
    if(event instanceof PlayerTeleportEvent) {
        PlayerTeleportEvent teleportEvent = (PlayerTeleportEvent) event;
        if(teleportEvent.getCause() != TeleportCause.ENDER_PEARL &&
           teleportEvent.getCause() != TeleportCause.UNKNOWN) {
            return false;
        }
    }

    // If the movement does not cross a block boundary, and no PoseFlags changed, we don't care about it
    final EntityLocation from = event.getEntityFrom();
    final EntityLocation to = event.getEntityTo();
    if(from.position().coarseEquals(to.position()) && from.poseFlags().equals(to.poseFlags())) {
        return false;
    }

    // Remember whether the original event was already cancelled
    boolean wasCancelled = event.isCancelled();

    CoarsePlayerMoveEvent generalEvent = new CoarsePlayerMoveEvent(event, event.getPlayer(), from, to);
    this.eventBus.callEvent(generalEvent);

    if(!wasCancelled && generalEvent.isCancelled()) {
        // When a coarse event is cancelled, we have our own logic for resetting the
        // player's position, so we un-cancel the event and instead modify its
        // to location to put the player where we want them.
        resetPosition(event);
        return true;
    } else {
        return false;
    }
}
 
源代码29 项目: PlayerVaults   文件: Listeners.java
@EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true)
public void onTeleport(PlayerTeleportEvent event) {
    if (event.getCause() == PlayerTeleportEvent.TeleportCause.UNKNOWN) {
        return;
    }
    Player p = event.getPlayer();
    // The player will either quit, die, or close the inventory at some point
    if (plugin.getInVault().containsKey(p.getUniqueId().toString())) {
        return;
    }
    saveVault(p, p.getOpenInventory().getTopInventory());
}
 
源代码30 项目: Civs   文件: DeathListener.java
@EventHandler(ignoreCancelled = true) @SuppressWarnings("unused")
public void onPlayerTeleport(PlayerTeleportEvent event) {
    Player player = event.getPlayer();
    Civilian civilian = CivilianManager.getInstance().getCivilian(player.getUniqueId());

    if (!ConfigManager.getInstance().isAllowTeleportInCombat()) {
        if (civilian.isInCombat()) {
            event.setCancelled(true);
            player.sendMessage(Civs.getPrefix() + LocaleManager.getInstance().getTranslationWithPlaceholders(player,
                    "in-combat"));
            return;
        }
    }

    if (!ConfigManager.getInstance().isAllowTeleportingOutOfHostileTowns()) {
        Town town = TownManager.getInstance().getTownAt(event.getFrom());
        if (town != null && !town.getPeople().containsKey(player.getUniqueId())) {
            Region region = RegionManager.getInstance().getRegionAt(event.getTo());
            if (region == null || !region.getEffects().containsKey("bypass_hostile_port")) {
                event.setCancelled(true);
                player.sendMessage(Civs.getPrefix() + LocaleManager.getInstance().getTranslationWithPlaceholders(player,
                        "no-tp-out-of-town"));
                return;
            }
        }
    }
}
 
 类所在包
 同包方法