/
CDC-1.2b/
CDC-1.2b/src/
parent $registry
object $user_db

var $root dbref 'user_db
var $root child_index 0
var $root fertile 0
var $root manager $user_db
var $root owned [$user_db]
var $root owners [$core]
var $root writable [$user_db]
var $root readable ['methods, 'code]
var $db database #[]
var $root trusted [$user]
var $root inited 1
var $user_db connected []
var $registry stripped_characters "!@#$%^&*()_+-=~`'{}[]|/?\"\\,.<>;: "
var $user_db invalid_chars "$#@!^&%~"
var $registry reserved_names ["user", "builder", "programmer", "admin", "housekeeper", "Reaper", "noone", "guest", "a", "i", "an", "your", "you'r", "me", "god"]
var $registry invalid_names ["ass", "cunt", "fuck", "shit", "damn", "the"]

method users
    return dict_keys(.database());
.

method connected
    var x;
    
    for x in (connected) {
        if ((!valid(x)) || (| !(x.connections()) |))
            connected = setremove(connected, x);
    }
    return connected;
.

method did_connect
    .perms(caller(), $user);
    connected = [@connected, sender()];
.

method did_disconnect
    .perms(caller(), $user);
    connected = setremove(connected, sender());
.

method valid_name
    arg name;
    
    if (strlen($string.strip(name, invalid_chars)) < strlen(name))
        throw(~invname, ("Names cannot contain any of '" + invalid_chars) + "'.");
    return (> pass(name) <);
.

method match
    arg name;
    
    return (> .find(name) <);
.