From cfb19eba9b5167ec1267791e5d8e8fe358acdc26 Mon Sep 17 00:00:00 2001 From: TomyLobo Date: Tue, 20 Mar 2012 18:18:02 +0100 Subject: [PATCH] Made //undo and //redo disregard global masks. --- .../worldedit/commands/HistoryCommands.java | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/sk89q/worldedit/commands/HistoryCommands.java b/src/main/java/com/sk89q/worldedit/commands/HistoryCommands.java index 05f8de988..d9206efc5 100644 --- a/src/main/java/com/sk89q/worldedit/commands/HistoryCommands.java +++ b/src/main/java/com/sk89q/worldedit/commands/HistoryCommands.java @@ -23,6 +23,7 @@ import com.sk89q.minecraft.util.commands.Command; import com.sk89q.minecraft.util.commands.CommandContext; import com.sk89q.minecraft.util.commands.CommandPermissions; import com.sk89q.worldedit.*; +import com.sk89q.worldedit.masks.Mask; /** * History little commands. @@ -46,8 +47,12 @@ public class HistoryCommands { @CommandPermissions("worldedit.history.undo") public void undo(CommandContext args, LocalSession session, LocalPlayer player, EditSession editSession) throws WorldEditException { - + int times = Math.max(1, args.getInteger(0, 1)); + + Mask mask = session.getMask(); + session.setMask(null); + for (int i = 0; i < times; ++i) { EditSession undone; if (args.argsLength() < 2) { @@ -61,6 +66,7 @@ public class HistoryCommands { } undone = sess.undo(session.getBlockBag(player)); } + if (undone != null) { player.print("Undo successful."); we.flushBlockBag(player, undone); @@ -69,6 +75,8 @@ public class HistoryCommands { break; } } + + session.setMask(mask); } @Command( @@ -81,9 +89,12 @@ public class HistoryCommands { @CommandPermissions("worldedit.history.redo") public void redo(CommandContext args, LocalSession session, LocalPlayer player, EditSession editSession) throws WorldEditException { - + int times = Math.max(1, args.getInteger(0, 1)); + Mask mask = session.getMask(); + session.setMask(null); + for (int i = 0; i < times; ++i) { EditSession redone; if (args.argsLength() < 2) { @@ -97,6 +108,7 @@ public class HistoryCommands { } redone = sess.redo(session.getBlockBag(player)); } + if (redone != null) { player.print("Redo successful."); we.flushBlockBag(player, redone); @@ -104,6 +116,8 @@ public class HistoryCommands { player.printError("Nothing left to redo."); } } + + session.setMask(mask); } @Command(