aboutsummaryrefslogtreecommitdiff
path: root/azalea-brigadier/src/tree
diff options
context:
space:
mode:
authormat <github@matdoes.dev>2022-01-09 23:46:23 -0600
committermat <github@matdoes.dev>2022-01-09 23:46:23 -0600
commitfec7a2bfedc562306523b9d3c51b97e376dc32d9 (patch)
treea7f95d0eab97c7fa4a20a8b335feff752ba83dff /azalea-brigadier/src/tree
parent315f2258190b33c63df7797a97178019f5aea02b (diff)
downloadazalea-drasl-fec7a2bfedc562306523b9d3c51b97e376dc32d9.tar.xz
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
Diffstat (limited to 'azalea-brigadier/src/tree')
-rw-r--r--azalea-brigadier/src/tree/argument_command_node.rs11
-rw-r--r--azalea-brigadier/src/tree/command_node.rs11
2 files changed, 8 insertions, 14 deletions
diff --git a/azalea-brigadier/src/tree/argument_command_node.rs b/azalea-brigadier/src/tree/argument_command_node.rs
index df7d3f5c..51add3d5 100644
--- a/azalea-brigadier/src/tree/argument_command_node.rs
+++ b/azalea-brigadier/src/tree/argument_command_node.rs
@@ -1,7 +1,8 @@
use std::fmt::{Display, Formatter};
use crate::{
- arguments::argument_type::ArgumentType,
+ arguments::argument_type::{ArgumentResult, ArgumentType},
+ builder::required_argument_builder::RequiredArgumentBuilder,
context::{
command_context::CommandContext, command_context_builder::CommandContextBuilder,
parsed_argument::ParsedArgument,
@@ -22,14 +23,14 @@ const USAGE_ARGUMENT_CLOSE: &str = ">";
#[derive(Hash, PartialEq, Eq, Debug, Clone)]
pub struct ArgumentCommandNode<S, T> {
name: String,
- type_: dyn ArgumentType,
+ type_: Box<dyn ArgumentType<dyn ArgumentResult>>,
custom_suggestions: dyn SuggestionProvider<S>,
// Since Rust doesn't have extending, we put the struct this is extending as the "base" field
pub base: BaseCommandNode<S>,
}
impl<S, T> ArgumentCommandNode<S, T> {
- fn get_type(&self) -> &dyn ArgumentType {
+ fn get_type(&self) -> &dyn ArgumentType<dyn ArgumentResult> {
&self.type_
}
@@ -45,7 +46,7 @@ impl<S, T> CommandNode<S> for ArgumentCommandNode<S, T> {
fn parse(
&self,
- reader: StringReader,
+ reader: &mut StringReader,
context_builder: CommandContextBuilder<S>,
) -> Result<(), CommandSyntaxException> {
// final int start = reader.getCursor();
@@ -68,7 +69,7 @@ impl<S, T> CommandNode<S> for ArgumentCommandNode<S, T> {
fn list_suggestions(
&self,
context: CommandContext<S>,
- builder: SuggestionsBuilder,
+ builder: &mut SuggestionsBuilder,
) -> Result<Suggestions, CommandSyntaxException> {
if self.custom_suggestions.is_none() {
self.get_type().list_suggestions(context, builder)
diff --git a/azalea-brigadier/src/tree/command_node.rs b/azalea-brigadier/src/tree/command_node.rs
index 286820b9..717ea5f1 100644
--- a/azalea-brigadier/src/tree/command_node.rs
+++ b/azalea-brigadier/src/tree/command_node.rs
@@ -1,6 +1,7 @@
use std::collections::HashMap;
use crate::{
+ arguments::argument_type::{ArgumentResult, ArgumentType},
builder::argument_builder::ArgumentBuilder,
command::Command,
context::{command_context::CommandContext, command_context_builder::CommandContextBuilder},
@@ -13,17 +14,9 @@ use crate::{
use super::{argument_command_node::ArgumentCommandNode, literal_command_node::LiteralCommandNode};
pub struct BaseCommandNode<S> {
- // private final Map<String, CommandNode<S>> children = new LinkedHashMap<>();
- // private final Map<String, LiteralCommandNode<S>> literals = new LinkedHashMap<>();
- // private final Map<String, ArgumentCommandNode<S, ?>> arguments = new LinkedHashMap<>();
- // private final Predicate<S> requirement;
- // private final CommandNode<S> redirect;
- // private final RedirectModifier<S> modifier;
- // private final boolean forks;
- // private Command<S> command;
children: HashMap<String, dyn CommandNode<S>>,
literals: HashMap<String, LiteralCommandNode<S>>,
- arguments: HashMap<String, ArgumentCommandNode<S, _>>,
+ arguments: HashMap<String, ArgumentCommandNode<S, dyn ArgumentType<dyn ArgumentResult>>>,
requirement: Option<dyn Fn(&S) -> bool>,
redirect: Option<dyn CommandNode<S>>,
modifier: Option<dyn RedirectModifier<S>>,