summaryrefslogtreecommitdiff
path: root/src/gameserver.rs
diff options
context:
space:
mode:
authortroido <troido@protonmail.com>2020-04-23 15:20:54 +0200
committertroido <troido@protonmail.com>2020-04-23 15:20:54 +0200
commit4d1cbdf2fc0d79b99589327eb378306c557d346a (patch)
tree9af2fe092fc850b8c314f27e4992a7e9cf124c8e /src/gameserver.rs
parent904f81b2a31fe30e1f7b11c25a9ce523625f1c6b (diff)
tell users when they use a guest account and inform them about server admin
Diffstat (limited to 'src/gameserver.rs')
-rw-r--r--src/gameserver.rs17
1 files changed, 13 insertions, 4 deletions
diff --git a/src/gameserver.rs b/src/gameserver.rs
index 195989f..709ee9d 100644
--- a/src/gameserver.rs
+++ b/src/gameserver.rs
@@ -44,16 +44,18 @@ pub struct GameServer {
players: HashMap<(usize, usize), PlayerId>,
connections: HashMap<PlayerId, (usize, usize)>,
users: Box<dyn UserRegistry>,
- servers: Vec<Box<dyn Server>>
+ servers: Vec<Box<dyn Server>>,
+ admins: String
}
impl GameServer {
- pub fn new(servers: Vec<Box<dyn Server>>, users: Box<dyn UserRegistry>) -> GameServer {
+ pub fn new(servers: Vec<Box<dyn Server>>, users: Box<dyn UserRegistry>, admins: String) -> GameServer {
GameServer {
players: HashMap::new(),
connections: HashMap::new(),
servers,
- users
+ users,
+ admins
}
}
@@ -147,7 +149,7 @@ impl GameServer {
return Err(merr!(action, "You can not change your name"));
}
let player = PlayerId{name};
- self.authenticate(&player, auth, id)?;
+ self.authenticate(&player, auth.clone(), id)?;
if self.connections.contains_key(&player) {
return Err(merr!("nametaken", "Another connection to this player exists already"));
}
@@ -157,6 +159,13 @@ impl GameServer {
if let Err(_) = self.send(&player, json!(["connected", format!("successfully connected as {}", &player.name)])){
return Err(merr!("server", "unable to send connected message"))
}
+ if auth == Authentication::Guest {
+ let _ = self.send(&player, json!([
+ "message",
+ format!("You are connected as guest account. Anyone could log in to this account. To register an account for yourself ask one of the server admins: {}", &self.admins),
+ "server"
+ ]));
+ }
Ok(Some(Action::Join(player)))
}
Message::Chat(text) => {