Short description of all modes and their meaning.
-------------------------------------------------

In VladBot 2.1* it was very easy possible to modify the required userlevel for 
a command ny simply changin the userlevel required in the commands table. With 
3.0, this is still possible, but the new usermode implementation was designed 
to make such modification not needed anymore.

VladBot 3.0 now has 3 "usermodes", each mode divided into submodes, and each
mode divided into several levels. The three modes are:
- Usermode - defines the access to the bot, to files, configuration and chanop
             on the channels maintained by VladBot
- Shitmode - restricts access to channels, modechanges, bot etc..
- Protmode - For userprotection, i.e. what to do when a user is kicked, banned
             or deopped.

Another set of modes related to these modes are the extended channel modes, 
which will be described later.

General remark: Not having a mode is same as having level 0 of the mode

===========
 USERMODES
===========
Description:
	These modes define the access to the bot, to files, configuration etc.
Following usermodes are availabe: 
	CMD FILE LIST CHAN NOTE GLBL OPER OP

CMD: 
----
Internal name: 			
	CMD_LVL_x
Number of sublevels: 		
	8 (0 through 7)
General description:
	This mode defines the access to the bots commands that do not fall 
	into one of the categories FILE LIST CHAN NOTE GLBL OPER OP,
	i.e "HELP" or "REHASH". Some of these commands are used for information
	services (that do not relate to the userlist), i.e. "HELP", "TIME", 
	some to configuration of the bot (i.e. "NICK")
Description of each level:
	0) No access. A user with this level does not have any access
	1) Safe, simple (information providing or user supporting)  commands
	2) Not used, free for future use
	3) More "dangerous" commands you might want everyone to use like
	   "SAY"
	4) Simple configuration of the bot. Sometimes and additional OP_LVL
	   is needed (SEE OP-mode)
	5) Not used, free for future use
	6) Dangerous commands that should be used by operators only (usually
	   combined with OP_LVL)
	7) Not used, free for future use
	
FILE:
-----
Internal name:
	FILE_LVL_x
Number of sublevels:
	4 (0 through 3)
General description:
	This mode defines access to FILE and DCCFTP related commands like
	"SEND", "LS"
Description of each level:
	0) No access. A user with this level cannot use any commands or access
	   any file
	1) This user can use all FTPDCC commands like PWD, CD, LS, GET etc.
	   on files and directories that require FILE level 1
	2) A user with level 2 can access all files that require level 2
	3) A user with level 3 can access all files that require level 3
Remarks:
	In future, FILE level 3 combined with OP level or SOP lvl can access
	commands like "mkdir", "rm" etc.
	Access to files can also be restricted to certain users (possibly 
	combined with a FILE level). Read "FTPDCC" for more info.

LIST:
-----
Internal name:
	LIST_LVL_x
Number of sublevels:
        4 (0 through 3)
General description:
	This mode defines general userlist access. This can mean access to
	information, but also access to make changes in the userlist.
Description of each level:
	0) No access. No information can be requested and no changes can be 
	   made
	1) Access to information providing functions as "USERLIST" etc.
	2) Access to the userlist, but restricted to the users own entry
	   (i.e. "CHFN"). Users who have SOP level can also use the "-u" switch
	   to change other users passwd.
	3) Access to add new users and possibly change their usermodes (this
	   also depends on the usermodes of the user that is being changed)
	   This level also gives access to "register" users
Remarks:
	Deleting a user isn't possible anymore. If you want to take away a
	users access, lower his modes.
	There are restrictions when adding or changing usermodes! For example,
	it's not possible to give modes higher than your own, and it's also
	not possible to lower someones modes if his modes are higher

CHAN:
-----
Internal name:
	CHAN_LVL_x
Number of sublevels:
        4 (0 through 3)
General description:        
	This mode defines access to commands that perform functions on
	channels such as kicking, banning, doing an action or changing the
	mode
Description of each level:
	0) No access to any of the commands
	1) Access to channel information functions such as "SHOWUSERS" and 
	   "CHANNELS"
	2) Access to channelcommands that perform simple actions such as 
	   ban and kick
	3) - without SOP level:
	     Remove bans and/or keys so the channel can be joined again
	     (only if the extended channel mode allows this, see EXTMODE)
	   - with SOP level:
	     "Dangerous" commands such as MASSKICK, LEAVE etc...
Remarks:
	Access to the op/giveop commands are defined in the OPER level
 	his scheme might need reconsideration.

OPER:
-----
Internal name:
	OPER_LVL_x
Number of sublevels:
	4 (0 through 3)
General description:
	This modes defines access to commands that change operator status on 
	a channel 
Description of each level:
	0) No access
	1) Access to the "OP" command
	2) Spread ops or remove them from users
	3) Not used, free for future use
Remarks:
	Operatorstatus protection is defined in one of the protmodes.

NOTE:
-----
Internal name:
	NOTE_LVL_x
Number of sublevels:
	4 (0 through 3)
General description:
	Access to the notecommands.
Description of each level: 
	(not defined yet)
Remarks:
	Levels will be defined as soon as the new notesystem will be 
	implemented.

GLBL:
-----
Internal name:
	GLBL_LVL_x
Number of sublevels:
        4 (0 through 3)
General description:
	Access to the global commands
Description of each level:
	0) No access
	1) Information functions such as "LIST" and "INFO"
	2) Not used, free for future use
	3) (combined with SOP or OP level)
	   OP: Kill one or more bots
	   SOP: Change global configuration

OP:
---
Internal name:
	NOP_LVL LOP_LVL SOP_LVL OP_LVL
Number of sublevels:
	4 (None, Low, Semi and Full)
General description:
	Additional operator access, restricted to very special ppl
Description of each level:
	0) No special operator level
	1) Low operator level, hardly used
	2) Semi operator level, used to do general maintainance
	3) Full operator level, do anything you like

===========
 PROTMODES
===========
Description:
	These modes define the protection of users, i.e. what the bot does
	when a user is kicked, banned, deopped etc
Following protmodes are availabe: 
	DEOP KICK BANN MASS SUPER

DEOP:
-----
Internal name:
	DEOP_LVL_x
Number of sublevels:
	4 (0 through 3)
General description:
	This mode defines what the bot should do when a user is deopped
Description of each level:
	0) No protection. Bot will do nothing
	1) Reop the user
	2) Deop the one who deopped
	3) Kick the deopper

KICK:
-----
Internal name:
	KICK_LVL_x
Number of sublevels:
        4 (0 through 3)
General description:
	This mode defines what the bot should do when a user is kicked
Description of each level:
        0) No protection. Bot will do nothing
	1) Kick the one who kicked 
	2) Kickban one who kicked
	3) Kickban + tmpshit

BANN:
-----
Internal name:
	BANN_LVL_x
Number of sublevels:
        4 (0 through 3)
General description:
	This mode defines what the bot should do when a user is banned
Description of each level:
        0) No protection. Bot will do nothing
	1) Remove the ban
	2) Kick the one who banned
	3) Unused (kickban?)

MASS:
-----
Internal name:
	MASS_LVL_x
Number of sublevels:
        4 (0 through 3)
General description:
	This mode defines what the bot should do when a mass-functions is 
	requested
Description of each level:
        0) No protection. Bot will do nothing
	1) protection against massdeop
	2) protection against masskick
	3) protection against massban (??)

SUPER:
------
Internal name:
	SUPR_LVL_x
Number of sublevels:
        4 (0 through 3)
General description:
	This mode is consulted when two "equal" users are having a war,
	when two 'equal' users have a war, first the protmode will be 
	resulted and then the supermode. If the two users are still equal,
	no action is taken. I.e. 
	user A: KICK2 SUPER3
	user B: KICK3 SUPER2 -> if A kicks B then A will be revenged
===========
 SHITMODES
===========
Description:
	These modes (temporary) restrict the prot and usermodes
Following shitmodes are availabe: 
	TEMP ACCS CHAN MODE

TEMP:
-----
Internal name:
	SHIT_PERM SHIT_TEMP
Number of sublevels:
	2 (permanent, temporary)
General description:
	This mode defines if the mode is temporary or permanent
Description of each level:
	PERM: Shit is permanent until removed by someone
	TEMP: Shit is temporary and will expire

ACCS:
-----
Internal name:
	SHIT_ACCS_x
Number of sublevels:
	4 (0 through 3)
General description:
	This mode restricts access to the bot's command, i.e. it takes away
	the users command/chan/... level
Description of each level:
	0) No shit, everythings fine
	1) The users mode is set to the default (except for those modes
	   that were below default, i.e. user has CMD1 and default is CMD3
	   -> user keeps CMD1)
	2) All modes are reset to 1 (unless one of the modes was 0)
	3) All modes are reset to 0

CHAN:
-----
Internal name:
	SHIT_CHAN_x
Number of sublevels:
	4 (0 through 3)
General description:
	This mode restricts access to channels
Description of each level:
	0) No shit, everythings fine
	1) User is not allowed to be op on channel
	2) Not used (suggestions?)
	3) User is not allowed to join channel (kickban)

MODE:
-----
I don't think this mode is needed, CHAN seems to cover all....
	
TODO: Figure out how to 'shit' protmodes (use access shit?)
Suggestion: add a two bit protection shit (prot on/off)
