1312 lines
		
	
	
		
			33 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
		
		
			
		
	
	
			1312 lines
		
	
	
		
			33 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
|  | /* | ||
|  |  * Example configuration file for ChanServ. | ||
|  |  */ | ||
|  | 
 | ||
|  | /* | ||
|  |  * First, create the service. | ||
|  |  */ | ||
|  | service | ||
|  | { | ||
|  | 	/* | ||
|  | 	 * The name of the ChanServ client. | ||
|  | 	 * If you change this value, you probably want to change the client directive in the configuration for the chanserv module too. | ||
|  | 	 */ | ||
|  | 	nick = "ChanServ" | ||
|  | 
 | ||
|  | 	/* | ||
|  | 	 * The username of the ChanServ client. | ||
|  | 	 */ | ||
|  | 	user = "services" | ||
|  | 
 | ||
|  | 	/* | ||
|  | 	 * The hostname of the ChanServ client. | ||
|  | 	 */ | ||
|  | 	host = "ircservices.{{ external_domain }}" | ||
|  | 
 | ||
|  | 	/* | ||
|  | 	 * The realname of the ChanServ client. | ||
|  | 	 */ | ||
|  | 	gecos = "Channel Registration Service" | ||
|  | 
 | ||
|  | 	/* | ||
|  | 	 * The modes this client should use. | ||
|  | 	 * Do not modify this unless you know what you are doing. | ||
|  | 	 * | ||
|  | 	 * These modes are very IRCd specific. If left commented, sane defaults | ||
|  | 	 * are used based on what protocol module you have loaded. | ||
|  | 	 * | ||
|  | 	 * Note that setting this option incorrectly could potentially BREAK some, if | ||
|  | 	 * not all, usefulness of the client. We will not support you if this client is | ||
|  | 	 * unable to do certain things if this option is enabled. | ||
|  | 	 */ | ||
|  | 	#modes = "+o" | ||
|  | 
 | ||
|  | 	/* | ||
|  | 	 * An optional comma separated list of channels this service should join. Outside | ||
|  | 	 * of log channels this is not very useful, as the service will just idle in the | ||
|  | 	 * specified channels, and will not accept any types of commands. | ||
|  | 	 * | ||
|  | 	 * Prefixes may be given to the channels in the form of mode characters or prefix symbols. | ||
|  | 	 */ | ||
|  | 	#channels = "@#services,#mychan" | ||
|  | } | ||
|  | 
 | ||
|  | /* | ||
|  |  * Core ChanServ module. | ||
|  |  * | ||
|  |  * Provides essential functionality for ChanServ. | ||
|  |  */ | ||
|  | module | ||
|  | { | ||
|  | 	name = "chanserv" | ||
|  | 
 | ||
|  | 	/* | ||
|  | 	 * The name of the client that should be ChanServ. | ||
|  | 	 */ | ||
|  | 	client = "ChanServ" | ||
|  | 
 | ||
|  | 	/* | ||
|  | 	 * The default options for newly registered channels. Note that changing these options | ||
|  | 	 * will have no effect on channels which are already registered. The list must be separated | ||
|  | 	 * by spaces. | ||
|  | 	 * | ||
|  | 	 * The options are: | ||
|  | 	 * -      keeptopic: Retain topic when the channel is not in use | ||
|  | 	 * -          peace: Disallow users from kicking or removing modes from others who are of the same | ||
|  | 	 *                     access level or superior | ||
|  | 	 * -     cs_private: Hide the channel from ChanServ's LIST command | ||
|  | 	 * -     restricted: Kick/ban users who are restricted from the channel | ||
|  | 	 * -      cs_secure: Enable channel security, requiring the user to be identified with NickServ in | ||
|  | 	 *                     order to be considered for being on the access list of the channel | ||
|  | 	 * -      secureops: Only allow operator status to be given if the user is on the access list | ||
|  | 	 * -  securefounder: Only allow the real founder of the channel to drop the channel, change it's | ||
|  | 	 *                     password, or change the founder or successor | ||
|  | 	 * -       signkick: Use of ChanServ's KICK command will cause the user's nick to be signed to the kick. | ||
|  | 	 * - signkick_level: Same as above, but the kick will not be signed if the user is at the same access | ||
|  | 	 *                     level or superior to the target | ||
|  | 	 * -      topiclock: Disallow the topic to be changed except with ChanServ's TOPIC command | ||
|  | 	 * -        persist: Keep the channel open at all times | ||
|  | 	 * -       noautoop: Disables autoop on the channel | ||
|  | 	 * -  cs_keep_modes: Enables keep modes on the channel, which retains modes when the channel is | ||
|  | 	 *                     not in use. | ||
|  | 	 * -           none: No defaults | ||
|  | 	 * | ||
|  | 	 * This directive is optional, if left blank, the options will default to keeptopic, cs_secure, securefounder, | ||
|  | 	 * and signkick. If you really want no defaults, use "none" by itself as the option. | ||
|  | 	 */ | ||
|  | 	defaults = "keeptopic peace cs_secure securefounder secureops topiclock persist cs_keep_modes signkick topiclock" | ||
|  | 
 | ||
|  | 	/* | ||
|  | 	 * The maximum number of channels which may be registered to a single nickname. | ||
|  | 	 * | ||
|  | 	 * This directive is optional, but recommended. | ||
|  | 	 * If not set, there will be no restriction on the numbers of channels a single nickname can have registered. | ||
|  | 	 */ | ||
|  | 	maxregistered = 20 | ||
|  | 
 | ||
|  | 	/* | ||
|  | 	 * The length of time before a channel registration expires. | ||
|  | 	 * | ||
|  | 	 * This directive is optional, but recommended. | ||
|  | 	 * If not set, the default is 14 days. | ||
|  | 	 */ | ||
|  | 	expire = 14d | ||
|  | 
 | ||
|  | 	/* | ||
|  | 	 * The maximum number of entries on a channel's access list. | ||
|  | 	 * If not set, the default is 1024. This can be set to 0 for unlimited. | ||
|  | 	 */ | ||
|  | 	accessmax = 1024 | ||
|  | 
 | ||
|  | 	/* | ||
|  | 	 * The length of time ChanServ stays in a channel after kicking a user from a channel they are not | ||
|  | 	 * permitted to be in. This only occurs when the user is the only one in the channel. | ||
|  | 	 */ | ||
|  | 	inhabit = 15s | ||
|  | 
 | ||
|  | 	/* | ||
|  | 	 * Allow only IRC Operators to use ChanServ. | ||
|  | 	 * | ||
|  | 	 * This directive is optional. | ||
|  | 	 */ | ||
|  | 	#opersonly = yes | ||
|  | 
 | ||
|  | 	/* | ||
|  | 	 * Modes that will not be allowed to be locked. Oper only modes such as +O | ||
|  | 	 * are always restricted from regular users and are not affected by this. | ||
|  | 	 * Comment out for no restrictions. | ||
|  | 	 */ | ||
|  | 	#nomlock = "P" | ||
|  | 
 | ||
|  | 	/* | ||
|  | 	 * Modes that are required to be set and only set on all registered channels. | ||
|  | 	 * These modes can not be locked or unlocked. The registered channel mode is | ||
|  | 	 * automatically always required, if such a mode exists. | ||
|  | 	 */ | ||
|  | 	#require = "r" | ||
|  | 
 | ||
|  | 	/* | ||
|  | 	 * The maximum length of the reason field for user commands such as chanserv/kick | ||
|  | 	 * and chanserv/ban. | ||
|  | 	 */ | ||
|  | 	reasonmax = 200 | ||
|  | 	/* | ||
|  | 	 * The message formatting to use for signed kick messages. | ||
|  | 	 * %n is the nick of the kicker | ||
|  | 	 * %m is the message specified | ||
|  | 	 */ | ||
|  | 	signkickformat = "%m (%n)" | ||
|  | 
 | ||
|  | 
 | ||
|  | 	/* | ||
|  | 	 * If set, prevents channel access entries from containing hostmasks. | ||
|  | 	 */ | ||
|  | 	disallow_hostmask_access = false | ||
|  | 
 | ||
|  | 	/* | ||
|  | 	 * If set, prevents channels from being on access lists. | ||
|  | 	 */ | ||
|  | 	disallow_channel_access = false | ||
|  | 
 | ||
|  | 	/* | ||
|  | 	 * If set, ChanServ will always lower the timestamp of registered channels to their registration date. | ||
|  | 	 * This prevents several race conditions where unauthorized users can join empty registered channels and set | ||
|  | 	 * modes etc. prior to services deopping them. | ||
|  | 	 */ | ||
|  | 	always_lower_ts = false | ||
|  | } | ||
|  | 
 | ||
|  | /* | ||
|  |  * ChanServ privilege configuration. | ||
|  |  * | ||
|  |  * ChanServ privileges are used to determine who has what access in channels. By default the core has its own | ||
|  |  * set of privileges it uses for various commands, which are defined below. Privilege ranks are used to | ||
|  |  * determine how powerful privileges are relative to other privileges, which is used by Anope to determine | ||
|  |  * who has greater access in a channel. | ||
|  |  * | ||
|  |  * If you load cs_access, you may define a level for the privilege, which is used by chanserv/access and chanserv/levels. | ||
|  |  * The levels defined will be used as the default levels for newly registered channels. | ||
|  |  * The level "founder" is a special level which means anyone with the privilege FOUNDER on the channel | ||
|  |  * has that permission. Additionally, the level "disabled" means that no one can use the privilege, including founders. | ||
|  |  * | ||
|  |  * If you load cs_flags, you may define a flag associated with that privilege for use in chanserv/flags. | ||
|  |  * | ||
|  |  * If you load cs_xop, you may define a XOP command to associate the privilege with. | ||
|  |  * | ||
|  |  * The name of privileges are uesd to associate them with channel modes. If you are using an IRCd that allows you to define additional | ||
|  |  * channel status modes, such as InspIRCd, you can associate privileges (and thus access levels, flags, xop) with the mode by naming | ||
|  |  * the privileges appropriately. For example, if you had a channel mode called admin, you could create AUTOADMIN, ADMIN, and ADMINME | ||
|  |  * privileges which would automatically be associated with that channel mode. | ||
|  |  * | ||
|  |  * Defining new privileges here is not useful unless you have a module (eg, a third party one) made to check for | ||
|  |  * the specific level you are defining. | ||
|  |  * | ||
|  |  * Sane defaults are provided below that do not need to be edited unless you wish to change the default behavior. | ||
|  |  */ | ||
|  | 
 | ||
|  | /* | ||
|  |  * ACCESS_CHANGE privilege. | ||
|  |  * | ||
|  |  * Used by chanserv/access, chanserv/flags and chanserv/xop. | ||
|  |  * | ||
|  |  * Users with this permission can modify the permissions of others. | ||
|  |  */ | ||
|  | privilege | ||
|  | { | ||
|  | 	name = "ACCESS_CHANGE" | ||
|  | 	rank = 0 | ||
|  | 	level = 10 | ||
|  | 	flag = "f" | ||
|  | 	xop = "SOP" | ||
|  | } | ||
|  | 
 | ||
|  | /* | ||
|  |  * ACCESS_LIST privilege. | ||
|  |  * | ||
|  |  * Used by chanserv/access, chanserv/flags, and chanserv/xop. | ||
|  |  * | ||
|  |  * Users with this permission can view the access list of channels. | ||
|  |  */ | ||
|  | privilege | ||
|  | { | ||
|  | 	name = "ACCESS_LIST" | ||
|  | 	rank = 10 | ||
|  | 	level = 3 | ||
|  | 	flag = "f" | ||
|  | 	xop = "VOP" | ||
|  | } | ||
|  | 
 | ||
|  | /* | ||
|  |  * AKICK privilege. | ||
|  |  * | ||
|  |  * Used by chanserv/akick and chanserv/enforce. | ||
|  |  * | ||
|  |  * Users with this permission can modify the AKICK list. | ||
|  |  */ | ||
|  | privilege | ||
|  | { | ||
|  | 	name = "AKICK" | ||
|  | 	rank = 250 | ||
|  | 	level = 10 | ||
|  | 	flag = "K" | ||
|  | 	xop = "SOP" | ||
|  | } | ||
|  | 
 | ||
|  | /* | ||
|  |  * ASSIGN privilege. | ||
|  |  * | ||
|  |  * Used by botserv/assign. | ||
|  |  * | ||
|  |  * Users with this permission can assign and unassign BotServ bots to and from the channel. | ||
|  |  */ | ||
|  | privilege | ||
|  | { | ||
|  | 	name = "ASSIGN" | ||
|  | 	rank = 270 | ||
|  | 	level = "founder" | ||
|  | 	flag = "s" | ||
|  | 	xop = "QOP" | ||
|  | } | ||
|  | 
 | ||
|  | /* | ||
|  |  * AUTOHALFOP privilege. | ||
|  |  * | ||
|  |  * Used by the core. | ||
|  |  * | ||
|  |  * Users with this permission get halfop on join. | ||
|  |  */ | ||
|  | privilege | ||
|  | { | ||
|  | 	name = "AUTOHALFOP" | ||
|  | 	rank = 100 | ||
|  | 	level = 4 | ||
|  | 	flag = "H" | ||
|  | 	xop = "HOP" | ||
|  | } | ||
|  | 
 | ||
|  | /* | ||
|  |  * AUTOOP privilege. | ||
|  |  * | ||
|  |  * Used by the core. | ||
|  |  * | ||
|  |  * Users with this permission get op on join. | ||
|  |  */ | ||
|  | privilege | ||
|  | { | ||
|  | 	name = "AUTOOP" | ||
|  | 	rank = 210 | ||
|  | 	level = 5 | ||
|  | 	flag = "O" | ||
|  | 	xop = "AOP" | ||
|  | } | ||
|  | 
 | ||
|  | /* | ||
|  |  * AUTOOWNER privilege. | ||
|  |  * | ||
|  |  * Used by the core. | ||
|  |  * | ||
|  |  * Users with this permission get owner on join. | ||
|  |  */ | ||
|  | privilege | ||
|  | { | ||
|  | 	name = "AUTOOWNER" | ||
|  | 	rank = 330 | ||
|  | 	level = 9999 | ||
|  | 	flag = "Q" | ||
|  | 	xop = "QOP" | ||
|  | } | ||
|  | 
 | ||
|  | /* | ||
|  |  * AUTOPROTECT privilege. | ||
|  |  * | ||
|  |  * Used by the core. | ||
|  |  * | ||
|  |  * Users with this permission get admin on join. | ||
|  |  */ | ||
|  | privilege | ||
|  | { | ||
|  | 	name = "AUTOPROTECT" | ||
|  | 	rank = 240 | ||
|  | 	level = 10 | ||
|  | 	flag = "A" | ||
|  | 	xop = "SOP" | ||
|  | } | ||
|  | 
 | ||
|  | /* | ||
|  |  * AUTOVOICE privilege. | ||
|  |  * | ||
|  |  * Used by the core. | ||
|  |  * | ||
|  |  * Users with this permission get voice on join. | ||
|  |  */ | ||
|  | privilege | ||
|  | { | ||
|  | 	name = "AUTOVOICE" | ||
|  | 	rank = 50 | ||
|  | 	level = 3 | ||
|  | 	flag = "V" | ||
|  | 	xop = "VOP" | ||
|  | } | ||
|  | 
 | ||
|  | /* | ||
|  |  * BADWORDS privilege. | ||
|  |  * | ||
|  |  * Used by botserv/badwords. | ||
|  |  * | ||
|  |  * Users with this permission can modify BotServ's BADWORDS list. | ||
|  |  */ | ||
|  | privilege | ||
|  | { | ||
|  | 	name = "BADWORDS" | ||
|  | 	rank = 260 | ||
|  | 	level = 10 | ||
|  | 	flag = "K" | ||
|  | 	xop = "SOP" | ||
|  | } | ||
|  | 
 | ||
|  | /* | ||
|  |  * BAN privilege. | ||
|  |  * | ||
|  |  * Used by chanserv/ban. | ||
|  |  * | ||
|  |  * Users with this permission can use the BAN command. | ||
|  |  */ | ||
|  | privilege | ||
|  | { | ||
|  | 	name = "BAN" | ||
|  | 	rank = 150 | ||
|  | 	level = 4 | ||
|  | 	flag = "b" | ||
|  | 	xop = "HOP" | ||
|  | } | ||
|  | 
 | ||
|  | /* | ||
|  |  * FANTASIA privilege. | ||
|  |  * | ||
|  |  * Used by botserv/main and chanserv/xop. | ||
|  |  * | ||
|  |  * Users with this permission can use fantasy commands in the channel. | ||
|  |  */ | ||
|  | privilege | ||
|  | { | ||
|  | 	name = "FANTASIA" | ||
|  | 	rank = 30 | ||
|  | 	level = 3 | ||
|  | 	flag = "c" | ||
|  | 	xop = "VOP" | ||
|  | } | ||
|  | 
 | ||
|  | /* | ||
|  |  * FOUNDER privilege. | ||
|  |  * | ||
|  |  * Used by chanserv/access, chanserv/akick, | ||
|  |  * chanserv/drop, chanserv/set/founder, | ||
|  |  * chanserv/set/securefounder, chanserv/set/successor and chanserv/xop. | ||
|  |  * | ||
|  |  * Users with this permission are treated as founders and can use | ||
|  |  * commands restricted to founders. | ||
|  |  */ | ||
|  | privilege | ||
|  | { | ||
|  | 	name = "FOUNDER" | ||
|  | 	rank = 360 | ||
|  | 	level = 10000 | ||
|  | 	flag = "F" | ||
|  | 	xop = "QOP" | ||
|  | } | ||
|  | 
 | ||
|  | /* | ||
|  |  * GETKEY privilege. | ||
|  |  * | ||
|  |  * Used by chanserv/getkey and nickserv/ajoin. | ||
|  |  * | ||
|  |  * Users with this permission can get they channel key with GETKEY and | ||
|  |  * can use nickserv/ajoin to join channels with keys. | ||
|  |  */ | ||
|  | privilege | ||
|  | { | ||
|  | 	name = "GETKEY" | ||
|  | 	rank = 180 | ||
|  | 	level = 5 | ||
|  | 	flag = "G" | ||
|  | 	xop = "AOP" | ||
|  | } | ||
|  | 
 | ||
|  | /* | ||
|  |  * HALFOP privilege. | ||
|  |  * | ||
|  |  * Used by chanserv/mode, chanserv/halfop and chanserv/dehalfop. | ||
|  |  * | ||
|  |  * Users with this permission can use ChanServ to halfop and dehalfop | ||
|  |  * others in the channel. | ||
|  |  */ | ||
|  | privilege | ||
|  | { | ||
|  | 	name = "HALFOP" | ||
|  | 	rank = 120 | ||
|  | 	level = 5 | ||
|  | 	flag = "h" | ||
|  | 	xop = "AOP" | ||
|  | } | ||
|  | 
 | ||
|  | /* | ||
|  |  * HALFOPME privilege. | ||
|  |  * | ||
|  |  * Used by chanserv/mode, chanserv/halfop and chanserv/dehalfop. | ||
|  |  * | ||
|  |  * Users with this permission can use ChanServ to halfop and dehalfop | ||
|  |  * themselves in the channel. | ||
|  |  */ | ||
|  | privilege | ||
|  | { | ||
|  | 	name = "HALFOPME" | ||
|  | 	rank = 110 | ||
|  | 	level = 4 | ||
|  | 	flag = "h" | ||
|  | 	xop = "HOP" | ||
|  | } | ||
|  | 
 | ||
|  | /* | ||
|  |  * INFO privilege. | ||
|  |  * | ||
|  |  * Used by botserv/info and chanserv/info. | ||
|  |  * | ||
|  |  * Users with this permission are allowed to get the full INFO output | ||
|  |  * from BotServ and ChanServ. | ||
|  |  */ | ||
|  | privilege | ||
|  | { | ||
|  | 	name = "INFO" | ||
|  | 	rank = 80 | ||
|  | 	level = 9999 | ||
|  | 	flag = "I" | ||
|  | 	xop = "QOP" | ||
|  | } | ||
|  | 
 | ||
|  | /* | ||
|  |  * INVITE privilege. | ||
|  |  * | ||
|  |  * Used by chanserv/invite and nickserv/ajoin. | ||
|  |  * | ||
|  |  * Users with this permission can invite users through ChanServ and | ||
|  |  * join invite only channels with nickserv/ajoin. | ||
|  |  */ | ||
|  | privilege | ||
|  | { | ||
|  | 	name = "INVITE" | ||
|  | 	rank = 190 | ||
|  | 	level = 5 | ||
|  | 	flag = "i" | ||
|  | 	xop = "AOP" | ||
|  | } | ||
|  | 
 | ||
|  | /* | ||
|  |  * KICK privilege. | ||
|  |  * | ||
|  |  * Used by chanserv/kick. | ||
|  |  * | ||
|  |  * Users with this permission can use the KICK command. | ||
|  |  */ | ||
|  | privilege | ||
|  | { | ||
|  | 	name = "KICK" | ||
|  | 	rank = 130 | ||
|  | 	level = 4 | ||
|  | 	flag = "k" | ||
|  | 	xop = "HOP" | ||
|  | } | ||
|  | 
 | ||
|  | /* | ||
|  |  * MEMO privilege. | ||
|  |  * | ||
|  |  * Used by memoserv/del, memoserv/ignore, memoserv/info, memoserv/list, | ||
|  |  * memoserv/main, memoserv/read and memoserv/set. | ||
|  |  * | ||
|  |  * Users with this permission can manage channel memos. | ||
|  |  */ | ||
|  | privilege | ||
|  | { | ||
|  | 	name = "MEMO" | ||
|  | 	rank = 280 | ||
|  | 	level = 10 | ||
|  | 	flag = "m" | ||
|  | 	xop = "SOP" | ||
|  | } | ||
|  | 
 | ||
|  | /* | ||
|  |  * MODE privilege. | ||
|  |  * | ||
|  |  * Used by chanserv/mode. | ||
|  |  * | ||
|  |  * Users with this permission can set modes through ChanServ and change | ||
|  |  * the mode lock. | ||
|  |  */ | ||
|  | privilege | ||
|  | { | ||
|  | 	name = "MODE" | ||
|  | 	rank = 170 | ||
|  | 	level = 9999 | ||
|  | 	flag = "s" | ||
|  | 	xop = "QOP" | ||
|  | } | ||
|  | 
 | ||
|  | /* | ||
|  |  * NOKICK privilege. | ||
|  |  * | ||
|  |  * Used by botserv/kick. | ||
|  |  * | ||
|  |  * Users with this permission are spared from automated BotServ kicks. | ||
|  |  */ | ||
|  | privilege | ||
|  | { | ||
|  | 	name = "NOKICK" | ||
|  | 	rank = 20 | ||
|  | 	level = 1 | ||
|  | 	flag = "N" | ||
|  | 	xop = "VOP" | ||
|  | } | ||
|  | 
 | ||
|  | /* | ||
|  |  * OP privilege. | ||
|  |  * | ||
|  |  * Used by chanserv/mode, chanserv/modes. | ||
|  |  * | ||
|  |  * Users with this permission can use ChanServ to op and deop | ||
|  |  * others in the channel. | ||
|  |  */ | ||
|  | privilege | ||
|  | { | ||
|  | 	name = "OP" | ||
|  | 	rank = 230 | ||
|  | 	level = 5 | ||
|  | 	flag = "o" | ||
|  | 	xop = "SOP" | ||
|  | } | ||
|  | 
 | ||
|  | /* | ||
|  |  * OPME privilege. | ||
|  |  * | ||
|  |  * Used by chanserv/mode, chanserv/modes. | ||
|  |  * | ||
|  |  * Users with this permission can use ChanServ to op and deop | ||
|  |  * themselves in the channel. | ||
|  |  */ | ||
|  | privilege | ||
|  | { | ||
|  | 	name = "OPME" | ||
|  | 	rank = 220 | ||
|  | 	level = 5 | ||
|  | 	flag = "o" | ||
|  | 	xop = "AOP" | ||
|  | } | ||
|  | 
 | ||
|  | /* | ||
|  |  * OWNER privilege. | ||
|  |  * | ||
|  |  * Used by chanserv/mode and chanserv/modes. | ||
|  |  * | ||
|  |  * Users with this permission can use ChanServ to owner and deowner | ||
|  |  * others in the channel. | ||
|  |  */ | ||
|  | privilege | ||
|  | { | ||
|  | 	name = "OWNER" | ||
|  | 	rank = 350 | ||
|  | 	level = "founder" | ||
|  | 	flag = "q" | ||
|  | 	xop = "QOP" | ||
|  | } | ||
|  | 
 | ||
|  | /* | ||
|  |  * OWNERME privilege. | ||
|  |  * | ||
|  |  * Used by chanserv/mode and chanserv/modes. | ||
|  |  * | ||
|  |  * Users with this permission can use ChanServ to owner and deowner | ||
|  |  * themselves in the channel. | ||
|  |  */ | ||
|  | privilege | ||
|  | { | ||
|  | 	name = "OWNERME" | ||
|  | 	rank = 340 | ||
|  | 	level = 9999 | ||
|  | 	flag = "q" | ||
|  | 	xop = "QOP" | ||
|  | } | ||
|  | 
 | ||
|  | /* | ||
|  |  * PROTECT privilege. | ||
|  |  * | ||
|  |  * Used by chanserv/mode and chanserv/modes. | ||
|  |  * | ||
|  |  * Users with this permission can use ChanServ to protect and deprotect | ||
|  |  * others in the channel. | ||
|  |  */ | ||
|  | privilege | ||
|  | { | ||
|  | 	name = "PROTECT" | ||
|  | 	rank = 310 | ||
|  | 	level = 9999 | ||
|  | 	flag = "a" | ||
|  | 	xop = "QOP" | ||
|  | } | ||
|  | 
 | ||
|  | /* | ||
|  |  * PROTECTME privilege. | ||
|  |  * | ||
|  |  * Used by chanserv/mode and chanserv/modes. | ||
|  |  * | ||
|  |  * Users with this permission can use ChanServ to protect and deprotect | ||
|  |  * themselves in the channel. | ||
|  |  */ | ||
|  | privilege | ||
|  | { | ||
|  | 	name = "PROTECTME" | ||
|  | 	rank = 300 | ||
|  | 	level = 10 | ||
|  | 	flag = "a" | ||
|  | 	xop = "AOP" | ||
|  | } | ||
|  | 
 | ||
|  | /* | ||
|  |  * SAY privilege. | ||
|  |  * | ||
|  |  * Used by botserv/control. | ||
|  |  * | ||
|  |  * Users with this permission can use the BotServ bot in the channel to | ||
|  |  * say or do a /me with the provided message. | ||
|  |  */ | ||
|  | privilege | ||
|  | { | ||
|  | 	name = "SAY" | ||
|  | 	rank = 90 | ||
|  | 	level = 5 | ||
|  | 	flag = "B" | ||
|  | 	xop = "AOP" | ||
|  | } | ||
|  | 
 | ||
|  | /* | ||
|  |  * SET privilege. | ||
|  |  * | ||
|  |  * Used by botserv/kick, botserv/set, chanserv/clone, chanserv/log, | ||
|  |  * chanserv/saset/noexpire and chanserv/set. | ||
|  |  * | ||
|  |  * Users with this permission can set what BotServ will kick for, change | ||
|  |  * BotServ and ChanServ settings, clone ChanServ channel setings, and | ||
|  |  * set ChanServ logging options. | ||
|  |  */ | ||
|  | privilege | ||
|  | { | ||
|  | 	name = "SET" | ||
|  | 	rank = 320 | ||
|  | 	level = 9999 | ||
|  | 	flag = "s" | ||
|  | 	xop = "QOP" | ||
|  | } | ||
|  | 
 | ||
|  | /* | ||
|  |  * SIGNKICK privilege. | ||
|  |  * | ||
|  |  * Used by chanserv/ban and chanserv/kick. | ||
|  |  * | ||
|  |  * Users with this permission won't get their nick shown in the kick | ||
|  |  * through ChanServ when the setting SIGNKICK is set to LEVEL. | ||
|  |  */ | ||
|  | privilege | ||
|  | { | ||
|  | 	name = "SIGNKICK" | ||
|  | 	rank = 140 | ||
|  | 	level = 9999 | ||
|  | 	flag = "K" | ||
|  | 	xop = "QOP" | ||
|  | } | ||
|  | 
 | ||
|  | /* | ||
|  |  * TOPIC privilege. | ||
|  |  * | ||
|  |  * Used by chanserv/topic. | ||
|  |  * | ||
|  |  * Users with this permission can change the channel topic through ChanServ. | ||
|  |  */ | ||
|  | privilege | ||
|  | { | ||
|  | 	name = "TOPIC" | ||
|  | 	rank = 160 | ||
|  | 	level = 5 | ||
|  | 	flag = "t" | ||
|  | 	xop = "AOP" | ||
|  | } | ||
|  | 
 | ||
|  | /* | ||
|  |  * UNBAN privilege. | ||
|  |  * | ||
|  |  * Used by chanserv/unban. | ||
|  |  * | ||
|  |  * Users with this permission can unban themselves and others through ChanServ. | ||
|  |  */ | ||
|  | privilege | ||
|  | { | ||
|  | 	name = "UNBAN" | ||
|  | 	rank = 200 | ||
|  | 	level = 4 | ||
|  | 	flag = "u" | ||
|  | 	xop = "HOP" | ||
|  | } | ||
|  | 
 | ||
|  | /* | ||
|  |  * VOICE privilege. | ||
|  |  * | ||
|  |  * Used by chanserv/mode and chanserv/modes. | ||
|  |  * | ||
|  |  * Users with this permission can use ChanServ to voice and devoice | ||
|  |  * others in the channel. | ||
|  |  */ | ||
|  | privilege | ||
|  | { | ||
|  | 	name = "VOICE" | ||
|  | 	rank = 70 | ||
|  | 	level = 4 | ||
|  | 	flag = "v" | ||
|  | 	xop = "HOP" | ||
|  | } | ||
|  | 
 | ||
|  | /* | ||
|  |  * VOICEME privilege. | ||
|  |  * | ||
|  |  * Used by chanserv/mode and chanserv/modes. | ||
|  |  * | ||
|  |  * Users with this permission can use ChanServ to voice and devoice | ||
|  |  * themselves in the channel. | ||
|  |  */ | ||
|  | privilege | ||
|  | { | ||
|  | 	name = "VOICEME" | ||
|  | 	rank = 60 | ||
|  | 	level = 3 | ||
|  | 	flag = "v" | ||
|  | 	xop = "VOP" | ||
|  | } | ||
|  | 
 | ||
|  | /* | ||
|  |  * Core ChanServ commands. | ||
|  |  * | ||
|  |  * In Anope modules can provide (multiple) commands, each of which has a unique command name. Once these modules | ||
|  |  * are loaded you can then configure the commands to be added to any client you like with any name you like. | ||
|  |  * | ||
|  |  * Additionally, you may provide a permission name that must be in the opertype of users executing the command. | ||
|  |  * | ||
|  |  * Sane defaults are provided below that do not need to be edited unless you wish to change the default behavior. | ||
|  |  */ | ||
|  | 
 | ||
|  | /* Command group configuration for ChanServ. | ||
|  |  * | ||
|  |  * Commands may optionally be placed into groups to make ChanServ's HELP output easier to understand. | ||
|  |  * Remove the following groups to use the old behavior of simply listing all ChanServ commands from HELP. | ||
|  |  */ | ||
|  | command_group | ||
|  | { | ||
|  | 	name = "chanserv/access" | ||
|  | 	description = _("Used to manage the list of privileged users") | ||
|  | } | ||
|  | 
 | ||
|  | command_group | ||
|  | { | ||
|  | 	name = "chanserv/status" | ||
|  | 	description = _("Used to modify the channel status of you or other users") | ||
|  | } | ||
|  | 
 | ||
|  | command_group | ||
|  | { | ||
|  | 	name = "chanserv/management" | ||
|  | 	description = _("Used to manage channels") | ||
|  | } | ||
|  | 
 | ||
|  | command_group | ||
|  | { | ||
|  | 	name = "chanserv/admin" | ||
|  | 	description = _("Services Operator commands") | ||
|  | } | ||
|  | 
 | ||
|  | /* Give it a help command. */ | ||
|  | command { service = "ChanServ"; name = "HELP"; command = "generic/help"; } | ||
|  | 
 | ||
|  | /* | ||
|  |  * cs_access | ||
|  |  * | ||
|  |  * Provides commands chanserv/access and chanserv/levels. | ||
|  |  * Provides the access system "levels". | ||
|  |  * | ||
|  |  * Used for giving users access in channels using a levels system. Allows allows redefining which privileges | ||
|  |  * are representated by given level on a per channel basis. | ||
|  |  * | ||
|  |  * The "LIST" subcommand of chanserv/access will show every access entry on the channel, including access | ||
|  |  * entries not added by cs_access. The "level" of these entries will be the representation of the access | ||
|  |  * entry by the other access system, which could be an XOP command name, or a set of flags. | ||
|  |  */ | ||
|  | module { name = "cs_access" } | ||
|  | command { service = "ChanServ"; name = "ACCESS"; command = "chanserv/access"; group = "chanserv/access"; } | ||
|  | command { service = "ChanServ"; name = "LEVELS"; command = "chanserv/levels"; group = "chanserv/access"; } | ||
|  | 
 | ||
|  | /* | ||
|  |  * cs_akick | ||
|  |  * | ||
|  |  * Provides the command chanserv/akick. | ||
|  |  * | ||
|  |  * Used for preventing users from joining channels. | ||
|  |  */ | ||
|  | module | ||
|  | { | ||
|  | 	name = "cs_akick" | ||
|  | 
 | ||
|  | 	/* | ||
|  | 	 * The maximum number of entries on a channel's autokick list. | ||
|  | 	 */ | ||
|  | 	autokickmax = 32 | ||
|  | 
 | ||
|  | 	/* | ||
|  | 	 * The default reason for an autokick if none is given. | ||
|  | 	 */ | ||
|  | 	autokickreason = "User has been banned from the channel" | ||
|  | } | ||
|  | command { service = "ChanServ"; name = "AKICK"; command = "chanserv/akick"; group = "chanserv/management"; } | ||
|  | 
 | ||
|  | /* | ||
|  |  * cs_ban | ||
|  |  * | ||
|  |  * Provides the command chanserv/ban. | ||
|  |  * | ||
|  |  * The configuration option 'kick' may be set in a command block for this command to control | ||
|  |  * whether or not users will be kicked from the channel once banned. The default is 'yes'. | ||
|  |  * | ||
|  |  * The configuration option 'mode' may be set to control which mode is set, such as BAN or QUIET. | ||
|  |  * The default is BAN. | ||
|  |  * | ||
|  |  * Used for banning users from channels. | ||
|  |  */ | ||
|  | module { name = "cs_ban" } | ||
|  | command { service = "ChanServ"; name = "BAN"; command = "chanserv/ban"; } | ||
|  | 
 | ||
|  | /* | ||
|  |  * cs_clone | ||
|  |  * | ||
|  |  * Provides the command chanserv/clone. | ||
|  |  * | ||
|  |  * Used for copying channel settings from one channel to another. | ||
|  |  */ | ||
|  | module { name = "cs_clone" } | ||
|  | command { service = "ChanServ"; name = "CLONE"; command = "chanserv/clone"; group = "chanserv/management"; } | ||
|  | 
 | ||
|  | /* | ||
|  |  * cs_drop | ||
|  |  * | ||
|  |  * Provides the command chanserv/drop. | ||
|  |  * | ||
|  |  * Used for unregistering channels. | ||
|  |  */ | ||
|  | module { name = "cs_drop" } | ||
|  | command { service = "ChanServ"; name = "DROP"; command = "chanserv/drop"; } | ||
|  | 
 | ||
|  | /* | ||
|  |  * cs_enforce | ||
|  |  * | ||
|  |  * Provides the command chanserv/enforce. | ||
|  |  * | ||
|  |  * Used to enforce various channel settings such as secureops and restricted. | ||
|  |  */ | ||
|  | module { name = "cs_enforce" } | ||
|  | command { service = "ChanServ"; name = "ENFORCE"; command = "chanserv/enforce"; group = "chanserv/management"; } | ||
|  | 
 | ||
|  | /* | ||
|  |  * cs_entrymsg | ||
|  |  * | ||
|  |  * Provides the command chanserv/entrymsg. | ||
|  |  * | ||
|  |  * Used to configure entry messages sent to users when they join a channel. | ||
|  |  */ | ||
|  | module | ||
|  | { | ||
|  | 	name = "cs_entrymsg" | ||
|  | 
 | ||
|  | 	/* The maximum number of entrymsgs allowed per channel. If not set, defaults to 5. */ | ||
|  | 	maxentries = 5 | ||
|  | } | ||
|  | command { service = "ChanServ"; name = "ENTRYMSG"; command = "chanserv/entrymsg"; group = "chanserv/management"; } | ||
|  | 
 | ||
|  | /* | ||
|  |  * cs_flags | ||
|  |  * | ||
|  |  * Provides the command chanserv/flags. | ||
|  |  * Provides the access system "flags". | ||
|  |  * | ||
|  |  * Used for giving users access in channels. | ||
|  |  * | ||
|  |  * The "LIST" subcommand of chanserv/flags will show every access entry on the channel, including access | ||
|  |  * entries not added by cs_flags. The "Flags" of these entries will be the flags representation of the | ||
|  |  * privilege set granted by the access entry. | ||
|  |  */ | ||
|  | module { name = "cs_flags" } | ||
|  | command { service = "ChanServ"; name = "FLAGS"; command = "chanserv/flags"; group = "chanserv/access"; } | ||
|  | 
 | ||
|  | /* | ||
|  |  * cs_getkey | ||
|  |  * | ||
|  |  * Provides the command chanserv/getkey. | ||
|  |  * | ||
|  |  * Used for getting the key for channels. | ||
|  |  */ | ||
|  | module { name = "cs_getkey" } | ||
|  | command { service = "ChanServ"; name = "GETKEY"; command = "chanserv/getkey"; } | ||
|  | 
 | ||
|  | /* | ||
|  |  * cs_info | ||
|  |  * | ||
|  |  * Provides the command chanserv/info. | ||
|  |  * | ||
|  |  * Used for getting information about channels. | ||
|  |  */ | ||
|  | module { name = "cs_info" } | ||
|  | command { service = "ChanServ"; name = "INFO"; command = "chanserv/info"; } | ||
|  | 
 | ||
|  | /* | ||
|  |  * cs_invite | ||
|  |  * | ||
|  |  * Provides the command chanserv/invite. | ||
|  |  * | ||
|  |  * Used for inviting yourself in to channels. | ||
|  |  */ | ||
|  | module { name = "cs_invite" } | ||
|  | command { service = "ChanServ"; name = "INVITE"; command = "chanserv/invite"; } | ||
|  | 
 | ||
|  | /* | ||
|  |  * cs_kick | ||
|  |  * | ||
|  |  * Provides the command chanserv/kick. | ||
|  |  * | ||
|  |  * Used for kicking users from channels. | ||
|  |  */ | ||
|  | module { name = "cs_kick" } | ||
|  | command { service = "ChanServ"; name = "KICK"; command = "chanserv/kick"; } | ||
|  | 
 | ||
|  | /* | ||
|  |  * cs_list | ||
|  |  * | ||
|  |  * Provides the commands: | ||
|  |  *   chanserv/list - Used for retrieving and searching the registered channel list. | ||
|  |  *   chanserv/set/private - Used for setting whether channels should show up in chanserv/list. | ||
|  |  */ | ||
|  | module | ||
|  | { | ||
|  | 	name = "cs_list" | ||
|  | 
 | ||
|  | 	/* | ||
|  | 	 * The maximum number of channels to be returned for a ChanServ LIST command. | ||
|  | 	 */ | ||
|  | 	listmax = 50 | ||
|  | } | ||
|  | command { service = "ChanServ"; name = "LIST"; command = "chanserv/list"; } | ||
|  | 
 | ||
|  | command { service = "ChanServ"; name = "SET PRIVATE"; command = "chanserv/set/private"; } | ||
|  | 
 | ||
|  | 
 | ||
|  | /* | ||
|  |  * cs_log | ||
|  |  * | ||
|  |  * Provides the command chanserv/log. | ||
|  |  * | ||
|  |  * Use for configuring what actions on channels are logged and where. | ||
|  |  */ | ||
|  | module | ||
|  | { | ||
|  | 	name = "cs_log" | ||
|  | 
 | ||
|  | 	/* Default log settings for newly registered channels */ | ||
|  | 
 | ||
|  | 	#default | ||
|  | 	{ | ||
|  | 		command = "chanserv/modes" | ||
|  | 		method = "MESSAGE @" | ||
|  | 	} | ||
|  | 
 | ||
|  | 	#default | ||
|  | 	{ | ||
|  | 		service = "ChanServ" | ||
|  | 		command = "ACCESS" | ||
|  | 		method = "MESSAGE @" | ||
|  | 	} | ||
|  | 
 | ||
|  | 	#default | ||
|  | 	{ | ||
|  | 		command = "chanserv/xop" | ||
|  | 		method = "MESSAGE @" | ||
|  | 	} | ||
|  | 
 | ||
|  | 	#default | ||
|  | 	{ | ||
|  | 		service = "ChanServ" | ||
|  | 		command = "FLAGS" | ||
|  | 		method = "MESSAGE @" | ||
|  | 	} | ||
|  | } | ||
|  | command { service = "ChanServ"; name = "LOG"; command = "chanserv/log"; group = "chanserv/management"; } | ||
|  | 
 | ||
|  | /* | ||
|  |  * cs_mode | ||
|  |  * | ||
|  |  * Provides the command chanserv/mode and chanserv/modes. | ||
|  |  * | ||
|  |  * Used for changing mode locks and changing modes. Multiple commands may be mapped to chanserv/modes, the | ||
|  |  * configuration directive 'set' and 'unset' are used to tell chanserv/modes which modes should be set or | ||
|  |  * unset when the command is executed. | ||
|  |  */ | ||
|  | module | ||
|  | { | ||
|  | 	name = "cs_mode" | ||
|  | 
 | ||
|  | 	/* | ||
|  | 	 * Default modes for mode lock, these are set on newly registered channels. | ||
|  | 	 * | ||
|  | 	 * If not set, the default is +nt. | ||
|  | 	 */ | ||
|  | 	mlock = "+nt" | ||
|  | } | ||
|  | command { service = "ChanServ"; name = "MODE"; command = "chanserv/mode"; group = "chanserv/management"; } | ||
|  | 
 | ||
|  | command { service = "ChanServ"; name = "OWNER"; command = "chanserv/modes"; group = "chanserv/status"; set = "OWNER" } | ||
|  | command { service = "ChanServ"; name = "DEOWNER"; command = "chanserv/modes"; group = "chanserv/status"; unset = "OWNER" } | ||
|  | 
 | ||
|  | command { service = "ChanServ"; name = "PROTECT"; command = "chanserv/modes"; group = "chanserv/status"; set = "PROTECT" } | ||
|  | command { service = "ChanServ"; name = "DEPROTECT"; command = "chanserv/modes"; group = "chanserv/status"; unset = "PROTECT" } | ||
|  | 
 | ||
|  | command { service = "ChanServ"; name = "OP"; command = "chanserv/modes"; group = "chanserv/status"; set = "OP" } | ||
|  | command { service = "ChanServ"; name = "DEOP"; command = "chanserv/modes"; group = "chanserv/status"; unset = "OP" } | ||
|  | 
 | ||
|  | command { service = "ChanServ"; name = "HALFOP"; command = "chanserv/modes"; group = "chanserv/status"; set = "HALFOP" } | ||
|  | command { service = "ChanServ"; name = "DEHALFOP"; command = "chanserv/modes"; group = "chanserv/status"; unset = "HALFOP" } | ||
|  | 
 | ||
|  | command { service = "ChanServ"; name = "VOICE"; command = "chanserv/modes"; group = "chanserv/status"; set = "VOICE" } | ||
|  | command { service = "ChanServ"; name = "DEVOICE"; command = "chanserv/modes"; group = "chanserv/status"; unset = "VOICE" } | ||
|  | 
 | ||
|  | 
 | ||
|  | /* | ||
|  |  * cs_register | ||
|  |  * | ||
|  |  * Provides the commands chanserv/register. | ||
|  |  * | ||
|  |  * Used for registering channels. | ||
|  |  */ | ||
|  | module { name = "cs_register" } | ||
|  | command { service = "ChanServ"; name = "REGISTER"; command = "chanserv/register"; } | ||
|  | 
 | ||
|  | /* | ||
|  |  * cs_seen | ||
|  |  * | ||
|  |  * Provides the commands chanserv/seen and operserv/seen. | ||
|  |  * | ||
|  |  * Records the last time a user was seen and what they were doing and allows users to request this data. | ||
|  |  * Also allows administrators to view stats about seen data and purge the database. | ||
|  |  */ | ||
|  | module | ||
|  | { | ||
|  | 	name = "cs_seen" | ||
|  | 
 | ||
|  | 	/* If set, uses the older 1.8 style seen, which is less resource intensive */ | ||
|  | 	simple = false | ||
|  | 
 | ||
|  | 	/* Sets the time to keep seen entries in the seen database. */ | ||
|  | 	purgetime = "30d" | ||
|  | 
 | ||
|  | 	/* Sets the delay between checks for expired seen entries. */ | ||
|  | 	expiretimeout = "1d" | ||
|  | } | ||
|  | command { service = "OperServ"; name = "SEEN"; command = "operserv/seen"; permission = "operserv/seen"; } | ||
|  | 
 | ||
|  | /* | ||
|  |  * cs_set | ||
|  |  * | ||
|  |  * Provides the commands: | ||
|  |  *   chanserv/set and chanserv/saset - Dummy help wrappers for the SET commands. | ||
|  |  *   chanserv/set/autoop - Used for configuring whether or not ChanServ automatically gives channel status to users. | ||
|  |  *   chanserv/set/bantype - Used for controlling what format of bans are placed on channels. | ||
|  |  *   chanserv/set/description - Used for changing channels descriptions. | ||
|  |  *   chanserv/set/founder - Used for changing a channel's founder. | ||
|  |  *   chanserv/set/keepmodes - Used for enabling or disabling keepmodes, which retains channel modes. | ||
|  |  *   chanserv/set/peace - Used for configuring if users are able to kick other users with higher access than them. | ||
|  |  *   chanserv/set/persist - Used for setting whether ChanServ should stay in channels after the last user leaves. | ||
|  |  *   chanserv/set/restricted - Used for setting whether users not on a channel's access list can join. | ||
|  |  *   chanserv/set/secure - Used for setting whether users who are recognized for accounts should have their access in channels. | ||
|  |  *   chanserv/set/securefounder - Used for setting whether users with founder level access in channels have true founder or not. | ||
|  |  *   chanserv/set/secureops - Used for restricting who can have channel op privilege in a channel to those whom have access in the channel. | ||
|  |  *   chanserv/set/signkick - Used for setting signkick, which appends the kicker's name to kicks sent through ChanServ. | ||
|  |  *   chanserv/set/successor - Used for setting channel successors, which become channel founders if the founders' account expires. | ||
|  |  *   chanserv/saset/noexpire - Used for setting noexpire, which prevents channels from expiring. | ||
|  |  * | ||
|  |  * This is a dummy command to provide a help wrapper for the various SET commands. | ||
|  |  */ | ||
|  | module | ||
|  | { | ||
|  | 	name = "cs_set" | ||
|  | 
 | ||
|  | 	/* | ||
|  | 	 * The default ban type for newly registered channels. | ||
|  | 	 * | ||
|  | 	 * defbantype can be: | ||
|  | 	 * | ||
|  | 	 * 0: ban in the form of *!user@host | ||
|  | 	 * 1: ban in the form of *!*user@host | ||
|  | 	 * 2: ban in the form of *!*@host | ||
|  | 	 * 3: ban in the form of *!*user@*.domain | ||
|  | 	 */ | ||
|  | 	defbantype = 2 | ||
|  | 
 | ||
|  | 	/* | ||
|  | 	 * If set, persisent channels have their creation times lowered to their | ||
|  | 	 * original registration dates. | ||
|  | 	 */ | ||
|  | 	persist_lower_ts = true | ||
|  | } | ||
|  | command { service = "ChanServ"; name = "SET"; command = "chanserv/set"; group = "chanserv/management"; } | ||
|  | command { service = "ChanServ"; name = "SET AUTOOP"; command = "chanserv/set/autoop"; } | ||
|  | command { service = "ChanServ"; name = "SET BANTYPE"; command = "chanserv/set/bantype"; } | ||
|  | command { service = "ChanServ"; name = "SET DESCRIPTION"; command = "chanserv/set/description"; } | ||
|  | command { service = "ChanServ"; name = "SET DESC"; command = "chanserv/set/description"; } | ||
|  | command { service = "ChanServ"; name = "SET FOUNDER"; command = "chanserv/set/founder"; } | ||
|  | command { service = "ChanServ"; name = "SET KEEPMODES"; command = "chanserv/set/keepmodes"; } | ||
|  | command { service = "ChanServ"; name = "SET PEACE"; command = "chanserv/set/peace"; } | ||
|  | command { service = "ChanServ"; name = "SET PERSIST"; command = "chanserv/set/persist"; } | ||
|  | command { service = "ChanServ"; name = "SET RESTRICTED"; command = "chanserv/set/restricted"; } | ||
|  | command { service = "ChanServ"; name = "SET SECURE"; command = "chanserv/set/secure"; } | ||
|  | command { service = "ChanServ"; name = "SET SECUREFOUNDER"; command = "chanserv/set/securefounder"; } | ||
|  | command { service = "ChanServ"; name = "SET SECUREOPS"; command = "chanserv/set/secureops"; } | ||
|  | command { service = "ChanServ"; name = "SET SIGNKICK"; command = "chanserv/set/signkick"; } | ||
|  | command { service = "ChanServ"; name = "SET SUCCESSOR"; command = "chanserv/set/successor"; } | ||
|  | command { service = "ChanServ"; name = "SET NOEXPIRE"; command = "chanserv/saset/noexpire"; permission = "chanserv/saset/noexpire"; } | ||
|  | 
 | ||
|  | /* | ||
|  |  * cs_set_misc | ||
|  |  * | ||
|  |  * Provides the command chanserv/set/misc. | ||
|  |  * | ||
|  |  * Allows you to create arbitrary commands to set data, and have that data show up in chanserv/info. | ||
|  |  * A field named misc_description may be given for use with help output. | ||
|  |  */ | ||
|  | module { name = "cs_set_misc" } | ||
|  | command { service = "ChanServ"; name = "SET URL"; command = "chanserv/set/misc"; misc_description = _("Associate a URL with the channel"); } | ||
|  | command { service = "ChanServ"; name = "SET EMAIL"; command = "chanserv/set/misc"; misc_description = _("Associate an E-mail address with the channel"); } | ||
|  | 
 | ||
|  | /* | ||
|  |  * cs_status | ||
|  |  * | ||
|  |  * Provides the command chanserv/status. | ||
|  |  * | ||
|  |  * Used for determining a user's access on a channel and whether | ||
|  |  * or not they match any autokick entries. | ||
|  |  */ | ||
|  | module { name = "cs_status" } | ||
|  | command { service = "ChanServ"; name = "STATUS"; command = "chanserv/status"; } | ||
|  | 
 | ||
|  | /* | ||
|  |  * cs_suspend | ||
|  |  * | ||
|  |  * Provides the commands chanserv/suspend and chanserv/unsuspend. | ||
|  |  * | ||
|  |  * Used for suspending and unsuspending channels. Suspended channels can not be used but their settings are stored. | ||
|  |  */ | ||
|  | module | ||
|  | { | ||
|  | 	name = "cs_suspend" | ||
|  | 
 | ||
|  | 	/* | ||
|  | 	 * The length of time before a suspended channel expires. | ||
|  | 	 * | ||
|  | 	 * This directive is optional. | ||
|  | 	 * If not set, the default is never. | ||
|  | 	 */ | ||
|  | 	expire = 90d | ||
|  | 
 | ||
|  | 	/* | ||
|  | 	 * Settings to show to non-opers in ChanServ's INFO output. | ||
|  | 	 * Comment to completely disable showing any information about | ||
|  | 	 * suspended channels to non-opers. | ||
|  | 	 */ | ||
|  | 	show = "suspended, by, reason, on, expires" | ||
|  | } | ||
|  | command { service = "ChanServ"; name = "SUSPEND"; command = "chanserv/suspend"; permission = "chanserv/suspend"; group = "chanserv/admin"; } | ||
|  | command { service = "ChanServ"; name = "UNSUSPEND"; command = "chanserv/unsuspend"; permission = "chanserv/suspend"; group = "chanserv/admin"; } | ||
|  | 
 | ||
|  | /* | ||
|  |  * cs_sync | ||
|  |  * | ||
|  |  * Provides the command chanserv/sync. | ||
|  |  * | ||
|  |  * Used to sync users channel status modes with what access they have. | ||
|  |  */ | ||
|  | module { name = "cs_sync" } | ||
|  | command { service = "ChanServ"; name = "SYNC"; command = "chanserv/sync"; group = "chanserv/management"; } | ||
|  | 
 | ||
|  | /* | ||
|  |  * cs_topic | ||
|  |  * | ||
|  |  * Provides the commands: | ||
|  |  *   chanserv/topic - Used for changing the channel topic. Useful in conjunction with chanserv/set/topiclock. | ||
|  |  *   chanserv/set/keeptopic - Used for configuring if ChanServ is to restore the channel topic when a channel is created. | ||
|  |  * | ||
|  |  */ | ||
|  | module { name = "cs_topic" } | ||
|  | command { service = "ChanServ"; name = "TOPIC"; command = "chanserv/topic"; group = "chanserv/management"; } | ||
|  | command { service = "ChanServ"; name = "SET KEEPTOPIC"; command = "chanserv/set/keeptopic"; } | ||
|  | 
 | ||
|  | /* | ||
|  |  * cs_unban | ||
|  |  * | ||
|  |  * Provides the command chanserv/unban. | ||
|  |  * | ||
|  |  * Used for unbanning users from channels. | ||
|  |  */ | ||
|  | module { name = "cs_unban" } | ||
|  | command { service = "ChanServ"; name = "UNBAN"; command = "chanserv/unban"; } | ||
|  | 
 | ||
|  | /* | ||
|  |  * cs_updown | ||
|  |  * | ||
|  |  * Provides the commands chanserv/up and chanserv/down. | ||
|  |  * | ||
|  |  * Used for setting or removing your status modes on a channel. | ||
|  |  */ | ||
|  | module { name = "cs_updown" } | ||
|  | command { service = "ChanServ"; name = "DOWN"; command = "chanserv/down"; group = "chanserv/status"; } | ||
|  | command { service = "ChanServ"; name = "UP"; command = "chanserv/up"; group = "chanserv/status"; } | ||
|  | 
 | ||
|  | /* | ||
|  |  * cs_xop | ||
|  |  * | ||
|  |  * Provides the command chanserv/xop. | ||
|  |  * Provides the access system "XOP". | ||
|  |  * | ||
|  |  * Used for giving users access in channels. Many commands may be linked to chanserv/xop, but the | ||
|  |  * privileges given by each is determined by the privilege:xop settings above. These commands should | ||
|  |  * be ordered from highest to lowest, as each command inherits the privileges of the commands below | ||
|  |  * it. | ||
|  |  * | ||
|  |  * The "LIST" subcommand of chanserv/xop will show only XOP access entries of the given XOP type. You | ||
|  |  * can not view the entire access list at once, and instead should use another access system to do that. | ||
|  |  */ | ||
|  | module { name = "cs_xop" } | ||
|  | command { service = "ChanServ"; name = "QOP"; command = "chanserv/xop"; group = "chanserv/access"; } | ||
|  | command { service = "ChanServ"; name = "SOP"; command = "chanserv/xop"; group = "chanserv/access"; } | ||
|  | command { service = "ChanServ"; name = "AOP"; command = "chanserv/xop"; group = "chanserv/access"; } | ||
|  | command { service = "ChanServ"; name = "HOP"; command = "chanserv/xop"; group = "chanserv/access"; } | ||
|  | command { service = "ChanServ"; name = "VOP"; command = "chanserv/xop"; group = "chanserv/access"; } | ||
|  | 
 | ||
|  | 
 | ||
|  | /* | ||
|  |  * Extra ChanServ related modules. | ||
|  |  */ | ||
|  | 
 | ||
|  | /* | ||
|  |  * cs_statusupdate | ||
|  |  * | ||
|  |  * This module automatically updates users status on channels when the | ||
|  |  * channel's access list is modified. | ||
|  |  */ | ||
|  | module { name = "cs_statusupdate" } |