From 4a8bba7a54741ef5d36b3a9793dca09e9dc0c917 Mon Sep 17 00:00:00 2001 From: Jesse Boyd Date: Sat, 24 Dec 2016 15:56:53 +1100 Subject: [PATCH] Some command fixes Fix EditSession being created for commands that don't need it Fix error from schematic list (when there are files in sub directories) Fix dispatcher redundantly checking a huge number of permissions --- .../worldedit/command/BrushCommands.java | 12 ++--- .../worldedit/command/ChunkCommands.java | 6 +-- .../worldedit/command/ClipboardCommands.java | 4 +- .../worldedit/command/GeneralCommands.java | 8 +-- .../worldedit/command/HistoryCommands.java | 6 +-- .../worldedit/command/NavigationCommands.java | 9 ++-- .../worldedit/command/SchematicCommands.java | 13 +++-- .../worldedit/command/ScriptingCommands.java | 5 +- .../worldedit/command/SelectionCommands.java | 52 +++++++------------ .../worldedit/command/SnapshotCommands.java | 10 ++-- .../command/SuperPickaxeCommands.java | 6 +-- .../sk89q/worldedit/command/ToolCommands.java | 18 +++---- .../worldedit/command/ToolUtilCommands.java | 10 ++-- .../worldedit/command/WorldEditCommands.java | 4 +- .../util/command/SimpleDispatcher.java | 9 +--- 15 files changed, 79 insertions(+), 93 deletions(-) diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/command/BrushCommands.java b/worldedit-core/src/main/java/com/sk89q/worldedit/command/BrushCommands.java index 67efbd716..24bf84750 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/command/BrushCommands.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/command/BrushCommands.java @@ -80,7 +80,7 @@ public BrushCommands(WorldEdit worldEdit) { max = 2 ) @CommandPermissions("worldedit.brush.sphere") - public void sphereBrush(Player player, LocalSession session, EditSession editSession, Pattern fill, + public void sphereBrush(Player player, LocalSession session, Pattern fill, @Optional("2") double radius, @Switch('h') boolean hollow) throws WorldEditException { worldEdit.checkMaxBrushRadius(radius); @@ -109,7 +109,7 @@ public void sphereBrush(Player player, LocalSession session, EditSession editSes max = 3 ) @CommandPermissions("worldedit.brush.cylinder") - public void cylinderBrush(Player player, LocalSession session, EditSession editSession, Pattern fill, + public void cylinderBrush(Player player, LocalSession session, Pattern fill, @Optional("2") double radius, @Optional("1") int height, @Switch('h') boolean hollow) throws WorldEditException { worldEdit.checkMaxBrushRadius(radius); worldEdit.checkMaxBrushRadius(height); @@ -139,7 +139,7 @@ public void cylinderBrush(Player player, LocalSession session, EditSession editS "stood relative to the copied area when you copied it." ) @CommandPermissions("worldedit.brush.clipboard") - public void clipboardBrush(Player player, LocalSession session, EditSession editSession, @Switch('a') boolean ignoreAir, @Switch('p') boolean usingOrigin) throws WorldEditException { + public void clipboardBrush(Player player, LocalSession session, @Switch('a') boolean ignoreAir, @Switch('p') boolean usingOrigin) throws WorldEditException { ClipboardHolder holder = session.getClipboard(); Clipboard clipboard = holder.getClipboard(); @@ -167,7 +167,7 @@ public void clipboardBrush(Player player, LocalSession session, EditSession edit max = 2 ) @CommandPermissions("worldedit.brush.smooth") - public void smoothBrush(Player player, LocalSession session, EditSession editSession, + public void smoothBrush(Player player, LocalSession session, @Optional("2") double radius, @Optional("4") int iterations, @Switch('n') boolean naturalBlocksOnly) throws WorldEditException { @@ -215,7 +215,7 @@ public void extinguishBrush(Player player, LocalSession session, EditSession edi max = 1 ) @CommandPermissions("worldedit.brush.gravity") - public void gravityBrush(Player player, LocalSession session, EditSession editSession, @Optional("5") double radius, @Switch('h') boolean fromMaxY) throws WorldEditException { + public void gravityBrush(Player player, LocalSession session, @Optional("5") double radius, @Switch('h') boolean fromMaxY) throws WorldEditException { worldEdit.checkMaxBrushRadius(radius); BrushTool tool = session.getBrushTool(player.getItemInHand()); @@ -246,7 +246,7 @@ public void gravityBrush(Player player, LocalSession session, EditSession editSe max = 1 ) @CommandPermissions("worldedit.brush.butcher") - public void butcherBrush(Player player, LocalSession session, EditSession editSession, CommandContext args) throws WorldEditException { + public void butcherBrush(Player player, LocalSession session, CommandContext args) throws WorldEditException { LocalConfiguration config = worldEdit.getConfiguration(); double radius = args.argsLength() > 0 ? args.getDouble(0) : 5; diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/command/ChunkCommands.java b/worldedit-core/src/main/java/com/sk89q/worldedit/command/ChunkCommands.java index 0330c58bc..7d3373e75 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/command/ChunkCommands.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/command/ChunkCommands.java @@ -57,7 +57,7 @@ public ChunkCommands(WorldEdit worldEdit) { max = 0 ) @CommandPermissions("worldedit.chunkinfo") - public void chunkInfo(Player player, LocalSession session, EditSession editSession, CommandContext args) throws WorldEditException { + public void chunkInfo(Player player, LocalSession session, CommandContext args) throws WorldEditException { Vector pos = player.getBlockIn(); int chunkX = (int) Math.floor(pos.getBlockX() / 16.0); int chunkZ = (int) Math.floor(pos.getBlockZ() / 16.0); @@ -81,7 +81,7 @@ public void chunkInfo(Player player, LocalSession session, EditSession editSessi max = 0 ) @CommandPermissions("worldedit.listchunks") - public void listChunks(Player player, LocalSession session, EditSession editSession, CommandContext args) throws WorldEditException { + public void listChunks(Player player, LocalSession session, CommandContext args) throws WorldEditException { Set chunks = session.getSelection(player.getWorld()).getChunks(); for (Vector2D chunk : chunks) { @@ -98,7 +98,7 @@ public void listChunks(Player player, LocalSession session, EditSession editSess ) @CommandPermissions("worldedit.delchunks") @Logging(REGION) - public void deleteChunks(Player player, LocalSession session, EditSession editSession, CommandContext args) throws WorldEditException { + public void deleteChunks(Player player, LocalSession session, CommandContext args) throws WorldEditException { player.print("Note that this command does not yet support the mcregion format."); LocalConfiguration config = worldEdit.getConfiguration(); diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/command/ClipboardCommands.java b/worldedit-core/src/main/java/com/sk89q/worldedit/command/ClipboardCommands.java index 9d7cb265a..2e8c23cae 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/command/ClipboardCommands.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/command/ClipboardCommands.java @@ -207,7 +207,7 @@ public void rotate(Player player, LocalSession session, Double yRotate, @Optiona max = 1 ) @CommandPermissions("worldedit.clipboard.flip") - public void flip(Player player, LocalSession session, EditSession editSession, + public void flip(Player player, LocalSession session, @Optional(Direction.AIM) @Direction Vector direction) throws WorldEditException { ClipboardHolder holder = session.getClipboard(); Clipboard clipboard = holder.getClipboard(); @@ -251,7 +251,7 @@ public void save(Actor actor) { max = 0 ) @CommandPermissions("worldedit.clipboard.clear") - public void clearClipboard(Player player, LocalSession session, EditSession editSession) throws WorldEditException { + public void clearClipboard(Player player, LocalSession session) throws WorldEditException { session.setClipboard(null); player.print("Clipboard cleared."); } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/command/GeneralCommands.java b/worldedit-core/src/main/java/com/sk89q/worldedit/command/GeneralCommands.java index 4d8aa6f8f..5979afe52 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/command/GeneralCommands.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/command/GeneralCommands.java @@ -56,7 +56,7 @@ public GeneralCommands(WorldEdit worldEdit) { max = 1 ) @CommandPermissions("worldedit.limit") - public void limit(Player player, LocalSession session, EditSession editSession, CommandContext args) throws WorldEditException { + public void limit(Player player, LocalSession session, CommandContext args) throws WorldEditException { LocalConfiguration config = worldEdit.getConfiguration(); boolean mayDisable = player.hasPermission("worldedit.limit.unrestricted"); @@ -86,7 +86,7 @@ public void limit(Player player, LocalSession session, EditSession editSession, max = 1 ) @CommandPermissions("worldedit.fast") - public void fast(Player player, LocalSession session, EditSession editSession, CommandContext args) throws WorldEditException { + public void fast(Player player, LocalSession session, CommandContext args) throws WorldEditException { String newState = args.getString(0, null); if (session.hasFastMode()) { @@ -116,7 +116,7 @@ public void fast(Player player, LocalSession session, EditSession editSession, C max = -1 ) @CommandPermissions("worldedit.global-mask") - public void gmask(Player player, LocalSession session, EditSession editSession, @Optional Mask mask) throws WorldEditException { + public void gmask(Player player, LocalSession session, @Optional Mask mask) throws WorldEditException { if (mask == null) { session.setMask((Mask) null); player.print("Global mask disabled."); @@ -133,7 +133,7 @@ public void gmask(Player player, LocalSession session, EditSession editSession, min = 0, max = 0 ) - public void togglePlace(Player player, LocalSession session, EditSession editSession, CommandContext args) throws WorldEditException { + public void togglePlace(Player player, LocalSession session, CommandContext args) throws WorldEditException { if (session.togglePlacementPosition()) { player.print("Now placing at pos #1."); diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/command/HistoryCommands.java b/worldedit-core/src/main/java/com/sk89q/worldedit/command/HistoryCommands.java index eda112bbd..e1b2573b8 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/command/HistoryCommands.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/command/HistoryCommands.java @@ -52,7 +52,7 @@ public HistoryCommands(WorldEdit worldEdit) { max = 2 ) @CommandPermissions("worldedit.history.undo") - public void undo(Player player, LocalSession session, EditSession editSession, CommandContext args) throws WorldEditException { + public void undo(Player player, LocalSession session, CommandContext args) throws WorldEditException { int times = Math.max(1, args.getInteger(0, 1)); for (int i = 0; i < times; ++i) { EditSession undone; @@ -85,7 +85,7 @@ public void undo(Player player, LocalSession session, EditSession editSession, C max = 2 ) @CommandPermissions("worldedit.history.redo") - public void redo(Player player, LocalSession session, EditSession editSession, CommandContext args) throws WorldEditException { + public void redo(Player player, LocalSession session, CommandContext args) throws WorldEditException { int times = Math.max(1, args.getInteger(0, 1)); @@ -119,7 +119,7 @@ public void redo(Player player, LocalSession session, EditSession editSession, C max = 0 ) @CommandPermissions("worldedit.history.clear") - public void clearHistory(Player player, LocalSession session, EditSession editSession) throws WorldEditException { + public void clearHistory(Player player, LocalSession session) throws WorldEditException { session.clearHistory(); player.print("History cleared."); } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/command/NavigationCommands.java b/worldedit-core/src/main/java/com/sk89q/worldedit/command/NavigationCommands.java index 4cb581e3d..01fbf6769 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/command/NavigationCommands.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/command/NavigationCommands.java @@ -23,7 +23,6 @@ import com.sk89q.minecraft.util.commands.CommandContext; import com.sk89q.minecraft.util.commands.CommandPermissions; import com.sk89q.minecraft.util.commands.Logging; -import com.sk89q.worldedit.EditSession; import com.sk89q.worldedit.LocalConfiguration; import com.sk89q.worldedit.LocalSession; import com.sk89q.worldedit.WorldEdit; @@ -116,7 +115,7 @@ public void descend(Player player, @Optional("1") int levelsToDescend) throws Wo ) @CommandPermissions("worldedit.navigation.ceiling") @Logging(POSITION) - public void ceiling(Player player, LocalSession session, EditSession editSession, CommandContext args) throws WorldEditException { + public void ceiling(Player player, LocalSession session, CommandContext args) throws WorldEditException { final int clearance = args.argsLength() > 0 ? Math.max(0, args.getInteger(0)) : 0; @@ -137,7 +136,7 @@ public void ceiling(Player player, LocalSession session, EditSession editSession max = 0 ) @CommandPermissions("worldedit.navigation.thru.command") - public void thru(Player player, LocalSession session, EditSession editSession, CommandContext args) throws WorldEditException { + public void thru(Player player, LocalSession session, CommandContext args) throws WorldEditException { if (player.passThroughForwardWall(6)) { player.print("Whoosh!"); } else { @@ -153,7 +152,7 @@ public void thru(Player player, LocalSession session, EditSession editSession, C max = 0 ) @CommandPermissions("worldedit.navigation.jumpto.command") - public void jumpTo(Player player, LocalSession session, EditSession editSession, CommandContext args) throws WorldEditException { + public void jumpTo(Player player, LocalSession session, CommandContext args) throws WorldEditException { WorldVector pos = player.getSolidBlockTrace(300); if (pos != null) { @@ -174,7 +173,7 @@ public void jumpTo(Player player, LocalSession session, EditSession editSession, ) @CommandPermissions("worldedit.navigation.up") @Logging(POSITION) - public void up(Player player, LocalSession session, EditSession editSession, CommandContext args) throws WorldEditException { + public void up(Player player, LocalSession session, CommandContext args) throws WorldEditException { final int distance = args.getInteger(0); final boolean alwaysGlass = getAlwaysGlass(args); diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/command/SchematicCommands.java b/worldedit-core/src/main/java/com/sk89q/worldedit/command/SchematicCommands.java index a72e7b872..8a2964c30 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/command/SchematicCommands.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/command/SchematicCommands.java @@ -23,7 +23,6 @@ import com.sk89q.minecraft.util.commands.CommandContext; import com.sk89q.minecraft.util.commands.CommandException; import com.sk89q.minecraft.util.commands.CommandPermissions; -import com.sk89q.worldedit.EditSession; import com.sk89q.worldedit.LocalConfiguration; import com.sk89q.worldedit.LocalSession; import com.sk89q.worldedit.WorldEdit; @@ -201,7 +200,7 @@ public void save(Player player, LocalSession session, @Optional("schematic") Str max = 1 ) @CommandPermissions("worldedit.schematic.delete") - public void delete(Player player, LocalSession session, EditSession editSession, CommandContext args) throws WorldEditException { + public void delete(Player player, LocalSession session, CommandContext args) throws WorldEditException { LocalConfiguration config = worldEdit.getConfiguration(); String filename = args.getString(0); @@ -336,6 +335,7 @@ private List allFiles(File root) { } private List listFiles(String prefix, File[] files) { + File dir = worldEdit.getWorkingDirectoryFile(prefix); if (prefix == null) prefix = ""; List result = new ArrayList(); for (File file : files) { @@ -344,8 +344,13 @@ private List listFiles(String prefix, File[] files) { build.append("\u00a72"); ClipboardFormat format = ClipboardFormat.findByFile(file); boolean inRoot = file.getParentFile().getName().equals(prefix); - build.append(inRoot ? file.getName() : file.getPath().split(Pattern.quote(prefix + File.separator))[1]) - .append(": ").append(format == null ? "Unknown" : format.name()); + if (inRoot) { + build.append(file.getName()); + } else { + String relative = dir.toURI().relativize(file.toURI()).getPath(); + build.append(relative); + } + build.append(": ").append(format == null ? "Unknown" : format.name()); result.add(build.toString()); } return result; diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/command/ScriptingCommands.java b/worldedit-core/src/main/java/com/sk89q/worldedit/command/ScriptingCommands.java index 3cb190e15..18d13432d 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/command/ScriptingCommands.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/command/ScriptingCommands.java @@ -23,7 +23,6 @@ import com.sk89q.minecraft.util.commands.CommandContext; import com.sk89q.minecraft.util.commands.CommandPermissions; import com.sk89q.minecraft.util.commands.Logging; -import com.sk89q.worldedit.EditSession; import com.sk89q.worldedit.LocalSession; import com.sk89q.worldedit.WorldEdit; import com.sk89q.worldedit.WorldEditException; @@ -60,7 +59,7 @@ public ScriptingCommands(WorldEdit worldEdit) { ) @CommandPermissions("worldedit.scripting.execute") @Logging(ALL) - public void execute(Player player, LocalSession session, EditSession editSession, CommandContext args) throws WorldEditException { + public void execute(Player player, LocalSession session, CommandContext args) throws WorldEditException { String[] scriptArgs = args.getSlice(1); String name = args.getString(0); @@ -87,7 +86,7 @@ public void execute(Player player, LocalSession session, EditSession editSession ) @CommandPermissions("worldedit.scripting.execute") @Logging(ALL) - public void executeLast(Player player, LocalSession session, EditSession editSession, CommandContext args) throws WorldEditException { + public void executeLast(Player player, LocalSession session, CommandContext args) throws WorldEditException { String lastScript = session.getLastScript(); diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/command/SelectionCommands.java b/worldedit-core/src/main/java/com/sk89q/worldedit/command/SelectionCommands.java index 41799e8a0..b48d7915a 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/command/SelectionCommands.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/command/SelectionCommands.java @@ -83,8 +83,7 @@ public SelectionCommands(WorldEdit we) { ) @Logging(POSITION) @CommandPermissions("worldedit.selection.pos") - public void pos1(Player player, LocalSession session, EditSession editSession, CommandContext args) throws WorldEditException { - + public void pos1(Player player, LocalSession session, CommandContext args) throws WorldEditException { Vector pos; if (args.argsLength() == 1) { @@ -117,8 +116,7 @@ public void pos1(Player player, LocalSession session, EditSession editSession, C ) @Logging(POSITION) @CommandPermissions("worldedit.selection.pos") - public void pos2(Player player, LocalSession session, EditSession editSession, CommandContext args) throws WorldEditException { - + public void pos2(Player player, LocalSession session, CommandContext args) throws WorldEditException { Vector pos; if (args.argsLength() == 1) { if (args.getString(0).matches("-?\\d+,-?\\d+,-?\\d+")) { @@ -151,8 +149,7 @@ public void pos2(Player player, LocalSession session, EditSession editSession, C max = 0 ) @CommandPermissions("worldedit.selection.hpos") - public void hpos1(Player player, LocalSession session, EditSession editSession, CommandContext args) throws WorldEditException { - + public void hpos1(Player player, LocalSession session, CommandContext args) throws WorldEditException { Vector pos = player.getBlockTrace(300); if (pos != null) { @@ -176,8 +173,7 @@ public void hpos1(Player player, LocalSession session, EditSession editSession, max = 0 ) @CommandPermissions("worldedit.selection.hpos") - public void hpos2(Player player, LocalSession session, EditSession editSession, CommandContext args) throws WorldEditException { - + public void hpos2(Player player, LocalSession session, CommandContext args) throws WorldEditException { Vector pos = player.getBlockTrace(300); if (pos != null) { @@ -211,7 +207,7 @@ public void hpos2(Player player, LocalSession session, EditSession editSession, ) @Logging(POSITION) @CommandPermissions("worldedit.selection.chunk") - public void chunk(Player player, LocalSession session, EditSession editSession, CommandContext args) throws WorldEditException { + public void chunk(Player player, LocalSession session, CommandContext args) throws WorldEditException { final Vector min; final Vector max; final World world = player.getWorld(); @@ -273,8 +269,7 @@ public void chunk(Player player, LocalSession session, EditSession editSession, max = 0 ) @CommandPermissions("worldedit.wand") - public void wand(Player player, LocalSession session, EditSession editSession, CommandContext args) throws WorldEditException { - + public void wand(Player player, LocalSession session, CommandContext args) throws WorldEditException { player.giveItem(we.getConfiguration().wandItem, 1); player.print("Left click: select pos #1; Right click: select pos #2"); } @@ -287,8 +282,7 @@ public void wand(Player player, LocalSession session, EditSession editSession, C max = 0 ) @CommandPermissions("worldedit.wand.toggle") - public void toggleWand(Player player, LocalSession session, EditSession editSession, CommandContext args) throws WorldEditException { - + public void toggleWand(Player player, LocalSession session, CommandContext args) throws WorldEditException { session.setToolControl(!session.isToolControlEnabled()); if (session.isToolControlEnabled()) { @@ -307,8 +301,7 @@ public void toggleWand(Player player, LocalSession session, EditSession editSess ) @Logging(REGION) @CommandPermissions("worldedit.selection.expand") - public void expand(Player player, LocalSession session, EditSession editSession, CommandContext args) throws WorldEditException { - + public void expand(Player player, LocalSession session, CommandContext args) throws WorldEditException { // Special syntax (//expand vert) to expand the selection between // sky and bedrock. if (args.getString(0).equalsIgnoreCase("vert") @@ -387,7 +380,7 @@ public void expand(Player player, LocalSession session, EditSession editSession, session.getRegionSelector(player.getWorld()).learnChanges(); int newSize = region.getArea(); - + session.getRegionSelector(player.getWorld()).explainRegionAdjust(player, session); player.print("Region expanded " + (newSize - oldSize) + " blocks."); @@ -402,8 +395,7 @@ public void expand(Player player, LocalSession session, EditSession editSession, ) @Logging(REGION) @CommandPermissions("worldedit.selection.contract") - public void contract(Player player, LocalSession session, EditSession editSession, CommandContext args) throws WorldEditException { - + public void contract(Player player, LocalSession session, CommandContext args) throws WorldEditException { List dirs = new ArrayList(); int change = args.getInteger(0); int reverseChange = 0; @@ -458,7 +450,7 @@ public void contract(Player player, LocalSession session, EditSession editSessio } session.getRegionSelector(player.getWorld()).learnChanges(); int newSize = region.getArea(); - + session.getRegionSelector(player.getWorld()).explainRegionAdjust(player, session); @@ -477,8 +469,7 @@ public void contract(Player player, LocalSession session, EditSession editSessio ) @Logging(REGION) @CommandPermissions("worldedit.selection.shift") - public void shift(Player player, LocalSession session, EditSession editSession, CommandContext args) throws WorldEditException { - + public void shift(Player player, LocalSession session, CommandContext args) throws WorldEditException { List dirs = new ArrayList(); int change = args.getInteger(0); if (args.argsLength() == 2) { @@ -525,7 +516,7 @@ public void shift(Player player, LocalSession session, EditSession editSession, ) @Logging(REGION) @CommandPermissions("worldedit.selection.outset") - public void outset(Player player, LocalSession session, EditSession editSession, CommandContext args) throws WorldEditException { + public void outset(Player player, LocalSession session, CommandContext args) throws WorldEditException { Region region = session.getSelection(player.getWorld()); region.expand(getChangesForEachDir(args)); session.getRegionSelector(player.getWorld()).learnChanges(); @@ -548,7 +539,7 @@ public void outset(Player player, LocalSession session, EditSession editSession, ) @Logging(REGION) @CommandPermissions("worldedit.selection.inset") - public void inset(Player player, LocalSession session, EditSession editSession, CommandContext args) throws WorldEditException { + public void inset(Player player, LocalSession session, CommandContext args) throws WorldEditException { Region region = session.getSelection(player.getWorld()); region.contract(getChangesForEachDir(args)); session.getRegionSelector(player.getWorld()).learnChanges(); @@ -584,8 +575,7 @@ private Vector[] getChangesForEachDir(CommandContext args) { max = 0 ) @CommandPermissions("worldedit.selection.size") - public void size(Player player, LocalSession session, EditSession editSession, CommandContext args) throws WorldEditException { - + public void size(Player player, LocalSession session, CommandContext args) throws WorldEditException { if (args.hasFlag('c')) { ClipboardHolder holder = session.getClipboard(); Clipboard clipboard = holder.getClipboard(); @@ -599,20 +589,20 @@ public void size(Player player, LocalSession session, EditSession editSession, C player.print("# of blocks: " + (int) (size.getX() * size.getY() * size.getZ())); return; } - + Region region = session.getSelection(player.getWorld()); Vector size = region.getMaximumPoint() .subtract(region.getMinimumPoint()) .add(1, 1, 1); - + player.print("Type: " + session.getRegionSelector(player.getWorld()) .getTypeName()); - + for (String line : session.getRegionSelector(player.getWorld()) .getInformationLines()) { player.print(line); } - + player.print("Size: " + size); player.print("Cuboid distance: " + region.getMaximumPoint().distance(region.getMinimumPoint())); player.print("# of blocks: " + region.getArea()); @@ -629,7 +619,6 @@ public void size(Player player, LocalSession session, EditSession editSession, C ) @CommandPermissions("worldedit.analysis.count") public void count(Player player, LocalSession session, EditSession editSession, CommandContext args) throws WorldEditException { - boolean useData = args.hasFlag('d'); if (args.getString(0).contains(":")) { useData = true; //override d flag, if they specified data they want it @@ -659,7 +648,6 @@ public void count(Player player, LocalSession session, EditSession editSession, ) @CommandPermissions("worldedit.analysis.distr") public void distr(Player player, LocalSession session, EditSession editSession, CommandContext args) throws WorldEditException, CommandException { - int size; boolean useData = args.hasFlag('d'); List> distribution = null; @@ -715,7 +703,7 @@ public void distr(Player player, LocalSession session, EditSession editSession, min = 0, max = 1 ) - public void select(Player player, LocalSession session, EditSession editSession, CommandContext args) throws WorldEditException { + public void select(Player player, LocalSession session, CommandContext args) throws WorldEditException { final World world = player.getWorld(); if (args.argsLength() == 0) { session.getRegionSelector(world).clear(); diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/command/SnapshotCommands.java b/worldedit-core/src/main/java/com/sk89q/worldedit/command/SnapshotCommands.java index 8c7676eee..36726b425 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/command/SnapshotCommands.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/command/SnapshotCommands.java @@ -60,7 +60,7 @@ public SnapshotCommands(WorldEdit we) { max = 1 ) @CommandPermissions("worldedit.snapshots.list") - public void list(Player player, LocalSession session, EditSession editSession, CommandContext args) throws WorldEditException { + public void list(Player player, LocalSession session, CommandContext args) throws WorldEditException { LocalConfiguration config = we.getConfiguration(); @@ -110,7 +110,7 @@ public void list(Player player, LocalSession session, EditSession editSession, C max = 1 ) @CommandPermissions("worldedit.snapshots.restore") - public void use(Player player, LocalSession session, EditSession editSession, CommandContext args) throws WorldEditException { + public void use(Player player, LocalSession session, CommandContext args) throws WorldEditException { LocalConfiguration config = we.getConfiguration(); @@ -153,7 +153,7 @@ public void use(Player player, LocalSession session, EditSession editSession, Co max = 1 ) @CommandPermissions("worldedit.snapshots.restore") - public void sel(Player player, LocalSession session, EditSession editSession, CommandContext args) throws WorldEditException { + public void sel(Player player, LocalSession session, CommandContext args) throws WorldEditException { LocalConfiguration config = we.getConfiguration(); if (config.snapshotRepo == null) { @@ -200,7 +200,7 @@ public void sel(Player player, LocalSession session, EditSession editSession, Co max = -1 ) @CommandPermissions("worldedit.snapshots.restore") - public void before(Player player, LocalSession session, EditSession editSession, CommandContext args) throws WorldEditException { + public void before(Player player, LocalSession session, CommandContext args) throws WorldEditException { LocalConfiguration config = we.getConfiguration(); @@ -239,7 +239,7 @@ public void before(Player player, LocalSession session, EditSession editSession, max = -1 ) @CommandPermissions("worldedit.snapshots.restore") - public void after(Player player, LocalSession session, EditSession editSession, CommandContext args) throws WorldEditException { + public void after(Player player, LocalSession session, CommandContext args) throws WorldEditException { LocalConfiguration config = we.getConfiguration(); diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/command/SuperPickaxeCommands.java b/worldedit-core/src/main/java/com/sk89q/worldedit/command/SuperPickaxeCommands.java index 116d71a81..9ed03cbd8 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/command/SuperPickaxeCommands.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/command/SuperPickaxeCommands.java @@ -43,7 +43,7 @@ public SuperPickaxeCommands(WorldEdit we) { max = 0 ) @CommandPermissions("worldedit.superpickaxe") - public void single(Player player, LocalSession session, EditSession editSession, CommandContext args) throws WorldEditException { + public void single(Player player, LocalSession session, CommandContext args) throws WorldEditException { session.setSuperPickaxe(new SinglePickaxe()); session.enableSuperPickAxe(); @@ -58,7 +58,7 @@ public void single(Player player, LocalSession session, EditSession editSession, max = 1 ) @CommandPermissions("worldedit.superpickaxe.area") - public void area(Player player, LocalSession session, EditSession editSession, CommandContext args) throws WorldEditException { + public void area(Player player, LocalSession session, CommandContext args) throws WorldEditException { LocalConfiguration config = we.getConfiguration(); int range = args.getInteger(0); @@ -81,7 +81,7 @@ public void area(Player player, LocalSession session, EditSession editSession, C max = 1 ) @CommandPermissions("worldedit.superpickaxe.recursive") - public void recursive(Player player, LocalSession session, EditSession editSession, CommandContext args) throws WorldEditException { + public void recursive(Player player, LocalSession session, CommandContext args) throws WorldEditException { LocalConfiguration config = we.getConfiguration(); double range = args.getDouble(0); diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/command/ToolCommands.java b/worldedit-core/src/main/java/com/sk89q/worldedit/command/ToolCommands.java index 59f099c58..949bd0e4d 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/command/ToolCommands.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/command/ToolCommands.java @@ -44,7 +44,7 @@ public ToolCommands(WorldEdit we) { min = 0, max = 0 ) - public void none(Player player, LocalSession session, EditSession editSession, CommandContext args) throws WorldEditException { + public void none(Player player, LocalSession session, CommandContext args) throws WorldEditException { session.setTool(player.getItemInHand(), null); player.print("Tool unbound from your current item."); @@ -58,7 +58,7 @@ public void none(Player player, LocalSession session, EditSession editSession, C max = 0 ) @CommandPermissions("worldedit.tool.info") - public void info(Player player, LocalSession session, EditSession editSession, CommandContext args) throws WorldEditException { + public void info(Player player, LocalSession session, CommandContext args) throws WorldEditException { session.setTool(player.getItemInHand(), new QueryTool()); player.print("Info tool bound to " @@ -74,7 +74,7 @@ public void info(Player player, LocalSession session, EditSession editSession, C ) @CommandPermissions("worldedit.tool.tree") @SuppressWarnings("deprecation") - public void tree(Player player, LocalSession session, EditSession editSession, CommandContext args) throws WorldEditException { + public void tree(Player player, LocalSession session, CommandContext args) throws WorldEditException { TreeGenerator.TreeType type = args.argsLength() > 0 ? type = TreeGenerator.lookup(args.getString(0)) @@ -98,7 +98,7 @@ public void tree(Player player, LocalSession session, EditSession editSession, C max = 1 ) @CommandPermissions("worldedit.tool.replacer") - public void repl(Player player, LocalSession session, EditSession editSession, CommandContext args) throws WorldEditException { + public void repl(Player player, LocalSession session, CommandContext args) throws WorldEditException { BaseBlock targetBlock = we.getBlock(player, args.getString(0)); session.setTool(player.getItemInHand(), new BlockReplacer(targetBlock)); @@ -114,7 +114,7 @@ public void repl(Player player, LocalSession session, EditSession editSession, C max = 0 ) @CommandPermissions("worldedit.tool.data-cycler") - public void cycler(Player player, LocalSession session, EditSession editSession, CommandContext args) throws WorldEditException { + public void cycler(Player player, LocalSession session, CommandContext args) throws WorldEditException { session.setTool(player.getItemInHand(), new BlockDataCyler()); player.print("Block data cycler tool bound to " @@ -129,7 +129,7 @@ public void cycler(Player player, LocalSession session, EditSession editSession, max = 2 ) @CommandPermissions("worldedit.tool.flood-fill") - public void floodFill(Player player, LocalSession session, EditSession editSession, CommandContext args) throws WorldEditException { + public void floodFill(Player player, LocalSession session, CommandContext args) throws WorldEditException { LocalConfiguration config = we.getConfiguration(); int range = args.getInteger(1); @@ -153,7 +153,7 @@ public void floodFill(Player player, LocalSession session, EditSession editSessi max = 0 ) @CommandPermissions("worldedit.tool.deltree") - public void deltree(Player player, LocalSession session, EditSession editSession, CommandContext args) throws WorldEditException { + public void deltree(Player player, LocalSession session, CommandContext args) throws WorldEditException { session.setTool(player.getItemInHand(), new FloatingTreeRemover()); player.print("Floating tree remover tool bound to " @@ -168,7 +168,7 @@ public void deltree(Player player, LocalSession session, EditSession editSession max = 0 ) @CommandPermissions("worldedit.tool.farwand") - public void farwand(Player player, LocalSession session, EditSession editSession, CommandContext args) throws WorldEditException { + public void farwand(Player player, LocalSession session, CommandContext args) throws WorldEditException { session.setTool(player.getItemInHand(), new DistanceWand()); player.print("Far wand tool bound to " + ItemType.toHeldName(player.getItemInHand()) + "."); @@ -182,7 +182,7 @@ public void farwand(Player player, LocalSession session, EditSession editSession max = 2 ) @CommandPermissions("worldedit.tool.lrbuild") - public void longrangebuildtool(Player player, LocalSession session, EditSession editSession, CommandContext args) throws WorldEditException { + public void longrangebuildtool(Player player, LocalSession session, CommandContext args) throws WorldEditException { BaseBlock secondary = we.getBlock(player, args.getString(0)); BaseBlock primary = we.getBlock(player, args.getString(1)); diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/command/ToolUtilCommands.java b/worldedit-core/src/main/java/com/sk89q/worldedit/command/ToolUtilCommands.java index f4f92675c..cf232695a 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/command/ToolUtilCommands.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/command/ToolUtilCommands.java @@ -46,7 +46,7 @@ public ToolUtilCommands(WorldEdit we) { max = 1 ) @CommandPermissions("worldedit.superpickaxe") - public void togglePickaxe(Player player, LocalSession session, EditSession editSession, CommandContext args) throws WorldEditException { + public void togglePickaxe(Player player, LocalSession session, CommandContext args) throws WorldEditException { String newState = args.getString(0, null); if (session.hasSuperPickAxe()) { @@ -76,7 +76,7 @@ public void togglePickaxe(Player player, LocalSession session, EditSession editS max = -1 ) @CommandPermissions("worldedit.brush.options.mask") - public void mask(Player player, LocalSession session, EditSession editSession, @Optional Mask mask) throws WorldEditException { + public void mask(Player player, LocalSession session, @Optional Mask mask) throws WorldEditException { if (mask == null) { session.getBrushTool(player.getItemInHand()).setMask(null); player.print("Brush mask disabled."); @@ -94,7 +94,7 @@ public void mask(Player player, LocalSession session, EditSession editSession, @ max = 1 ) @CommandPermissions("worldedit.brush.options.material") - public void material(Player player, LocalSession session, EditSession editSession, Pattern pattern) throws WorldEditException { + public void material(Player player, LocalSession session, Pattern pattern) throws WorldEditException { session.getBrushTool(player.getItemInHand()).setFill(pattern); player.print("Brush material set."); } @@ -107,7 +107,7 @@ public void material(Player player, LocalSession session, EditSession editSessio max = 1 ) @CommandPermissions("worldedit.brush.options.range") - public void range(Player player, LocalSession session, EditSession editSession, CommandContext args) throws WorldEditException { + public void range(Player player, LocalSession session, CommandContext args) throws WorldEditException { int range = args.getInteger(0); session.getBrushTool(player.getItemInHand()).setRange(range); player.print("Brush range set."); @@ -121,7 +121,7 @@ public void range(Player player, LocalSession session, EditSession editSession, max = 1 ) @CommandPermissions("worldedit.brush.options.size") - public void size(Player player, LocalSession session, EditSession editSession, CommandContext args) throws WorldEditException { + public void size(Player player, LocalSession session, CommandContext args) throws WorldEditException { int radius = args.getInteger(0); we.checkMaxBrushRadius(radius); diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/command/WorldEditCommands.java b/worldedit-core/src/main/java/com/sk89q/worldedit/command/WorldEditCommands.java index 1c40eb8f6..b1f9ea351 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/command/WorldEditCommands.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/command/WorldEditCommands.java @@ -90,7 +90,7 @@ public void reload(Actor actor) throws WorldEditException { min = 0, max = 0 ) - public void cui(Player player, LocalSession session, EditSession editSession, CommandContext args) throws WorldEditException { + public void cui(Player player, LocalSession session, CommandContext args) throws WorldEditException { session.setCUISupport(true); session.dispatchCUISetup(player); } @@ -102,7 +102,7 @@ public void cui(Player player, LocalSession session, EditSession editSession, Co min = 1, max = 1 ) - public void tz(Player player, LocalSession session, EditSession editSession, CommandContext args) throws WorldEditException { + public void tz(Player player, LocalSession session, CommandContext args) throws WorldEditException { TimeZone tz = TimeZone.getTimeZone(args.getString(0)); session.setTimezone(tz); player.print("Timezone set for this session to: " + tz.getDisplayName()); diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/util/command/SimpleDispatcher.java b/worldedit-core/src/main/java/com/sk89q/worldedit/util/command/SimpleDispatcher.java index 8478c76e9..cd760d0ec 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/util/command/SimpleDispatcher.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/util/command/SimpleDispatcher.java @@ -177,13 +177,8 @@ public SimpleDescription getDescription() { @Override public boolean testPermission(CommandLocals locals) { - for (CommandMapping mapping : getCommands()) { - if (mapping.getCallable().testPermission(locals)) { - return true; - } - } - - return false; + // checking EVERY perm here doesn't do anything but waste cpu + return true; } }