mirror of
https://github.com/plexusorg/Plex-FAWE.git
synced 2024-12-23 01:37:37 +00:00
Added /removenear.
This commit is contained in:
parent
94876194c4
commit
ccab458d9c
@ -481,6 +481,36 @@ public class EditSession {
|
|||||||
return affected;
|
return affected;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Remove nearby blocks of a type.
|
||||||
|
*
|
||||||
|
* @param pos
|
||||||
|
* @param blockType
|
||||||
|
* @param size
|
||||||
|
* @return number of blocks affected
|
||||||
|
*/
|
||||||
|
public int removeNear(Vector pos, int blockType, int size) throws
|
||||||
|
MaxChangedBlocksException {
|
||||||
|
int affected = 0;
|
||||||
|
BaseBlock air = new BaseBlock(0);
|
||||||
|
|
||||||
|
for (int x = -size; x <= size; x++) {
|
||||||
|
for (int y = -size; y <= size; y++) {
|
||||||
|
for (int z = -size; z <= size; z++) {
|
||||||
|
Vector p = pos.add(x, y, z);
|
||||||
|
|
||||||
|
if (getBlock(p).getID() == blockType) {
|
||||||
|
if (setBlock(p, air)) {
|
||||||
|
affected++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return affected;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Sets all the blocks inside a region to a certain block type.
|
* Sets all the blocks inside a region to a certain block type.
|
||||||
*
|
*
|
||||||
|
@ -130,6 +130,7 @@ public class WorldEdit {
|
|||||||
commands.put("//overlay", "[ID] - Overlay the area one layer");
|
commands.put("//overlay", "[ID] - Overlay the area one layer");
|
||||||
commands.put("/removeabove", "<Size> <Height> - Remove blocks above head");
|
commands.put("/removeabove", "<Size> <Height> - Remove blocks above head");
|
||||||
commands.put("/removebelow", "<Size> <Height> - Remove blocks below position");
|
commands.put("/removebelow", "<Size> <Height> - Remove blocks below position");
|
||||||
|
commands.put("/removenear", "<ID> <Size> - Remove blocks near you");
|
||||||
commands.put("//copy", "Copies the currently selected region");
|
commands.put("//copy", "Copies the currently selected region");
|
||||||
commands.put("//cut", "Cuts the currently selected region");
|
commands.put("//cut", "Cuts the currently selected region");
|
||||||
commands.put("//paste", "Pastes the clipboard");
|
commands.put("//paste", "Pastes the clipboard");
|
||||||
@ -492,6 +493,18 @@ public class WorldEdit {
|
|||||||
|
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
|
// Remove blocks near
|
||||||
|
} else if (split[0].equalsIgnoreCase("/removenear")) {
|
||||||
|
checkArgs(split, 2, 2, split[0]);
|
||||||
|
BaseBlock block = getBlock(split[1]);
|
||||||
|
int size = Math.max(1, Integer.parseInt(split[2]));
|
||||||
|
|
||||||
|
int affected = editSession.removeNear(
|
||||||
|
session.getPlacementPosition(player), block.getID(), size);
|
||||||
|
player.print(affected + " block(s) have been removed.");
|
||||||
|
|
||||||
|
return true;
|
||||||
|
|
||||||
// Load .schematic to clipboard
|
// Load .schematic to clipboard
|
||||||
} else if (split[0].equalsIgnoreCase("//load")) {
|
} else if (split[0].equalsIgnoreCase("//load")) {
|
||||||
checkArgs(split, 1, 1, split[0]);
|
checkArgs(split, 1, 1, split[0]);
|
||||||
|
Loading…
Reference in New Issue
Block a user