From dbe9c5d6965562a88f0ff2a6497b333e23823802 Mon Sep 17 00:00:00 2001 From: Christoffer Lantz Date: Fri, 26 Jul 2019 15:43:39 +0200 Subject: [PATCH] Adds the ability to change time with /time with HH:MM format. e.g. 12:43 --- server/Cargo.toml | 1 + server/src/cmd.rs | 15 +++++++++------ 2 files changed, 10 insertions(+), 6 deletions(-) diff --git a/server/Cargo.toml b/server/Cargo.toml index 98fab7922b..6b0319dc70 100644 --- a/server/Cargo.toml +++ b/server/Cargo.toml @@ -18,3 +18,4 @@ ron = "0.5.1" serde = "1.0" serde_derive = "1.0" rand = "0.5.6" +chrono = "0.4.7" diff --git a/server/src/cmd.rs b/server/src/cmd.rs index d648a2689c..ef51ab5ef7 100644 --- a/server/src/cmd.rs +++ b/server/src/cmd.rs @@ -9,6 +9,7 @@ use common::{ npc::{get_npc_name, NpcKind}, state::TimeOfDay, }; +use chrono::{NaiveTime, Timelike}; use rand::Rng; use specs::{Builder, Entity as EcsEntity, Join}; use vek::*; @@ -217,12 +218,14 @@ fn handle_time(server: &mut Server, entity: EcsEntity, args: String, action: &Ch Some("dusk") => 17.0 * 3600.0, Some(n) => match n.parse() { Ok(n) => n, - Err(_) => { - server.clients.notify( - entity, - ServerMsg::private(format!("'{}' is not a time!", n)), - ); - return; + Err(_) => match NaiveTime::parse_from_str(n, "%H:%M") { + Ok(time) => time.num_seconds_from_midnight() as f64, + Err(_) => { + server + .clients + .notify(entity, ServerMsg::private(format!("'{}' is not a valid time.", n))); + return; + } } }, None => {