138 lines
3.1 KiB
Java
138 lines
3.1 KiB
Java
/******************************************************************************
|
|
* Multiverse 2 Copyright (c) the Multiverse Team 2011. *
|
|
* Multiverse 2 is licensed under the BSD License. *
|
|
* For more information please check the README.md file included *
|
|
* with this project. *
|
|
******************************************************************************/
|
|
|
|
package com.onarandombox.MultiverseCore.destination;
|
|
|
|
import com.onarandombox.MultiverseCore.api.MVDestination;
|
|
import org.bukkit.Location;
|
|
import org.bukkit.entity.Entity;
|
|
import org.bukkit.entity.Player;
|
|
import org.bukkit.plugin.java.JavaPlugin;
|
|
import org.bukkit.util.Vector;
|
|
|
|
/**
|
|
* A player-{@link MVDestination}.
|
|
*/
|
|
public class PlayerDestination implements MVDestination {
|
|
private String player;
|
|
private boolean isValid;
|
|
private JavaPlugin plugin;
|
|
|
|
/**
|
|
* {@inheritDoc}
|
|
*/
|
|
@Override
|
|
public String getIdentifier() {
|
|
return "pl";
|
|
}
|
|
|
|
/**
|
|
* {@inheritDoc}
|
|
*/
|
|
@Override
|
|
public boolean isThisType(JavaPlugin plugin, String destination) {
|
|
String[] items = destination.split(":");
|
|
if (items.length != 2) {
|
|
return false;
|
|
}
|
|
if (!items[0].equalsIgnoreCase("pl")) {
|
|
return false;
|
|
}
|
|
return true;
|
|
}
|
|
|
|
/**
|
|
* {@inheritDoc}
|
|
*/
|
|
@Override
|
|
public Location getLocation(Entity e) {
|
|
Player p = plugin.getServer().getPlayerExact(this.player);
|
|
Player plLoc = null;
|
|
if (e instanceof Player) {
|
|
plLoc = (Player) e;
|
|
} else if (e.getPassenger() instanceof Player) {
|
|
plLoc = (Player) e.getPassenger();
|
|
}
|
|
|
|
if (p != null && plLoc != null) {
|
|
return p.getLocation();
|
|
}
|
|
return null;
|
|
}
|
|
|
|
/**
|
|
* {@inheritDoc}
|
|
*/
|
|
@Override
|
|
public boolean isValid() {
|
|
return this.isValid;
|
|
}
|
|
|
|
/**
|
|
* {@inheritDoc}
|
|
*/
|
|
@Override
|
|
public void setDestination(JavaPlugin plugin, String destination) {
|
|
String[] items = destination.split(":");
|
|
if (items.length != 2) {
|
|
this.isValid = false;
|
|
}
|
|
if (!items[0].equalsIgnoreCase("pl")) {
|
|
this.isValid = false;
|
|
}
|
|
this.isValid = true;
|
|
this.player = items[1];
|
|
this.plugin = plugin;
|
|
}
|
|
|
|
/**
|
|
* {@inheritDoc}
|
|
*/
|
|
@Override
|
|
public String getType() {
|
|
return "Player";
|
|
}
|
|
|
|
/**
|
|
* {@inheritDoc}
|
|
*/
|
|
@Override
|
|
public String getName() {
|
|
return this.player;
|
|
}
|
|
|
|
@Override
|
|
public String toString() {
|
|
return "pl:" + this.player;
|
|
}
|
|
|
|
/**
|
|
* {@inheritDoc}
|
|
*/
|
|
@Override
|
|
public String getRequiredPermission() {
|
|
return "";
|
|
}
|
|
|
|
/**
|
|
* {@inheritDoc}
|
|
*/
|
|
@Override
|
|
public Vector getVelocity() {
|
|
return new Vector(0, 0, 0);
|
|
}
|
|
|
|
/**
|
|
* {@inheritDoc}
|
|
*/
|
|
@Override
|
|
public boolean useSafeTeleporter() {
|
|
return true;
|
|
}
|
|
|
|
}
|