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 |