new object $login_interface: $has_commands;
var $root inited = 1;
var $has_commands shortcuts = #[];
var $has_commands commands = #[["co", 'connect_cmd], ["connect", 'connect_cmd], ["guest", 'connect_guest_cmd], ["co-guest", 'connect_guest_cmd], ["connect-guest", 'connect_guest_cmd]];
public method .new_connection() {
sender().write("\"connect-guest [your name] [your email]\" to connect.");
};
public method .parse_line() {
arg line;
var cmd, ret;
if ((cmd = .match_command(line))) {
catch any {
ret = .(cmd[1])(sender(), line, cmd[2], @(cmd[3].explode()));
} with {
switch (error()) {
case ~numargs:
return "Wrong number of arguments.";
default:
.log($parse_lib.traceback(traceback()));
}
}
return ret;
} else {
return "No such command.";
}
};
protected method .connect_cmd() {
arg conn, cmdstr, cmd, username, password;
var new;
// This is called when a user connects
new = $user.spawn();
new.init(conn, username);
return ['interface, new];
};
protected method .connect_guest_cmd() {
arg conn, cmdstr, cmd, username, email;
new = $user.spawn();
new.set_name(conn, username);
return ['interface, new];
};