java类org.bukkit.event.player.PlayerTeleportEvent.TeleportCause的实例源码

Commandtphere.java 文件源码 项目:Essentials 阅读 15 收藏 0 点赞 0 评论 0
@Override
public void run(final IUser user, final String commandLabel, final String[] args) throws Exception
{
    final IUser player = ess.getUserMap().matchUserExcludingHidden(args[0], user.getPlayer());
    if (!player.getData().isTeleportEnabled())
    {
        throw new Exception(_("§c{0} §4has teleportation disabled.", player.getPlayer().getDisplayName()));
    }
    ISettings settings = ess.getSettings();
    if (settings.getData().getGeneral().isPerGroupTeleport() && !Permissions.PERGROUPTELEPORT.isAuthorized(
            user, ess.getRanks().getMainGroup(player)))
    {
        throw new Exception(_("§4You do not have the §c{0}§4 permission.", "essentials.teleport.groups." + ess.getRanks().getMainGroup(player)));
    }

    user.getTeleport().teleportToMe(player, new Trade(commandName, ess), TeleportCause.COMMAND);
    user.sendMessage(_("§6Teleporting..."));
    player.sendMessage(_("§6Teleporting..."));
    throw new NoChargeException();
}
Teleport.java 文件源码 项目:Essentials 阅读 24 收藏 0 点赞 0 评论 0
private void teleport(Target target, Trade chargeFor, TeleportCause cause) throws Exception
{
    final double delay = ess.getRanks().getTeleportDelay(user);

    if (chargeFor != null)
    {
        chargeFor.isAffordableFor(user);
    }
    cooldown(true);
    if (delay <= 0 || Permissions.TELEPORT_TIMER_BYPASS.isAuthorized(user))
    {
        cooldown(false);
        now(target, cause);
        if (chargeFor != null)
        {
            chargeFor.charge(user);
        }
        return;
    }

    cancel();
    warnUser(user, delay);
    initTimer((long)(delay * 1000.0), target, chargeFor, cause);

    teleTimer = ess.getPlugin().scheduleSyncRepeatingTask(this, 10, 10);
}
Teleport.java 文件源码 项目:Essentials 阅读 25 收藏 0 点赞 0 评论 0
@Override
public void now(final Target target, final TeleportCause cause) throws Exception
{
    cancel();
    user.setLastLocation();
    final Location loc = LocationUtil.getSafeDestination(target.getLocation());
    ess.getPlugin().scheduleSyncDelayedTask(
            new Runnable()
            {
                @Override
                public void run()
                {
                    user.getPlayer().teleport(loc, cause);
                }
            });
}
SignWarp.java 文件源码 项目:Essentials 阅读 14 收藏 0 点赞 0 评论 0
@Override
protected boolean onSignInteract(final ISign sign, final IUser player, final String username, final IEssentials ess) throws SignException, ChargeException
{
    final String warpName = sign.getLine(1);
    final String group = sign.getLine(2);

    if ((!group.isEmpty() && ("§2Everyone".equals(group) || ess.getRanks().inGroup(player, group))) || (group.isEmpty() && Permissions.WARPS.isAuthorized(player, warpName)))
    {
        final Trade charge = getTrade(sign, 3, ess);
        try
        {
            player.getTeleport().warp(warpName, charge, TeleportCause.PLUGIN);
        }
        catch (Exception ex)
        {
            throw new SignException(ex.getMessage(), ex);
        }
        return true;
    }
    return false;
}
CraftPlayer.java 文件源码 项目:Uranium 阅读 20 收藏 0 点赞 0 评论 0
@Override
public void respawn()
{
    if ( getHealth() <= 0 && isOnline() )
    {
        server.getServer().getConfigurationManager().respawnPlayer( getHandle(), 0, TeleportCause.DEATH, null );
    }
}
OrebfuscatorPlayerListener.java 文件源码 项目:AntiCheat 阅读 23 收藏 0 点赞 0 评论 0
@EventHandler(priority=EventPriority.MONITOR, ignoreCancelled = true)
public void onPlayerTeleport(PlayerTeleportEvent event) {
    if (OrebfuscatorConfig.UseProximityHider) {
        if(event.getCause() != TeleportCause.END_PORTAL
                && event.getCause() != TeleportCause.NETHER_PORTAL
                )
        {
            ProximityHider.addPlayerToCheck(event.getPlayer(), null);
        }
    }
}
StandardGun.java 文件源码 项目:AddGun 阅读 18 收藏 0 点赞 0 评论 0
/**
 * Based on shooting the gun, jerks the player's head to the direction of firing
 * 
 * @param entity the entity shooting
 * @param direction the direction of shot
 */
public void knockback(LivingEntity entity, Vector direction) {
    if (entity instanceof Player) {
        Player p = (Player) entity;
        Vector begin = p.getEyeLocation().getDirection().clone();
        Vector end = begin.clone().getMidpoint(direction).getMidpoint(begin); // 25% of "direction" between start and where fire occurred.
        long kickback = Math.max(Math.min(this.cooldown / 3, (long) Animation.FRAME_DELAY * 3l), (long) Animation.FRAME_DELAY * 2l);
        long kickdown = Math.max((long) Animation.FRAME_DELAY * 2l, this.cooldown - kickback);
        AddGun.getPlugin().getPlayerListener().playAnimation(p, new Animation(p, begin, kickback, direction, kickdown, end));
    } else {
        entity.teleport(entity.getLocation().setDirection(direction), TeleportCause.PLUGIN);
    }
}
PlayerMovementListener.java 文件源码 项目:ProjectAres 阅读 21 收藏 0 点赞 0 评论 0
/**
 * 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;
    }
}
Game.java 文件源码 项目:SkyWarsReloaded 阅读 31 收藏 0 点赞 0 评论 0
public void endGame() {
    gameState = GameState.ENDING;
    if (SkyWarsReloaded.getCfg().bungeeEnabled()&& !shutdown) {
        BungeeUtil.sendSignUpdateRequest(this);
    }
    if (SkyWarsReloaded.getCfg().signJoinMode() && !shutdown) {
        SkyWarsReloaded.getGC().updateSign(gameNumber);
    }
    for (GamePlayer gplayer: getPlayers()) {
        deletePlayer(gplayer, false, false);
    }
    if (SkyWarsReloaded.getCfg().spectatingEnabled()) {
        for (GamePlayer gPlayer: getSpectators()) {
            removeSpectator(gPlayer);
        }
    }
    for (Player player: mapWorld.getPlayers()) {
        if (player != null) {
            player.teleport(SkyWarsReloaded.getCfg().getSpawn(), TeleportCause.PLUGIN);
        }
    }

    for (Entity entity: mapWorld.getEntities()) {
        if (entity != null) {
            entity.remove();
        }
    }
    if (!SkyWarsReloaded.getCfg().spectatingEnabled() && !shutdown) {
            SkyWarsReloaded.get().getServer().getScheduler().scheduleSyncDelayedTask(SkyWarsReloaded.get(), new Runnable() {
                @Override
                public void run() {
                    deleteGame();
                }
            }, 20 * SkyWarsReloaded.getCfg().getTimeAfterGame());
    } else {
        deleteGame();
    }
}
SaveMapCmd.java 文件源码 项目:SkyWarsReloaded 阅读 14 收藏 0 点赞 0 评论 0
@Override
public boolean run() {
    Location spawn = SkyWarsReloaded.getCfg().getSpawn();
    if (spawn == null) {
        sender.sendMessage(ChatColor.RED + "YOU MUST SET SPAWN BEFORE YOU CAN SAVE A MAP");
        return true;
    }
    String worldName = args[1].toLowerCase();
    for (World world: SkyWarsReloaded.get().getServer().getWorlds()) {
        if (world.getName().equalsIgnoreCase(worldName)) {
            World editWorld = SkyWarsReloaded.get().getServer().getWorld(worldName);
            for (Player player: editWorld.getPlayers()) {
                player.teleport(spawn, TeleportCause.PLUGIN);
            }
            editWorld.save();
            SkyWarsReloaded.getWC().unloadWorld(worldName);
            File dataDirectory = new File (SkyWarsReloaded.get().getDataFolder(), "maps");
            File target = new File (dataDirectory, worldName);
            SkyWarsReloaded.getWC().deleteWorld(target);
            File source = new File (SkyWarsReloaded.get().getServer().getWorldContainer().getAbsolutePath(), worldName);
            SkyWarsReloaded.getWC().copyWorld(source, target);
            SkyWarsReloaded.getWC().deleteWorld(source);
            sender.sendMessage(new Messaging.MessageFormatter().setVariable("mapname", worldName).format("maps.saved"));
            if (SkyWarsReloaded.getMC().mapRegistered(worldName)) {
                sender.sendMessage(new Messaging.MessageFormatter().format("maps.register-reminder"));
            }
            return true;
        }
    }
    sender.sendMessage(new Messaging.MessageFormatter().setVariable("mapname", worldName).format("error.map-not-in-edit"));
    return true;
}


问题


面经


文章

微信
公众号

扫码关注公众号