13
0
geforkt von Mirrors/Paper

Added onPlayerMove and onPlayerTeleport

By: Dinnerbone <dinnerbone@dinnerbone.com>
Dieser Commit ist enthalten in:
Bukkit/Spigot 2010-12-28 16:59:25 +00:00
Ursprung e61f164e8b
Commit 3a968aa90a
4 geänderte Dateien mit 169 neuen und 4 gelöschten Zeilen

Datei anzeigen

@ -9,12 +9,20 @@ public class Location {
private double x;
private double y;
private double z;
private float pitch;
private float yaw;
public Location(final World world, final double x, final double y, final double z) {
this(world, x, y, z, 0, 0);
}
public Location(final World world, final double x, final double y, final double z, final float pitch, final float yaw) {
this.world = world;
this.x = x;
this.y = y;
this.z = z;
this.pitch = pitch;
this.yaw = yaw;
}
/**
@ -89,6 +97,42 @@ public class Location {
return z;
}
/**
* Sets the yaw of this location
*
* @param yaw New yaw
*/
public void setYaw(float yaw) {
this.yaw = yaw;
}
/**
* Gets the yaw of this location
*
* @return Yaw
*/
public float getYaw() {
return yaw;
}
/**
* Sets the pitch of this location
*
* @param pitch New pitch
*/
public void setPitch(float pitch) {
this.pitch = pitch;
}
/**
* Gets the pitch of this location
*
* @return Pitch
*/
public float getPitch() {
return pitch;
}
@Override
public boolean equals(Object obj) {
if (obj == null) {
@ -110,15 +154,29 @@ public class Location {
if (Double.doubleToLongBits(this.z) != Double.doubleToLongBits(other.z)) {
return false;
}
if (Float.floatToIntBits(this.pitch) != Float.floatToIntBits(other.pitch)) {
return false;
}
if (Float.floatToIntBits(this.yaw) != Float.floatToIntBits(other.yaw)) {
return false;
}
return true;
}
@Override
public int hashCode() {
int hash = 7;
hash = 23 * hash + (int) (Double.doubleToLongBits(this.x) ^ (Double.doubleToLongBits(this.x) >>> 32));
hash = 23 * hash + (int) (Double.doubleToLongBits(this.y) ^ (Double.doubleToLongBits(this.y) >>> 32));
hash = 23 * hash + (int) (Double.doubleToLongBits(this.z) ^ (Double.doubleToLongBits(this.z) >>> 32));
int hash = 3;
hash = 19 * hash + (this.world != null ? this.world.hashCode() : 0);
hash = 19 * hash + (int) (Double.doubleToLongBits(this.x) ^ (Double.doubleToLongBits(this.x) >>> 32));
hash = 19 * hash + (int) (Double.doubleToLongBits(this.y) ^ (Double.doubleToLongBits(this.y) >>> 32));
hash = 19 * hash + (int) (Double.doubleToLongBits(this.z) ^ (Double.doubleToLongBits(this.z) >>> 32));
hash = 19 * hash + Float.floatToIntBits(this.pitch);
hash = 19 * hash + Float.floatToIntBits(this.yaw);
return hash;
}
@Override
public String toString() {
return "Location{" + "world=" + world + "x=" + x + "y=" + y + "z=" + z + "pitch=" + pitch + "yaw=" + yaw + '}';
}
}

Datei anzeigen

@ -41,4 +41,20 @@ public class PlayerListener implements Listener {
*/
public void onPlayerCommand(PlayerChatEvent event) {
}
/**
* Called when a player attempts to move location in a world
*
* @param event Relevant event details
*/
public void onPlayerMove(PlayerMoveEvent event) {
}
/**
* Called when a player attempts to teleport to a new location in a world
*
* @param event Relevant event details
*/
public void onPlayerTeleport(PlayerMoveEvent event) {
}
}

Datei anzeigen

@ -0,0 +1,85 @@
package org.bukkit.event.player;
import org.bukkit.Location;
import org.bukkit.Player;
import org.bukkit.event.Event;
/**
* Holds information for player movement and teleportation events
*/
public class PlayerMoveEvent extends PlayerEvent {
private boolean cancel = false;
private Location from;
private Location to;
public PlayerMoveEvent(final Event.Type type, final Player player, final Location from, final Location to) {
super(type, player);
this.from = from;
this.to = to;
}
/**
* Gets the cancellation state of this event. A cancelled event will not
* be executed in the server, but will still pass to other plugins
*
* If a move or teleport event is cancelled, the player will be moved or
* teleported back to the Location as defined by getFrom(). This will not
* fire an event
*
* @return true if this event is cancelled
*/
public boolean isCancelled() {
return cancel;
}
/**
* Sets the cancellation state of this event. A cancelled event will not
* be executed in the server, but will still pass to other plugins
*
* If a move or teleport event is cancelled, the player will be moved or
* teleported back to the Location as defined by getFrom(). This will not
* fire an event
*
* @param cancel true if you wish to cancel this event
*/
public void setCancelled(boolean cancel) {
this.cancel = cancel;
}
/**
* Gets the location this player moved from
*
* @return Location the player moved from
*/
public Location getFrom() {
return from;
}
/**
* Sets the location to mark as where the player moved from
*
* @param from New location to mark as the players previous location
*/
public void setFrom(Location from) {
this.from = from;
}
/**
* Gets the location this player moved to
*
* @return Location the player moved to
*/
public Location getTo() {
return to;
}
/**
* Sets the location that this player will move to
*
* @param to New Location this player will move to
*/
public void setTo(Location to) {
this.to = to;
}
}

Datei anzeigen

@ -93,6 +93,12 @@ public final class JavaPluginLoader implements PluginLoader {
case PLAYER_CHAT:
trueListener.onPlayerChat((PlayerChatEvent)event);
break;
case PLAYER_MOVE:
trueListener.onPlayerMove((PlayerMoveEvent)event);
break;
case PLAYER_TELEPORT:
trueListener.onPlayerTeleport((PlayerMoveEvent)event);
break;
}
}
}