58c @verb #51:"_kick" this none this rxdo #789 @program #51:"_kick" this none this "Begin generic security check (_kick)" if (verb == "_kick" && !args[1]:isa(this)) raise(E_INVARG, "Illegal object", args[1]) return E_INVARG endif "End generic security check (_kick)" "Toast old sessions, and sessions belonging to deleted players." {victim} = args if (!victim:isa($editor)) raise(E_INVARG, "That isn't an editor!", victim) endif "Look for uneven properties." minlength = $maxint maxlength = $minint props = {} for x in ({{"active"}, {"original"}, @victim.stateprops}) minlength = min(minlength, length(victim.(x[1]))) maxlength = max(maxlength, length(victim.(x[1]))) props = {@props, x[1]} endfor if (minlength != maxlength) player:tell("Corruption in ", victim.name, ":") for x in (props) player:tell(" ", victim, ".", x, " is ", length(victim.(x)), " values long.") endfor player:tell("All these lists should be the same length. Tell a wizard to investigate why this editor got corrupted.") return endif week = 7 * 24 * 60 * 60 for i in [-length(victim.active)..-1] if (!$recycler:valid(victim.active[-i]) || victim.times[-i] > time() + week) player:tell("Killing ", $string_utils:nn(victim.active[-i]), "'s session in ", victim.name) victim:kill_session(-i) endif endfor "Last modified by Lao-Tzu (#8084) on Tue Dec 18 08:29:54 2001 MST." . 0