mirror of
https://github.com/plexusorg/Plex-FAWE.git
synced 2024-12-23 01:37:37 +00:00
Changed /descend to be a little more accurate, to not drop players from a high distance, and to not drop players into the void.
This commit is contained in:
parent
ad0bb92c8f
commit
3a940ba936
@ -36,7 +36,7 @@ public abstract class WorldEditPlayer {
|
|||||||
public WorldEditPlayer() {
|
public WorldEditPlayer() {
|
||||||
server = WorldEdit.getServer();
|
server = WorldEdit.getServer();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get the name of the player.
|
* Get the name of the player.
|
||||||
*
|
*
|
||||||
@ -51,13 +51,13 @@ public abstract class WorldEditPlayer {
|
|||||||
public abstract Vector getBlockOn();
|
public abstract Vector getBlockOn();
|
||||||
/**
|
/**
|
||||||
* Get the point of the block that is being stood in.
|
* Get the point of the block that is being stood in.
|
||||||
*
|
*
|
||||||
* @return point
|
* @return point
|
||||||
*/
|
*/
|
||||||
public abstract Vector getBlockIn();
|
public abstract Vector getBlockIn();
|
||||||
/**
|
/**
|
||||||
* Get the player's position.
|
* Get the player's position.
|
||||||
*
|
*
|
||||||
* @return point
|
* @return point
|
||||||
*/
|
*/
|
||||||
public abstract Vector getPosition();
|
public abstract Vector getPosition();
|
||||||
@ -75,7 +75,7 @@ public abstract class WorldEditPlayer {
|
|||||||
public abstract double getYaw();
|
public abstract double getYaw();
|
||||||
/**
|
/**
|
||||||
* Get the ID of the item that the player is holding.
|
* Get the ID of the item that the player is holding.
|
||||||
*
|
*
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
public abstract int getItemInHand();
|
public abstract int getItemInHand();
|
||||||
@ -93,7 +93,7 @@ public abstract class WorldEditPlayer {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Get the player's cardinal direction (N, W, NW, etc.).
|
* Get the player's cardinal direction (N, W, NW, etc.).
|
||||||
*
|
*
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
public abstract String getCardinalDirection();
|
public abstract String getCardinalDirection();
|
||||||
@ -204,14 +204,14 @@ public abstract class WorldEditPlayer {
|
|||||||
* @return true if a spot was found
|
* @return true if a spot was found
|
||||||
*/
|
*/
|
||||||
public boolean descendLevel() {
|
public boolean descendLevel() {
|
||||||
Vector pos = getPosition();
|
Vector pos = getBlockIn();
|
||||||
int x = pos.getBlockX();
|
int x = pos.getBlockX();
|
||||||
int y = pos.getBlockY() - 1;
|
int y = pos.getBlockY() - 1;
|
||||||
int z = pos.getBlockZ();
|
int z = pos.getBlockZ();
|
||||||
|
|
||||||
byte free = 0;
|
byte free = 0;
|
||||||
|
|
||||||
while (y >= 0) {
|
while (y >= 1) {
|
||||||
if (server.getBlockType(new Vector(x, y, z)) == 0) {
|
if (server.getBlockType(new Vector(x, y, z)) == 0) {
|
||||||
free++;
|
free++;
|
||||||
} else {
|
} else {
|
||||||
@ -219,8 +219,20 @@ public abstract class WorldEditPlayer {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (free == 2) {
|
if (free == 2) {
|
||||||
setPosition(new Vector(x + 0.5, y, z + 0.5));
|
// So we've found a spot, but we have to drop the player
|
||||||
return true;
|
// lightly and also check to see if there's something to
|
||||||
|
// stand upon
|
||||||
|
while (y >= 0) {
|
||||||
|
if (server.getBlockType(new Vector(x, y, z)) != 0) {
|
||||||
|
// Found a block!
|
||||||
|
setPosition(new Vector(x + 0.5, y + 1, z + 0.5));
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
y--;
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
y--;
|
y--;
|
||||||
@ -231,7 +243,7 @@ public abstract class WorldEditPlayer {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Gives the player an item.
|
* Gives the player an item.
|
||||||
*
|
*
|
||||||
* @param type
|
* @param type
|
||||||
* @param amt
|
* @param amt
|
||||||
*/
|
*/
|
||||||
@ -239,7 +251,7 @@ public abstract class WorldEditPlayer {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns true if equal.
|
* Returns true if equal.
|
||||||
*
|
*
|
||||||
* @param other
|
* @param other
|
||||||
* @return whether the other object is equivalent
|
* @return whether the other object is equivalent
|
||||||
*/
|
*/
|
||||||
|
Loading…
Reference in New Issue
Block a user