fuzzball-muck / fuzzball

Ongoing development of the Fuzzball MUCK server software and associated functionality.
Other
47 stars 27 forks source link

MATCH behavior with exists taking args (SF issue) #625

Open tanabi opened 3 years ago

tanabi commented 3 years ago

To give an example: If you have an action named 'a' that takes arguments and a program like this:

: main "a thing" match unparseobj .tell ;

It will match the action a if there is no 'a thing' object in the vicinity...

This is an artifact of the fact the matching code is used to match commands, but seems undesriable behavior.

I feel that we should remove this behavior from the MATCH, etc. primitives as it's likely to only confuse people.

Prehaps we could have a MATCH_EXIT primitive to keep this behavior, which would allow people to get whether it was a split match like 'a thing' is?

......

I have another idea for this 'problem':

For compatability purposes I believe that 'match' should be left as is... Just in case. But instead, why not add a new set of match prims: 'full_match' it would require for the full string to be matched to an object/exit/etc. And also a set of prims that will match the string to different object types. Ie. prog_match, thing_match, exit_match, room_match... Sort of like your 'match_exit' idea. Of course, since I'm not one of the developers I am merely submitting this as an idea to think on. It is just that I believe that compatability is very important, even though it is also a good idea to make it possible to do, well, more. :)

.....

What would be nice actually is if MATCH took two parmeters, one for the search string, and one for type of objects to look for, muck like @find allowed things like '@find guest=p' to find any players named guest. Probably best added as a new primitive.