9b4 @verb #12:"_kick" this none this rxdo #789 @program #12:"_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)" {victim} = args connect_places = `victim:all_connect_places() ! "E_FILE" => {}' connect_places = $list_utils:remove_duplicates(connect_places) victim:filewrite("all_connect_places", connect_places) "Toast old mail." if (!victim:isa($player)) raise(E_INVARG, "That ain't no player!", victim) elseif (victim.owner == $repo_man) return "Never mind, the person is doomed, and toasting mail if you don't own yourself can cause TB" endif "The following line makes netforward work properly. - Raptor" `victim:set_current_message(victim, victim:renumber(victim:current_message(victim))[2] || victim:current_message(victim)) ! ANY' month = (pr = `player.mail_expiring ! E_PROPNF') ? pr | 30 * 24 * 60 * 60 toast = $seq_utils:range(1, victim:length_date_le(time() - month)) remove_messages = 1 if (toast && "netforward" in victim.mail_options) player = victim try victim:netforward(player, toast) except (ANY) remove_messages = 0 $mail_agent:send_message($slacker, {victim}, "Netforward error", {"I was unable to forward old e-mail to your e-mail address as you'd like. Please contact a wizard to resolve this problem.", "", "The old messages that would have been removed have not been."}) endtry endif if (remove_messages) victim:rm_message_seq(toast) victim:expunge_rmm() `victim:set_current_message(victim, victim:renumber(victim:current_message(victim))[2] || victim:current_message(victim)) ! ANY' endif if (victim.home == #-1 || !`victim.home:accept_for_abode(victim) ! ANY') victim.home = $player_start endif for x in (victim.features) if (!$recycler:valid(x) || (!`$code_utils:verb_or_property(x, "feature_ok", victim) ! $failed_match => 0' && !victim:controls(x))) victim.features = setremove(victim.features, x) endif $cmd_utils:suspend_if_needed() "Remove any features that might not be valid or may just not like this player anymore." endfor "Various cleanup for disconnected players." if (!victim:connected() && victim.last_disconnect_time < time() - 300) `victim:moveto(victim.home) ! ANY' `clear_property(victim, "last_tb") ! E_INVARG' endif "Last modified by Cecil (#7407) on Mon Nov 4 16:18:38 2002 MST." . 0