aboutsummaryrefslogtreecommitdiff
path: root/azalea-brigadier/src/main.rs
diff options
context:
space:
mode:
authormat <github@matdoes.dev>2022-04-17 14:02:13 -0500
committermat <github@matdoes.dev>2022-04-17 14:02:13 -0500
commita72a47ced76065caf739898954cd18edbc39174b (patch)
tree5526c7663f253bbd7c8318b9d98413f1f2074852 /azalea-brigadier/src/main.rs
parent4ff67d4917ce333232189e86aee09f2d82451fc6 (diff)
downloadazalea-drasl-a72a47ced76065caf739898954cd18edbc39174b.tar.xz
Rewrite brigadier
Diffstat (limited to 'azalea-brigadier/src/main.rs')
-rw-r--r--azalea-brigadier/src/main.rs38
1 files changed, 38 insertions, 0 deletions
diff --git a/azalea-brigadier/src/main.rs b/azalea-brigadier/src/main.rs
new file mode 100644
index 00000000..53f2efa8
--- /dev/null
+++ b/azalea-brigadier/src/main.rs
@@ -0,0 +1,38 @@
+use std::rc::Rc;
+
+use rust_command_parser::{
+ builder::{literal_argument_builder::literal, required_argument_builder::argument},
+ dispatcher::CommandDispatcher,
+ parsers::integer,
+};
+
+struct CommandSourceStack {
+ player: String,
+}
+
+pub fn main() {
+ let mut dispatcher = CommandDispatcher::<Rc<CommandSourceStack>>::new();
+
+ let source = Rc::new(CommandSourceStack {
+ player: "player".to_string(),
+ });
+
+ dispatcher.register(
+ literal("foo")
+ .then(argument("bar", integer()).executes(|c| {
+ // println!("Bar is {}", get_integer(c, "bar"));
+ 2
+ }))
+ .executes(|c| {
+ println!("Called foo with no arguments");
+ 1
+ }),
+ );
+
+ let parse = dispatcher.parse("foo 123".to_string().into(), source);
+ println!("{:?}", parse);
+ println!(
+ "{}",
+ CommandDispatcher::<Rc<CommandSourceStack>>::execute(parse).unwrap()
+ );
+}