add gitignore
Improve join/part/quit/mode handling