diff options
Diffstat (limited to 'data/chanserv.example.conf')
| -rw-r--r-- | data/chanserv.example.conf | 724 |
1 files changed, 724 insertions, 0 deletions
diff --git a/data/chanserv.example.conf b/data/chanserv.example.conf new file mode 100644 index 000000000..b1b19040a --- /dev/null +++ b/data/chanserv.example.conf @@ -0,0 +1,724 @@ +/* + * Example configuration file for ChanServ. + */ + +/* + * First, create the service. + */ +service +{ + /* + * The name of the ChanServ client + */ + nick = "ChanServ" + + /* + * The username of the ChanServ client. + */ + user = "services" + + /* + * The hostname of the ChanServ client. + */ + host = "localhost.net" + + /* + * The realname of the ChanServ client. + */ + gecos = "Channel Registration Service" +} + +/* + * Core ChanServ module. + * + * Provides essential functionality for ChanServ. + */ +module { name = "cs_main" } + +/* + * Configuration for ChanServ provided by cs_main. + */ +chanserv +{ + /* + * The name of the client that should be ChanServ. + */ + name = "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 + * - opnotice: Send a notice when OP/DEOP commands are used + * - peace: Disallow users from kicking or removing modes from others who are of the same + * access level or superior + * - private: Hide the channel from ChanServ's LIST command + * - restricted: Kick/ban users who are restricted from the channel + * - 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. + * - signkicklevel: 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 + * - none: No defaults + * + * This directive is optional, if left blank, the options will default to keetopic, secure, securefounder, + * and signkick. If you really want no defaults, use "none" by itself as the option. + */ + defaults="keeptopic peace 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 length of time before a suspended channel becomes unsuspended. + * + * This directive is optional. + * If not set, the default is to never. + */ + #suspendexpire = 90d + + /* + * The lenth of time before a forbidden channel drops. + * + * This directive is optional. + * If not set, the default is to never. + */ + #forbidexpire = 90d + + /* + * The default ban type for newly registered channels (and when importing old databases). + * + * 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 + + /* + * The maximum number of entries on a channel's access list. + */ + accessmax = 1024 + + /* + * 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" + + /* + * 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 + + /* + * The maximum number of channels to be returned for a ChanServ LIST command. + */ + listmax = 50 + + /* + * Allow only IRC Operators to use ChanServ. + * + * This directive is optional. + */ + #opersonly = yes + + /* + * ChanServ levels configuration, for use with cs_access. + * + * These levels are used by the chanserv/access access system. + * The levels configured below will be used as a default by newly registered channels. + * + * The level "founder" is a special level that means anyone with the level_founder permission + * can use (which of course defaults to "founder"). Anyone with the founder level permission in + * a channel can do anything in the channel. + */ + level_change = 10 + level_list = 1 + level_akick = 10 + level_assign = "founder" + level_autohalfop = 4 + level_autoop = 5 + level_autoowner = 9999 + level_autoprotect = 10 + level_autovoice = 3 + level_badwords = 10 + level_ban = 4 + level_fantasia = 3 + level_founder = "founder" + level_getkey = 5 + level_greet = 5 + level_halfop = 5 + level_halfopme = 4 + level_info = 9999 + level_invite = 5 + level_kick = 4 + level_memo = 10 + level_mode = 5 + level_nokick = 1 + level_opdeop = 5 + level_opdeopme = 5 + level_owner = "founder" + level_ownerme = 9999 + level_protect = 9999 + level_protectme = 10 + level_say = 5 + level_signkick = 9999 + level_set = 9999 + level_topic = 5 + level_unban = 4 + level_voice = 4 + level_voiceme = 3 + + /* + * ChanServ flags configuration, for use with cs_flags. + * + * These flags are used by the chanserv/flags access system. + */ + flag_change = "f" + flag_list = "l" + flag_akick = "K" + flag_assign = "s" + flag_autohalfop = "H" + flag_autoop = "O" + flag_autoowner = "Q" + flag_autoprotect = "A" + flag_autovoice = "V" + flag_badwords = "k" + flag_ban = "b" + flag_fantasia = "c" + flag_founder = "F" + flag_getkey = "G" + flag_greet = "g" + flag_halfop = "h" + flag_halfopme = "h" + flag_info = "I" + flag_invite = "i" + flag_kick = "k" + flag_memo = "m" + flag_mode = "s" + flag_nokick = "N" + flag_opdeop = "o" + flag_opdeopme = "o" + flag_owner = "q" + flag_ownerme = "q" + flag_protect = "a" + flag_protectme = "a" + flag_say = "B" + flag_set = "s" + flag_signkick = "K" + flag_topic = "t" + flag_unban = "u" + flag_voice = "v" + flag_voiceme = "v" +} + +/* + * 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. + */ + +/* 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. + */ +module { name = "cs_access" } +command { service = "ChanServ"; name = "ACCESS"; command = "chanserv/access"; } +command { service = "ChanServ"; name = "LEVELS"; command = "chanserv/levels"; } + +/* + * cs_akick + * + * Provides the command chanserv/akick. + * + * Used for preventing users from joining channels. + */ +module { name = "cs_akick" } +command { service = "ChanServ"; name = "AKICK"; command = "chanserv/akick"; } + +/* + * cs_appendtopic + * + * Provides the chanserv/appendtopic command. + * + * Used to append text to existing channel topics. + */ +module { name = "cs_appendtopic" } +command { service = "ChanServ"; name = "APPENDTOPIC"; command = "chanserv/appendtopic"; } + +/* + * cs_ban + * + * Provides the command chanserv/ban. + * + * Used for banning users from channels. + */ +module { name = "cs_ban" } +command { service = "ChanServ"; name = "BAN"; command = "chanserv/ban"; } +command { service = "ChanServ"; name = "KB"; command = "chanserv/ban"; } + +/* + * cs_clearusers + * + * Provides the command chanserv/clearusers. + * + * Used for kicking all users from channels. + */ +module { name = "cs_clearusers" } +command { service = "ChanServ"; name = "CLEARUSERS"; command = "chanserv/clearusers"; } + +/* + * 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"; } + +/* + * 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"; } + +/* + * cs_entrymsg + * + * Provides the command chanserv/entrymsg. + * + * Used to configure entry messages sent to users when they join a channel. + */ +module { name = "cs_entrymsg" } +command { service = "ChanServ"; name = "ENTRYMSG"; command = "chanserv/entrymsg"; } +cs_entrymsg +{ + /* The maximum number of entrymsgs allowed per channel. If not set, defaults to 5. */ + maxentries = 5 +} + +/* + * cs_flags + * + * Provides the command chanserv/flags. + * Provides the access system "flags". + * + * Used for giving users access in channels. + */ +module { name = "cs_flags" } +command { service = "ChanServ"; name = "FLAGS"; command = "chanserv/flags"; } + +/* + * 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"; } +command { service = "ChanServ"; name = "K"; command = "chanserv/kick"; } + +/* + * cs_list + * + * Provides the command chanserv/list. + * + * Used for retrieving and searching the registered channel list. + */ +module { name = "cs_list" } +command { service = "ChanServ"; name = "LIST"; command = "chanserv/list"; permission = "chanserv/list"; } + +/* + * cs_mode + * + * Provides the command chanserv/mode. + * + * Used for changing mode locks and changing modes. + */ +module { name = "cs_mode" } +command { service = "ChanServ"; name = "MODE"; command = "chanserv/mode"; } + +/* + * cs_mode + * + * Provides the commands chanserv/op, chanserv/deop, chanserv/halfop, chanserv/dehalfop + * chanserv/voice, chanserv/devoice, chanserv/protect, chanserv/deprotect, + * chanserv/owner, and chanserv/deowner. + * + * Used for setting and removing modes on users. + */ +module { name = "cs_modes" } +command { service = "ChanServ"; name = "OP"; command = "chanserv/op"; } +command { service = "ChanServ"; name = "DEOP"; command = "chanserv/deop"; } +command { service = "ChanServ"; name = "HALFOP"; command = "chanserv/halfop"; } +command { service = "ChanServ"; name = "DEHALFOP"; command = "chanserv/dehalfop"; } +command { service = "ChanServ"; name = "VOICE"; command = "chanserv/voice"; } +command { service = "ChanServ"; name = "DEVOICE"; command = "chanserv/devoice"; } +command { service = "ChanServ"; name = "PROTECT"; command = "chanserv/protect"; } +command { service = "ChanServ"; name = "DEPROTECT"; command = "chanserv/deprotect"; } +command { service = "ChanServ"; name = "OWNER"; command = "chanserv/owner"; } +command { service = "ChanServ"; name = "DEOWNER"; command = "chanserv/deowner"; } + +/* + * cs_register + * + * Provides the commands chanserv/register. + * + * Used for registering channels. + */ +module { name = "cs_register" } +command { service = "ChanServ"; name = "REGISTER"; command = "chanserv/register"; } + +/* + * cs_set + * + * Provides the command chanserv/set. + * + * Is a dummy command to provide a help wrapper for the various SET commands. + */ +module { name = "cs_set" } +command { service = "ChanServ"; name = "SET"; command = "chanserv/set"; } + +/* + * cs_saset + * + * Provides the command chanserv/saset. + * + * Is a dummy command to provide a help wrapper for the various SASET commands. + */ +module { name = "cs_saset" } +command { service = "ChanServ"; name = "SASET"; command = "chanserv/saset"; permission = "chanserv/saset"; } + +/* + * cs_set_bantype + * + * Provides the commands chanserv/set/bantype and chanserv/saset/bantype. + * + * Used for controlling what format bans are placed on channels. + */ +module { name = "cs_set_bantype" } +command { service = "ChanServ"; name = "SET BANTYPE"; command = "chanserv/set/bantype"; } +command { service = "ChanServ"; name = "SASET BANTYPE"; command = "chanserv/saset/bantype"; permission = "chanserv/saset/bantype"; } + +/* + * cs_set_description + * + * Provides the commands chanserv/set/description and chanserv/saset/description. + * + * Used for changing channels descriptions. + */ +module { name = "cs_set_description" } +command { service = "ChanServ"; name = "SET DESCRIPTION"; command = "chanserv/set/description"; } +command { service = "ChanServ"; name = "SET DESC"; command = "chanserv/set/description"; } +command { service = "ChanServ"; name = "SASET DESCRIPTION"; command = "chanserv/saset/description"; permission = "chanserv/saset/description"; } +command { service = "ChanServ"; name = "SASET DESC"; command = "chanserv/saset/description"; permission = "chanserv/saset/description"; } + +/* + * cs_set_founder + * + * Provides the commands chanserv/set/founder and chanserv/saset/founder. + * + * Used for changing channel founders. + */ +module { name = "cs_set_founder" } +command { service = "ChanServ"; name = "SET FOUNDER"; command = "chanserv/set/founder"; } +command { service = "ChanServ"; name = "SASET FOUNDER"; command = "chanserv/saset/founder"; permission = "chanserv/saset/founder"; } + +/* + * cs_set_keeptopic + * + * Provides the commands chanserv/set/keeptopic and chanserv/saset/keeptopic. + * + * Used for enabling keeptopic on channels, which causes ChanServ to restore the channel topic + * when a channel is created. + */ +module { name = "cs_set_keeptopic" } +command { service = "ChanServ"; name = "SET KEEPTOPIC"; command = "chanserv/set/keeptopic"; } +command { service = "ChanServ"; name = "SASET KEEPTOPIC"; command = "chanserv/saset/keeptopic"; permission = "chanserv/saset/keeptopic"; } + +/* + * 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. + */ +module { name = "cs_set_misc" } +command { service = "ChanServ"; name = "SET URL"; command = "chanserv/set/misc"; } +command { service = "ChanServ"; name = "SET EMAIL"; command = "chanserv/set/misc"; } + +/* + * cs_set_opnotice + * + * Provides the commands chanserv/set/opnotice and chanserv/saset/opnotice. + * + * Used for setting whether channel ops should be notified of mode changes made through ChanServ. + */ +module { name = "cs_set_opnotice" } +command { service = "ChanServ"; name = "SET OPNOTICE"; command = "chanserv/set/opnotice"; } +command { service = "ChanServ"; name = "SASET OPNOTICE"; command = "chanserv/saset/opnotice"; permission = "chanserv/saset/optnotice"; } + +/* + * cs_set_peace + * + * Provides the commands chanserv/set/peace and chanserv/saset/peace. + * + * Used for setting the peace option, which prevents users from kicking other users with + * higher level access than them. + */ +module { name = "cs_set_peace" } +command { service = "ChanServ"; name = "SET PEACE"; command = "chanserv/set/peace"; } +command { service = "ChanServ"; name = "SASET PEACE"; command = "chanserv/saset/peace"; permission = "chanserv/saset/peace"; } + +/* + * cs_set_persist + * + * Provides the commands chanserv/set/persist and chanserv/saset/persist. + * + * Used for setting whether ChanServ should stay in channels after the last user leaves. + */ +module { name = "cs_set_persist" } +command { service = "ChanServ"; name = "SET PERSIST"; command = "chanserv/set/persist"; } +command { service = "ChanServ"; name = "SASET PERSIST"; command = "chanserv/saset/persist"; permission = "chanserv/saset/persist"; } + +/* + * cs_set_private + * + * Provides the commands chanserv/set/private and chanserv/saset/private. + * + * Used for setting whether channels should show up in chanserv/list. + */ +module { name = "cs_set_private" } +command { service = "ChanServ"; name = "SET PRIVATE"; command = "chanserv/set/private"; } +command { service = "ChanServ"; name = "SASET PRIVATE"; command = "chanserv/saset/private"; permission = "chanserv/saset/private"; } + +/* + * cs_set_restricted + * + * Provides the commands chanserv/set/restricted and chanserv/saset/restricted. + * + * Used for setting whether users not on a channel's access list can join. + */ +module { name = "cs_set_restricted" } +command { service = "ChanServ"; name = "SET RESTRICTED"; command = "chanserv/set/restricted"; } +command { service = "ChanServ"; name = "SASET RESTRICTED"; command = "chanserv/saset/restricted"; permission = "chanserv/saset/restricted"; } + +/* + * cs_set_secure + * + * Provides the commands chanserv/set/secure and chanserv/saset/secure. + * + * Used for setting whether users who are recognized for accounts should have their access in channels. + */ +module { name = "cs_set_secure" } +command { service = "ChanServ"; name = "SET SECURE"; command = "chanserv/set/secure"; } +command { service = "ChanServ"; name = "SASET SECURE"; command = "chanserv/saset/secure"; permission = "chanserv/saset/secure"; } + +/* + * cs_set_securefounder + * + * Provides the commands chanserv/set/securefounder and chanserv/saset/securefounder. + * + * Used for setting whether users with founder level access in channels have true founder or not. + */ +module { name = "cs_set_securefounder" } +command { service = "ChanServ"; name = "SET SECUREFOUNDER"; command = "chanserv/set/securefounder"; } +command { service = "ChanServ"; name = "SASET SECUREFOUNDER"; command = "chanserv/saset/securefounder"; permission = "chanserv/saset/securefounder"; } + +/* + * cs_set_secureops + * + * Provides the commands chanserv/set/secureops and chanserv/saset/secureops. + * + * Used for restricting who can have channel op privilege in a channel to those whom have access in the channel. + */ +module { name = "cs_set_secureops" } +command { service = "ChanServ"; name = "SET SECUREOPS"; command = "chanserv/set/secureops"; } +command { service = "ChanServ"; name = "SASET SECUREOPS"; command = "chanserv/saset/secureops"; permission = "chanserv/saset/secureops"; } + +/* + * cs_set_signkick + * + * Provides the commands chanserv/set/signkick and chanserv/saset/signkick. + * + * Used for setting signkick, which appends the kicker's name to kicks sent through ChanServ. + */ +module { name = "cs_set_signkick" } +command { service = "ChanServ"; name = "SET SIGNKICK"; command = "chanserv/set/signkick"; } +command { service = "ChanServ"; name = "SASET SIGNKICK"; command = "chanserv/saset/signkick"; permission = "chanserv/saset/signkick"; } + +/* + * cs_set_successor + * + * Provides the commands chanserv/set/successor and chanserv/saset/successor. + * + * Used for setting channel successors, which become channel founders if the founders account expires. + */ +module { name = "cs_set_successor" } +command { service = "ChanServ"; name = "SET SUCCESSOR"; command = "chanserv/set/successor"; } +command { service = "ChanServ"; name = "SASET SUCCESSOR"; command = "chanserv/saset/successor"; permission = "chanserv/saset/successor"; } + +/* + * cs_set_topiclock + * + * Provides the commands chanserv/set/topiclock and chanserv/saset/topiclock. + * + * Used for setting topiclock, which prevents channel topics from being modified. + */ +module { name = "cs_set_topiclock" } +command { service = "ChanServ"; name = "SET TOPICLOCK"; command = "chanserv/set/topiclock"; } +command { service = "ChanServ"; name = "SASET TOPICLOCK"; command = "chanserv/saset/topiclock"; permission = "chanserv/saset/topiclock"; } + +/* + * cs_set_noexpire + * + * Provides the command chanserv/saset/noexpire. + * + * Used for setting noexpire, which prevents channels from expiring. + */ +module { name = "cs_saset_noexpire" } +command { service = "ChanServ"; name = "SASET NOEXPIRE"; command = "chanserv/saset/noexpire"; permission = "chanserv/saset/noexpire"; } + +/* + * 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" } +command { service = "ChanServ"; name = "SUSPEND"; command = "chanserv/suspend"; permission = "chanserv/suspend"; } +command { service = "ChanServ"; name = "UNSUSPEND"; command = "chanserv/unsuspend"; permission = "chanserv/suspend"; } + +/* + * 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"; } + +/* + * cs_topic + * + * Provides the command chanserv/topic. + * + * Used for changing the channel topic. Usedful in conjunction with chanserv/set/topiclock. + */ +module { name = "cs_topic" } +command { service = "ChanServ"; name = "TOPIC"; command = "chanserv/topic"; } + +/* + * 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_xop + * + * Provides the commands chanserv/qop, chanserv/sop, chanserv/aop, chanserv/hop, and chanserv/vop. + * Provides the access system "XOP". + * + * Used for giving users access in channels. + */ +module { name = "cs_xop" } +command { service = "ChanServ"; name = "QOP"; command = "chanserv/qop"; } +command { service = "ChanServ"; name = "SOP"; command = "chanserv/sop"; } +command { service = "ChanServ"; name = "AOP"; command = "chanserv/aop"; } +command { service = "ChanServ"; name = "HOP"; command = "chanserv/hop"; } +command { service = "ChanServ"; name = "VOP"; command = "chanserv/vop"; } + |
