mirror of
https://github.com/PaperMC/Paper.git
synced 2025-01-08 19:34:09 +01:00
Implements customiseable PortalTravelAgent and updated PlayerPortalEvent.
By: Rigby <rigby@onarandombox.com>
This commit is contained in:
parent
cd5882a07f
commit
8c6ccaee27
2 changed files with 88 additions and 6 deletions
70
paper-api/src/main/java/org/bukkit/TravelAgent.java
Normal file
70
paper-api/src/main/java/org/bukkit/TravelAgent.java
Normal file
|
@ -0,0 +1,70 @@
|
|||
package org.bukkit;
|
||||
|
||||
public interface TravelAgent {
|
||||
|
||||
/**
|
||||
* Set the Block radius to search in for available portals.
|
||||
*
|
||||
* @param radius The radius in which to search for a portal from the location.
|
||||
* @return
|
||||
*/
|
||||
public TravelAgent setSearchRadius(int radius);
|
||||
|
||||
/**
|
||||
* Gets the search radius value for finding an available portal.
|
||||
*
|
||||
* @return Returns the currently set search radius.
|
||||
*/
|
||||
public int getSearchRadius();
|
||||
|
||||
/**
|
||||
* Sets the maximum radius from the given location to create a portal.
|
||||
*
|
||||
* @param radius The radius in which to create a portal from the location.
|
||||
* @return
|
||||
*/
|
||||
public TravelAgent setCreationRadius(int radius);
|
||||
|
||||
/**
|
||||
* Gets the maximum radius from the given location to create a portal.
|
||||
*
|
||||
* @return Returns the currently set creation radius.
|
||||
*/
|
||||
public int getCreationRadius();
|
||||
|
||||
/**
|
||||
* Returns whether the TravelAgent will attempt to create a destination portal or not.
|
||||
*
|
||||
* @return Return whether the TravelAgent should create a destination portal or not.
|
||||
*/
|
||||
public boolean getCanCreatePortal();
|
||||
|
||||
/**
|
||||
* Sets whether the TravelAgent should attempt to create a destination portal or not.
|
||||
*
|
||||
* @param create Sets whether the TravelAgent should create a destination portal or not.
|
||||
*/
|
||||
public void setCanCreatePortal(boolean create);
|
||||
|
||||
/**
|
||||
* Attempt to find a portal near the given location, if a portal is not found it will attempt to create one.
|
||||
*
|
||||
* @param location The location where the search for a portal should begin.
|
||||
* @return Returns the location of a portal which has been found or returns the location passed to the method if unsuccessful.
|
||||
*/
|
||||
public Location findOrCreate(Location location);
|
||||
|
||||
/**
|
||||
* Attempt to find a portal near the given location.
|
||||
*
|
||||
* @return Returns the location of the nearest portal to the location.
|
||||
*/
|
||||
public Location findPortal(Location location);
|
||||
|
||||
/**
|
||||
* Attempt to create a portal near the given location.
|
||||
*
|
||||
* @return True if a nether portal was successfully created.
|
||||
*/
|
||||
public boolean createPortal(Location location);
|
||||
}
|
|
@ -1,18 +1,22 @@
|
|||
package org.bukkit.event.player;
|
||||
|
||||
|
||||
import org.bukkit.Location;
|
||||
import org.bukkit.TravelAgent;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.block.Block;
|
||||
|
||||
|
||||
/**
|
||||
* Called when a player completes the portaling process by standing in a portal
|
||||
*/
|
||||
public class PlayerPortalEvent extends PlayerTeleportEvent {
|
||||
private boolean useTravelAgent = true;
|
||||
public PlayerPortalEvent(Player player, Location from, Location to) {
|
||||
|
||||
protected boolean useTravelAgent = true;
|
||||
|
||||
protected Player player;
|
||||
protected TravelAgent travelAgent;
|
||||
|
||||
public PlayerPortalEvent(Player player, Location from, Location to, TravelAgent pta) {
|
||||
super(Type.PLAYER_PORTAL, player, from, to);
|
||||
this.travelAgent = pta;
|
||||
}
|
||||
|
||||
public void useTravelAgent(boolean useTravelAgent) {
|
||||
|
@ -22,4 +26,12 @@ public class PlayerPortalEvent extends PlayerTeleportEvent {
|
|||
public boolean useTravelAgent() {
|
||||
return useTravelAgent;
|
||||
}
|
||||
}
|
||||
|
||||
public TravelAgent getPortalTravelAgent() {
|
||||
return this.travelAgent;
|
||||
}
|
||||
|
||||
public void setPortalTravelAgent(TravelAgent travelAgent) {
|
||||
this.travelAgent = travelAgent;
|
||||
}
|
||||
}
|
Loading…
Reference in a new issue