check that name is valid per name requirements

master
rasul 5 years ago
parent 70ebf1a210
commit b9156b0300

@ -3,7 +3,7 @@ use log::warn;
use mio::Token;
use crate::command::Command;
use crate::game::Game;
use crate::game::{Game, PlayerCheck};
use crate::player::Player;
use crate::queue::SendQueue;
use crate::state::*;
@ -26,24 +26,35 @@ impl Game {
if message.is_empty() {
send_queue.push(token, "\n\nUsername: ", false, None);
} else {
match self.db.find_player_by_name(&message) {
Ok(Some(_)) => {
send_queue.push(token, "\nPassword: ", false, None);
client.state = State::Login(Login::Password(message));
}
Ok(None) => {
send_queue.push(
token,
format!("\nCreate {}? [y/N]: ", message.clone()),
false,
None,
);
client.state = State::Login(Login::CreateUser(message));
}
Err(_) => {
send_queue.push(token, "\nError\n\nUsername: ", false, None);
}
}
match self.check_player_name(message) {
PlayerCheck::Ok(name) => {
match self.db.find_player_by_name(&name) {
Ok(Some(_)) => {
send_queue.push(token, "\nPassword: ", false, None);
client.state = State::Login(Login::Password(name));
}
Ok(None) => {
send_queue.push(
token,
format!("\nCreate {}? [y/N]: ", name),
false,
None,
);
client.state = State::Login(Login::CreateUser(name));
}
Err(_) => {
send_queue.push(token, "\nError\n\nUsername: ", false, None);
}
}
},
PlayerCheck::Err(err) => {
send_queue.push(token, "\nInvalid username:\n", false, None);
for line in err {
send_queue.push(token, format!("{}\n", line), false, None);
}
send_queue.push(token, "\n\nUsername: ", false, None);
},
};
}
}

Loading…
Cancel
Save