diff options
Diffstat (limited to 'data')
| -rw-r--r-- | data/botserv.example.conf | 227 | ||||
| -rw-r--r-- | data/chanserv.example.conf | 724 | ||||
| -rw-r--r-- | data/commands.example.conf | 341 | ||||
| -rw-r--r-- | data/example.conf | 923 | ||||
| -rw-r--r-- | data/global.example.conf | 101 | ||||
| -rw-r--r-- | data/hostserv.example.conf | 150 | ||||
| -rw-r--r-- | data/memoserv.example.conf | 215 | ||||
| -rw-r--r-- | data/modules.example.conf | 239 | ||||
| -rw-r--r-- | data/nickserv.example.conf | 606 | ||||
| -rw-r--r-- | data/operserv.example.conf | 579 | ||||
| -rw-r--r-- | data/tables.sql (renamed from data/mysql/tables.sql) | 0 |
11 files changed, 2735 insertions, 1370 deletions
diff --git a/data/botserv.example.conf b/data/botserv.example.conf new file mode 100644 index 000000000..81b08d66d --- /dev/null +++ b/data/botserv.example.conf @@ -0,0 +1,227 @@ +/* + * Example configuration file for BotServ. + */ + +/* + * First, create the service. + */ +service +{ + /* + * The name of the BotServ client + */ + nick = "BotServ" + + /* + * The username of the BotServ client. + */ + user = "services" + + /* + * The hostname of the BotServ client. + */ + host = "localhost.net" + + /* + * The realname of the BotServ client. + */ + gecos = "Bot Service" +} + +/* + * Core BotServ module. + * + * Provides essential functionality for BotServ. + */ +module { name = "bs_main" } + +/* + * Configuration for BotServ provided by bs_main. + */ +botserv +{ + /* + * The name of the client that should be BotServ. + */ + name = "BotServ" + + /* + * The default bot 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: + * - dontkickops: Channel operators will be protected against BotServ kicks + * - dontkickvoices: Voiced users will be protected against BotServ kicks + * - greet: The channel's BotServ bot will greet incoming users that have set a greet + * in their NickServ settings + * - fantasy: Enables the use of BotServ fantasy commands in the channel + * + * This directive is optional, if left blank, there will be no defaults. + */ + defaults="greet fantasy" + + /* + * The minimum number of users there must be in a channel before the bot joins it. The best + * value for this setting is 1 or 2. This can be 0, the service bots will not part unless + * specifically unassigned, and will keep the channel open. + */ + minusers = 1 + + /* + * The maximum number of entries a single bad words list can have. Setting it too high can + * reduce performance slightly. + */ + badwordsmax = 32 + + /* + * The amount of time that data for a user is valid in BotServ. If the data exceeds this time, + * it is reset or deleted depending on the case. Do not set it too high, otherwise your + * resources will be slightly affected. + */ + keepdata = 10m + + /* + * The bots are currently not affected by any modes or bans when they try to join a channel. + * But some people may want to make it act like a real bot, that is, for example, remove all + * the bans affecting the bot before joining the channel, remove a ban that affects the bot + * set by a user when it is in the channel, and so on. Since it consumes a bit more CPU + * time, you should not enable this on larger networks. + * + * This directive is optional. + */ + #smartjoin = yes + + /* + * If set, the bots will use a kick reason that does not state the word when it is kicking. + * This is especially useful if you have young people on your network. + * + * This directive is optional. + */ + gentlebadwordreason = yes + + /* + * If set, BotServ will use case sensitive checking for badwords. + * + * This directive is optional. + */ + #casesensitive = yes + + /* + * Defines the prefix for fantasy commands in channels. This character will have to be prepended + * to all fantasy commands. If you choose "!", for example, fantasy commands will be "!kick", + * "!op", etc. This directive is optional, if left out, the default fantasy character is "!". + */ + #fantasycharacter = "!" +} + +/* + * Core BotServ 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 = "BotServ"; name = "HELP"; command = "generic/help"; } + +/* + * bs_assign + * + * Provides the commands botserv/assign and botserv/unassign. + * + * Used for assigning and unassigning bots to channels. + */ +module { name = "bs_assign" } +command { service = "BotServ"; name = "ASSIGN"; command = "botserv/assign"; } +command { service = "BotServ"; name = "UNASSIGN"; command = "botserv/unassign"; } + +/* + * bs_autoassign + * + * Allows service bots to be automatically assigned to channels upon registration. + */ +#module { name = "bs_autoassign" } +bs_autoassign +{ + /* + * Automatically assign ChanServ to channels upon registration. + */ + bot = "ChanServ" +} + +/* + * bs_badwords + * + * Provides the command botserv/badwords. + * + * Used for controlling the channel badword list. + */ +module { name = "bs_badwords" } +command { service = "BotServ"; name = "BADWORDS"; command = "botserv/badwords"; } + +/* + * bs_bot + * + * Provides the command botserv/bot. + * + * Used for administrating BotServ bots. + */ +module { name = "bs_bot" } +command { service = "BotServ"; name = "BOT"; command = "botserv/bot"; } + +/* + * bs_botlist + * + * Provides the command botserv/botlist. + * + * Used for listing all available bots. + */ +module { name = "bs_botlist" } +command { service = "BotServ"; name = "BOTLIST"; command = "botserv/botlist"; } + +/* + * bs_control + * + * Provides the commands botserv/act and botserv/say. + * + * Used for making the bot message a channel. + */ +module { name = "bs_control" } +command { service = "BotServ"; name = "ACT"; command = "botserv/act"; } +command { service = "BotServ"; name = "SAY"; command = "botserv/say"; } + +/* + * bs_info + * + * Provides the command botserv/info. + * + * Used for getting information on bots or channels. + */ +module { name = "bs_info" } +command { service = "BotServ"; name = "INFO"; command = "botserv/info"; } + +/* + * bs_kick + * + * Provides the command botserv/kick. + * + * Used for configuring what bots should kick for. + */ +module { name = "bs_kick" } +command { service = "BotServ"; name = "KICK"; command = "botserv/kick"; } + +/* + * bs_set + * + * Provides the command botserv/set. + * + * Used for setting options such as kickers and fantasy replies. + */ +module { name = "bs_set" } +command { service = "BotServ"; name = "SET"; command = "botserv/set"; } + 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"; } + diff --git a/data/commands.example.conf b/data/commands.example.conf deleted file mode 100644 index 6290dae6e..000000000 --- a/data/commands.example.conf +++ /dev/null @@ -1,341 +0,0 @@ - -/* - * [RECOMMENDED] Core modules and command configuration - * - * 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 below. - */ - -module { name = "help" } -command { service = "BotServ"; name = "HELP"; command = "generic/help"; } -command { service = "ChanServ"; name = "HELP"; command = "generic/help"; } -command { service = "Global"; name = "HELP"; command = "generic/help"; } -command { service = "HostServ"; name = "HELP"; command = "generic/help"; } -command { service = "MemoServ"; name = "HELP"; command = "generic/help"; } -command { service = "NickServ"; name = "HELP"; command = "generic/help"; } -command { service = "OperServ"; name = "HELP"; command = "generic/help"; } - -module { name = "bs_assign" } -command { service = "BotServ"; name = "ASSIGN"; command = "botserv/assign"; } -command { service = "BotServ"; name = "UNASSIGN"; command = "botserv/unassign"; } -module { name = "bs_badwords" } -command { service = "BotServ"; name = "BADWORDS"; command = "botserv/badwords"; } -module { name = "bs_bot" } -command { service = "BotServ"; name = "BOT"; command = "botserv/bot"; } -module { name = "bs_botlist" } -command { service = "BotServ"; name = "BOTLIST"; command = "botserv/botlist"; } -module { name = "bs_control" } -command { service = "BotServ"; name = "ACT"; command = "botserv/act"; } -command { service = "BotServ"; name = "SAY"; command = "botserv/say"; } -module { name = "bs_info" } -command { service = "BotServ"; name = "INFO"; command = "botserv/info"; } -module { name = "bs_kick" } -command { service = "BotServ"; name = "KICK"; command = "botserv/kick"; } -module { name = "bs_set" } -command { service = "BotServ"; name = "SET"; command = "botserv/set"; } - -module { name = "cs_access" } -command { service = "ChanServ"; name = "ACCESS"; command = "chanserv/access"; } -command { service = "ChanServ"; name = "LEVELS"; command = "chanserv/levels"; } -module { name = "cs_akick" } -command { service = "ChanServ"; name = "AKICK"; command = "chanserv/akick"; } -module { name = "cs_ban" } -command { service = "ChanServ"; name = "BAN"; command = "chanserv/ban"; } -command { service = "ChanServ"; name = "KB"; command = "chanserv/ban"; } -module { name = "cs_clearusers" } -command { service = "ChanServ"; name = "CLEARUSERS"; command = "chanserv/clearusers"; } -module { name = "cs_clone" } -command { service = "ChanServ"; name = "CLONE"; command = "chanserv/clone"; } -module { name = "cs_drop" } -command { service = "ChanServ"; name = "DROP"; command = "chanserv/drop"; } -module { name = "cs_flags" } -command { service = "ChanServ"; name = "FLAGS"; command = "chanserv/flags"; } -module { name = "cs_getkey" } -command { service = "ChanServ"; name = "GETKEY"; command = "chanserv/getkey"; } -module { name = "cs_info" } -command { service = "ChanServ"; name = "INFO"; command = "chanserv/info"; } -module { name = "cs_invite" } -command { service = "ChanServ"; name = "INVITE"; command = "chanserv/invite"; } -module { name = "cs_kick" } -command { service = "ChanServ"; name = "KICK"; command = "chanserv/kick"; } -command { service = "ChanServ"; name = "K"; command = "chanserv/kick"; } -module { name = "cs_list" } -command { service = "ChanServ"; name = "LIST"; command = "chanserv/list"; permission = "chanserv/list"; } -module { name = "cs_mode" } -command { service = "ChanServ"; name = "MODE"; command = "chanserv/mode"; } -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"; } -module { name = "cs_register" } -command { service = "ChanServ"; name = "REGISTER"; command = "chanserv/register"; } -module { name = "cs_set" } -command { service = "ChanServ"; name = "SET"; command = "chanserv/set"; } -module { name = "cs_saset" } -command { service = "ChanServ"; name = "SASET"; command = "chanserv/saset"; permission = "chanserv/saset"; } -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"; } -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/desc"; } -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"; } -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"; } -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"; } -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"; } -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"; } -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"; } -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"; } -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"; } -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"; } -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"; } -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"; } -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"; } -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"; } -module { name = "cs_saset_noexpire" } -command { service = "ChanServ"; name = "SASET NOEXPIRE"; command = "chanserv/saset/noexpire"; permission = "chanserv/saset/noexpire"; } -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"; } -module { name = "cs_topic" } -command { service = "ChanServ"; name = "TOPIC"; command = "chanserv/topic"; } -module { name = "cs_unban" } -command { service = "ChanServ"; name = "UNBAN"; command = "chanserv/unban"; } -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"; } - -module { name = "gl_global" } -command { service = "Global"; name = "GLOBAL"; command = "global/global"; permission = "global/global"; } - -module { name = "hs_del" } -command { service = "HostServ"; name = "DEL"; command = "hostserv/del"; permission = "hostserv/del"; } -command { service = "HostServ"; name = "DELALL"; command = "hostserv/delall"; permission = "hostserv/del"; } -module { name = "hs_group" } -command { service = "HostServ"; name = "GROUP"; command = "hostserv/group"; } -module { name = "hs_list" } -command { service = "HostServ"; name = "LIST"; command = "hostserv/list"; permission = "hostserv/list"; } -module { name = "hs_off" } -command { service = "HostServ"; name = "OFF"; command = "hostserv/off"; } -module { name = "hs_on" } -command { service = "HostServ"; name = "ON"; command = "hostserv/on"; } -module { name = "hs_set" } -command { service = "HostServ"; name = "SET"; command = "hostserv/set"; permission = "hostserv/set"; } -command { service = "HostServ"; name = "SETALL"; command = "hostserv/setall"; permission = "hostserv/set"; } - -module { name = "ms_cancel" } -command { service = "MemoServ"; name = "CANCEL"; command = "memoserv/cancel"; } -module { name = "ms_check" } -command { service = "MemoServ"; name = "CHECK"; command = "memoserv/check"; } -module { name = "ms_del" } -command { service = "MemoServ"; name = "DEL"; command = "memoserv/del"; } -module { name = "ms_ignore" } -command { service = "MemoServ"; name = "IGNORE"; command = "memoserv/ignore"; } -module { name = "ms_info" } -command { service = "MemoServ"; name = "INFO"; command = "memoserv/info"; } -module { name = "ms_list" } -command { service = "MemoServ"; name = "LIST"; command = "memoserv/list"; } -module { name = "ms_read" } -command { service = "MemoServ"; name = "READ"; command = "memoserv/read"; } -module { name = "ms_rsend" } -command { service = "MemoServ"; name = "RSEND"; command = "memoserv/rsend"; } -module { name = "ms_send" } -command { service = "MemoServ"; name = "SEND"; command = "memoserv/send"; } -module { name = "ms_sendall" } -command { service = "MemoServ"; name = "SENDALL"; command = "memoserv/sendall"; permission = "memoserv/sendall"; } -module { name = "ms_set" } -command { service = "MemoServ"; name = "SET"; command = "memoserv/set"; } -module { name = "ms_staff" } -command { service = "MemoServ"; name = "STAFF"; command = "memoserv/staff"; permission = "memoserv/staff"; } - -module { name = "ns_access" } -command { service = "NickServ"; name = "ACCESS"; command = "nickserv/access"; } -module { name = "ns_ajoin" } -command { service = "NickServ"; name = "AJOIN"; command = "nickserv/ajoin"; } -module { name = "ns_alist" } -command { service = "NickServ"; name = "ALIST"; command = "nickserv/alist"; } -module { name = "ns_cert" } -command { service = "NickServ"; name = "CERT"; command = "nickserv/cert"; } -module { name = "ns_drop" } -command { service = "NickServ"; name = "DROP"; command = "nickserv/drop"; } -module { name = "ns_getemail" } -command { service = "NickServ"; name = "GETEMAIL"; command = "nickserv/getemail"; permission = "nickserv/getemail"; } -module { name = "ns_getpass" } -command { service = "NickServ"; name = "GETPASS"; command = "nickserv/getpass"; permission = "nickserv/getpass"; } -module { name = "ns_ghost" } -command { service = "NickServ"; name = "GHOST"; command = "nickserv/ghost"; } -module { name = "ns_group" } -command { service = "NickServ"; name = "GLIST"; command = "nickserv/glist"; } -command { service = "NickServ"; name = "GROUP"; command = "nickserv/group"; } -command { service = "NickServ"; name = "UNGROUP"; command = "nickserv/ungroup"; } -module { name = "ns_identify" } -command { service = "NickServ"; name = "ID"; command = "nickserv/identify"; } -command { service = "NickServ"; name = "IDENTIFY"; command = "nickserv/identify"; } -module { name = "ns_info" } -command { service = "NickServ"; name = "INFO"; command = "nickserv/info"; } -module { name = "ns_list" } -command { service = "NickServ"; name = "LIST"; command = "nickserv/list"; } -module { name = "ns_logout" } -command { service = "NickServ"; name = "LOGOUT"; command = "nickserv/logout"; } -module { name = "ns_recover" } -command { service = "NickServ"; name = "RECOVER"; command = "nickserv/recover"; } -module { name = "ns_register" } -command { service = "NickServ"; name = "CONFIRM"; command = "nickserv/confirm"; } -command { service = "NickServ"; name = "REGISTER"; command = "nickserv/register"; } -command { service = "NickServ"; name = "RESEND"; command = "nickserv/resend"; } -module { name = "ns_release" } -command { service = "NickServ"; name = "RELEASE"; command = "nickserv/release"; } -module { name = "ns_resetpass" } -command { service = "NickServ"; name = "RESETPASS"; command = "nickserv/resetpass"; } -module { name = "ns_saset" } -command { service = "NickServ"; name = "SASET"; command = "nickserv/saset"; } -command { service = "NickServ"; name = "SASET DISPLAY"; command = "nickserv/saset/display"; } -command { service = "NickServ"; name = "SASET PASSWORD"; command = "nickserv/saset/password"; } -module { name = "ns_set" } -command { service = "NickServ"; name = "SET"; command = "nickserv/set"; } -command { service = "NickServ"; name = "SET DISPLAY"; command = "nickserv/set/display"; } -command { service = "NickServ"; name = "SET PASSWORD"; command = "nickserv/set/password"; } -module { name = "ns_set_autoop" } -command { service = "NickServ"; name = "SET AUTOOP"; command = "nickserv/set/autoop"; } -command { service = "NickServ"; name = "SASET AUTOOP"; command = "nickserv/saset/autoop"; permission = "nickserv/saset/autoop"; } -module { name = "ns_set_email" } -command { service = "NickServ"; name = "SET EMAIL"; command = "nickserv/set/email"; } -command { service = "NickServ"; name = "SASET EMAIL"; command = "nickserv/saset/email"; permission = "nickserv/saset/email"; } -module { name = "ns_set_greet" } -command { service = "NickServ"; name = "SET GREET"; command = "nickserv/set/greet"; } -command { service = "NickServ"; name = "SASET GREET"; command = "nickserv/saset/greet"; permission = "nickserv/saset/greet"; } -module { name = "ns_set_hide" } -command { service = "NickServ"; name = "SET HIDE"; command = "nickserv/set/hide"; } -command { service = "NickServ"; name = "SASET HIDE"; command = "nickserv/saset/hide"; permission = "nickserv/saset/hide"; } -module { name = "ns_set_kill" } -command { service = "NickServ"; name = "SET KILL"; command = "nickserv/set/kill"; } -command { service = "NickServ"; name = "SASET KILL"; command = "nickserv/saset/kill"; permission = "nickserv/saset/kill"; } -module { name = "ns_set_language" } -command { service = "NickServ"; name = "SET LANGUAGE"; command = "nickserv/set/language"; } -command { service = "NickServ"; name = "SASET LANGUAGE"; command = "nickserv/saset/language"; permission = "nickserv/saset/language"; } -module { name = "ns_set_message" } -command { service = "NickServ"; name = "SET MESSAGE"; command = "nickserv/set/message"; } -command { service = "NickServ"; name = "SASET MESSAGE"; command = "nickserv/saset/message"; permission = "nickserv/saset/message"; } -module { name = "ns_set_private" } -command { service = "NickServ"; name = "SET PRIVATE"; command = "nickserv/set/private"; } -command { service = "NickServ"; name = "SASET PRIVATE"; command = "nickserv/saset/private"; permission = "nickserv/saset/private"; } -module { name = "ns_set_secure" } -command { service = "NickServ"; name = "SET SECURE"; command = "nickserv/set/secure"; } -command { service = "NickServ"; name = "SASET SECURE"; command = "nickserv/saset/secure"; permission = "nickserv/saset/secure"; } -module { name = "ns_saset_noexpire" } -command { service = "NickServ"; name = "SASET NOEXPIRE"; command = "nickserv/saset/noexpire"; permission = "nickserv/saset/noexpire" } -module { name = "ns_sendpass" } -command { service = "NickServ"; name = "SENDPASS"; command = "nickserv/sendpass"; permission = "nickserv/sendpass"; } -module { name = "ns_status" } -command { service = "NickServ"; name = "STATUS"; command = "nickserv/status"; } -module { name = "ns_suspend" } -command { service = "NickServ"; name = "SUSPEND"; command = "nickserv/suspend"; permission = "nickserv/suspend"; } -command { service = "NickServ"; name = "UNSUSPEND"; command = "nickserv/unsuspend"; permission = "nickserv/suspend"; } -module { name = "ns_update" } -command { service = "NickServ"; name = "UPDATE"; command = "nickserv/update"; } - -module { name = "os_akill" } -command { service = "OperServ"; name = "AKILL"; command = "operserv/akill"; permission = "operserv/akill"; } -module { name = "os_chankill" } -command { service = "OperServ"; name = "CHANKILL"; command = "operserv/chankill"; permission = "operserv/chankill"; } -module { name = "os_list" } -command { service = "OperServ"; name = "CHANLIST"; command = "operserv/chanlist"; } -command { service = "OperServ"; name = "USERLIST"; command = "operserv/userlist"; } -module { name = "os_config" } -command { service = "OperServ"; name = "CONFIG"; command = "operserv/config"; permission = "operserv/config"; } -module { name = "os_forbid" } -command { service = "OperServ"; name = "FORBID"; command = "operserv/forbid"; permission = "operserv/forbid"; } -module { name = "os_ignore" } -command { service = "OperServ"; name = "IGNORE"; command = "operserv/ignore"; permission = "operserv/ignore"; } -module { name = "os_jupe" } -command { service = "OperServ"; name = "JUPE"; command = "operserv/jupe"; permission = "operserv/jupe"; } -module { name = "os_kick" } -command { service = "OperServ"; name = "KICK"; command = "operserv/kick"; permission = "operserv/kick"; } -module { name = "os_kill" } -command { service = "OperServ"; name = "KILL"; command = "operserv/kill"; permission = "operserv/kill"; } -module { name = "os_login" } -command { service = "OperServ"; name = "LOGIN"; command = "operserv/login"; } -module { name = "os_mode" } -command { service = "OperServ"; name = "MODE"; command = "operserv/mode"; permission = "operserv/mode"; } -command { service = "OperServ"; name = "UMODE"; command = "operserv/umode"; permission = "operserv/umode"; } -module { name = "os_modinfo" } -command { service = "OperServ"; name = "MODINFO"; command = "operserv/modinfo"; } -command { service = "OperServ"; name = "MODLIST"; command = "operserv/modlist"; permission = "operserv/modlist"; } -module { name = "os_module" } -command { service = "OperServ"; name = "MODLOAD"; command = "operserv/modload"; permission = "operserv/modload"; } -command { service = "OperServ"; name = "MODRELOAD"; command = "operserv/modreload"; permission = "operserv/modload"; } -command { service = "OperServ"; name = "MODUNLOAD"; command = "operserv/modunload"; permission = "operserv/modload"; } -module { name = "os_news" } -command { service = "OperServ"; name = "LOGONNEWS"; command = "operserv/logonnews"; permission = "operserv/news"; } -command { service = "OperServ"; name = "OPERNEWS"; command = "operserv/opernews"; permission = "operserv/news"; } -command { service = "OperServ"; name = "RANDOMNEWS"; command = "operserv/randomnews"; permission = "operserv/news"; } -module { name = "os_noop" } -command { service = "OperServ"; name = "NOOP"; command = "operserv/noop"; permission = "operserv/noop"; } -module { name = "os_oline" } -command { service = "OperServ"; name = "OLINE"; command = "operserv/oline"; permission = "operserv/oline"; } -module { name = "os_oper" } -command { service = "OperServ"; name = "OPER"; command = "operserv/oper"; permission = "operserv/oper"; } -module { name = "os_reload" } -command { service = "OperServ"; name = "RELOAD"; command = "operserv/reload"; permission = "operserv/reload"; } -module { name = "os_session" } -command { service = "OperServ"; name = "EXCEPTION"; command = "operserv/exception"; permission = "operserv/exception"; } -command { service = "OperServ"; name = "SESSION"; command = "operserv/session"; permission = "operserv/session"; } -module { name = "os_set" } -command { service = "OperServ"; name = "SET"; command = "operserv/set"; permission = "operserv/set"; } -module { name = "os_shutdown" } -command { service = "OperServ"; name = "QUIT"; command = "operserv/quit"; permission = "operserv/quit"; } -command { service = "OperServ"; name = "RESTART"; command = "operserv/restart"; permission = "operserv/restart"; } -command { service = "OperServ"; name = "SHUTDOWN"; command = "operserv/shutdown"; permission = "operserv/shutdown"; } -module { name = "os_stats" } -command { service = "OperServ"; name = "STATS"; command = "operserv/stats"; permission = "operserv/stats"; } -module { name = "os_svsnick" } -command { service = "OperServ"; name = "SVSNICK"; command = "operserv/svsnick"; permission = "operserv/svsnick"; } -module { name = "os_sxline" } -command { service = "OperServ"; name = "SNLINE"; command = "operserv/snline"; permission = "operserv/snline"; } -command { service = "OperServ"; name = "SQLINE"; command = "operserv/sqline"; permission = "operserv/sqline"; } -command { service = "OperServ"; name = "SZLINE"; command = "operserv/szline"; permission = "operserv/szline"; } -module { name = "os_update" } -command { service = "OperServ"; name = "UPDATE"; command = "operserv/update"; permission = "operserv/update"; } - diff --git a/data/example.conf b/data/example.conf index 14065ddf4..a14cf9ef6 100644 --- a/data/example.conf +++ b/data/example.conf @@ -72,6 +72,27 @@ * program. */ +/* + * [OPTIONAL] Additional Includes + * + * You can include additional configuration files here. + * You may also include executable files, which will be executed and + * the output from it will be included into your configuration. + */ + +/* +include +{ + type = "file" + name = "some.conf" +} + +include +{ + type = "executable" + name = "/usr/bin/wget -q -O - http://some.miconfigured.network.com/services.conf" +} +*/ /* * [REQUIRED] IRCd Config @@ -171,6 +192,7 @@ serverinfo /* * [REQUIRED] Protocol module + * * This directive tells Anope which IRCd Protocol to speak when connecting. * You MUST modify this to match the IRCd you run. * @@ -463,800 +485,94 @@ options } /* - * [RECOMMENDED] Service client configuration + * [OPTIONAL] BotServ + * + * Includes botserv.example.conf, which is necessary for BotServ functionality. * - * Defines some of the core services. Commands are later added to these services. + * Remove this block to disable BotServ. */ - -service -{ - /* - * The nick, user name, host, and real name of the service. - */ - nick = "BotServ" - user = "services" - host = "localhost.net" - gecos = "Bot Service" -} - -service -{ - nick = "ChanServ" - user = "services" - host = "localhost.net" - gecos = "Channel Registration Service" -} - -service -{ - nick = "Global" - user = "services" - host = "localhost.net" - gecos = "Global Noticer" -} - -service -{ - nick = "HostServ" - user = "services" - host = "localhost.net" - gecos = "vHost Service" -} - -service -{ - nick = "MemoServ" - user = "services" - host = "localhost.net" - gecos = "Memo Service" -} - -service -{ - nick = "NickServ" - user = "services" - host = "localhost.net" - gecos = "Nickname Registration Service" -} - -service +include { - nick = "OperServ" - user = "services" - host = "localhost.net" - gecos = "Operator Service" + type = "file" + name = "botserv.example.comf" } /* - * [RECOMMENDED] Core clients + * [RECOMMENDED] ChanServ + * + * Includes chanserv.example.conf, which is necessary for ChanServ functionality. + * + * Remove this block to disable ChanServ. */ - -module { name = "bs_main" } -botserv +include { - /* - * The name of the client that should be BotServ. - * Clients are configured above. - */ - name = "BotServ" - - /* - * The default bot 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: - * - dontkickops: Channel operators will be protected against BotServ kicks - * - dontkickvoices: Voiced users will be protected against BotServ kicks - * - greet: The channel's BotServ bot will greet incoming users that have set a greet - * in their NickServ settings - * - fantasy: Enables the use of BotServ fantasy commands in the channel - * - * This directive is optional, if left blank, there will be no defaults. - */ - defaults="greet fantasy" - - /* - * The minimum number of users there must be in a channel before the bot joins it. The best - * value for this setting is 1 or 2. This can be 0, the service bots will not part unless - * specifically unassigned, and will keep the channel open. - */ - minusers = 1 - - /* - * The maximum number of entries a single bad words list can have. Setting it too high can - * reduce performance slightly. - */ - badwordsmax = 32 - - /* - * The amount of time that data for a user is valid in BotServ. If the data exceeds this time, - * it is reset or deleted depending on the case. Do not set it too high, otherwise your - * resources will be slightly affected. - */ - keepdata = 10m - - /* - * The bots are currently not affected by any modes or bans when they try to join a channel. - * But some people may want to make it act like a real bot, that is, for example, remove all - * the bans affecting the bot before joining the channel, remove a ban that affects the bot - * set by a user when it is in the channel, and so on. Since it consumes a bit more CPU - * time, you should not enable this on larger networks. - * - * This directive is optional. - */ - #smartjoin = yes - - /* - * If set, the bots will use a kick reason that does not state the word when it is kicking. - * This is especially useful if you have young people on your network. - * - * This directive is optional. - */ - gentlebadwordreason = yes - - /* - * If set, BotServ will use case sensitive checking for badwords. - * - * This directive is optional. - */ - #casesensitive = yes - - /* - * Defines the prefix for fantasy commands in channels. This character will have to be prepended - * to all fantasy commands. If you choose "!", for example, fantasy commands will be "!kick", - * "!op", etc. This directive is optional, if left out, the default fantasy character is "!". - */ - #fantasycharacter = "!" + type = "file" + name = "chanserv.example.conf" } /* - * [RECOMMENDED] Core ChanServ module. + * [RECOMMENDED] Global + * + * Includes global.example.conf, which is necessary for Global funcionality. * - * Provides essential functionality for ChanServ + * Remove this block to disable Global. */ -module { name = "cs_main" } - -chanserv -{ - /* - * The name of the client that should be ChanServ. Clients are configured - * with the service blocks. - */ - 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" -} - -module { name = "gl_main" } -global +include { - /* - * The name of the client that should be Global. Clients are configured - * with the service blocks. - */ - name = "Global" - - /* - * If set, Services will send global messages on starting up and shutting - * down/restarting. - * - * This directive is optional. - */ - #globaloncycle = yes - - /* - * This is the global message that will be sent when Services are being - * shutdown/restarted. This directive is only required if you enable - * globaloncycle above. - */ - globaloncycledown = "Services are restarting, they will be back shortly - please be good while we're gone" - - /* - * This is the global message that will be sent when Services (re)join the - * network. This directive is only required if you enable globaloncycle above. - */ - globaloncycleup = "Services are now back online - have a nice day" - - /* - * If set, Services will hide the IRC operator's nick in a global - * message/notice. - * - * This directive is optional. - */ - #anonymousglobal = yes + type = "file" + name = "global.example.conf" } -module { name = "hs_main" } -hostserv +/* + * [OPTIONAL] HostServ + * + * Includes hostserv.example.conf, which is necessary for HostServ funcionality. + * + * Remove this block to disable HostServ. + */ +include { - /* - * The name of the client that should be HostServ. Clients are configured - * with the service blocks. - */ - name = "HostServ" + type = "file" + name = "hostserv.example.conf" } -module { name = "ms_main" } -memoserv +/* + * [OPTIONAL] MemoServ + * + * Includes memoserv.example.conf, which is necessary for MemoServ funcionality. + * + * Remove this block to disable MemoServ. + */ +include { - /* - * The name of the client that should be MemoServ. Clients are configured - * with the service blocks. - */ - name = "MemoServ" - - /* - * The maximum number of memos a user is allowed to keep by default. Normal users may set the - * limit anywhere between 0 and this value. Services Admins can change it to any value or - * disable it. - * - * This directive is optional, but recommended. If not set, the limit is disabled - * by default, and normal users can set any limit they want. - */ - maxmemos = 20 - - /* - * The delay between consecutive uses of the MemoServ SEND command. This can help prevent spam - * as well as denial-of-service attacks from sending large numbers of memos and filling up disk - * space (and memory). The default 3-second wait means a maximum average of 150 bytes of memo - * per second per user under the current IRC protocol. - * - * This directive is optional, but recommended. - */ - senddelay = 3s - - /* - * Allow the use of memo receipts for the following groups: - * - * 1 - Opers Only - * 2 - Everybody - * - * This directive is optional. - */ - #memoreceipt = 1 + type = "file" + name = "memoserv.example.conf" } -module { name = "ns_main" } -nickserv +/* + * [OPTIONAL] NickServ + * + * Includes memoserv.example.conf, which is necessary for NickServ funcionality. + * + * Remove this block to disable NickServ. + */ +include { - /* - * The name of the client that should be NickServ. Clients are configured - * with the service blocks. - */ - name = "NickServ" - - /* - * Force users to give an e-mail address when they register a nick. - * - * This directive is recommended to be enabled, and required if e-mail registration is enabled. - */ - forceemail = yes - - /* - * Require users who change their email address to confirm they - * own it. - */ - confirmemailchanges = no - - /* - * Require an e-mail to be sent to the user before they can register their nick. - */ - #emailregistration = yes - - /* - * The default options for newly registered nicks. Note that changing these options - * will have no effect on nicks which are already registered. The list must be separated - * by spaces. - * - * The options are: - * - kill: Kill nick if not identified within 60 seconds - * - killquick: Kill nick if not identified within 20 seconds, this one overrides the above - * option and the above must be specified with this one - * - secure: Enable nickname security, requiring the nick's password before any operations - * can be done on it - * - private: Hide the nick from NickServ's LIST command - * - hideemail: Hide's the nick's e-mail address from NickServ's INFO command - * - hideusermask: Hide's the nick's last or current user@host from NickServ's INFO command - * - hidequit: Hide's the nick's last quit message - * - memosignon: Notify user if they have a new memo when they sign into the nick - * - memoreceive: Notify user if they have a new memo as soon as it's received - * - autoop: User will be automatically opped in channels they enter and have access to - * - msg: Services messages will be sent as PRIVMSGs instead of NOTICEs, requires UsePrivmsg - * to be enabled as well - * - * This directive is optional, if left blank, the options will default to secure, memosignon, and - * memoreceive. If you really want no defaults, use "none" by itself as the option. - */ - defaults="secure private hideemail hideusermask memosignon memoreceive autoop" - - /* - * A list of languages to load on startup that will be available in /nickserv set language. - * Useful if you translate Anope to your language. (Explained further in docs/LANGUAGE). - * Note that english should not be listed here because it is the base language. - */ - languages = "ca_ES de_DE el_GR es_ES fr_FR hu_HU it_IT nl_NL pl_PL pt_PT ru_RU tr_TR" - - /* - * Default language that non- and newly-registered nicks will receive messages in. - * Leave empty to default to English. - */ - #defaultlanguage = "es_ES" - - /* - * The minimum length of time between consecutive uses of NickServ's REGISTER command. This - * directive is optional, but recommended. If not set, this restriction will be disabled. - */ - regdelay = 30s - - /* - * The minimum length of time between consecutive uses of NickServ's RESEND command. - * - * This directive is optional, but recommended. If not set, this restriction will be disabled. - */ - resenddelay = 90s - - /* - * The length of time before a nick registration expires. - * - * This directive is optional, but recommended. If not set, the default is 21 days. - */ - expire = 21d - - /* - * The length of time before a suspended nick becomes unsuspended. - * - * This directive is optional. If not set, the default is to never. - */ - #suspendexpire = 90d - - /* - * The length of time a user using an unconfirmed account has - * before the account will be released for general use again. - * - * This directive is only required if the e-mail registration option is enabled. - */ - #unconfirmedexpire = 1d - - /* - * The maximum number of nicks allowed in a group. - * - * This directive is optional, but recommended. If not set or set to 0, no limits will be applied. - */ - maxaliases = 16 - - /* - * The maximum number of entries allowed on a nickname's access list. - */ - accessmax = 32 - - /* - * The username (and possibly hostname) used for the fake user created when NickServ collides - * a user. Should be in the user@host format. - */ - enforceruser = "enforcer" - enforcerhost = "localhost.net" - - /* - * The delay before a NickServ collided nick is released. - */ - releasetimeout = 1m - - /* - * Allow the use of the IMMED option in the NickServ SET KILL command. - * - * This directive is optional. - */ - #allowkillimmed = yes - - /* - * If set, the NickServ GROUP command won't allow any group change. This is recommended for - * better performance and to protect against nick stealing, however users will have less - * flexibility. - * - * This directive is optional, but recommended. - */ - #nogroupchange = yes - - /* - * The maximum number of nicks to be returned for a NickServ LIST command. - */ - listmax = 50 - - /* - * When a user's nick is forcibly changed to enforce a "nick kill", their new nick will start - * with this value. The rest will be made up of 6 or 7 digits. - */ - guestnickprefix = "Guest" - - /* - * Prevents the use of the DROP, FORBID, GETPASS, and SET PASSWORD commands by Services Admins - * on other Services Admins or the Services Root(s). - * - * This directive is optional, but recommended. - */ - secureadmins = yes - - /* - * If set, any user wanting to use the privileges of Services Root, Services Admin, or Services - * Operator must have been logged as an IRC Operator with the /oper command. - * - * This directive is optional, but recommended. - */ - strictprivileges = yes - - /* - * If set, Services will set the channel modes a user has access to upon identifying, assuming - * they are not already set. - * - * This directive is optional. - */ - modeonid = yes - - /* - * If set, Services will add the usermask of registering users to the access list of their - * newly created account. If not set, users will always have to identify to NickServ before - * being recognized, unless they manually add an address to the access list of their account. - * This directive is optional. - */ - addaccessonreg = yes - - /* - * The maximum number of channels a user can have on NickServ's AJOIN command. - */ - ajoinmax = 10 + type = "file" + name = "nickserv.example.conf" } -module { name = "os_main" } -operserv +/* + * [RECOMMENDED] OperServ + * + * Includes operserv.example.conf, which is necessary for OperServ funcionality. + * + * Remove this block to disable OperServ. + */ +include { - /* - * The name of the client that should be OperServ. Clients are configured - * with the service blocks. - */ - name = "OperServ" - - /* - * If set, Services Admins will be able to use SUPERADMIN [ON|OFF] which will temporarily grant - * them extra privileges such as being a founder on ALL channels, ability to adjust another - * users' modes, etc. - * - * This directive is optional. - */ - #superadmin = yes - - /* - * These define the default expiration times for, respectively, AKILLs, CHANKILLs, SNLINEs, - * SQLINEs, and SZLINEs. - */ - autokillexpiry = 30d - chankillexpiry = 30d - snlineexpiry = 30d - sqlineexpiry = 30d - szlineexpiry = 30d - - /* - * If set, this option will make Services send an AKILL command immediately after it has been - * added with AKILL ADD. This eliminates the need for killing the user after the AKILL has - * been added. - * - * This directive is optional, but recommended. - */ - akillonadd = yes - - /* - * If set, this option will make Services send an (SVS)KILL command immediately after SNLINE ADD. - * This eliminates the need for killing the user after the SNLINE has been added. - * - *This directive is optional. - */ - #killonsnline = yes - - /* - * If set, this option will make Services send an (SVS)KILL command immediately after SQLINE ADD. - * This eliminates the need for killing the user after the SQLINE has been added. - * - * This directive is optional. - */ - #killonsqline = yes - - /* - * Defines what actions should trigger notifications. The list must be separated by spaces. - * - * The notifications are: - * - oper: A user has become an IRC operator - * - bados: A non-IRCop attempts to use OperServ - * - akillexpire: An AKILL has expired - * - snlineexpire: An SNLINE has expired - * - sqlineexpire: An SQLINE has expired - * - szlineexpire: An SZLINE has expired - * - exceptionexpire: A session exception has expired - * - * This directive is optional, if left blank, there will be no notifications. - */ - notifications="oper" - - /* - * Enables session limiting. Session limiting prevents users from connecting more than a certain - * number of times from the same host at the same time - thus preventing most types of cloning. - * Once a host reaches it's session limit, all clients attempting to connect from that host will - * be killed. Exceptions to the default session limit can be defined via the exception list. It - * should be noted that session limiting, along with a large exception list, can degrade Services' - * performance. - * - * See the source and comments in sessions.c and the online help for more information about - * session limiting. - * - * This directive is optional. - */ - limitsessions = yes - - /* - * Default session limit per host. Once a host reaches it's session limit, all clients attempting - * to connect from that host will be killed. A value of zero means an unlimited session limit. - * - * This directive is optional. - * If not given and session limiting is enabled, it will default to no limit. - */ - defaultsessionlimit = 3 - - /* - * The maximum session limit that may be set for a host in an exception. - * - * This directive is only required if session limiting is enabled. - */ - maxsessionlimit = 100 - - /* - * Sets the default expiry time for session exceptions. - * - * This directive is only required if session limiting is enabled. - */ - exceptionexpiry = 1d - - /* - * The message that will be NOTICE'd to a user just before they are removed from the network because - * their host's session limit has been exceeded. It may be used to give a slightly more descriptive - * reason for the impending kill as opposed to simply "Session limit exceeded". - * - * This directive is optional, if not set, nothing will be sent. - */ - sessionlimitexceeded = "The session limit for your host %s has been exceeded." - - /* - * Same as above, but should be used to provide a website address where users can find out more - * about session limits and how to go about applying for an exception. - * - * Note: This directive has been intentionally commented out in an effort to remind you to change - * the URL it contains. It is recommended that you supply an address/URL where people can get help - * regarding session limits. - * - * This directive is optional, if not set, nothing will be sent. - */ - #sessionlimitdetailsloc = "Please visit http://your.website.url/ for more information about session limits." - - /* - * If set and is not 0, this directive tells Services to add an AKILL the number of subsequent kills - * for the same host exceeds this value, preventing the network from experiencing KILL floods. - * - * This directive is optional. - */ - maxsessionkill = 15 - - /* - * Sets the expiry time for AKILLs set for hosts exceeding the maxsessionkill directive limit. - * - * This directive is optional, if not set, defaults to 30 minutes. - */ - sessionautokillexpiry = 30m - - /* - * Adds the nickname of the IRC Operator issuing an AKILL to the kill reason. - * - * This directive is optional. - */ - addakiller = yes - - /* - * If set, only IRC Operators will be permitted to use OperServ, regardless of module-based command - * access restrictions. - * - * This directive is optional, but recommended. - */ - opersonly = yes + type = "file" + name = "operserv.example.conf" } /* @@ -1609,6 +925,49 @@ dns } /* + * [REQUIRED] Database configuration. + * + * This section is used to configure databases used by Anope. + * You should at least load one database method, otherwise any data you + * have will not be stored! + */ + +/* + * db_plain + * + * This is the default flatfile database format. + */ +module { name = "db_plain" } +db_plain +{ + /* + * The database name db_plain should use + */ + database = "anope.db" +} + +/* + * db_mysql and db_mysql_live + * + * Enables (live) MySQL support. + * + * The db_mysql_live module is an extension to db_mysql, and should only be used if + * db_mysql is being used. This module pulls data in real time from SQL as it is + * requested by the core as a result of someone executing commands. + * + * This effectively allows you to edit your database and have it be immediately + * reflected back in Anope. + * + * For information on how to make db_mysql_live use asynchronous queries see + * m_async_commands. + * + * At this time db_mysql_live only supports pulling data in real time from the three + * main tables: anope_cs_info, anope_ns_alias, and anope_ns_core. + */ +#module { name = "db_mysql" } +#module { name = "db_mysql_live" } + +/* * [REQUIRED] Encryption modules. * * The encryption modules are used when dealing with passwords. This determines how @@ -1653,34 +1012,10 @@ module { name = "enc_md5" } */ #module { name = "enc_old" } -/* - * [OPTIONAL] Additional includes - * - * You can include additional configuration files here. - * You may also include executable files, which will be executed and - * the output from it will be included into your configuration. - */ - -/* Include core commands */ -include -{ - type = "file" - name = "commands.example.conf" -} - /* Extra (optional) modules */ include { - type = "file" - name = "modules.example.conf" + type = "file" + name = "modules.example.conf" } -/* -include -{ - type = "executable" - name = "/usr/bin/wget -q -O - http://some.miconfigured.network.com/services.conf" -} -*/ - - diff --git a/data/global.example.conf b/data/global.example.conf new file mode 100644 index 000000000..5a3566e4e --- /dev/null +++ b/data/global.example.conf @@ -0,0 +1,101 @@ +/* + * Example configuration file for Global. + */ + +/* + * First, create the service. + */ +service +{ + /* + * The name of the Global client + */ + nick = "Global" + + /* + * The username of the Global client. + */ + user = "services" + + /* + * The hostname of the Global client. + */ + host = "localhost.net" + + /* + * The realname of the Global client. + */ + gecos = "Global Noticer" +} + +/* + * Core Global module. + * + * Provides essential functionality for Global. + */ +module { name = "gl_main" } + +/* + * Configuration for Global provided by gl_main. + */ +global +{ + /* + * The name of the client that should be Global. + */ + name = "Global" + + /* + * If set, Services will send global messages on starting up and shutting + * down/restarting. + * + * This directive is optional. + */ + #globaloncycle = yes + + /* + * This is the global message that will be sent when Services are being + * shutdown/restarted. This directive is only required if you enable + * globaloncycle above. + */ + globaloncycledown = "Services are restarting, they will be back shortly - please be good while we're gone" + + /* + * This is the global message that will be sent when Services (re)join the + * network. This directive is only required if you enable globaloncycle above. + */ + globaloncycleup = "Services are now back online - have a nice day" + + /* + * If set, Services will hide the IRC operator's nick in a global + * message/notice. + * + * This directive is optional. + */ + #anonymousglobal = yes +} + +/* + * Core Global 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 = "Global"; name = "HELP"; command = "generic/help"; } + +/* + * gl_global + * + * Provides the command global/global. + * + * Used for sending a message to every online user. + */ +module { name = "gl_global" } +command { service = "Global"; name = "GLOBAL"; command = "global/global"; permission = "global/global"; } + diff --git a/data/hostserv.example.conf b/data/hostserv.example.conf new file mode 100644 index 000000000..0d04d764e --- /dev/null +++ b/data/hostserv.example.conf @@ -0,0 +1,150 @@ +/* + * Example configuration file for HostServ. + */ + +/* + * First, create the service. + */ +service +{ + /* + * The name of the HostServ client + */ + nick = "HostServ" + + /* + * The username of the HostServ client. + */ + user = "services" + + /* + * The hostname of the HostServ client. + */ + host = "localhost.net" + + /* + * The realname of the HostServ client. + */ + gecos = "vHost Service" +} + +/* + * Core HostServ module. + * + * Provides essential functionality for HostServ. + */ +module { name = "hs_main" } + +/* + * Configuration for HostServ provided by hs_main. + */ +hostserv +{ + /* + * The name of the client that should be HostServ. + */ + name = "HostServ" +} + +/* + * Core HostServ 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 = "HostServ"; name = "HELP"; command = "generic/help"; } + +/* + * hs_del + * + * Provides the commands hostserv/del and hostserv/delall. + * + * Used for removing users vHosts. + */ +module { name = "hs_del" } +command { service = "HostServ"; name = "DEL"; command = "hostserv/del"; permission = "hostserv/del"; } +command { service = "HostServ"; name = "DELALL"; command = "hostserv/delall"; permission = "hostserv/del"; } + +/* + * hs_group + * + * Provides the command hostserv/group. + * + * Used for grouping one vHost to many nicks. + */ +module { name = "hs_group" } +command { service = "HostServ"; name = "GROUP"; command = "hostserv/group"; } + +/* + * hs_list + * + * Provides the command hostserv/list. + * + * Used for listing actively set vHosts. + */ +module { name = "hs_list" } +command { service = "HostServ"; name = "LIST"; command = "hostserv/list"; permission = "hostserv/list"; } + +/* + * hs_off + * + * Provides the command hostserv/off. + * + * Used for turning off your vHost. + */ +module { name = "hs_off" } +command { service = "HostServ"; name = "OFF"; command = "hostserv/off"; } + +/* + * hs_on + * + * Provides the command hostserv/on. + * + * Used for turning on your vHost. + */ +module { name = "hs_on" } +command { service = "HostServ"; name = "ON"; command = "hostserv/on"; } + +/* + * hs_request + * + * Provides the commands hostserv/request, hostserv/active, hostserv/reject, and hostserv/waiting. + * + * Used to manage vhosts requested by users. + */ +module { name = "hs_request" } +command { service = "HostServ"; name = "REQUEST"; command = "hostserv/request"; } +command { service = "HostServ"; name = "ACTIVATE"; command = "hostserv/activate"; } +command { service = "HostServ"; name = "REJECT"; command = "hostserv/reject"; } +command { service = "HostServ"; name = "WAITING"; command = "hostserv/waiting"; } +hs_request +{ + /* + * If set, Services will send a memo to the user requesting a vHost when it's been + * approved or rejected. + */ + #memouser = yes + + /* + * If set, Services will send a memo to all Services staff when a new vHost is requested. + */ + #memooper = yes +} + +/* + * hs_set + * + * Provides the commands hostserv/set and hostserv/setall. + * + * Used for setting users vhosts. + */ +module { name = "hs_set" } +command { service = "HostServ"; name = "SET"; command = "hostserv/set"; permission = "hostserv/set"; } +command { service = "HostServ"; name = "SETALL"; command = "hostserv/setall"; permission = "hostserv/set"; } + diff --git a/data/memoserv.example.conf b/data/memoserv.example.conf new file mode 100644 index 000000000..2ce15b5fe --- /dev/null +++ b/data/memoserv.example.conf @@ -0,0 +1,215 @@ +/* + * Example configuration file for MemoServ. + */ + +/* + * First, create the service. + */ +service +{ + /* + * The name of the MemoServ client + */ + nick = "MemoServ" + + /* + * The username of the MemoServ client. + */ + user = "services" + + /* + * The hostname of the MemoServ client. + */ + host = "localhost.net" + + /* + * The realname of the MemoServ client. + */ + gecos = "Memo Service" +} + +/* + * Core MemoServ module. + * + * Provides essential functionality for MemoServ. + */ +module { name = "ms_main" } + +/* + * Configuration for MemoServ provided by ms_main. + */ +memoserv +{ + /* + * The name of the client that should be MemoServ. Clients are configured + * with the service blocks. + */ + name = "MemoServ" + + /* + * The maximum number of memos a user is allowed to keep by default. Normal users may set the + * limit anywhere between 0 and this value. Services Admins can change it to any value or + * disable it. + * + * This directive is optional, but recommended. If not set, the limit is disabled + * by default, and normal users can set any limit they want. + */ + maxmemos = 20 + + /* + * The delay between consecutive uses of the MemoServ SEND command. This can help prevent spam + * as well as denial-of-service attacks from sending large numbers of memos and filling up disk + * space (and memory). The default 3-second wait means a maximum average of 150 bytes of memo + * per second per user under the current IRC protocol. + * + * This directive is optional, but recommended. + */ + senddelay = 3s + + /* + * Allow the use of memo receipts for the following groups: + * + * 1 - Opers Only + * 2 - Everybody + * + * This directive is optional. + */ + #memoreceipt = 1 +} + +/* + * Core MemoServ 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 = "MemoServ"; name = "HELP"; command = "generic/help"; } + +/* + * ms_cancel + * + * Provides the command memoserv/cancel. + * + * Used to cancel memos already sent but not yet read. + */ +module { name = "ms_cancel" } +command { service = "MemoServ"; name = "CANCEL"; command = "memoserv/cancel"; } + +/* + * ms_check + * + * Provides the command memoserv/check. + * + * Used to check if a sent memo has been read. + */ +module { name = "ms_check" } +command { service = "MemoServ"; name = "CHECK"; command = "memoserv/check"; } + +/* + * ms_del + * + * Provides the command memoserv/del. + * + * Used to delete your memos. + */ +module { name = "ms_del" } +command { service = "MemoServ"; name = "DEL"; command = "memoserv/del"; } + +/* + * ms_ignore + * + * Provides the command memoserv/ignore. + * + * Used to ignore memos from specific users. + */ +module { name = "ms_ignore" } +command { service = "MemoServ"; name = "IGNORE"; command = "memoserv/ignore"; } + +/* + * ms_info + * + * Provides the command memoserv/info. + * + * Used to show memo related information about an account or a channel. + */ +module { name = "ms_info" } +command { service = "MemoServ"; name = "INFO"; command = "memoserv/info"; } + +/* + * ms_list + * + * Provides the command memoserv/list. + * + * Used to list your current memos. + */ +module { name = "ms_list" } +command { service = "MemoServ"; name = "LIST"; command = "memoserv/list"; } + +/* + * ms_read + * + * Provides the command memoserv/read. + * + * Used to read your memos. + */ +module { name = "ms_read" } +command { service = "MemoServ"; name = "READ"; command = "memoserv/read"; } + +/* + * ms_rsend + * + * Provides the command memoserv/rsend. + * + * Used to send a memo requiring a receipt be sent back once it is read. + * + * Requires configuring memoserv:memoreceipt. + */ +#module { name = "ms_rsend" } +#command { service = "MemoServ"; name = "RSEND"; command = "memoserv/rsend"; } + +/* + * ms_send + * + * Provides the command memoserv/send + * + * Used to send memos. + */ +module { name = "ms_send" } +command { service = "MemoServ"; name = "SEND"; command = "memoserv/send"; } + +/* + * ms_sendlal + * + * Provides the command memoserv/sendall + * + * Used to send a mass memo to every registered user. + */ +module { name = "ms_sendall" } +command { service = "MemoServ"; name = "SENDALL"; command = "memoserv/sendall"; permission = "memoserv/sendall"; } + +/* + * ms_set + * + * Provides the command memoserv/set. + * + * Used to set settings such as how you are notified of new memos, and your memo limit. + */ +module { name = "ms_set" } +command { service = "MemoServ"; name = "SET"; command = "memoserv/set"; } + +/* + * ms_staff + * + * Provides the command memoserv/staff. + * + * Used to send a memo to all registered staff members. + */ +module { name = "ms_staff" } +command { service = "MemoServ"; name = "STAFF"; command = "memoserv/staff"; permission = "memoserv/staff"; } + diff --git a/data/modules.example.conf b/data/modules.example.conf index 4a492bfda..8ee15877e 100644 --- a/data/modules.example.conf +++ b/data/modules.example.conf @@ -8,129 +8,13 @@ */ /* - * bs_autoassign + * help * - * Allows service bots to be automatically assigned to channels upon registration. - */ -#module { name = "bs_autoassign" } -bs_autoassign -{ - /* - * Automatically assign ChanServ to channels upon registration. - */ - bot = "ChanServ" -} - -/* - * cs_appendtopic + * Provides commands generic/help * - * Adds the APPENDTOPIC command to ChanServ, which allows users to easially append text to - * the end of existing channel topics. + * Is a generic help command that can be used with any client. */ -module { name = "cs_appendtopic" } -command { service = "ChanServ"; name = "APPENDTOPIC"; command = "chanserv/appendtopic"; } - -/* - * cs_enforce - * - * Adds the ENFORCE commad to ChanServ, which allows enforcing various channel settings like - * SECUREOPS and RESTRICTED. - */ -module { name = "cs_enforce" } -command { service = "ChanServ"; name = "ENFORCE"; command = "chanserv/enforce"; } - -/* - * cs_entrymsg - * - * Allows you to set entry messages on your channel, which are shown to anyone - * who joins. - */ -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_set_misc - * - * Allows you to create misc /chanserv set commands, and have the 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_sync - * - * Adds the chanserv/sync command, which syncs users channel status modes on a channel - * with their access level. -*/ -#module { name = "cs_sync" } -#command { service = "ChanServ"; name = "SYNC"; command = "chanserv/sync"; } - -/* - * db_plain - * - * This is the default flatfile database format. You must have at least one database - * module loaded or Anope will not save databases! - */ -module { name = "db_plain" } -db_plain -{ - /* - * The database db_plain should use - */ - database = "anope.db" -} - -/* - * db_mysql and db_mysql_live - * - * Enables (live) MySQL support. - * - * The db_mysql_live module is an extension to db_mysql, and should only be used if - * db_mysql is being used. This module pulls data in real time from SQL as it is - * requested by the core as a result of someone executing commands. - * - * This effectively allows you to edit your database and have it be immediately - * reflected back in Anope. - * - * For information on how to make db_mysql_live use asynchronous queries see - * m_async_commands. - * - * At this time db_mysql_live only supports pulling data in real time from the three - * main tables: anope_cs_info, anope_ns_alias, and anope_ns_core. - */ -#module { name = "db_mysql" } -#module { name = "db_mysql_live" } - -/* - * hs_request - * - * Allows users to request vhosts which opers may then view, accept or deny - */ -module { name = "hs_request" } -command { service = "HostServ"; name = "REQUEST"; command = "hostserv/request"; } -command { service = "HostServ"; name = "ACTIVATE"; command = "hostserv/activate"; } -command { service = "HostServ"; name = "REJECT"; command = "hostserv/reject"; } -command { service = "HostServ"; name = "WAITING"; command = "hostserv/waiting"; } -hs_request -{ - /* - * If set, Services will send a memo to the user requesting a vHost when it's been - * approved or rejected. - */ - #memouser = yes - - /* - * If set, Services will send a memo to all Services staff when a new vHost is requested. - */ - #memooper = yes -} +module { name = "help" } /* * m_async_commands @@ -403,118 +287,3 @@ ns_maxemail #maxemails = 1 } -/* - * ns_set_misc - * - * Allows you to create misc /nickserv set commands, and have the data - * show up in /nickserv info. - */ -module { name = "ns_set_misc" } -command { service = "NickServ"; name = "SET URL"; command = "nickserv/set/misc"; } -command { service = "NickServ"; name = "SET ICQ"; command = "nickserv/set/misc"; } - -/* - * os_defcon - * - * Allows you to set services in defcon mode, which can be used to restrict services access - * during bot attacks. - */ -#module { name = "os_defcon" } -command { service = "OperServ"; name = "DEFCON"; command = "operserv/defcon"; } -defcon -{ - /* - * Default DefCon level (1-5) to use when starting Services up. Level 5 constitutes normal operation - * while level 1 constitutes the most restrictive operation. If this setting is left out or set to - * 0, DefCon will be disabled and the rest of this block will be ignored. - */ - #defaultlevel = 5 - - /* - * The following 4 directives define what operations will take place when DefCon is set to levels - * 1 through 4. Each level is a list that must be separated by spaces. - * - * The following operations can be defined at each level: - * - nonewchannels: Disables registering new channels - * - nonewnicks: Disables registering new nicks - * - nomlockchanges: Disables changing MLOCK on registered channels - * - forcechanmodes: Forces all channels to have the modes given in the later chanmodes directive - * - reducedsessions: Reduces the session limit to the value given in the later sessionlimit directive - * - nonewclients: KILL any new clients trying to connect - * - operonly: Services will ignore all non-IRCops - * - silentoperonly: Services will silently ignore all non-IRCops - * - akillnewclients: AKILL any new clients trying to connect - * - nonewmemos: No new memos will be sent to block MemoServ attacks - */ - level4 = "nonewchannels nonewnicks nomlockchanges reducedsessions" - level3 = "nonewchannels nonewnicks nomlockchanges forcechanmodes reducedsessions" - level2 = "nonewchannels nonewnicks nomlockchanges forcechanmodes reducedsessions silentoperonly" - level1 = "nonewchannels nonewnicks nomlockchanges forcechanmodes reducedsessions silentoperonly akillnewclients" - - /* - * New session limit to use when a DefCon level is using "reduced" session limiting. - */ - #sessionlimit = 2 - - /* - * Length of time to add an AKILL for when DefCon is preventing new clients from connecting to the - * network. - */ - #akillexpire = 5m - - /* - * The channel modes to set on all channels when the DefCon channel mode system is in use. - * - * Note 1: Choose these modes carefully, because when DefCon switches to a level which does NOT have - * the mode setting selected, Services will set the reverse on all channels, e.g. if this setting - * is +RN when DefCon is used, all channels will be set to +RN, when DefCon is removed, all - * channels will be set to -RN. You don't want to set this to +k for example, because when DefCon - * is removed all channels with -k. - * - * Note 2: MLOCKed modes will not be lost. - */ - #chanmodes = "+R" - - /* - * This value can be used to automatically return the network to DefCon level 5 after the specified - * time period, just in case any IRC Operator forgets to remove a DefCon setting. - * - * This directive is optional. - */ - #timeout = 15m - - /* - * If set, Services will send a global message on DefCon level changes. - * - * This directive is optional. - */ - #globalondefcon = yes - - /* - * If set, Services will send the global message defined in the message directive on DefCon level - * changes. - * - * This directive is optional. - */ - #globalondefconmore = yes - - /* - * Defines the message that will be sent on DefCon level changes when globalondefconmore is set. - * - * This directive is required only when globalondefconmore is set. - */ - #message = "Put your message to send your users here. Dont forget to uncomment globalondefconmore" - - /* - * Defines the message that will be sent when DefCon is returned to level 5. This directive is optional, - * and will also override globalondefcon and globalondefconmore when set. - */ - #offmessage = "Services are now back to normal, sorry for any inconvenience" - - /* - * Defines the reason to use when clients are KILLed or AKILLed from the network while the proper - * DefCon operation is in effect. - */ - #akillreason = "This network is currently not accepting connections, please try again later" -} - diff --git a/data/nickserv.example.conf b/data/nickserv.example.conf new file mode 100644 index 000000000..5f9ff769d --- /dev/null +++ b/data/nickserv.example.conf @@ -0,0 +1,606 @@ +/* + * Example configuration file for NickServ. + */ + +/* + * First, create the service. + */ +service +{ + /* + * The name of the NickServ client + */ + nick = "NickServ" + + /* + * The username of the NickServ client. + */ + user = "services" + + /* + * The hostname of the NickServ client. + */ + host = "localhost.net" + + /* + * The realname of the NickServ client. + */ + gecos = "Nickname Registration Service" +} + +/* + * Core NickServ module. + * + * Provides essential functionality for NickServ. + */ +module { name = "ns_main" } + +/* + * Configuration for NickServ provided by ns_main. + */ +nickserv +{ + /* + * The name of the client that should be NickServ. + */ + name = "NickServ" + + /* + * Force users to give an e-mail address when they register a nick. + * + * This directive is recommended to be enabled, and required if e-mail registration is enabled. + */ + forceemail = yes + + /* + * Require users who change their email address to confirm they + * own it. + */ + confirmemailchanges = no + + /* + * Require an e-mail to be sent to the user before they can register their nick. + */ + #emailregistration = yes + + /* + * The default options for newly registered nicks. Note that changing these options + * will have no effect on nicks which are already registered. The list must be separated + * by spaces. + * + * The options are: + * - kill: Kill nick if not identified within 60 seconds + * - killquick: Kill nick if not identified within 20 seconds, this one overrides the above + * option and the above must be specified with this one + * - secure: Enable nickname security, requiring the nick's password before any operations + * can be done on it + * - private: Hide the nick from NickServ's LIST command + * - hideemail: Hide's the nick's e-mail address from NickServ's INFO command + * - hideusermask: Hide's the nick's last or current user@host from NickServ's INFO command + * - hidequit: Hide's the nick's last quit message + * - memosignon: Notify user if they have a new memo when they sign into the nick + * - memoreceive: Notify user if they have a new memo as soon as it's received + * - autoop: User will be automatically opped in channels they enter and have access to + * - msg: Services messages will be sent as PRIVMSGs instead of NOTICEs, requires UsePrivmsg + * to be enabled as well + * + * This directive is optional, if left blank, the options will default to secure, memosignon, and + * memoreceive. If you really want no defaults, use "none" by itself as the option. + */ + defaults="secure private hideemail hideusermask memosignon memoreceive autoop" + + /* + * A list of languages to load on startup that will be available in /nickserv set language. + * Useful if you translate Anope to your language. (Explained further in docs/LANGUAGE). + * Note that english should not be listed here because it is the base language. + */ + languages = "ca_ES de_DE el_GR es_ES fr_FR hu_HU it_IT nl_NL pl_PL pt_PT ru_RU tr_TR" + + /* + * Default language that non- and newly-registered nicks will receive messages in. + * Leave empty to default to English. + */ + #defaultlanguage = "es_ES" + + /* + * The minimum length of time between consecutive uses of NickServ's REGISTER command. This + * directive is optional, but recommended. If not set, this restriction will be disabled. + */ + regdelay = 30s + + /* + * The minimum length of time between consecutive uses of NickServ's RESEND command. + * + * This directive is optional, but recommended. If not set, this restriction will be disabled. + */ + resenddelay = 90s + + /* + * The length of time before a nick registration expires. + * + * This directive is optional, but recommended. If not set, the default is 21 days. + */ + expire = 21d + + /* + * The length of time before a suspended nick becomes unsuspended. + * + * This directive is optional. If not set, the default is to never. + */ + #suspendexpire = 90d + + /* + * The length of time a user using an unconfirmed account has + * before the account will be released for general use again. + * + * This directive is only required if the e-mail registration option is enabled. + */ + #unconfirmedexpire = 1d + + /* + * The maximum number of nicks allowed in a group. + * + * This directive is optional, but recommended. If not set or set to 0, no limits will be applied. + */ + maxaliases = 16 + + /* + * The maximum number of entries allowed on a nickname's access list. + */ + accessmax = 32 + + /* + * The username (and possibly hostname) used for the fake user created when NickServ collides + * a user. Should be in the user@host format. + */ + enforceruser = "enforcer" + enforcerhost = "localhost.net" + + /* + * The delay before a NickServ collided nick is released. + */ + releasetimeout = 1m + + /* + * Allow the use of the IMMED option in the NickServ SET KILL command. + * + * This directive is optional. + */ + #allowkillimmed = yes + + /* + * If set, the NickServ GROUP command won't allow any group change. This is recommended for + * better performance and to protect against nick stealing, however users will have less + * flexibility. + * + * This directive is optional, but recommended. + */ + #nogroupchange = yes + + /* + * The maximum number of nicks to be returned for a NickServ LIST command. + */ + listmax = 50 + + /* + * When a user's nick is forcibly changed to enforce a "nick kill", their new nick will start + * with this value. The rest will be made up of 6 or 7 digits. + */ + guestnickprefix = "Guest" + + /* + * Prevents the use of the DROP, FORBID, GETPASS, and SET PASSWORD commands by Services Admins + * on other Services Admins or the Services Root(s). + * + * This directive is optional, but recommended. + */ + secureadmins = yes + + /* + * If set, any user wanting to use the privileges of Services Root, Services Admin, or Services + * Operator must have been logged as an IRC Operator with the /oper command. + * + * This directive is optional, but recommended. + */ + strictprivileges = yes + + /* + * If set, Services will set the channel modes a user has access to upon identifying, assuming + * they are not already set. + * + * This directive is optional. + */ + modeonid = yes + + /* + * If set, Services will add the usermask of registering users to the access list of their + * newly created account. If not set, users will always have to identify to NickServ before + * being recognized, unless they manually add an address to the access list of their account. + * This directive is optional. + */ + addaccessonreg = yes + + /* + * The maximum number of channels a user can have on NickServ's AJOIN command. + */ + ajoinmax = 10 +} + +/* + * Core NickServ 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 = "NickServ"; name = "HELP"; command = "generic/help"; } + +/* + * ns_access + * + * Provides the command nickserv/access. + * + * Used for configuring what hosts have access to your account. + */ +module { name = "ns_access" } +command { service = "NickServ"; name = "ACCESS"; command = "nickserv/access"; } + +/* + * ns_ajoin + * + * Provides the command nickserv/ajoin. + * + * Used for configuring channels to join once you identify. + */ +module { name = "ns_ajoin" } +command { service = "NickServ"; name = "AJOIN"; command = "nickserv/ajoin"; } + +/* + * ns_alist + * + * Provides the command nickserv/alist. + * + * Used for viewing what channels you have access to. + */ +module { name = "ns_alist" } +command { service = "NickServ"; name = "ALIST"; command = "nickserv/alist"; } + +/* + * ns_cert + * + * Provides the command nickserv/cert. + * + * Used for configuring your SSL certificate list, which can be used to automatically identify you. + */ +module { name = "ns_cert" } +command { service = "NickServ"; name = "CERT"; command = "nickserv/cert"; } + +/* + * ns_drop + * + * Provides the command nickserv/drop. + * + * Used for unregistering names. + */ +module { name = "ns_drop" } +command { service = "NickServ"; name = "DROP"; command = "nickserv/drop"; } + +/* + * ns_getemail + * + * Provides the command nickserv/getemail. + * + * Used for getting registered accounts by searching for emails. + */ +module { name = "ns_getemail" } +command { service = "NickServ"; name = "GETEMAIL"; command = "nickserv/getemail"; permission = "nickserv/getemail"; } + +/* + * ns_getpass + * + * Provides the command nickserv/getpass. + * + * Used for getting users passwords. + * + * Requires no encryption is being used. + */ +#module { name = "ns_getpass" } +#command { service = "NickServ"; name = "GETPASS"; command = "nickserv/getpass"; permission = "nickserv/getpass"; } + +/* + * ns_ghost + * + * Provides the command nickserv/ghost. + * + * Used for disconnecting "ghost" sessions. + */ +module { name = "ns_ghost" } +command { service = "NickServ"; name = "GHOST"; command = "nickserv/ghost"; } + +/* + * ns_group + * + * Provides the commands nickserv/group, nickserv/glist, and nickserv/ungroup. + * + * Used for controlling nick groups. + */ +module { name = "ns_group" } +command { service = "NickServ"; name = "GLIST"; command = "nickserv/glist"; } +command { service = "NickServ"; name = "GROUP"; command = "nickserv/group"; } +command { service = "NickServ"; name = "UNGROUP"; command = "nickserv/ungroup"; } + +/* + * ns_identify + * + * Provides the command nickserv/identify. + * + * Used for identifying to accounts. + */ +module { name = "ns_identify" } +command { service = "NickServ"; name = "ID"; command = "nickserv/identify"; } +command { service = "NickServ"; name = "IDENTIFY"; command = "nickserv/identify"; } + +/* + * ns_info + * + * Provides the command nickserv/info. + * + * Used for gathering information about an account. + */ +module { name = "ns_info" } +command { service = "NickServ"; name = "INFO"; command = "nickserv/info"; } + +/* + * ns_list + * + * Provides the command nickserv/list. + * + * Used for retrieving and searching the registered account list. + */ +module { name = "ns_list" } +command { service = "NickServ"; name = "LIST"; command = "nickserv/list"; } + +/* + * ns_logout + * + * Provides the command nickserv/logout. + * + * Used for logging out of your account. + */ +module { name = "ns_logout" } +command { service = "NickServ"; name = "LOGOUT"; command = "nickserv/logout"; } + +/* + * ns_recover + * + * Provides the command nickserv/recover. + * + * Used for forcing someone on your nick to a guest nick. + */ +module { name = "ns_recover" } +command { service = "NickServ"; name = "RECOVER"; command = "nickserv/recover"; } + +/* + * ns_register + * + * Provides the commands nickserv/confirm, nickserv/register, and nickserv/resend. + * + * Used for registering accounts. + */ +module { name = "ns_register" } +command { service = "NickServ"; name = "CONFIRM"; command = "nickserv/confirm"; } +command { service = "NickServ"; name = "REGISTER"; command = "nickserv/register"; } +command { service = "NickServ"; name = "RESEND"; command = "nickserv/resend"; } + +/* + * ns_release + * + * Provides the command nickserv/release. + * + * Used for releasing names held by nickserv/recover. + */ +module { name = "ns_release" } +command { service = "NickServ"; name = "RELEASE"; command = "nickserv/release"; } + +/* + * ns_resetpass + * + * Provides the command nickserv/resetpass. + * + * Used for resetting passwords by emailing users a temporary one. + */ +module { name = "ns_resetpass" } +command { service = "NickServ"; name = "RESETPASS"; command = "nickserv/resetpass"; } + +/* + * ns_saset + * + * Provides commands nickserv/saset, nickserv/saset/display, and nickserv/saset/password. + * + * Used as a help wrapper for SASET commands, and used to force change users display name or password. + */ +module { name = "ns_saset" } +command { service = "NickServ"; name = "SASET"; command = "nickserv/saset"; } +command { service = "NickServ"; name = "SASET DISPLAY"; command = "nickserv/saset/display"; } +command { service = "NickServ"; name = "SASET PASSWORD"; command = "nickserv/saset/password"; } + +/* + * ns_set + * + * Provides the commands nickserv/set, nickserv/set/display, and nickserv/set/password. + * + * Used as a help wrapper for SET commands, and used for users to change their display name or password. + */ +module { name = "ns_set" } +command { service = "NickServ"; name = "SET"; command = "nickserv/set"; } +command { service = "NickServ"; name = "SET DISPLAY"; command = "nickserv/set/display"; } +command { service = "NickServ"; name = "SET PASSWORD"; command = "nickserv/set/password"; } + +/* + * ns_set_autoop + * + * Provides the commands nickserv/set/autoop and nickserv/saset/autoop. + * + * Used for setting autoop, which determines whether or not modes are automatically set on you when joining a channel. + */ +module { name = "ns_set_autoop" } +command { service = "NickServ"; name = "SET AUTOOP"; command = "nickserv/set/autoop"; } +command { service = "NickServ"; name = "SASET AUTOOP"; command = "nickserv/saset/autoop"; permission = "nickserv/saset/autoop"; } + +/* + * ns_set_email + * + * Provides the commands nickserv/set/email and nickserv/saset/email. + * + * Used for setting users email addresses. + */ +module { name = "ns_set_email" } +command { service = "NickServ"; name = "SET EMAIL"; command = "nickserv/set/email"; } +command { service = "NickServ"; name = "SASET EMAIL"; command = "nickserv/saset/email"; permission = "nickserv/saset/email"; } + +/* + * ns_set_greet + * + * Provides the commands nickserv/set/greet and nickserv/saset/greet. + * + * Used for changing users greet message, which is displayed when they enter channels. + */ +module { name = "ns_set_greet" } +command { service = "NickServ"; name = "SET GREET"; command = "nickserv/set/greet"; } +command { service = "NickServ"; name = "SASET GREET"; command = "nickserv/saset/greet"; permission = "nickserv/saset/greet"; } + +/* + * ns_set_hide + * + * Provides the commands nickserv/set/hide and nickserv/saset/hide. + * + * Used for configuring which options are publically shown in nickserv/info for your account. + */ +module { name = "ns_set_hide" } +command { service = "NickServ"; name = "SET HIDE"; command = "nickserv/set/hide"; } +command { service = "NickServ"; name = "SASET HIDE"; command = "nickserv/saset/hide"; permission = "nickserv/saset/hide"; } + +/* + * ns_set_kill + * + * Provides the commands nickserv/set/kill and nickserv/saset/kill. + * + * Used for configuring if and for how long other users are allowed to use your nick. + */ +module { name = "ns_set_kill" } +command { service = "NickServ"; name = "SET KILL"; command = "nickserv/set/kill"; } +command { service = "NickServ"; name = "SASET KILL"; command = "nickserv/saset/kill"; permission = "nickserv/saset/kill"; } + +/* + * ns_set_language + * + * Provides the commands nickserv/set/language and nickserv/saset/language. + * + * Used for configuring what language services use when messaging you. + */ +module { name = "ns_set_language" } +command { service = "NickServ"; name = "SET LANGUAGE"; command = "nickserv/set/language"; } +command { service = "NickServ"; name = "SASET LANGUAGE"; command = "nickserv/saset/language"; permission = "nickserv/saset/language"; } + +/* + * ns_set_message + * + * Provides the commands nickserv/set/message and nickserv/saset/message. + * + * Used to configure how services send messages to you. + */ +module { name = "ns_set_message" } +command { service = "NickServ"; name = "SET MESSAGE"; command = "nickserv/set/message"; } +command { service = "NickServ"; name = "SASET MESSAGE"; command = "nickserv/saset/message"; permission = "nickserv/saset/message"; } + +/* + * ns_set_private + * + * Provides the commands nickserv/set/private and nickserv/saset/private. + * + * Used for configuring whether or not your account shows up in nickserv/list. + */ +module { name = "ns_set_private" } +command { service = "NickServ"; name = "SET PRIVATE"; command = "nickserv/set/private"; } +command { service = "NickServ"; name = "SASET PRIVATE"; command = "nickserv/saset/private"; permission = "nickserv/saset/private"; } + +/* + * ns_set_secure + * + * Provides the commands nickserv/set/secure and nickserv/saset/secure. + * + * Used for configuring whether you can gain access to your nick by simply being recognized by nickserv/access. + */ +module { name = "ns_set_secure" } +command { service = "NickServ"; name = "SET SECURE"; command = "nickserv/set/secure"; } +command { service = "NickServ"; name = "SASET SECURE"; command = "nickserv/saset/secure"; permission = "nickserv/saset/secure"; } + +/* + * ns_saset_noexpire + * + * Provides the command nickserv/saset/noexpire. + * + * Used for configuring noexpire, which prevents nicks from expiring. + */ +module { name = "ns_saset_noexpire" } +command { service = "NickServ"; name = "SASET NOEXPIRE"; command = "nickserv/saset/noexpire"; permission = "nickserv/saset/noexpire" } + +/* + * ns_sendpass + * + * Provides the command nickserv/sendpass. + * + * Used to send users their password via email. + * + * Requires that no encryption is being used. + */ +module { name = "ns_sendpass" } +command { service = "NickServ"; name = "SENDPASS"; command = "nickserv/sendpass"; permission = "nickserv/sendpass"; } + +/* + * ns_set_misc + * + * Provides the command nickserv/set/misc. + * + * Allows you to create arbitrary commands to set data, and have that data show up in nickserv/info. + */ +module { name = "ns_set_misc" } +command { service = "NickServ"; name = "SET URL"; command = "nickserv/set/misc"; } +command { service = "NickServ"; name = "SET ICQ"; command = "nickserv/set/misc"; } + +/* + * ns_status + * + * Provides the nickserv/status command. + * + * Used to determine if a user is recognized or identified by services. + */ +module { name = "ns_status" } +command { service = "NickServ"; name = "STATUS"; command = "nickserv/status"; } + +/* + * ns_suspend + * + * Provides the commands nickserv/suspend and nickserv/unsuspend. + * + * Used to suspend and unsuspend nicknames. Suspended nicknames can not be used but their settings are stored. + */ +module { name = "ns_suspend" } +command { service = "NickServ"; name = "SUSPEND"; command = "nickserv/suspend"; permission = "nickserv/suspend"; } +command { service = "NickServ"; name = "UNSUSPEND"; command = "nickserv/unsuspend"; permission = "nickserv/suspend"; } + +/* + * ns_update + * + * Provides the command nickserv/update. + * + * Used to update your status on all channels, turn on your vHost, etc. + */ +module { name = "ns_update" } +command { service = "NickServ"; name = "UPDATE"; command = "nickserv/update"; } + diff --git a/data/operserv.example.conf b/data/operserv.example.conf new file mode 100644 index 000000000..48d6c4b42 --- /dev/null +++ b/data/operserv.example.conf @@ -0,0 +1,579 @@ +/* + * Example configuration file for OperServ. + */ + +/* + * First, create the service. + */ +service +{ + /* + * The name of the OperServ client + */ + nick = "OperServ" + + /* + * The username of the OperServ client. + */ + user = "services" + + /* + * The hostname of the OperServ client. + */ + host = "localhost.net" + + /* + * The realname of the OperServ client. + */ + gecos = "Operator Service" +} + +/* + * Core OperServ module. + * + * Provides essential functionality for OperServ. + */ +module { name = "os_main" } + +/* + * Configuration for OperServ provided by os_main. + */ +operserv +{ + /* + * The name of the client that should be OperServ. + */ + name = "OperServ" + + /* + * If set, Services Admins will be able to use SUPERADMIN [ON|OFF] which will temporarily grant + * them extra privileges such as being a founder on ALL channels. + * + * This directive is optional. + */ + #superadmin = yes + + /* + * These define the default expiration times for, respectively, AKILLs, CHANKILLs, SNLINEs, + * SQLINEs, and SZLINEs. + */ + autokillexpiry = 30d + chankillexpiry = 30d + snlineexpiry = 30d + sqlineexpiry = 30d + szlineexpiry = 30d + + /* + * If set, this option will make Services send an AKILL command immediately after it has been + * added with AKILL ADD. This eliminates the need for killing the user after the AKILL has + * been added. + * + * This directive is optional, but recommended. + */ + akillonadd = yes + + /* + * If set, this option will make Services send an (SVS)KILL command immediately after SNLINE ADD. + * This eliminates the need for killing the user after the SNLINE has been added. + * + *This directive is optional. + */ + #killonsnline = yes + + /* + * If set, this option will make Services send an (SVS)KILL command immediately after SQLINE ADD. + * This eliminates the need for killing the user after the SQLINE has been added. + * + * This directive is optional. + */ + #killonsqline = yes + + /* + * Defines what actions should trigger notifications. The list must be separated by spaces. + * + * The notifications are: + * - oper: A user has become an IRC operator + * - bados: A non-IRCop attempts to use OperServ + * - akillexpire: An AKILL has expired + * - snlineexpire: An SNLINE has expired + * - sqlineexpire: An SQLINE has expired + * - szlineexpire: An SZLINE has expired + * - exceptionexpire: A session exception has expired + * + * This directive is optional, if left blank, there will be no notifications. + */ + notifications = "oper" + + /* + * Enables session limiting. Session limiting prevents users from connecting more than a certain + * number of times from the same host at the same time - thus preventing most types of cloning. + * Once a host reaches it's session limit, all clients attempting to connect from that host will + * be killed. Exceptions to the default session limit can be defined via the exception list. It + * should be noted that session limiting, along with a large exception list, can degrade Services' + * performance. + * + * See the source and comments in sessions.c and the online help for more information about + * session limiting. + * + * This directive is optional. + */ + limitsessions = yes + + /* + * Default session limit per host. Once a host reaches it's session limit, all clients attempting + * to connect from that host will be killed. A value of zero means an unlimited session limit. + * + * This directive is optional. + * If not given and session limiting is enabled, it will default to no limit. + */ + defaultsessionlimit = 3 + + /* + * The maximum session limit that may be set for a host in an exception. + * + * This directive is only required if session limiting is enabled. + */ + maxsessionlimit = 100 + + /* + * Sets the default expiry time for session exceptions. + * + * This directive is only required if session limiting is enabled. + */ + exceptionexpiry = 1d + + /* + * The message that will be NOTICE'd to a user just before they are removed from the network because + * their host's session limit has been exceeded. It may be used to give a slightly more descriptive + * reason for the impending kill as opposed to simply "Session limit exceeded". + * + * This directive is optional, if not set, nothing will be sent. + */ + sessionlimitexceeded = "The session limit for your host %s has been exceeded." + + /* + * Same as above, but should be used to provide a website address where users can find out more + * about session limits and how to go about applying for an exception. + * + * Note: This directive has been intentionally commented out in an effort to remind you to change + * the URL it contains. It is recommended that you supply an address/URL where people can get help + * regarding session limits. + * + * This directive is optional, if not set, nothing will be sent. + */ + #sessionlimitdetailsloc = "Please visit http://your.website.url/ for more information about session limits." + + /* + * If set and is not 0, this directive tells Services to add an AKILL the number of subsequent kills + * for the same host exceeds this value, preventing the network from experiencing KILL floods. + * + * This directive is optional. + */ + maxsessionkill = 15 + + /* + * Sets the expiry time for AKILLs set for hosts exceeding the maxsessionkill directive limit. + * + * This directive is optional, if not set, defaults to 30 minutes. + */ + sessionautokillexpiry = 30m + + /* + * Adds the nickname of the IRC Operator issuing an AKILL to the kill reason. + * + * This directive is optional. + */ + addakiller = yes + + /* + * If set, only IRC Operators will be permitted to use OperServ, regardless of module-based command + * access restrictions. + * + * This directive is optional, but recommended. + */ + opersonly = yes +} + +/* + * Core OperServ 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 = "OperServ"; name = "HELP"; command = "generic/help"; } + +/* + * os_akill + * + * Provides the command operserv/akill. + * + * Used to ban users from the network. + */ +module { name = "os_akill" } +command { service = "OperServ"; name = "AKILL"; command = "operserv/akill"; permission = "operserv/akill"; } + +/* + * os_chankill + * + * Provides the command operserv/chankill. + * + * Used to akill uses from an entire channel. + */ +module { name = "os_chankill" } +command { service = "OperServ"; name = "CHANKILL"; command = "operserv/chankill"; permission = "operserv/chankill"; } + +/* + * os_defcon + * + * Provides the command operserv/defcon. + * + * Allows you to set services in defcon mode, which can be used to restrict services access + * during bot attacks. + */ +#module { name = "os_defcon" } +#command { service = "OperServ"; name = "DEFCON"; command = "operserv/defcon"; } +defcon +{ + /* + * Default DefCon level (1-5) to use when starting Services up. Level 5 constitutes normal operation + * while level 1 constitutes the most restrictive operation. If this setting is left out or set to + * 0, DefCon will be disabled and the rest of this block will be ignored. + */ + #defaultlevel = 5 + + /* + * The following 4 directives define what operations will take place when DefCon is set to levels + * 1 through 4. Each level is a list that must be separated by spaces. + * + * The following operations can be defined at each level: + * - nonewchannels: Disables registering new channels + * - nonewnicks: Disables registering new nicks + * - nomlockchanges: Disables changing MLOCK on registered channels + * - forcechanmodes: Forces all channels to have the modes given in the later chanmodes directive + * - reducedsessions: Reduces the session limit to the value given in the later sessionlimit directive + * - nonewclients: KILL any new clients trying to connect + * - operonly: Services will ignore all non-IRCops + * - silentoperonly: Services will silently ignore all non-IRCops + * - akillnewclients: AKILL any new clients trying to connect + * - nonewmemos: No new memos will be sent to block MemoServ attacks + */ + level4 = "nonewchannels nonewnicks nomlockchanges reducedsessions" + level3 = "nonewchannels nonewnicks nomlockchanges forcechanmodes reducedsessions" + level2 = "nonewchannels nonewnicks nomlockchanges forcechanmodes reducedsessions silentoperonly" + level1 = "nonewchannels nonewnicks nomlockchanges forcechanmodes reducedsessions silentoperonly akillnewclients" + + /* + * New session limit to use when a DefCon level is using "reduced" session limiting. + */ + #sessionlimit = 2 + + /* + * Length of time to add an AKILL for when DefCon is preventing new clients from connecting to the + * network. + */ + #akillexpire = 5m + + /* + * The channel modes to set on all channels when the DefCon channel mode system is in use. + * + * Note 1: Choose these modes carefully, because when DefCon switches to a level which does NOT have + * the mode setting selected, Services will set the reverse on all channels, e.g. if this setting + * is +RN when DefCon is used, all channels will be set to +RN, when DefCon is removed, all + * channels will be set to -RN. You don't want to set this to +k for example, because when DefCon + * is removed all channels with -k. + * + * Note 2: MLOCKed modes will not be lost. + */ + #chanmodes = "+R" + + /* + * This value can be used to automatically return the network to DefCon level 5 after the specified + * time period, just in case any IRC Operator forgets to remove a DefCon setting. + * + * This directive is optional. + */ + #timeout = 15m + + /* + * If set, Services will send a global message on DefCon level changes. + * + * This directive is optional. + */ + #globalondefcon = yes + + /* + * If set, Services will send the global message defined in the message directive on DefCon level + * changes. + * + * This directive is optional. + */ + #globalondefconmore = yes + + /* + * Defines the message that will be sent on DefCon level changes when globalondefconmore is set. + * + * This directive is required only when globalondefconmore is set. + */ + #message = "Put your message to send your users here. Dont forget to uncomment globalondefconmore" + + /* + * Defines the message that will be sent when DefCon is returned to level 5. This directive is optional, + * and will also override globalondefcon and globalondefconmore when set. + */ + #offmessage = "Services are now back to normal, sorry for any inconvenience" + + /* + * Defines the reason to use when clients are KILLed or AKILLed from the network while the proper + * DefCon operation is in effect. + */ + #akillreason = "This network is currently not accepting connections, please try again later" +} + +/* + * os_list + * + * Provides the commands operserv/chanlist and operserv/userlist. + * + * Used to list and search the channels and users currently on the network. + */ +module { name = "os_list" } +command { service = "OperServ"; name = "CHANLIST"; command = "operserv/chanlist"; } +command { service = "OperServ"; name = "USERLIST"; command = "operserv/userlist"; } + +/* + * os_config + * + * Provides the command operserv/config. + * + * Used to view and set configuration options while services are running. + */ +module { name = "os_config" } +command { service = "OperServ"; name = "CONFIG"; command = "operserv/config"; permission = "operserv/config"; } + +/* + * os_forbid + * + * Provides the command operserv/forbid. + * + * Used to forbid specific nicks, channels, emails, etc. from being used. + */ +module { name = "os_forbid" } +command { service = "OperServ"; name = "FORBID"; command = "operserv/forbid"; permission = "operserv/forbid"; } + +/* + * os_ignore + * + * Provides the command operserv/ignore. + * + * Used to make Services ignore users. + */ +module { name = "os_ignore" } +command { service = "OperServ"; name = "IGNORE"; command = "operserv/ignore"; permission = "operserv/ignore"; } + +/* + * os_jupe + * + * Provides the command operserv/jupe. + * + * Used to disconnect servers from the network and prevent them from relinking. + */ +module { name = "os_jupe" } +command { service = "OperServ"; name = "JUPE"; command = "operserv/jupe"; permission = "operserv/jupe"; } + +/* + * os_kick + * + * Provides the command operserv/kick. + * + * Used to kick users from channels. + */ +module { name = "os_kick" } +command { service = "OperServ"; name = "KICK"; command = "operserv/kick"; permission = "operserv/kick"; } + +/* + * os_kill + * + * Provides the command operserv/kill. + * + * Used to forcibly disconnect users from the network. + */ +module { name = "os_kill" } +command { service = "OperServ"; name = "KILL"; command = "operserv/kill"; permission = "operserv/kill"; } + +/* + * os_login + * + * Provides the command operserv/login. + * + * Used to login to OperServ, only required if your oper block requires this. + */ +module { name = "os_login" } +command { service = "OperServ"; name = "LOGIN"; command = "operserv/login"; } + +/* + * os_mode + * + * Provides the commands operserv/mode and operserv/umode. + * + * Used to change user and channel modes. + */ +module { name = "os_mode" } +command { service = "OperServ"; name = "MODE"; command = "operserv/mode"; permission = "operserv/mode"; } +command { service = "OperServ"; name = "UMODE"; command = "operserv/umode"; permission = "operserv/umode"; } + +/* + * os_modinfo + * + * Provides the commands operserv/modinfo and operserv/modlist. + * + * Used to show information about loaded modules. + */ +module { name = "os_modinfo" } +command { service = "OperServ"; name = "MODINFO"; command = "operserv/modinfo"; } +command { service = "OperServ"; name = "MODLIST"; command = "operserv/modlist"; permission = "operserv/modlist"; } + +/* + * os_module + * + * Provides the commands operserv/modload, operserv/modreload, and operserv/modunload. + * + * Used to load, reload, and unload modules. + */ +module { name = "os_module" } +command { service = "OperServ"; name = "MODLOAD"; command = "operserv/modload"; permission = "operserv/modload"; } +command { service = "OperServ"; name = "MODRELOAD"; command = "operserv/modreload"; permission = "operserv/modload"; } +command { service = "OperServ"; name = "MODUNLOAD"; command = "operserv/modunload"; permission = "operserv/modload"; } + +/* + * os_news + * + * Provides the commands operserv/logonnews, operserv/opernews, and operserv/randomnews. + * + * Used to configure news notices shown to users when they connect, and opers when they oper. + */ +module { name = "os_news" } +command { service = "OperServ"; name = "LOGONNEWS"; command = "operserv/logonnews"; permission = "operserv/news"; } +command { service = "OperServ"; name = "OPERNEWS"; command = "operserv/opernews"; permission = "operserv/news"; } +command { service = "OperServ"; name = "RANDOMNEWS"; command = "operserv/randomnews"; permission = "operserv/news"; } + +/* + * os_noop + * + * Provides the command operserv/noop. + * + * Used to NOOP a server, which prevents users from opering on that server. + */ +module { name = "os_noop" } +command { service = "OperServ"; name = "NOOP"; command = "operserv/noop"; permission = "operserv/noop"; } + +/* + * os_oline + * + * Provides the command operserv/oline. + * + * What even does this do. + */ +module { name = "os_oline" } +command { service = "OperServ"; name = "OLINE"; command = "operserv/oline"; permission = "operserv/oline"; } + +/* + * os_oper + * + * Provides the command opersev/oper. + * + * Used to configure opers and show information about opertypes. + */ +module { name = "os_oper" } +command { service = "OperServ"; name = "OPER"; command = "operserv/oper"; permission = "operserv/oper"; } + +/* + * os_reload + * + * Provides the command operserv/relad. + * + * Used to reload the services.conf configuration file. + */ +module { name = "os_reload" } +command { service = "OperServ"; name = "RELOAD"; command = "operserv/reload"; permission = "operserv/reload"; } + +/* + * os_session + * + * Provides the commands operserv/exception and operserv/session. + * + * Used to manage the session limit exception list, and view currently active sessions. + */ +module { name = "os_session" } +command { service = "OperServ"; name = "EXCEPTION"; command = "operserv/exception"; permission = "operserv/exception"; } +command { service = "OperServ"; name = "SESSION"; command = "operserv/session"; permission = "operserv/session"; } + +/* + * os_set + * + * Provides the command operserv/set. + * + * Used to set various settinsg such as superadmin, debug mode, etc. + */ +module { name = "os_set" } +command { service = "OperServ"; name = "SET"; command = "operserv/set"; permission = "operserv/set"; } + +/* + * os_shutdown + * + * Provides the commands operserv/quit, operserv/restart, and operserv/shutdown. + * + * Used to quit, restart, or shutdown services. + */ +module { name = "os_shutdown" } +command { service = "OperServ"; name = "QUIT"; command = "operserv/quit"; permission = "operserv/quit"; } +command { service = "OperServ"; name = "RESTART"; command = "operserv/restart"; permission = "operserv/restart"; } +command { service = "OperServ"; name = "SHUTDOWN"; command = "operserv/shutdown"; permission = "operserv/shutdown"; } + +/* + * os_stats + * + * Provides the operserv/stats command. + * + * Used to show statistics about services. + */ +module { name = "os_stats" } +command { service = "OperServ"; name = "STATS"; command = "operserv/stats"; permission = "operserv/stats"; } + +/* + * os_svsnick + * + * Provides the operserv/svsnick command. + * + * Used to force change user's nicks. + */ +module { name = "os_svsnick" } +command { service = "OperServ"; name = "SVSNICK"; command = "operserv/svsnick"; permission = "operserv/svsnick"; } + +/* + * os_sxline + * + * Provides the operserv/snline, operserv/sqline, and operserv/szline commands. + * + * Used to ban different things such as realnames, nicknames, and IPs. + */ +module { name = "os_sxline" } +command { service = "OperServ"; name = "SNLINE"; command = "operserv/snline"; permission = "operserv/snline"; } +command { service = "OperServ"; name = "SQLINE"; command = "operserv/sqline"; permission = "operserv/sqline"; } +command { service = "OperServ"; name = "SZLINE"; command = "operserv/szline"; permission = "operserv/szline"; } + +/* + * os_update + * + * Provides the opersev/update command. + * + * Use to immediately update the databases. + */ +module { name = "os_update" } +command { service = "OperServ"; name = "UPDATE"; command = "operserv/update"; permission = "operserv/update"; } + diff --git a/data/mysql/tables.sql b/data/tables.sql index 4f9665869..4f9665869 100644 --- a/data/mysql/tables.sql +++ b/data/tables.sql |
