Add event listener with JSON output (WIP) Add notifier on movement events Refactor Parameter and ParameterList (still shit)
This commit is contained in:
parent
2c0a8ab616
commit
d8cdc2bb11
14 changed files with 338 additions and 186 deletions
|
|
@ -1,8 +1,9 @@
|
|||
use crate::utils::SendTextMessageTarget;
|
||||
use telnet::Event::Data;
|
||||
use telnet::Telnet;
|
||||
use crate::models::EventType;
|
||||
|
||||
use crate::parameter::{Parameter, ParameterList};
|
||||
use crate::parameter::{Parameter, parameters_to_string, ParameterList, parameter_to_string, parameter_list_to_string};
|
||||
use crate::response::Response;
|
||||
|
||||
fn to_single_response(resp: Response) -> Response {
|
||||
|
|
@ -48,7 +49,7 @@ fn send_command(connection: &mut Telnet, command: &str, skip_ok: bool) -> Result
|
|||
read_response(connection, skip_ok, String::new())
|
||||
}
|
||||
|
||||
fn read_response(connection: &mut Telnet, skip_ok: bool, mut buffer: String) -> Result<Response, String> {
|
||||
pub fn read_response(connection: &mut Telnet, skip_ok: bool, mut buffer: String) -> Result<Response, String> {
|
||||
let (response_str, buffer) = read_response_buffer(connection, &mut buffer)?;
|
||||
|
||||
match Response::try_from(response_str) {
|
||||
|
|
@ -93,18 +94,22 @@ pub fn whoami(connection: &mut Telnet) -> Result<Response, String> {
|
|||
pub fn clientmove(connection: &mut Telnet, cid: &i32, clid_list: Vec<&i32>) -> Result<Response, String> {
|
||||
let clid_param_list = clid_list
|
||||
.into_iter()
|
||||
.map(|clid| Parameter::new("clid", &clid.to_string()))
|
||||
.map(|clid| (String::from("clid"), clid.to_string()))
|
||||
.collect::<Vec<Parameter>>();
|
||||
let clid_str = Parameter::list_to_string_sep(clid_param_list, "|");
|
||||
let clid_str = parameters_to_string(clid_param_list, "|");
|
||||
send_command(connection, &format!("clientmove cid={} {}", cid, clid_str), false)
|
||||
}
|
||||
|
||||
pub fn clientupdate(connection: &mut Telnet, parameters: ParameterList) -> Result<Response, String> {
|
||||
let parameters_str = Parameter::list_to_string(parameters);
|
||||
let parameters_str = parameter_list_to_string(parameters, " ");
|
||||
send_command(connection, &format!("clientupdate {}", parameters_str), false)
|
||||
}
|
||||
|
||||
pub fn sendtextmessage(connection: &mut Telnet, target: SendTextMessageTarget, msg: String) -> Result<Response, String> {
|
||||
let msg = String::from(Parameter::new("msg", &msg));
|
||||
let msg = parameter_to_string((String::from("msg"), msg));
|
||||
send_command(connection, &format!("sendtextmessage {} {}", msg, String::from(target)), false)
|
||||
}
|
||||
|
||||
pub fn clientnotifyregister(connection: &mut Telnet, schandlerid: u32, event: EventType) -> Result<Response, String> {
|
||||
send_command(connection, &format!("clientnotifyregister schandlerid={} event={}", schandlerid, String::from(&event)), false)
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue