ah, that's good enough. Now to run it un-protected on my server.
							parent
							
								
									119ec04d0c
								
							
						
					
					
						commit
						28f11e74c5
					
				|  | @ -64,7 +64,7 @@ fn parse_input (s: &str) -> PlayerAction { | |||
| 	use PlayerAction::*; | ||||
| 	use PlayerActionRoomSpecific::*; | ||||
| 	
 | ||||
| 	let s = s.to_lowercase (); | ||||
| 	let s = s.trim ().to_lowercase (); | ||||
| 	
 | ||||
| 	let look = |rest| RoomSpecific (Look (parse_item_name (rest))); | ||||
| 	let activate = |rest| RoomSpecific (Use (parse_item_name (rest))); | ||||
|  | @ -185,6 +185,9 @@ pub enum Response { | |||
| 	JokeEnding, | ||||
| 	FailedDetectionCheck, | ||||
| 	PlayerVictory, | ||||
| 	
 | ||||
| 	// These are hints for spam detection on the Telnet frontend
 | ||||
| 	Nonsense, | ||||
| } | ||||
| 
 | ||||
| #[derive (Clone, Copy)] | ||||
|  | @ -254,6 +257,7 @@ impl State { | |||
| 			PlayerAction::Nonsense => vec! [ | ||||
| 				line_response ("I couldn't understand that. Try `help` or `hint`."), | ||||
| 				line_response ("`hint` may contain spoilers. `help` will not."), | ||||
| 				Response::Nonsense, | ||||
| 			], | ||||
| 			PlayerAction::RoomSpecific (x) => self.room_1 (x), | ||||
| 		} | ||||
|  | @ -414,6 +418,7 @@ mod test { | |||
| 			("look table", RoomSpecific (Look (ItemName::Table))), | ||||
| 			("look  note ", RoomSpecific (Look (ItemName::Note))), | ||||
| 			("LOOK TABLE", RoomSpecific (Look (ItemName::Table))), | ||||
| 			("look ", RoomSpecific (LookAround)), | ||||
| 			("wait", RoomSpecific (Wait)), | ||||
| 			("hint", RoomSpecific (Hint)), | ||||
| 		].into_iter () { | ||||
|  |  | |||
|  | @ -71,6 +71,10 @@ async fn process_socket (socket: TcpStream, id: &str) | |||
| { | ||||
| 	use kajam_10_game::Response; | ||||
| 	
 | ||||
| 	let mut interval = tokio::time::interval (tokio::time::Duration::from_millis (500)); | ||||
| 	interval.set_missed_tick_behavior (tokio::time::MissedTickBehavior::Delay); | ||||
| 	interval.tick ().await; | ||||
| 	
 | ||||
| 	let mut seq = 0; | ||||
| 	let (mut read, mut write) = socket.into_split (); | ||||
| 	
 | ||||
|  | @ -91,6 +95,7 @@ async fn process_socket (socket: TcpStream, id: &str) | |||
| 	} | ||||
| 	
 | ||||
| 	'main_loop: loop { | ||||
| 		interval.tick ().await; | ||||
| 		let input = read_input (&mut read, &mut write).await.context ("couldn't get player input")?; | ||||
| 		tracing::debug! ("Processing input {} from connection {}", seq, id); | ||||
| 		seq += 1; | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue
	
	 _
						_