Add constraints to //asc and //desc

This commit is contained in:
dordsor21 2022-04-24 00:11:57 +01:00
parent f2df511263
commit 82ba96bf71
No known key found for this signature in database
GPG Key ID: 1E53E88969FFCF0B

View File

@ -29,11 +29,13 @@ import com.sk89q.worldedit.command.util.Logging;
import com.sk89q.worldedit.entity.Player;
import com.sk89q.worldedit.util.Location;
import com.sk89q.worldedit.util.formatting.text.TextComponent;
import com.sk89q.worldedit.world.World;
import org.enginehub.piston.annotation.Command;
import org.enginehub.piston.annotation.CommandContainer;
import org.enginehub.piston.annotation.param.Arg;
import org.enginehub.piston.annotation.param.Switch;
import static com.google.common.base.Preconditions.checkArgument;
import static com.google.common.base.Preconditions.checkNotNull;
import static com.sk89q.worldedit.command.util.Logging.LogMode.POSITION;
@ -77,6 +79,8 @@ public class NavigationCommands {
@Arg(desc = "# of levels to ascend", def = "1")
int levels
) throws WorldEditException {
World world = player.getWorld();
checkArgument(levels >= 1 && levels <= (world.getMaxY() - world.getMinY()), "1 <= levels <= world height");
int ascentLevels = 0;
while (player.ascendLevel()) {
++ascentLevels;
@ -102,6 +106,8 @@ public class NavigationCommands {
@Arg(desc = "# of levels to descend", def = "1")
int levels
) throws WorldEditException {
World world = player.getWorld();
checkArgument(levels >= 1 && levels <= (world.getMaxY() - world.getMinY()), "1 <= levels <= world height");
int descentLevels = 0;
while (player.descendLevel()) {
++descentLevels;