aboutsummaryrefslogtreecommitdiff
path: root/azalea-brigadier/src/tree
diff options
context:
space:
mode:
authormat <git@matdoes.dev>2023-10-12 22:01:15 -0500
committermat <git@matdoes.dev>2023-10-12 22:01:15 -0500
commit79ad1e93bf6ce2b7c2da6925a7c85b33bb76f154 (patch)
tree19004abf51cb19eb3b5cc13c61d670889cb228a0 /azalea-brigadier/src/tree
parentf505ace721d4c214cd32143febd0a066b6b95ce5 (diff)
downloadazalea-drasl-79ad1e93bf6ce2b7c2da6925a7c85b33bb76f154.tar.xz
brigadier suggestions
closes #109
Diffstat (limited to 'azalea-brigadier/src/tree')
-rwxr-xr-xazalea-brigadier/src/tree/mod.rs24
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> {