This should help with your issue #5. I'm not sure if it'll merge cleanly because of other changes you made, but take a look.
Moving bot name to a variable.
Now the behavior and output are the same as before, but everything
depends on the bot.name property, nothing in bot.on('speak') is
Getting the bot name on start.
Simply calling userInfo when the bot starts up and storing that in the
Thanks I'll look at it tonight or tomorrow.
Looks good. I'm just gonna merge first, ask questions later :D