/*
* 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 signkick"
/*
* 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
/*
* 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"
}
/*
* 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"
}
/*
* 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"; }