diff options
| author | mat <git@matdoes.dev> | 2023-10-12 22:01:15 -0500 |
|---|---|---|
| committer | mat <git@matdoes.dev> | 2023-10-12 22:01:15 -0500 |
| commit | 79ad1e93bf6ce2b7c2da6925a7c85b33bb76f154 (patch) | |
| tree | 19004abf51cb19eb3b5cc13c61d670889cb228a0 /azalea-brigadier/src/tree | |
| parent | f505ace721d4c214cd32143febd0a066b6b95ce5 (diff) | |
| download | azalea-drasl-79ad1e93bf6ce2b7c2da6925a7c85b33bb76f154.tar.xz | |
brigadier suggestions
closes #109
Diffstat (limited to 'azalea-brigadier/src/tree')
| -rwxr-xr-x | azalea-brigadier/src/tree/mod.rs | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/azalea-brigadier/src/tree/mod.rs b/azalea-brigadier/src/tree/mod.rs index be2efef1..a2b1f38a 100755 --- a/azalea-brigadier/src/tree/mod.rs +++ b/azalea-brigadier/src/tree/mod.rs @@ -9,6 +9,7 @@ use crate::{ exceptions::{BuiltInExceptions, CommandSyntaxException}, modifier::RedirectModifier, string_reader::StringReader, + suggestion::{Suggestions, SuggestionsBuilder}, }; use std::{ collections::{BTreeMap, HashMap}, @@ -209,6 +210,29 @@ impl<S> CommandNode<S> { } None } + + pub fn list_suggestions( + &self, + // context is here because that's how it is in mojang's brigadier, but we haven't + // implemented custom suggestions yet so this is unused rn + _context: CommandContext<S>, + builder: SuggestionsBuilder, + ) -> Suggestions { + match &self.value { + ArgumentBuilderType::Literal(literal) => { + if literal + .value + .to_lowercase() + .starts_with(builder.remaining_lowercase()) + { + builder.suggest(&literal.value).build() + } else { + Suggestions::default() + } + } + ArgumentBuilderType::Argument(argument) => argument.list_suggestions(builder), + } + } } impl<S> Debug for CommandNode<S> { |
