use crate::error::RconError;
use crate::parser::utils::check_invalid_command;
use crate::rcon_client::RconClient;
pub fn gamerule(
client: &mut RconClient,
gamerule_name: &str,
value: &str,
) -> Result<(), RconError> {
let command = format!("gamerule {} {}", gamerule_name, value);
let feedback = client.send(command.to_string())?;
check_invalid_command(&feedback)?;
if feedback.contains("Incorrect") {
return Err(RconError::UnknownParserError(
"Incorrect gamerule name".to_string(),
));
}
if feedback.contains("Expected") {
return Err(RconError::UnknownParserError(
"Incorrect gamerule value".to_string(),
));
}
if feedback.contains("is now set to:") {
return Ok(());
}
Err(RconError::UnknownParserError(
format!(
"Unknown error when set gamerule {} to {}",
gamerule_name, value
)
.to_string(),
))
}