diff --git a/core/src/main/java/com/boydti/fawe/command/Reload.java b/core/src/main/java/com/boydti/fawe/command/Reload.java index 5ca4cb4b..4bf7df55 100644 --- a/core/src/main/java/com/boydti/fawe/command/Reload.java +++ b/core/src/main/java/com/boydti/fawe/command/Reload.java @@ -46,7 +46,9 @@ public class Reload extends FaweCommand { Fawe.debug(elem); } } - player.sendMessage("&cSee console."); + if (player != null) { + player.sendMessage("&cSee console."); + } return true; } case "debugpaste": diff --git a/core/src/main/java/com/boydti/fawe/object/changeset/CPUOptimizedChangeSet.java b/core/src/main/java/com/boydti/fawe/object/changeset/CPUOptimizedChangeSet.java index a3c7e07d..d4b96085 100644 --- a/core/src/main/java/com/boydti/fawe/object/changeset/CPUOptimizedChangeSet.java +++ b/core/src/main/java/com/boydti/fawe/object/changeset/CPUOptimizedChangeSet.java @@ -87,6 +87,16 @@ public class CPUOptimizedChangeSet extends FaweChangeSet { return changes.iterator(); } + @Override + public boolean isEmpty() { + if (changes.size() == 0) { + flush(); + return changes.size() == 0; + } else { + return false; + } + } + @Override public int size() { return changes.size() * 65536; // num chunks * 65536 (guess of 65536 changes per chunk) diff --git a/core/src/main/java/com/boydti/fawe/object/changeset/FaweChangeSet.java b/core/src/main/java/com/boydti/fawe/object/changeset/FaweChangeSet.java index 24c9b64c..0b14337a 100644 --- a/core/src/main/java/com/boydti/fawe/object/changeset/FaweChangeSet.java +++ b/core/src/main/java/com/boydti/fawe/object/changeset/FaweChangeSet.java @@ -170,6 +170,10 @@ public abstract class FaweChangeSet implements ChangeSet { } } + public boolean isEmpty() { + return size() == 0; + } + public void add(int x, int y, int z, int combinedFrom, BaseBlock to) { try { if (to.hasNbtData()) { diff --git a/core/src/main/java/com/boydti/fawe/object/changeset/FaweStreamChangeSet.java b/core/src/main/java/com/boydti/fawe/object/changeset/FaweStreamChangeSet.java index d8b00c4f..903cd72a 100644 --- a/core/src/main/java/com/boydti/fawe/object/changeset/FaweStreamChangeSet.java +++ b/core/src/main/java/com/boydti/fawe/object/changeset/FaweStreamChangeSet.java @@ -221,6 +221,15 @@ public abstract class FaweStreamChangeSet extends FaweChangeSet { return MainUtil.getCompressedOS(os, compression); } + @Override + public boolean isEmpty() { + if (blockSize > 0) { + return false; + } + flush(); + return blockSize == 0; + } + @Override public int size() { // Flush so we can accurately get the size diff --git a/core/src/main/java/com/sk89q/worldedit/LocalSession.java b/core/src/main/java/com/sk89q/worldedit/LocalSession.java index c11ddddd..12689f93 100644 --- a/core/src/main/java/com/sk89q/worldedit/LocalSession.java +++ b/core/src/main/java/com/sk89q/worldedit/LocalSession.java @@ -449,7 +449,7 @@ public class LocalSession { return; } FaweChangeSet changeSet = (FaweChangeSet) editSession.getChangeSet(); - if (changeSet.size() == 0) { + if (changeSet.isEmpty()) { return; } FawePlayer fp = editSession.getPlayer(); diff --git a/favs/src/main/java/com/thevoxelbox/voxelsniper/Sniper.java b/favs/src/main/java/com/thevoxelbox/voxelsniper/Sniper.java index 2b65cc1e..48c90497 100644 --- a/favs/src/main/java/com/thevoxelbox/voxelsniper/Sniper.java +++ b/favs/src/main/java/com/thevoxelbox/voxelsniper/Sniper.java @@ -300,7 +300,7 @@ public class Sniper { if (clickedBlock != null) { targetBlock = clickedBlock; lastBlock = clickedBlock.getRelative(clickedFace); - if (lastBlock == null) { + if (lastBlock == null || targetBlock == null) { getPlayer().sendMessage(ChatColor.RED + "Snipe target block must be visible."); return true; }