001 package org.bukkit.event.player;
002
003 import org.bukkit.Location;
004 import org.bukkit.entity.Player;
005 import org.bukkit.event.Cancellable;
006 import org.bukkit.event.HandlerList;
007
008 /**
009 * Holds information for player movement events
010 */
011 public class PlayerMoveEvent extends PlayerEvent implements Cancellable {
012 private static final HandlerList handlers = new HandlerList();
013 private boolean cancel = false;
014 private Location from;
015 private Location to;
016
017 public PlayerMoveEvent(final Player player, final Location from, final Location to) {
018 super(player);
019 this.from = from;
020 this.to = to;
021 }
022
023 /**
024 * Gets the cancellation state of this event. A cancelled event will not
025 * be executed in the server, but will still pass to other plugins
026 * <p>
027 * If a move or teleport event is cancelled, the player will be moved or
028 * teleported back to the Location as defined by getFrom(). This will not
029 * fire an event
030 *
031 * @return true if this event is cancelled
032 */
033 public boolean isCancelled() {
034 return cancel;
035 }
036
037 /**
038 * Sets the cancellation state of this event. A cancelled event will not
039 * be executed in the server, but will still pass to other plugins
040 * <p>
041 * If a move or teleport event is cancelled, the player will be moved or
042 * teleported back to the Location as defined by getFrom(). This will not
043 * fire an event
044 *
045 * @param cancel true if you wish to cancel this event
046 */
047 public void setCancelled(boolean cancel) {
048 this.cancel = cancel;
049 }
050
051 /**
052 * Gets the location this player moved from
053 *
054 * @return Location the player moved from
055 */
056 public Location getFrom() {
057 return from;
058 }
059
060 /**
061 * Sets the location to mark as where the player moved from
062 *
063 * @param from New location to mark as the players previous location
064 */
065 public void setFrom(Location from) {
066 this.from = from;
067 }
068
069 /**
070 * Gets the location this player moved to
071 *
072 * @return Location the player moved to
073 */
074 public Location getTo() {
075 return to;
076 }
077
078 /**
079 * Sets the location that this player will move to
080 *
081 * @param to New Location this player will move to
082 */
083 public void setTo(Location to) {
084 this.to = to;
085 }
086
087 @Override
088 public HandlerList getHandlers() {
089 return handlers;
090 }
091
092 public static HandlerList getHandlerList() {
093 return handlers;
094 }
095 }