Simplest way to disallow most actions involving an item?

I have an object that the player should only be able to interact with via the EXAMINE command. I thought I could do something like this:

The player carries an open container called the emotional baggage. Before doing anything other than examining to emotional baggage: instead say "It's not real, bro."

But then testers discovered people could insert things into it, necessitating the addition of this:

Before inserting anything into emotional baggage: instead say "It’s not real, bro."

…and then there’s a legal throwing action in my game, so now I’ve had to add:

Before doing anything other than examining with emotional baggage: instead say "It's not real, bro."

…but I have zero confidence that these rules are actually enough to catch all possible places that this item could appear in player commands.

Is there a simpler, ideally single-rule method I can use to disallow all attempts to interact with item except via examining?


[code]House is a room.

Daddy’s cake is a thing in House. The description is “Covered all over with chocolate frosting and candied cherries.”

Instead of doing something other than examining when the current action involves the cake:

Test me with “x cake / eat cake / tie me to cake”.[/code]

Aha! I had thought it was something like that, but I searched for “involved” instead of “involves” in the docs, oops!

Many thanks.

Would “Instead of doing something when the noun is the baggage or the second noun is the baggage” have any issues other than prolixity? Frex, would it take more time or memory? (I suppose it misses cases where the baggage is the actor, but that doesn’t seem like it’d be a big problem.)

It would be fine (except for not checking the actor, as you say). It would take fractionally less time. The “current action” requires a little bit of array-reading to locate, whereas “noun” and “second noun” are global variables and very fast to access.