/
I haven't gotten far yet, sadly. You are correct about the player's input being an issue, and the mapping has some issues to resolve, but the biggest problem is actually the interactions between objects or the player and objects.
For instance, the 'push' command is going to mean something different to every entity. Some won't respond (default response) but others might move or react.
I actually implemented that once in C# in such a way that it confused most of the other developers and they quit. I offered to scrap my code, but that was kind of the end of the project. -sigh-
Fair Warning: I think I as far as I got was logging in. I don't remember if I got any commands working at all.
http://rubyforge.org/projects/textualize/
I will probably move it to GitHub soon as I've been thinking about working on it again.
[0] http://inform7.com/ [1] http://www.tads.org/ [2] http://undum.com/