All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.bukkit.event.player.PlayerTeleportEvent Maven / Gradle / Ivy

package org.bukkit.event.player;

import org.bukkit.Location;
import org.bukkit.entity.Player;
import org.bukkit.event.HandlerList;

/**
 * Holds information for player teleport events
 */
public class PlayerTeleportEvent extends PlayerMoveEvent {
  private static final HandlerList handlers = new HandlerList();
  private TeleportCause cause = TeleportCause.UNKNOWN;

  public PlayerTeleportEvent(final Player player, final Location from, final Location to) {
    super(player, from, to);
  }

  public PlayerTeleportEvent(final Player player, final Location from, final Location to, final TeleportCause cause) {
    this(player, from, to);

    this.cause = cause;
  }

  public static HandlerList getHandlerList() {
    return handlers;
  }

  /**
   * Gets the cause of this teleportation event
   *
   * @return Cause of the event
   */
  public TeleportCause getCause() {
    return cause;
  }

  @Override
  public HandlerList getHandlers() {
    return handlers;
  }

  public enum TeleportCause {
    /**
     * Indicates the teleporation was caused by a player throwing an Ender
     * Pearl
     */
    ENDER_PEARL,
    /**
     * Indicates the teleportation was caused by a player executing a
     * command
     */
    COMMAND,
    /**
     * Indicates the teleportation was caused by a plugin
     */
    PLUGIN,
    /**
     * Indicates the teleportation was caused by a player entering a
     * Nether portal
     */
    NETHER_PORTAL,
    /**
     * Indicates the teleportation was caused by a player entering an End
     * portal
     */
    END_PORTAL,
    /**
     * Indicates the teleportation was caused by a player teleporting to a
     * Entity/Player via the specatator menu
     */
    SPECTATE,
    /**
     * Indicates the teleportation was caused by an event not covered by
     * this enum
     */
    UNKNOWN
  }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy