Commit Graph

45 Commits

Author SHA1 Message Date
Albert Pham
04c31262f7 Added a new command dispatcher that injects different parameters dynamically.
This reduces the boilerplate code needed to parse arguments in each command, and reduces the need to maintain command documentation with @Command.

Example:

@Command(aliases = "/set", desc = "Set all the blocks inside the selection to a block")
@CommandPermissions("worldedit.region.set")
@Logging(REGION)
void setBlocks(LocalPlayer player, EditSession editSession, @Selection Region region, Pattern replaceWith) {
    // Perform command
}
2013-06-18 14:50:46 -07:00
zml2008
b48c735d2e Correct handling of arguments where the arg is a quotation character followed by a space. Fixes WORLDEDIT-2633 2013-01-27 03:03:50 -05:00
Silthus
94a549214d Added @NestedCommand(executeBody=true/false) annotation.
Setting this annotation to true will execute the method
body of the tagged method if the argument count is 0.
2013-01-12 00:57:40 -05:00
Wizjany
76a77f04e7 Log a few more things. Added BiomeCommands to doc printer. 2013-01-02 02:11:42 -05:00
zml2008
33752eb058 Added a command to list schematics and the abilitiy to autodetect schematic format 2012-03-28 13:04:09 -07:00
zml2008
5e8f50699d Added allFlags setting to Command to prevent it from restricting allowed flags 2012-03-28 11:04:34 -07:00
TomyLobo
8aa65fd7f4 License block changes
Added some missing license blocks
Added "and contributors" to all copyright notices.
Added $Id$ to files that were still missing it.
Changed "All rights reserved" to GPLv3 on Injector.java.
2012-01-20 08:24:32 +01:00
zml2008
4fb44ebc1d Added more flexibility to the Bukkit dynamic command registration system. 2011-12-29 13:59:48 -08:00
zml2008
70205bfd11 Removed string.isEmpty() method calls 2011-12-27 13:21:55 -08:00
TomyLobo
cc256aa246 Added license blocks to some files that were still missing them.
Copied from files from the same directory.
2011-12-26 00:57:26 +01:00
TomyLobo
324a041e38 Split up some external .* imports. 2011-12-26 00:36:23 +01:00
zml2008
a1e239d08c Fixed SIOOBE when entering a blank quoted string 2011-12-24 22:22:37 -08:00
zml2008
4dc3c035c1 Updated to use simplified method signature for commands. Also improved SimpleInjector. 2011-12-17 23:45:12 -08:00
TomyLobo
370ddeb9ff Added support for console commands to WorldEditPlugin. 2011-12-15 15:45:34 +01:00
TomyLobo
05404b005d Added a //help command. 2011-12-13 09:43:39 +01:00
TomyLobo
6764704c22 Added support for help text to be shown on syntax errors and such. 2011-12-06 06:50:10 +01:00
TomyLobo
11dadd7417 Simplified CommandsManager.getUsage. 2011-12-05 10:18:30 +01:00
TomyLobo
7e13b60a51 Cleanup 2011-11-23 04:48:40 +01:00
zml2008
c29856f5a8 Added a registration method that returns information about successfully registered commands 2011-11-11 15:47:50 -08:00
Wizjany
699807665d Cleanup 2011-10-29 11:57:45 -04:00
sk89q
09447c5f6c Fixed CommandContext.matches() always returning true. 2011-10-09 10:31:15 -07:00
Wizjany
f90e47da9a Removed trailing whitespaces. 2011-09-24 15:32:03 -04:00
Wizjany
b5b55a2775 Cleanup and a few bugfixes 2011-09-24 15:24:10 -04:00
TomyLobo
67918f171b Internal restructuring of CommandContext
- getJoinedStrings(n) will now return literally everything after the first space following the (n-1)th argument. Mixing flags in after that is undefined
- What was in args before is now a List named parsedArgs, which also no longer contains the command, which was split off into a separate field.
- get[Padded]Slice now operates on the unparsed args with flags and all, allowing whoever uses it (script commands) to obtain a more low-level input.
- Added a test for the exactness of getJoinedStrings and adjusted an existing test to the new old behaviour.
2011-09-20 03:25:35 +02:00
TomyLobo
2d86b1b40d Fixed and cleaned up CommandContext.
- Removed all the inefficient removePortionOfArray stuff and replaced it by ArrayLists that accumulate content instead.
- Added new tests
- Swapped the arguments to assertEquals everywhere. First argument is "expected".
- Fixed warnings in the test case
- I put my original flag parser back and added support for putting flags anywhere. Looks and works better than that undocumented mindfuck zml put there.
2011-09-19 23:14:49 +02:00
Wizjany
1a6bc6f42c Fixed AIOOBE and a missing return, removed an unused and ambiguous method from CommandContext. 2011-09-18 19:11:05 -04:00
zml2008
56fd654eed Fixed bug with unclosed quotes 2011-09-17 21:10:55 -07:00
TomyLobo
19eedecdaf Re-re-introduced a small optimization in the flag parser. 2011-09-16 02:16:11 +02:00
zml2008
75e843b965 Some small improvements to value flags, and a unit test. 2011-09-14 17:59:18 -07:00
TomyLobo
6cdfd86f0b CommandContext:
- Adjusted comment of CommandContext(String[] args, Set<Character> valueFlags) to reflect the actual semantics
- Optimized several parts of the parser (still not happy with the frequent reallocations inside removePortionOfArray)
- Someone (unintentionally?) forgot to break if a non-flag argument was found. If this was indeed intended behaviour, just change the "break;" in line 83 to "continue;".
- Reduced the number of nested control structures a bit.
2011-09-14 18:56:42 +02:00
zml2008
2f390e9938 Added multiword args and some improvements to value flags. 2011-09-13 22:47:17 -07:00
zml2008
93fbad4d82 Cleaned up CommandAlias a bit 2011-08-29 14:24:46 -07:00
TomyLobo
d64fd95173 Added support for value flags to the command system 2011-08-29 14:46:36 +02:00
zml2008
04dd21d51a Added merging of quoted multiword strings (single or double quotes) into one index, flags can be anywhere in the command args string. Untested and currently unused command aliasing added for moving commands around 2011-08-28 13:00:00 -07:00
TomyLobo
447de4b206 - CommandContext's valueFlag constructor will now ignore the 0th element of args (no idea why that is even there)
- Limited flags to a-zA-Z
- Passing null to the valueFlag constructor will disable flag parsing altogether
- Adjusted the error message
- Added javadoc to CommandContext(String[], Set<Character>)
- Added CommandContext(String, Set<Character>)
2011-08-27 16:12:49 +02:00
TomyLobo
799b84622f Added support for value flags to CommandContext. 2011-08-26 18:40:51 +02:00
zml2008
2af38feadc Added a generic injector for commands 2011-08-24 00:17:27 -07:00
TomyLobo
d30cad6340 Added ORIENTATION_REGION and ALL LogModes, which log orientation+region and position+orientation+region respectively. 2011-08-09 01:23:08 +02:00
TomyLobo
cc917b424c Added position/region logging. 2011-08-08 14:40:02 +02:00
TomyLobo
2c155c241b Added an invokeMethod hook to CommandsManager, that wraps method invocation and can be overridden 2011-08-08 14:06:28 +02:00
Jacob Scott
66dcc99809 fixed superpickaxe for gravel & lightstone, preprocessors faster than postprocessors, added methods so same-type changes are visble client-side, fixed fixliquid & setblocks block count 2011-07-15 02:00:48 -05:00
sk89q
86ecd49b89 Added support for using instances (created using a specified dependency injector) in CommandsManager. 2011-06-18 10:14:49 -07:00
sk89q
5755755c15 Code cleanup. 2011-05-01 17:06:18 -07:00
sk89q
d8288afe04 Removed redundant code. 2011-05-01 16:16:50 -07:00
sk89q
582b98dad0 More file moving. 2011-05-01 01:30:33 -07:00