diff --git a/src/com/sk89q/worldedit/EditSession.java b/src/com/sk89q/worldedit/EditSession.java index 912de5c42..b43f99524 100755 --- a/src/com/sk89q/worldedit/EditSession.java +++ b/src/com/sk89q/worldedit/EditSession.java @@ -2159,4 +2159,13 @@ public class EditSession { public LocalWorld getWorld() { return world; } + + /** + * Get the number of blocks changed, including repeated block changes. + * + * @return + */ + public int getBlockChangeCount() { + return original.size(); + } } diff --git a/src/com/sk89q/worldedit/LocalPlayer.java b/src/com/sk89q/worldedit/LocalPlayer.java index 72fb9c9e0..f603f61da 100644 --- a/src/com/sk89q/worldedit/LocalPlayer.java +++ b/src/com/sk89q/worldedit/LocalPlayer.java @@ -483,6 +483,13 @@ public abstract class LocalPlayer { */ public abstract void printRaw(String msg); + /** + * Print a WorldEdit message. + * + * @param msg + */ + public abstract void printDebug(String msg); + /** * Print a WorldEdit message. * diff --git a/src/com/sk89q/worldedit/WorldEdit.java b/src/com/sk89q/worldedit/WorldEdit.java index 198024878..95bb12c6f 100644 --- a/src/com/sk89q/worldedit/WorldEdit.java +++ b/src/com/sk89q/worldedit/WorldEdit.java @@ -849,7 +849,15 @@ public class WorldEdit { if (config.profile) { long time = System.currentTimeMillis() - start; - player.print((time / 1000.0) + "s elapsed"); + int changed = editSession.getBlockChangeCount(); + if (time > 0) { + double throughput = changed / (time / 1000.0); + player.printDebug((time / 1000.0) + "s elapsed (history: " + + changed + " changed; " + + Math.round(throughput) + " blocks/sec)."); + } else { + player.printDebug((time / 1000.0) + "s elapsed."); + } } flushBlockBag(player, editSession); diff --git a/src/com/sk89q/worldedit/bukkit/BukkitPlayer.java b/src/com/sk89q/worldedit/bukkit/BukkitPlayer.java index 22b5d57f1..74fb7af90 100644 --- a/src/com/sk89q/worldedit/bukkit/BukkitPlayer.java +++ b/src/com/sk89q/worldedit/bukkit/BukkitPlayer.java @@ -79,6 +79,11 @@ public class BukkitPlayer extends LocalPlayer { player.sendMessage("\u00A7d" + msg); } + @Override + public void printDebug(String msg) { + player.sendMessage("\u00A77" + msg); + } + @Override public void printError(String msg) { player.sendMessage("\u00A7c" + msg); @@ -109,5 +114,4 @@ public class BukkitPlayer extends LocalPlayer { public LocalWorld getWorld() { return new BukkitWorld(player.getWorld()); } - }