Skip to content

Commit 6915603

Browse files
authored
Merge pull request #146 from didli789/master
/kick command
2 parents c12fc46 + bd1d1eb commit 6915603

File tree

2 files changed

+32
-0
lines changed

2 files changed

+32
-0
lines changed

pumpkin/src/commands/cmd_kick.rs

+30
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
use crate::commands::arg_player::{consume_arg_player, parse_arg_player};
2+
use crate::commands::tree::CommandTree;
3+
use crate::commands::tree::RawArgs;
4+
use crate::commands::tree_builder::argument;
5+
use crate::commands::CommandSender;
6+
use pumpkin_core::text::{color::NamedColor, TextComponent};
7+
8+
const NAMES: [&str; 1] = ["kick"];
9+
const DESCRIPTION: &str = "Kicks the target player from the server.";
10+
11+
const ARG_TARGET: &str = "target";
12+
13+
pub fn consume_arg_target(_src: &CommandSender, args: &mut RawArgs) -> Option<String> {
14+
consume_arg_player(_src, args)
15+
}
16+
17+
pub fn init_command_tree<'a>() -> CommandTree<'a> {
18+
CommandTree::new(NAMES, DESCRIPTION).with_child(
19+
argument(ARG_TARGET, consume_arg_target).execute(&|sender, server, args| {
20+
let target = parse_arg_player(sender, server, ARG_TARGET, args)?;
21+
target.kick(TextComponent::text("Kicked by an operator"));
22+
23+
sender.send_message(
24+
TextComponent::text("Player has been kicked.").color_named(NamedColor::Blue),
25+
);
26+
27+
Ok(())
28+
}),
29+
)
30+
}

pumpkin/src/commands/mod.rs

+2
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ mod arg_player;
99
mod cmd_echest;
1010
mod cmd_gamemode;
1111
mod cmd_help;
12+
mod cmd_kick;
1213
mod cmd_kill;
1314
mod cmd_pumpkin;
1415
mod cmd_stop;
@@ -75,6 +76,7 @@ pub fn default_dispatcher<'a>() -> CommandDispatcher<'a> {
7576
dispatcher.register(cmd_help::init_command_tree());
7677
dispatcher.register(cmd_echest::init_command_tree());
7778
dispatcher.register(cmd_kill::init_command_tree());
79+
dispatcher.register(cmd_kick::init_command_tree());
7880

7981
dispatcher
8082
}

0 commit comments

Comments
 (0)