/
CDC-1.2b/
CDC-1.2b/src/
parent $utilities
object $login_watcher

var $root child_index 0
var $root owners [$login_watcher]
var $root owned [$login_watcher]
var $root fertile 0
var $root inited 1
var $root manager $login_watcher
var $root writable [$login_watcher]
var $root readable ['parameters, 'methods, 'code]
var $root dbref 'login_watcher

method notify
    arg who, msg;
    var watch, user, lcont, prefix;
    
    .perms(sender(), 'this);
    prefix = "[login watcher] -> ";
    lcont = (who.location()).contents();
    who = who.namef('titled);
    for user in ($user_db.connected()) {
        if (!(user in lcont)) {
            watch = (| user.watch_logins() |);
            if (watch && ((watch == 1) || ((type(watch) == 'list) && (who in watch))))
                user.tell((((prefix + who) + " has ") + msg) + ".");
        }
    }
.

method did_connect
    .perms($user, caller());
    .notify(sender(), "connected");
.

method did_disconnect
    .perms($user, caller());
    .notify(sender(), "disconnected");
.