Last active
December 6, 2016 22:08
-
-
Save Phoenix616/b3a78b13f1f5efb1d6c89fc299ee28f1 to your computer and use it in GitHub Desktop.
WorldEdit craftscript to search through the NBT of blocks in your selection. Supports regex.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
importPackage(Packages.com.sk89q.worldedit); | |
importPackage(Packages.com.sk89q.worldedit.blocks); | |
function main() { | |
context.checkArgs(1, -1, "<regex>"); | |
var regexString = argv[1]; | |
for (var i = 2; i < argv.length; i++) { | |
regexString += " " + argv[i]; | |
} | |
var regex = new RegExp(regexString); | |
regex.ignoreCase = true; | |
regex.multiline = true; | |
var blocks = context.remember(); | |
var session = context.getSession(); | |
var target = WorldEdit.getInstance().getServer().matchPlayer(player).getPlayer(); | |
var region = context.getSession().getRegion(); | |
if (region == 0) { | |
player.printError("Please select a region!"); | |
return; | |
} | |
player.print("Searching blocks in selection for §f" + regexString); | |
var amount = 0; | |
for (var x = 0; x < region.getWidth(); x++) { | |
for (var z = 0; z < region.getLength(); z++) { | |
for (var y = 0; y < region.getHeight(); y++) { | |
var loc = region.getMinimumPoint().add(x,y,z); | |
var b = blocks.getBlock(loc); | |
if (b.hasNbtData() && regex.test(b.getNbtData().toString())) { | |
player.printDebug("Found " + b.getId() + " at " + loc); | |
amount++; | |
} | |
} | |
} | |
} | |
player.print("Blocks found: §f" + amount); | |
return; | |
} | |
main(); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment