+ MODE <nickname> [{+|-}<mode>[<mode>] [{+|-}<mode>[<mode>] [...]]]
+ MODE <channel> [{+|-}<mode>[<mode>] [<arg> [<arg> [...]]] [{+|-}<mode>[<mode>] [<arg> [<arg> [...]]] [...]]]
+ .
+ Set and get user and channel modes.
+ .
+ When no mode parameters are given, the currently set user or channel
+ modes are returned. Otherwise the modes are adjusted accordingly
+ and the changes will be reported back to the client.
+ .
+ All user and chnnel "modes" are indicated by single case-sensitive
+ characters.
+ .
+ Please note that a user can only get and set his own modes, and not
+ all user "levels" are allowed to change all channel modes ...
+ .
+ The mode parameters can become quite complex, especially when dealing
+ with channel modes that require additional arguments: