add ban
This commit is contained in:
parent
72a0cf8c69
commit
958a6718eb
1 changed files with 26 additions and 0 deletions
26
src/command/ban.rs
Normal file
26
src/command/ban.rs
Normal file
|
|
@ -0,0 +1,26 @@
|
||||||
|
#[derive(Default)]
|
||||||
|
pub struct BanCommand {
|
||||||
|
target: Option<super::Selector>,
|
||||||
|
reason: Option<String>
|
||||||
|
}
|
||||||
|
|
||||||
|
impl BanCommand {
|
||||||
|
pub fn target(mut self, target: super::Selector) -> Self {
|
||||||
|
self.target = Some(target);
|
||||||
|
self
|
||||||
|
}
|
||||||
|
|
||||||
|
pub fn reason(mut self, reason: impl Into<String>) -> Self {
|
||||||
|
self.reason = Some(reason.into());
|
||||||
|
self
|
||||||
|
}
|
||||||
|
|
||||||
|
pub fn build(self) -> super::Command {
|
||||||
|
let target = self.target.unwrap_or(super::Selector::Player("nonexistent".to_string()));
|
||||||
|
let mut s = format!("ban {target}");
|
||||||
|
if let Some(reason) = self.reason {
|
||||||
|
s.push_str(&format!(" {reason}"));
|
||||||
|
};
|
||||||
|
super::Command(s)
|
||||||
|
}
|
||||||
|
}
|
||||||
Loading…
Add table
Add a link
Reference in a new issue