A better way to do this is to add a new function on Room asking it whether it allows harmful enchantments.  The default implementation in Room will return TRUE, and the override in GuildHall will return FALSE.  The message should be changed not to be so specific to guild halls (or if you really want this message, have the function return the resource to display, or $ in the default implementation).

This allows more flexibility in the future.  IsClass is bad.