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
@ -204,14 +204,14 @@ public abstract class WorldEditPlayer {
|
||||
* @return true if a spot was found
|
||||
*/
|
||||
public boolean descendLevel() {
|
||||
Vector pos = getPosition();
|
||||
Vector pos = getBlockIn();
|
||||
int x = pos.getBlockX();
|
||||
int y = pos.getBlockY() - 1;
|
||||
int z = pos.getBlockZ();
|
||||
|
||||
byte free = 0;
|
||||
|
||||
while (y >= 0) {
|
||||
while (y >= 1) {
|
||||
if (server.getBlockType(new Vector(x, y, z)) == 0) {
|
||||
free++;
|
||||
} else {
|
||||
@ -219,8 +219,20 @@ public abstract class WorldEditPlayer {
|
||||
}
|
||||
|
||||
if (free == 2) {
|
||||
setPosition(new Vector(x + 0.5, y, z + 0.5));
|
||||
return true;
|
||||
// So we've found a spot, but we have to drop the player
|
||||
// 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--;
|
||||
|
Loading…
Reference in New Issue
Block a user