From fec7a2bfedc562306523b9d3c51b97e376dc32d9 Mon Sep 17 00:00:00 2001 From: mat Date: Sun, 9 Jan 2022 23:46:23 -0600 Subject: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA --- azalea-brigadier/src/tree/argument_command_node.rs | 11 ++++++----- azalea-brigadier/src/tree/command_node.rs | 11 ++--------- 2 files changed, 8 insertions(+), 14 deletions(-) (limited to 'azalea-brigadier/src/tree') 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 { name: String, - type_: dyn ArgumentType, + type_: Box>, custom_suggestions: dyn SuggestionProvider, // Since Rust doesn't have extending, we put the struct this is extending as the "base" field pub base: BaseCommandNode, } impl ArgumentCommandNode { - fn get_type(&self) -> &dyn ArgumentType { + fn get_type(&self) -> &dyn ArgumentType { &self.type_ } @@ -45,7 +46,7 @@ impl CommandNode for ArgumentCommandNode { fn parse( &self, - reader: StringReader, + reader: &mut StringReader, context_builder: CommandContextBuilder, ) -> Result<(), CommandSyntaxException> { // final int start = reader.getCursor(); @@ -68,7 +69,7 @@ impl CommandNode for ArgumentCommandNode { fn list_suggestions( &self, context: CommandContext, - builder: SuggestionsBuilder, + builder: &mut SuggestionsBuilder, ) -> Result { 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 { - // private final Map> children = new LinkedHashMap<>(); - // private final Map> literals = new LinkedHashMap<>(); - // private final Map> arguments = new LinkedHashMap<>(); - // private final Predicate requirement; - // private final CommandNode redirect; - // private final RedirectModifier modifier; - // private final boolean forks; - // private Command command; children: HashMap>, literals: HashMap>, - arguments: HashMap>, + arguments: HashMap>>, requirement: Option bool>, redirect: Option>, modifier: Option>, -- cgit v1.2.3