[Coldstuff] To all cold admins out there: bug fixes
Bruce Mitchener
coldstuff@cold.org
Sun, 13 Jan 2002 11:27:28 -0700
Brandon Gillespie wrote:
> On Sun, Jan 13, 2002 at 01:01:48AM +0100, xmath wrote:
>
>>3. Users can be trapped in a $location with no means of escape, by
>>overriding $location.will_leave to always throw an error. Solution:
>>allow the manager of an object to eject it. On a side note: perhaps
>>eject should allow ejecting objects to their .home() instead. And why
>>not add an argument to .move_to to remove the will-checks (will_move,
>>will_leave, will_arrive) if the sender() is properly authorized.
>>eject can then just check perms and determine the right destination,
>>and call the unchecked version of .move_to. Saves code-duplication.
>>An @eject command would be nice too (and @eject! for a rude version,
>>in case the offending place *is* your home)
>
> What situations can you forsee where .will_leave would be throwing an
> improper error AND the user wasn't the one who caused the error and
> thus couldn't remove or fix .will_leave in their current location...?
>
> It seems more like a workaround for poorly written code; my personal
> philosophy is if a programmer gets themselves in a bind, they can work
> themselves out of it, rather than building the system to be able to be
> nice to them for their oversight :)
No, the problem is that .will_leave and .will_arrive are called on the
locations, so that's code that the user doesn't and can't control. Yet
that code can still trap them somewhere.
- Bruce