The System Object (#0)(an instance of Root Class made by The_Mayor)     The known universe. VERB SOURCE CODE: do_login_command: "...This code should only be run as a server task..."; if (callers()) return E_PERM; endif if (typeof(h = $network:incoming_connection(player)) == OBJ) "connected to an object"; return h; elseif (h) return 0; endif host = $string_utils:connection_hostname(connection_name(player)); if ($login:redlisted(host)) boot_player(player); server_log(tostr("REDLISTED: ", player, " from ", host)); return 0; endif args = $login:parse_command(@args); return $login:(args[1])(@listdelete(args, 1)); . server_started: if (callers()) "This code should only be run as a server task."; return E_PERM; endif $network:server_started(); $last_restart_time = time(); "... suitable prefix for server log messages..."; preamble = "STARTUP: [#0:server_started] "; if ($dump_interval > 3600) "...Setting dump time to 3am:"; "...10 or 11 hours offset from GMT midnight plus now until GMT midnight."; dumptime = (((ctime()[27] == "D") ? 10 | 11) * 60) * 60; desired_interval = (24 * 60) * 60; $dump_interval = (dumptime - time()) % desired_interval; if ($dump_interval <= 0) $dump_interval = $dump_interval + desired_interval; endif server_log(tostr(preamble, "Checkpoint scheduled for ", ctime(time() + $dump_interval), ".")); "...Now, the system starts up, and schedules the first checkpoint."; "...The second one will be scheduled at some random time if we don't reset it"; "...to 24 hours. Any time between now and the first checkpoint time will do."; fork (1) $dump_interval = desired_interval; endfork else server_log(tostr(preamble, "Checkpoint scheduled every ", $dump_interval / 60, " minutes.")); endif "...do some basic sanity checks for $maxint and $minint..."; if (((($maxint + 1) != $minint) || ($minint >= 0)) || ($maxint <= 0)) server_log(preamble + "Warning: $maxint and $minint look incorrect."); endif . core_objects: saved = {#0}; for p in (properties(#0)) v = #0.(p); if ((typeof(v) == OBJ) && valid(v)) saved = setadd(saved, v); endif endfor for o in (saved) p = parent(o); while (valid(p)) saved = setadd(saved, p); p = parent(p); endwhile endfor return $list_utils:sort(saved); . init_for_core: if (caller_perms().wizard) pass(); if ("server_started" in verbs(this)) code = {"callers() || ($last_restart_time = time());"}; set_verb_code(this, "server_started", code); endif $shutdown_message = ""; $shutdown_time = 0; $dump_interval = 3600; $gripe_recipients = {player}; $class_registry = {{"generics", "Generic objects intended for use as the parents of new objects", {$room, $exit, $thing, $note, $letter, $container, $root_class, $player, $prog, $wiz, $generic_editor, $mail_recipient, $mail_agent}}, {"utilities", "Objects holding useful general-purpose verbs", {$string_utils, $gender_utils, $trig_utils, $time_utils, $match_utils, $object_utils, $lock_utils, $list_utils, $command_utils, $code_utils, $perm_utils, $building_utils}}}; endif . user_created user_connected: "Added callers() security and login watcher Dredful 1/24/94"; if (callers()) return E_PERM; endif user = args[1]; set_task_perms(user); fork (0) user:confunc(); endfork user.location:confunc(user); $local.watcher:tell_connect(user); . user_disconnected user_client_disconnected: "Added callers() security and login watcher functionality. Dredful 1/24/94"; if (callers()) return E_PERM; endif user = args[1]; user.last_disconnect_time = time(); set_task_perms(user); fork (0) user.location:disfunc(user); endfork user:disfunc(); if (valid(user)) $local.watcher:tell_disconnect(user, verb == "user_disconnected"); endif . checkpoint_started: if (callers()) return E_PERM; else "for debugging until decide proper system of notification"; for dude in ($set_utils:intersection($wiz_utils:all_wizards(), connected_players())) dude:notify("Message from server: checkpoint starting..."); endfor endif . checkpoint_finished: if (callers()) return E_PERM; else "For debugging until decide on proper notification"; for dude in ($set_utils:intersection($wiz_utils:all_wizards(), connected_players())) if (!args[1]) dude:notify("Message from server: checkpoint failed!"); else dude:notify("Message from server: checkpoint completed successfully."); endif endfor endif . PROPERTY DATA:       builder       login       last_huh       guest_log       last_restart_time       biglist       big_mail_recipient       limbo       registration_db       new_player_log       verb_help       core_help       prog_help       wiz_help       shutdown_task       wiz_utils       site_db       math_utils       set_utils       builtin_function_help       new_prog_log       generic_help       guest       seq_utils       quota_log       you       free_list       max_seconds       max_ticks       hacker       generic_db       shutdown_message       shutdown_time       no_one       player_db       class_registry       player_class       gender_utils       trig_utils       time_utils       editor_help       mail_recipient       mail_agent       mail_editor       note_editor       verb_editor       generic_editor       match_utils       object_utils       lock_utils       gripe_recipients       letter       dump_interval       list_utils       command_utils       player       wiz       prog       code_utils       help       nothing       failed_match       ambiguous_match       perm_utils       building_utils       string_utils       news       note       container       thing       exit       room       player_start       root_class       recycler       garbage       mail_options       edit_options       display_options       generic_options       maxint       minint       error       newt_log       toad_log       site_log       housekeeper       network       generic_biglist_home       feature       local       gopher       nntp       build_options       prog_options       mail_name_db       generic_utils       quota_utils       alt_quota_utils       quota       paranoid_db |