gameServer2/src/server/handlers/loggingin.rs
author sheepluva
Sat, 29 Jul 2017 00:25:38 +0200
changeset 12448 350a4871b2c1
parent 12152 03ccb89820f3
child 12857 bd35cb2302b3
permissions -rw-r--r--
cleanup/fix .hgignore
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
12152
03ccb89820f3 Room creation halfplemented
unc0rr
parents:
diff changeset
     1
use mio;
03ccb89820f3 Room creation halfplemented
unc0rr
parents:
diff changeset
     2
03ccb89820f3 Room creation halfplemented
unc0rr
parents:
diff changeset
     3
use server::server::HWServer;
03ccb89820f3 Room creation halfplemented
unc0rr
parents:
diff changeset
     4
use server::actions::Action;
03ccb89820f3 Room creation halfplemented
unc0rr
parents:
diff changeset
     5
use server::actions::Action::*;
03ccb89820f3 Room creation halfplemented
unc0rr
parents:
diff changeset
     6
use protocol::messages::HWProtocolMessage;
03ccb89820f3 Room creation halfplemented
unc0rr
parents:
diff changeset
     7
use protocol::messages::HWServerMessage::*;
03ccb89820f3 Room creation halfplemented
unc0rr
parents:
diff changeset
     8
03ccb89820f3 Room creation halfplemented
unc0rr
parents:
diff changeset
     9
pub fn handle(server: &mut HWServer, token: mio::Token, poll: &mio::Poll, message: HWProtocolMessage) {
03ccb89820f3 Room creation halfplemented
unc0rr
parents:
diff changeset
    10
    match message {
03ccb89820f3 Room creation halfplemented
unc0rr
parents:
diff changeset
    11
        HWProtocolMessage::Nick(nick) =>
03ccb89820f3 Room creation halfplemented
unc0rr
parents:
diff changeset
    12
            if server.clients[token].room_id == None {
03ccb89820f3 Room creation halfplemented
unc0rr
parents:
diff changeset
    13
                server.react(token, poll, vec![SendMe(Nick(&nick).to_raw_protocol())]);
03ccb89820f3 Room creation halfplemented
unc0rr
parents:
diff changeset
    14
                server.clients[token].nick = nick;
03ccb89820f3 Room creation halfplemented
unc0rr
parents:
diff changeset
    15
                server.react(token, poll, vec![CheckRegistered]);
03ccb89820f3 Room creation halfplemented
unc0rr
parents:
diff changeset
    16
            },
03ccb89820f3 Room creation halfplemented
unc0rr
parents:
diff changeset
    17
        HWProtocolMessage::Proto(proto) => {
03ccb89820f3 Room creation halfplemented
unc0rr
parents:
diff changeset
    18
            server.clients[token].protocol_number = proto;
03ccb89820f3 Room creation halfplemented
unc0rr
parents:
diff changeset
    19
            server.react(token, poll, vec![CheckRegistered]);
03ccb89820f3 Room creation halfplemented
unc0rr
parents:
diff changeset
    20
        },
03ccb89820f3 Room creation halfplemented
unc0rr
parents:
diff changeset
    21
        _ => warn!("Incorrect command in logging-in state"),
03ccb89820f3 Room creation halfplemented
unc0rr
parents:
diff changeset
    22
    }
03ccb89820f3 Room creation halfplemented
unc0rr
parents:
diff changeset
    23
}