/
ColdCore-3.0a9.02/
ColdCore-3.0a9.02/src/
new object $housekeeper: $utilities;

var $root created_on = 796268969;
var $root flags = ['methods, 'code, 'variables, 'core];
var $root inited = 1;
var $root managed = [$housekeeper];
var $root manager = $housekeeper;

public method .did_disconnect() {
    var task_queue, task;
    
    if (caller() != $user)
        throw(~perm, "Permission denied");
    
    // because of guests
    if (valid(sender()))
        $scheduler.add_task(300, 'move_user_home, sender());
};

public method .move_user_home() {
    arg who;
    var home, curloc;
    
    if (who.connected())
        return;
    (| who.cleanup_sessions() |);
    curloc = who.location();
    home = who.home();
    if (curloc == home)
        return;
    (| who.move_to(home) |) || (> who.move_to($body_cave) <);
    curloc.did_housekeep(who);
};