@verb #490:"update_users" this none this rxdo #55 @program #490:"update_users" this none this "This evil-laggy-monster-bad-smack-smack verb should not be called very often." if ($code_utils:task_valid(this.frozen)) return player:tell("Users list is in the process of updating...") endif this.frozen = task_id() users = modes = {} "Stage 1: Check existing users list, make sure it's all valid and store usermodes accordingly." for user in (this.users) if (valid(user) && (user:isa($player) && is_player(user)) || user:isa(#5450)) users = {@users, user} modes = {@modes, `this.modes[user in this.users] ! E_RANGE => 1'} endif $command_utils:suspend_if_needed() endfor "Stage 2: Check to see if anyone has managed to add the feature without the feature knowing it, and compare with current users lists." nusers = {} "Take a deeeep breath...and hold." for p in (players()) if (`this in p.features ! E_PROPNF') if (p:isa($player) && is_player(p) && !(p in users)) nusers = {@nusers, p} endif endif $command_utils:suspend_if_needed() endfor "Stage 3: Add the new users...I suppose." for x in (nusers) users = {@users, x} modes = {@modes, 1} $command_utils:suspend_if_needed() endfor "Stage 4: Set the new lists and unfreeze." this.users = users this.user_modes = modes player:tell("Done updating user list and user modes.") "Last modified by Raptor (#6319) on Tue Sep 15 14:39:36 1998 EDT." "This verb previously owned by Raptor (#6319), and chowned to $slacker upon dewizarding (Sat Aug 17 14:48:43 2002 MDT)." "Last modified by Dax (#789) on Sat Aug 17 14:48:43 2002 MDT." .