[Turn on line numbering]arg time, why; var increments, line, name, mins, secs; if (!$sys.is_admin(sender()) || definer() != this()) throw(~perm, "Sender is not an admin."); increments = [600, 300, 180, 60]; secs = time * 60; while (increments && secs < increments[1]) increments = increments.delete(1); if (increments && secs > increments[1]) increments = [secs] + increments; name = sender().namef('xref); .log("*** SHUTDOWN called by " + name + " ***"); if (why) { why = "*** REASON: " + why + " ***"; .log(why); } while (1) { if (!increments) { $channel_ui._broadcast('All, "*** SYSTEM SHUTDOWN ***"); if (why) $channel_ui._broadcast('All, why); break; } line = "*** SYSTEM SHUTDOWN IN "; mins = increments[1] / 60; line = line + tostr(mins) + " MINUTE" + (mins == 1 ? "" : "S"); line = line + " CALLED BY " + name + " ***"; $channel_ui._broadcast('All, line); if (why) $channel_ui._broadcast('All, why); if (increments.length() > 1) $scheduler.sleep(increments[1] - increments[2]); else $scheduler.sleep(increments[1]); increments = increments.delete(1); } pause(); pause(); return .shutdown();
// Created 27-Mar-1995 as a part of ColdCore, see: @help Credit