From 7926b5a3f60b4a2d6a61ad022fb091d5c04a4ff6 Mon Sep 17 00:00:00 2001 From: Jesse Boyd Date: Mon, 27 Mar 2017 08:13:14 +1100 Subject: [PATCH] Per player schematic listing --- .../fawe/jnbt/anvil/HeightMapMCAGenerator.java | 12 ++++++++++-- .../worldedit/command/SchematicCommands.java | 18 +++++++++++------- 2 files changed, 21 insertions(+), 9 deletions(-) diff --git a/core/src/main/java/com/boydti/fawe/jnbt/anvil/HeightMapMCAGenerator.java b/core/src/main/java/com/boydti/fawe/jnbt/anvil/HeightMapMCAGenerator.java index 25cd2a55..1bd3afca 100644 --- a/core/src/main/java/com/boydti/fawe/jnbt/anvil/HeightMapMCAGenerator.java +++ b/core/src/main/java/com/boydti/fawe/jnbt/anvil/HeightMapMCAGenerator.java @@ -48,12 +48,17 @@ public class HeightMapMCAGenerator implements Extent { private boolean modifiedMain = false; public HeightMapMCAGenerator(BufferedImage img, File regionFolder) { + this(img.getWidth(), img.getHeight(), regionFolder); + setHeight(img); + } + + public HeightMapMCAGenerator(int width, int length, File regionFolder) { if (!regionFolder.exists()) { regionFolder.mkdirs(); } this.folder = regionFolder; - this.width = img.getWidth(); - this.length = img.getHeight(); + this.width = width; + this.length = length; this.area = width * length; heights = new byte[area]; biomes = new byte[area]; @@ -63,6 +68,9 @@ public class HeightMapMCAGenerator implements Extent { char grass = (char) FaweCache.getCombined(2, 0); Arrays.fill(main, stone); Arrays.fill(floor, grass); + } + + public void setHeight(BufferedImage img) { int index = 0; for (int z = 0; z < length; z++) { for (int x = 0; x < width; x++, index++){ diff --git a/core/src/main/java/com/sk89q/worldedit/command/SchematicCommands.java b/core/src/main/java/com/sk89q/worldedit/command/SchematicCommands.java index f2c1d812..71daa7a6 100644 --- a/core/src/main/java/com/sk89q/worldedit/command/SchematicCommands.java +++ b/core/src/main/java/com/sk89q/worldedit/command/SchematicCommands.java @@ -308,14 +308,18 @@ public class SchematicCommands { ) @CommandPermissions("worldedit.schematic.list") public void list(Actor actor, CommandContext args, @Switch('p') @Optional("1") int page) throws WorldEditException { - if (Settings.IMP.PATHS.PER_PLAYER_SCHEMATICS) { - - } - File dir = worldEdit.getWorkingDirectoryFile(worldEdit.getConfiguration().saveDir); - List fileList = allFiles(dir, true); - - if (fileList == null || fileList.isEmpty()) { + List fileList = new ArrayList<>(); + if (Settings.IMP.PATHS.PER_PLAYER_SCHEMATICS) { + File playerDir = new File(dir, actor.getUniqueId().toString()); + if (playerDir.exists()) { + fileList.addAll(allFiles(playerDir, true)); + } + fileList.addAll(allFiles(dir, false)); + } else { + fileList.addAll(allFiles(dir, true)); + } + if (fileList.isEmpty()) { BBC.SCHEMATIC_NONE.send(actor); return; }