@q @program D-Lock.muf 1 9999 d i ( D-Lock.muf v1.0 Jessy @ FurryMUCK 4/97 A small anti-spam utility. Global commands locked to D-Lock will exit with a graceful fail when the program is set Debug, rather than subjecting unsuspecting players to epic spam. You can create a new, temporary command to run the program from when debugging, or you can @chown the program: D-Lock always passes for the program's owner. The lock on the global will release when you're through debugging. INSTALLATION: There are no special installation requirements for using D-Lock simply as a lock, though a registered name is convenient. To add a locking utility, create an action named '@dlock' and link it to D-Lock.muf. The program requires Mucker level 2, but runs better at W: permission is denied if the user doesn't control the trigger, and attempts to @dlock unauthorized objects won't crash. USE: To d-lock a command without setting a fail, simply lock the command to D-Lock.muf. For example, @lock page=<D-Lock.muf's #dbref> The locking utility sets the lock and adds a fail of 'This command is currently down for maintenance.'. Ex: @dlock page D-Lock.muf may be freely ported. Please comment any changes. ) : DoSetLock match dup not if "I don't see that here!" .tell exit then dup #-2 dbcmp if "I'm not sure which one you mean!" .tell exit then dup me @ swap controls not if "Permission denied." .tell exit then dup "_/lok" getprop if "This command is already locked. Please @unlock it so I " "won't accidently overwrite something you really need." strcat .tell exit then dup program? if "You need to lock the command action, not the program." .tell exit then dup getlink not if "The command needs to be linked to a program." .tell exit then dup "#" prog intostr strcat setlockstr pop "This command is currently down for maintenance." setfail "Locked." .tell ; : main "me" match me ! command @ "@dlock" smatch if DoSetLock exit then trig getlink dup ok? if dup program? if dup owner me @ dbcmp if pop 1 exit then "D" flag? if pop 0 else pop 1 then else pop 1 then else pop 1 then ; . c q