Teleporter may now throw exceptions
This commit is contained in:
parent
693705fc10
commit
f3530d521b
@ -222,6 +222,7 @@ public class PS implements Cloneable
|
|||||||
protected synchronized Location innerLocation(Double x, Double y, Double z)
|
protected synchronized Location innerLocation(Double x, Double y, Double z)
|
||||||
{
|
{
|
||||||
World world = this.getWorld();
|
World world = this.getWorld();
|
||||||
|
if (world == null) return null;
|
||||||
|
|
||||||
if (x == null) return null;
|
if (x == null) return null;
|
||||||
if (y == null) return null;
|
if (y == null) return null;
|
||||||
@ -477,7 +478,7 @@ public class PS implements Cloneable
|
|||||||
// WRITERS
|
// WRITERS
|
||||||
//----------------------------------------------//
|
//----------------------------------------------//
|
||||||
|
|
||||||
public synchronized void write(Entity entity)
|
public synchronized void write(Entity entity) throws PSTeleporterException
|
||||||
{
|
{
|
||||||
teleporter.teleport(entity, this);
|
teleporter.teleport(entity, this);
|
||||||
}
|
}
|
||||||
|
@ -4,5 +4,9 @@ import org.bukkit.entity.Entity;
|
|||||||
|
|
||||||
public interface PSTeleporter
|
public interface PSTeleporter
|
||||||
{
|
{
|
||||||
public void teleport(Entity entity, PS ps);
|
/**
|
||||||
|
* @param entity The entity to be teleported
|
||||||
|
* @param ps The target PhysicalState
|
||||||
|
*/
|
||||||
|
public void teleport(Entity entity, PS ps) throws PSTeleporterException;
|
||||||
}
|
}
|
||||||
|
@ -4,16 +4,22 @@ import org.bukkit.Location;
|
|||||||
import org.bukkit.entity.Entity;
|
import org.bukkit.entity.Entity;
|
||||||
import org.bukkit.util.Vector;
|
import org.bukkit.util.Vector;
|
||||||
|
|
||||||
|
import com.massivecraft.mcore5.util.Txt;
|
||||||
|
|
||||||
public class PSTeleporterDefault implements PSTeleporter
|
public class PSTeleporterDefault implements PSTeleporter
|
||||||
{
|
{
|
||||||
@Override
|
@Override
|
||||||
public void teleport(Entity entity, PS ps)
|
public void teleport(Entity entity, PS ps) throws PSTeleporterException
|
||||||
{
|
{
|
||||||
Location location = ps.calcLocation();
|
Location location = ps.calcLocation();
|
||||||
if (location != null) entity.teleport(location);
|
if (location == null) throw new PSTeleporterException(Txt.parse("<b>Could not calculate the location"));
|
||||||
|
|
||||||
|
entity.teleport(location);
|
||||||
|
|
||||||
Vector velocity = ps.getVelocity();
|
Vector velocity = ps.getVelocity();
|
||||||
if (velocity != null) entity.setVelocity(velocity);
|
if (velocity == null) return;
|
||||||
|
|
||||||
|
entity.setVelocity(velocity);
|
||||||
}
|
}
|
||||||
|
|
||||||
// -------------------------------------------- //
|
// -------------------------------------------- //
|
||||||
|
31
src/com/massivecraft/mcore5/PSTeleporterException.java
Normal file
31
src/com/massivecraft/mcore5/PSTeleporterException.java
Normal file
@ -0,0 +1,31 @@
|
|||||||
|
package com.massivecraft.mcore5;
|
||||||
|
|
||||||
|
public class PSTeleporterException extends Exception
|
||||||
|
{
|
||||||
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
|
public PSTeleporterException()
|
||||||
|
{
|
||||||
|
super();
|
||||||
|
}
|
||||||
|
|
||||||
|
public PSTeleporterException(String message)
|
||||||
|
{
|
||||||
|
super(message);
|
||||||
|
}
|
||||||
|
|
||||||
|
public PSTeleporterException(String message, Throwable cause)
|
||||||
|
{
|
||||||
|
super(message, cause);
|
||||||
|
}
|
||||||
|
|
||||||
|
public PSTeleporterException(Throwable cause)
|
||||||
|
{
|
||||||
|
super(cause);
|
||||||
|
}
|
||||||
|
|
||||||
|
protected PSTeleporterException(String message, Throwable cause, boolean enableSuppression, boolean writableStackTrace)
|
||||||
|
{
|
||||||
|
super(message, cause, enableSuppression, writableStackTrace);
|
||||||
|
}
|
||||||
|
}
|
@ -20,14 +20,11 @@ public class ReqIsPlayer implements IReq
|
|||||||
return Lang.commandSenderMustBePlayer;
|
return Lang.commandSenderMustBePlayer;
|
||||||
}
|
}
|
||||||
|
|
||||||
protected static ReqIsPlayer instance= new ReqIsPlayer();
|
// -------------------------------------------- //
|
||||||
public static ReqIsPlayer getInstance()
|
// INSTANCE
|
||||||
{
|
// -------------------------------------------- //
|
||||||
return instance;
|
|
||||||
}
|
public static ReqIsPlayer i = new ReqIsPlayer();
|
||||||
|
public static ReqIsPlayer get() { return i; }
|
||||||
|
|
||||||
public static ReqIsPlayer get()
|
|
||||||
{
|
|
||||||
return instance;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user