How to modify CoffeeMud: Open up the source files in a text editor. Read them.
Reading source is not like reading english, it's more like reading a picture of the screen all at once. Trying to get a picture of the objects, variables, where they go, how they get there, and what they do while they are there.
If you wish to understand the internals of coffeemud, learn a programming language (Java, C++, C, python, whatever.) Then go to www.google.com Read up on sockets (sockets ARE network connections) Read up on file i/o Read up on multi-threaded programming (creating threads, how threads destroy themselfs, and mutex's) Read up on linked lists (vectors and hashtables, especially vectors) The user input in coffeemud comes in in the telnetsession.java file The user input then flows to StdMOB.java, and is enqueud or passed to the command processor. If it's enqueued it's stored in a vector along with an integer value, the integer value is counted down every 1 or 3 seconds (whether or not you use the combat patch or not, respectively) The execute function then compares the user input against all available commands to the user, it may or may not modify it, then eventually returns a command or ability, on which execute(MOB THIS, vector commands) is called.