Commit Graph
100 Commits
Author SHA1 Message Date
Nathan Adams 1b32233044 Don't add spaces to literal suggestions 2017-11-16 14:28:11 +01:00
Nathan Adams 1f201022dd Fixed issues with suggesting redirects 2017-11-15 16:13:52 +01:00
Nathan Adams 87f65f2bd2 Updated StringArgumentType.escapeIfRequired to new string rules 2017-11-14 15:20:06 +01:00
Nathan Adams 8bf57b4a9a Add the full input string to command context 2017-11-14 12:04:17 +01:00
Nathan Adams 45966d1d1e Changed custom suggestions to be nullable 2017-11-13 14:38:38 +01:00
Nathan Adams 1ce9894c07 Added methods for getting path by node & nodes by path 2017-11-13 12:42:31 +01:00
Nathan Adams 6b57d5f260 Expose information about the built-in arguments (bounds or type) 2017-11-13 11:15:04 +01:00
Nathan Adams fdff548a64 Forked commands should execute FIFO 2017-11-10 10:45:49 +01:00
Nathan Adams 1369eaf2c3 Allow mixed case literal suggestions 2017-11-09 12:25:29 +01:00
Nathan Adams b716f9a873 Executing forked commands should return the number of successes, and not fail on any errors 2017-11-09 12:11:08 +01:00
Nathan Adams e97dd6bb79 Allow consuming of command results 2017-11-08 16:05:38 +01:00
Nathan Adams be0090873b Allow overriding of suggestion providers per argument 2017-11-08 15:17:59 +01:00
Nathan Adams 4f7c6d4e32 Made suggestions async 2017-11-08 14:50:25 +01:00
Nathan Adams b48dbe7916 Reimplemented command suggestions 2017-11-08 13:01:08 +01:00
Nathan Adams 4d91bc6e7e Treat any trailing space as "a yet to be finished command" instead of a maybe valid argument 2017-11-08 09:35:27 +01:00
Nathan Adams 6e61fef225 Fixed commands with a trailing whitespace 2017-11-08 09:20:48 +01:00
Nathan Adams 2c39925cda Version 0.1.1 2017-11-07 15:54:33 +01:00
Nathan Adams 8ae247bb6a Don't store string arguments in contexts, ranges are more useful 2017-11-07 15:53:12 +01:00
Nathan Adams e342380600 Removed concept of argument suffix 2017-11-06 16:17:21 +01:00
Nathan Adams c746232ffc Removed : int (for example) in syntax.
We can have better ways to show this, without making usage text so long.
2017-11-06 16:14:29 +01:00
Nathan Adams 59a27953be If a redirect returned nothing, return nothing. 2017-11-06 15:02:37 +01:00
Nathan Adams 43e18f6a04 Allow redirect modifiers to throw exceptions 2017-11-06 14:45:54 +01:00
Nathan Adams 9d65991ae8 Fixed competing overloads not allowing other ones to try to parse 2017-10-31 17:03:52 +01:00
Nathan Adams e85f4a9f11 Added optional boolean to get all command usage text 2017-10-13 09:34:45 +02:00
Nathan Adams 08b183588f Renamed CommandException -> CommandSyntaxException 2017-08-21 14:44:22 +02:00
Nathan Adams f287b89ee4 Readded exceptions without context, useful for exceptions during execution 2017-08-15 14:36:27 +02:00
Nathan Adams 02f3a68ac0 Commands can throw exceptions 2017-08-15 09:35:09 +02:00
Nathan Adams 9d8ccfb1e2 Fixed redirect modifiers not always being ran 2017-08-10 15:30:14 +02:00
Nathan Adams b0f69ebc47 Allow redirects to modify context, supporting forks in the command chain 2017-08-10 14:32:01 +02:00
Nathan Adams c282b26b60 Removed unneeded field from contextbuilder 2017-08-10 13:22:58 +02:00
Nathan Adams 9c5af32afa When we redirect, add initial node to the context 2017-08-10 09:03:10 +02:00
Nathan Adams 78f4187908 Fixed from failing prematurely on partially matching literals 2017-08-07 09:24:14 +02:00
Nathan Adams 2d7644dce3 Change usage text of redirects based on if it's root or not 2017-08-03 12:41:19 +02:00
Nathan Adams a67b4b51b0 Added float argument 2017-08-01 09:38:14 +02:00
Nathan Adams 4b9170fd7f Added a redirect option on nodes 2017-07-31 14:39:59 +02:00
Nathan Adams 7f490f0a8b A context's arguments should be sorted 2017-07-27 14:06:58 +02:00
Nathan Adams 42631c29b7 Store start & end on parsed arguments 2017-07-27 11:07:09 +02:00
Nathan Adams 152c0b09d1 Removed unused copy methods, no longer needed 2017-07-27 11:00:35 +02:00
Nathan Adams 5181559f46 Made all exceptions throw with context 2017-07-27 09:58:14 +02:00
Nathan Adams 9276feddd4 Ported new methods to StringReader from nbt parsing 2017-07-26 14:01:43 +02:00
Nathan Adams dcda383dc9 Allow disabling of command exception stack trace 2017-07-26 14:01:29 +02:00
Nathan Adams d0be598676 Code cleanup 2017-07-25 16:07:03 +02:00
Nathan Adams 3bb1a888fb Made node parsing also use readers 2017-07-25 16:00:38 +02:00
Nathan Adams d2a5eeedc5 Fixed up tests to use the new reader in type parsing 2017-07-25 15:31:14 +02:00
Nathan Adams 9e481e3f24 Started moving towards passing around one big reader, instead of lots of strings 2017-07-25 15:07:58 +02:00
Nathan Adams a7674e984d Source is no longer required to get an argument result 2017-07-25 13:19:36 +02:00
Nathan Adams ce5eb700b8 Removed DynamicParsedArgument, undoing previous work to split it up.
Realized that returning a fixed partial is the same thing, but doesn't complicate the code so much.
2017-07-25 13:18:22 +02:00
Nathan Adams 8e53d8ff4f Added usage text to string 2017-07-20 13:59:54 +02:00
Nathan Adams 74f7c0e6b0 Added bool argument 2017-07-20 13:57:48 +02:00
Nathan Adams eaf4c6175d Keep nodes sorted alphabetically for niceness 2017-07-20 13:32:12 +02:00
Nathan Adams daea2d76d7 Fixed suffix with empty input 2017-07-20 13:08:12 +02:00
Nathan Adams e82d657d26 Added suffix to integer, and pass context around some more 2017-07-20 13:01:22 +02:00
Nathan Adams 13a7d53bdc Renamed CommandArgumentType -> ArgumentType 2017-07-10 12:04:52 +02:00
Nathan Adams c1a159f75a Pass in source to evaluations of arguments 2017-07-04 15:12:31 +02:00
Nathan Adams 4af7274892 Fixed how optional commands work - we don't find an earlier command in the tree anymore. 2017-06-30 09:17:07 +02:00
Nathan Adams 9a3f987c97 Overhauled usage generation 2017-06-29 15:15:12 +02:00
Nathan Adams 4337a9645e Added new StringArgumentType 2017-06-29 10:31:14 +02:00
Nathan Adams 60c5770f5e Exposed parse results a little easier. Make no distinction between "no permission" and "no command". 2017-06-28 16:34:52 +02:00
Nathan Adams 523e9d0236 Allow turning nodes back into builders without children 2017-06-28 15:09:19 +02:00
Nathan Adams 716e8f3f16 Two nodes at the same position that can both parse is no longer supported. Separated ERROR_UNKNOWN_COMMAND into ERROR_UNKNOWN_ARGUMENT 2017-06-28 13:16:02 +02:00
Nathan Adams fbf3546f18 Fixed crash executing "" 2017-06-28 12:22:35 +02:00
Nathan Adams e9a930c3b5 Added/optimized getInput methods to both builder and context 2017-06-28 11:15:30 +02:00
Nathan Adams 7d4dcc3e4b Allow changing of a source after creation of a contextbuilder 2017-06-28 11:08:26 +02:00
Nathan Adams e6b78a5f2a Allow access to an unbuilt context, for caching parsed functions 2017-06-28 11:07:42 +02:00
Nathan Adams bafe8e6b56 Made getArgument return the actual value, not a container object 2017-06-28 10:55:56 +02:00
Nathan Adams 8e3b29d22e Split ParsedArgument into fixed or dynamic, added copy methods for caching contexts 2017-06-28 10:54:10 +02:00
Nathan Adams 3946b084a0 Commands should return an int success count 2017-06-27 15:34:42 +02:00
Nathan Adams 73015f87d2 Typo! 2017-06-27 13:08:39 +02:00
Nathan Adams 6575257e0d Implemented permissions (predicate on each node) 2017-06-26 14:49:55 +02:00
Nathan Adams 014caa2905 Pass S (source type, was sometimes T) through to all nodes, so Command can have source type 2017-06-26 09:44:29 +02:00
Nathan Adams f0f038b57a Quote string replacements to avoid pattern issues 2017-06-22 09:35:33 +02:00
Nathan Adams 7ac8998e5a Removed dependency on lang3 2017-06-22 09:34:30 +02:00
Nathan Adams f372eb3b98 Added support for suggestions tabcompletions of a command input 2017-06-22 09:05:16 +02:00
Nathan Adams eba88b2773 More cleanup 2017-06-21 14:36:17 +02:00
Nathan Adams c2141ce38b Code cleanup 2017-06-21 14:29:26 +02:00
Nathan Adams 400657b472 Removed findbugs jsr 2017-06-21 14:25:36 +02:00
Nathan Adams e12ab0b6d8 Updated libraries 2017-06-21 14:21:15 +02:00
Nathan Adams a4dca40ffb Added gradle wrapper and updated to gradle 4 2017-06-21 14:11:41 +02:00
Nathan Adams b6b684efc7 Extracted some hardcoded strings to constants 2014-10-13 12:18:42 +02:00
Nathan Adams 91559191b6 Added simple usage generation 2014-10-09 12:15:54 +02:00
Nathan Adams b3703db535 Changed tests to ensure exceptions are of right type & right details 2014-10-03 12:45:19 +02:00
Nathan Adams ef4199e824 Renamed project to 'Brigadier' 2014-10-02 13:00:29 +02:00
Nathan Adams 8c5338a6bd Start of new exception system 2014-10-02 12:58:18 +02:00
Nathan Adams 29f99e8710 Implemented equals for CommandContext and ParsedArgument 2014-09-29 12:35:07 +02:00
Nathan Adams 2114f086cb Added a 'source' for commands that may be passed around in the context 2014-09-29 12:18:40 +02:00
Nathan Adams 6a8d067cf9 Always try every route to find a matching command 2014-09-29 11:56:24 +02:00
Nathan Adams 4b6abf4084 Verify command merging in the dispatcher 2014-09-26 10:39:50 +02:00
Nathan Adams 82b576e38c Implemented merging of CommandNode children 2014-09-25 17:21:26 +02:00
Nathan Adams d8c9e15a1c Made ArgumentBuilders use a RootCommandNode to hold their arguments 2014-09-25 16:36:45 +02:00
Nathan Adams 5760f94009 Add equality checking to each command node 2014-09-25 16:34:44 +02:00
Nathan Adams f91bc15e19 Added a nice toString to IntegerArgumentType 2014-09-25 13:25:29 +02:00
Nathan Adams fb92c2f3c8 Added & tested equals() and hashCode() in IntegerArgumentType 2014-09-25 13:18:11 +02:00
Nathan Adams 5136e3d103 Moved tests to correct location 2014-09-25 13:11:05 +02:00
Nathan Adams 78b9216eb4 Extracted " " into a constant for separating arguments 2014-09-25 10:38:59 +02:00
Nathan Adams 085f5b3d98 Added testParseSimilar testcase to LiteralCommandNode 2014-09-25 10:32:15 +02:00
Nathan Adams d678a5cb21 Changed how parsing is done, performed by dispatcher and can now look as deep as needed 2014-09-24 17:12:06 +02:00
Nathan Adams 8da6087618 Changed the Runnable to a Command 2014-09-24 14:05:12 +02:00
Nathan Adams 81ed5f0521 Moved CommandArgumentParseResult to its own class 2014-09-24 13:53:23 +02:00
Nathan Adams 20357723df Added command context and the ability to query arguments from it 2014-09-24 13:49:00 +02:00
Nathan Adams d13587a4df Made every CommandNode support an executor 2014-09-24 12:04:33 +02:00