Switch to edit mode.
Name(s): @sw*eep1: "An improved version of @sweep created by $goth."
2: "The output is nicer too."
3: found_listener = 0
4: here = this.location
5: listening = listeners = {}
6: for x in (here.contents)
7: listening = {@listening, x}
8: for y in (x.contents)
9: if (`y.listen_in_location2 ! E_PROPNF => 0')
10: listening = {@listening, y}
11: endif
12: endfor
13: endfor
14: for thing in ($list_utils:Reverse($list_utils:sort(listening)))
15: for x in ({"notify", "tell"})
16: notifywhere = thing:has_verb(x)
17: if (!!notifywhere && `!!!(verb_info(notifywhere[1], x)[1] in {$slacker, $hacker}) ! E_PERM => 1' || is_player(thing) || thing:connected(1))
18: listeners = {@listeners, {$html_utils:detag(thing:title()), tostr(thing), tostr($code_utils:classify_object(thing)), $html_utils:detag(thing.owner:title()), tostr(thing.owner), $goth:on(thing, notifywhere, x)}}
19: break
20: endif
21: endfor
22: $cmd_utils:suspend_if_needed()
23: endfor
24: buggers = {}
25: for v in ({"announce", "announce_all", "announce_all_but", "say", "emote", "huh", "here_huh", "huh2", "whisper", "msg_oexclaim", "msg_exclaim", "msg_oquestion", "msg_question", "msg_osay", "msg_say", "match"})
26: vwhere = here:has_verb(v)
27: if (vwhere && ((owner = verb_info(vwhere[1], v)[1]) != this && (owner != $slacker && owner != $hacker)))
28: buggers = setadd(buggers, owner)
29: endif
30: endfor
31: "listeners = {@listeners, buggers};"
32: "if (!found_listener)"
33: " this:tell(\"Communications look secure.\");"
34: "endif"
35: player:tellcolumns("lrrlrr", {1, 1, 1, 1, 1, 1}, {"Object", "", "", "Owner", "", "Listening"}, @$list_utils:reverse($list_utils:sort_alist(listeners, 6)))
36: player:tell("Total number of listeners: ", length(listeners), " ", player:ctime())