2 ################################################
3 ### Managed by someone's ansible provisioner ###
4 ################################################
5 # Part of: https://git.somenet.org/root/pub/somesible.git
6 # 2017-2024 by someone <someone@somenet.org>
10 * First, create the service.
11 * Note that an easy way to rename this service is to define{} the client name to something else.
17 host = "services.host"
18 gecos = "Channel Registration Service"
23 * Core ChanServ module.
25 * Provides essential functionality for ChanServ.
32 * The name of the client that should be ChanServ.
37 * The default options for newly registered channels. Note that changing these options
38 * will have no effect on channels which are already registered. The list must be separated
42 * - keeptopic: Retain topic when the channel is not in use
43 * - peace: Disallow users from kicking or removing modes from others who are of the same
44 * access level or superior
45 * - cs_private: Hide the channel from ChanServ's LIST command
46 * - restricted: Kick/ban users who are restricted from the channel
47 * - cs_secure: Enable channel security, requiring the user to be identified with NickServ in
48 * order to be considered for being on the access list of the channel
49 * - secureops: Only allow operator status to be given if the user is on the access list
50 * - securefounder: Only allow the real founder of the channel to drop the channel, change it's
51 * password, or change the founder or successor
52 * - signkick: Use of ChanServ's KICK command will cause the user's nick to be signed to the kick.
53 * - signkick_level: Same as above, but the kick will not be signed if the user is at the same access
54 * level or superior to the target
55 * - topiclock: Disallow the topic to be changed except with ChanServ's TOPIC command
56 * - persist: Keep the channel open at all times
57 * - noautoop: Disables autoop on the channel
58 * - cs_keep_modes: Enables keep modes on the channel, which retains modes when the channel is
62 * This directive is optional, if left blank, the options will default to keeptopic, cs_secure, securefounder,
63 * and signkick. If you really want no defaults, use "none" by itself as the option.
65 defaults = "keeptopic peace cs_secure securefounder signkick cs_keep_modes"
73 disallow_hostmask_access = false
74 disallow_channel_access = false
77 * If set, ChanServ will always lower the timestamp of registered channels to their registration date.
78 * This prevents several race conditions where unauthorized users can join empty registered channels and set
79 * modes etc. prior to services deopping them.
81 #always_lower_ts = true
85 * ChanServ privilege configuration.
87 * ChanServ privileges are used to determine who has what access in channels. By default the core has its own
88 * set of levels it uses for various ChanServ commands, which are defined below. Privilege ranks are used to
89 * determine how powerful privileges are relative to each other, which is used by Anope to determine who has greater
90 * access in a channel.
92 * If you loaded cs_access, you may define a level for the privilege, which is used by chanserv/access and chanserv/levels.
93 * The levels defined will be used as the default levels for newly registered channels.
94 * The level "founder" is a special level which means anyone with the privilege FOUNDER on the channel
95 * has that permission. Additionally, the level "disabled" means that no one can use the privilege, including founders.
97 * If you loaded cs_flags, you may define a flag associated with that privilege for use in chanserv/flags.
99 * If you loaded cs_xop, you may define a xop command to associate the privilege with.
101 * The name of privileges are uesd to associate them with channel modes. If you are using an IRCd that allows you to define additional
102 * channel status modes, such as InspIRCd, you can associate privileges (and thus access levels, flags, xop) with the mode by naming
103 * the privileges appropriately. For example, if you had a channel mode called admin, you could create AUTOADMIN, ADMIN, and ADMINME
104 * privileges which would automatically be associated with that channel mode.
106 * Defining new privileges here is not useful unless you have a module (eg, a third party one) made to check for
107 * the specific level you are defining.
109 * Sane defaults are provided below that do not need to be edited unless you wish to change the default behavior.
113 * ACCESS_CHANGE privilege.
115 * Used by chanserv/access, chanserv/flags and chanserv/xop.
117 * Users with this permission can modify the permissions of others.
121 name = "ACCESS_CHANGE"
129 * ACCESS_LIST privilege.
131 * Used by chanserv/access, chanserv/flags, and chanserv/xop.
133 * Users with this permission can view the access list of channels.
147 * Used by chanserv/akick and chanserv/enforce.
149 * Users with this permission can modify the AKICK list.
163 * Used by botserv/assign.
165 * Users with this permission can assign and unassign BotServ bots to and from the channel.
177 * AUTOHALFOP privilege.
181 * Users with this permission get halfop on join.
197 * Users with this permission get op on join.
209 * AUTOOWNER privilege.
213 * Users with this permission get owner on join.
225 * AUTOPROTECT privilege.
229 * Users with this permission get admin on join.
241 * AUTOVOICE privilege.
245 * Users with this permission get voice on join.
257 * BADWORDS privilege.
259 * Used by botserv/badwords.
261 * Users with this permission can modify BotServ's BADWORDS list.
275 * Used by chanserv/ban.
277 * Users with this permission can use the BAN command.
289 * FANTASIA privilege.
291 * Used by botserv/main and chanserv/xop.
293 * Users with this permission can use fantasy commands in the channel.
307 * Used by chanserv/access, chanserv/akick,
308 * chanserv/drop, chanserv/set/founder,
309 * chanserv/set/securefounder, chanserv/set/successor and chanserv/xop.
311 * Users with this permission are treated as founders and can use
312 * commands restricted to founders.
326 * Used by chanserv/getkey and nickserv/ajoin.
328 * Users with this permission can get they channel key with GETKEY and
329 * can use nickserv/ajoin to join channels with keys.
343 * Used by chanserv/mode, chanserv/halfop and chanserv/dehalfop.
345 * Users with this permission can use ChanServ to halfop and dehalfop
346 * others in the channel.
358 * HALFOPME privilege.
360 * Used by chanserv/mode, chanserv/halfop and chanserv/dehalfop.
362 * Users with this permission can use ChanServ to halfop and dehalfop
363 * themselves in the channel.
377 * Used by botserv/info and chanserv/info.
379 * Users with this permission are allowed to get the full INFO output
380 * from BotServ and ChanServ.
394 * Used by chanserv/invite and nickserv/ajoin.
396 * Users with this permission can invite users through ChanServ and
397 * join invite only channels with nickserv/ajoin.
411 * Used by chanserv/kick.
413 * Users with this permission can use the KICK command.
427 * Used by memoserv/del, memoserv/ignore, memoserv/info, memoserv/list,
428 * memoserv/main, memoserv/read and memoserv/set.
430 * Users with this permission can manage channel memos.
444 * Used by chanserv/mode.
446 * Users with this permission can set modes through ChanServ and change
461 * Used by botserv/kick.
463 * Users with this permission are spared from automated BotServ kicks.
477 * Used by chanserv/mode, chanserv/modes.
479 * Users with this permission can use ChanServ to op and deop
480 * others in the channel.
494 * Used by chanserv/mode, chanserv/modes.
496 * Users with this permission can use ChanServ to op and deop
497 * themselves in the channel.
511 * Used by chanserv/mode and chanserv/modes.
513 * Users with this permission can use ChanServ to owner and deowner
514 * others in the channel.
528 * Used by chanserv/mode and chanserv/modes.
530 * Users with this permission can use ChanServ to owner and deowner
531 * themselves in the channel.
545 * Used by chanserv/mode and chanserv/modes.
547 * Users with this permission can use ChanServ to protect and deprotect
548 * others in the channel.
560 * PROTECTME privilege.
562 * Used by chanserv/mode and chanserv/modes.
564 * Users with this permission can use ChanServ to protect and deprotect
565 * themselves in the channel.
579 * Used by botserv/control.
581 * Users with this permission can use the BotServ bot in the channel to
582 * say or do a /me with the provided message.
596 * Used by botserv/kick, botserv/set, chanserv/clone, chanserv/log,
597 * chanserv/saset/noexpire and chanserv/set.
599 * Users with this permission can set what BotServ will kick for, change
600 * BotServ and ChanServ settings, clone ChanServ channel setings, and
601 * set ChanServ logging options.
613 * SIGNKICK privilege.
615 * Used by chanserv/ban and chanserv/kick.
617 * Users with this permission won't get their nick shown in the kick
618 * through ChanServ when the setting SIGNKICK is set to LEVEL.
632 * Used by chanserv/topic.
634 * Users with this permission can change the channel topic through ChanServ.
648 * Used by chanserv/unban.
650 * Users with this permission can unban themselves and others through ChanServ.
664 * Used by chanserv/mode and chanserv/modes.
666 * Users with this permission can use ChanServ to voice and devoice
667 * others in the channel.
681 * Used by chanserv/mode and chanserv/modes.
683 * Users with this permission can use ChanServ to voice and devoice
684 * themselves in the channel.
696 * Core ChanServ commands.
698 * In Anope modules can provide (multiple) commands, each of which has a unique command name. Once these modules
699 * are loaded you can then configure the commands to be added to any client you like with any name you like.
701 * Additionally, you may provide a permission name that must be in the opertype of users executing the command.
703 * Sane defaults are provided below that do not need to be edited unless you wish to change the default behavior.
706 /* Command group configuration for ChanServ.
708 * Commands may optionally be placed into groups to make ChanServ's HELP output easier to understand.
709 * Remove the following groups to use the old behavior of simply listing all ChanServ commands from HELP.
713 name = "chanserv/access"
714 description = "Used to manage the list of privileged users"
719 name = "chanserv/status"
720 description = "Used to modify the channel status of you or other users"
725 name = "chanserv/management"
726 description = "Used to manage channels"
731 name = "chanserv/admin"
732 description = "Services Operator commands"
735 /* Give it a help command. */
736 command { service = "ChanServ"; name = "HELP"; command = "generic/help"; }
741 * Provides commands chanserv/access and chanserv/levels.
742 * Provides the access system "levels".
744 * Used for giving users access in channels.
746 module { name = "cs_access" }
747 command { service = "ChanServ"; name = "ACCESS"; command = "chanserv/access"; group = "chanserv/access"; }
748 command { service = "ChanServ"; name = "LEVELS"; command = "chanserv/levels"; group = "chanserv/access"; }
753 * Provides the command chanserv/akick.
755 * Used for preventing users from joining channels.
762 * The maximum number of entries on a channel's autokick list.
767 * The default reason for an autokick if none is given.
769 autokickreason = "User has been banned from the channel"
772 command { service = "ChanServ"; name = "AKICK"; command = "chanserv/akick"; group = "chanserv/management"; }
777 * Provides the command chanserv/ban.
779 * Used for banning users from channels.
781 module { name = "cs_ban" }
782 command { service = "ChanServ"; name = "BAN"; command = "chanserv/ban"; }
787 * Provides the command chanserv/clone.
789 * Used for copying channel settings from one channel to another.
791 module { name = "cs_clone" }
792 command { service = "ChanServ"; name = "CLONE"; command = "chanserv/clone"; group = "chanserv/management"; }
797 * Provides the command chanserv/drop.
799 * Used for unregistering channels.
801 module { name = "cs_drop" }
802 command { service = "ChanServ"; name = "DROP"; command = "chanserv/drop"; }
807 * Provides the command chanserv/enforce.
809 * Used to enforce various channel settings such as secureops and restricted.
811 module { name = "cs_enforce" }
812 command { service = "ChanServ"; name = "ENFORCE"; command = "chanserv/enforce"; group = "chanserv/management"; }
817 * Provides the command chanserv/entrymsg.
819 * Used to configure entry messages sent to users when they join a channel.
825 /* The maximum number of entrymsgs allowed per channel. If not set, defaults to 5. */
828 command { service = "ChanServ"; name = "ENTRYMSG"; command = "chanserv/entrymsg"; group = "chanserv/management"; }
833 * Provides the command chanserv/flags.
834 * Provides the access system "flags".
836 * Used for giving users access in channels.
838 module { name = "cs_flags" }
839 command { service = "ChanServ"; name = "FLAGS"; command = "chanserv/flags"; group = "chanserv/access"; }
844 * Provides the command chanserv/getkey.
846 * Used for getting the key for channels.
848 module { name = "cs_getkey" }
849 command { service = "ChanServ"; name = "GETKEY"; command = "chanserv/getkey"; }
854 * Provides the command chanserv/info.
856 * Used for getting information about channels.
858 module { name = "cs_info" }
859 command { service = "ChanServ"; name = "INFO"; command = "chanserv/info"; }
864 * Provides the command chanserv/invite.
866 * Used for inviting yourself in to channels.
868 module { name = "cs_invite" }
869 command { service = "ChanServ"; name = "INVITE"; command = "chanserv/invite"; }
874 * Provides the command chanserv/kick.
876 * Used for kicking users from channels.
878 module { name = "cs_kick" }
879 command { service = "ChanServ"; name = "KICK"; command = "chanserv/kick"; }
884 * Provides the commands:
885 * chanserv/list - Used for retrieving and searching the registered channel list.
886 * chanserv/set/private - Used for setting whether channels should show up in chanserv/list.
893 * The maximum number of channels to be returned for a ChanServ LIST command.
898 command { service = "ChanServ"; name = "LIST"; command = "chanserv/list"; group = "chanserv/admin"; }
899 command { service = "ChanServ"; name = "SET PRIVATE"; command = "chanserv/set/private"; }
904 * Provides the command chanserv/log.
906 * Use for configuring what actions on channels are logged and where.
912 /* Default log settings for newly registered channels */
916 command = "chanserv/modes"
929 command = "chanserv/xop"
940 command { service = "ChanServ"; name = "LOG"; command = "chanserv/log"; group = "chanserv/management"; }
945 * Provides the command chanserv/mode and chanserv/modes.
947 * Used for changing mode locks and changing modes.
954 * Default modes for mode lock, these are set on newly registered channels.
956 * If not set, the default is +nt.
961 command { service = "ChanServ"; name = "MODE"; command = "chanserv/mode"; group = "chanserv/management"; }
963 command { service = "ChanServ"; name = "OWNER"; command = "chanserv/modes"; group = "chanserv/status"; set = "OWNER" }
964 command { service = "ChanServ"; name = "DEOWNER"; command = "chanserv/modes"; group = "chanserv/status"; unset = "OWNER" }
966 command { service = "ChanServ"; name = "PROTECT"; command = "chanserv/modes"; group = "chanserv/status"; set = "PROTECT" }
967 command { service = "ChanServ"; name = "DEPROTECT"; command = "chanserv/modes"; group = "chanserv/status"; unset = "PROTECT" }
969 command { service = "ChanServ"; name = "OP"; command = "chanserv/modes"; group = "chanserv/status"; set = "OP" }
970 command { service = "ChanServ"; name = "DEOP"; command = "chanserv/modes"; group = "chanserv/status"; unset = "OP" }
972 command { service = "ChanServ"; name = "HALFOP"; command = "chanserv/modes"; group = "chanserv/status"; set = "HALFOP" }
973 command { service = "ChanServ"; name = "DEHALFOP"; command = "chanserv/modes"; group = "chanserv/status"; unset = "HALFOP" }
975 command { service = "ChanServ"; name = "VOICE"; command = "chanserv/modes"; group = "chanserv/status"; set = "VOICE" }
976 command { service = "ChanServ"; name = "DEVOICE"; command = "chanserv/modes"; group = "chanserv/status"; unset = "VOICE" }
981 * Provides the commands chanserv/register.
983 * Used for registering channels.
985 module { name = "cs_register" }
986 command { service = "ChanServ"; name = "REGISTER"; command = "chanserv/register"; }
991 * Provides the commands chanserv/seen and operserv/seen.
993 * Records the last time a user was seen and what they were doing and allows users to request this data.
994 * Also allows administrators to view stats about seen data and purge the database.
1000 /* If set, uses the older 1.8 style seen, which is less resource intensive */
1003 /* Sets the time to keep seen entries in the seen database. */
1006 /* Sets the delay between checks for expired seen entries. */
1007 expiretimeout = "1d"
1009 #command { service = "OperServ"; name = "SEEN"; command = "operserv/seen"; permission = "operserv/seen"; }
1014 * Provides the commands:
1015 * chanserv/set and chanserv/saset - Dummy help wrappers for the SET commands.
1016 * chanserv/set/autoop - Used for configuring whether or not ChanServ automatically gives channel status to users.
1017 * chanserv/set/bantype - Used for controlling what format of bans are placed on channels.
1018 * chanserv/set/description - Used for changing channels descriptions.
1019 * chanserv/set/founder - Used for changing a channel's founder.
1020 * chanserv/set/keepmodes - Used for enabling or disabling keepmodes, which retains channel modes.
1021 * chanserv/set/peace - Used for configuring if users are able to kick other users with higher access than them.
1022 * chanserv/set/persist - Used for setting whether ChanServ should stay in channels after the last user leaves.
1023 * chanserv/set/restricted - Used for setting whether users not on a channel's access list can join.
1024 * chanserv/set/secure - Used for setting whether users who are recognized for accounts should have their access in channels.
1025 * chanserv/set/securefounder - Used for setting whether users with founder level access in channels have true founder or not.
1026 * chanserv/set/secureops - Used for restricting who can have channel op privilege in a channel to those whom have access in the channel.
1027 * chanserv/set/signkick - Used for setting signkick, which appends the kicker's name to kicks sent through ChanServ.
1028 * chanserv/set/successor - Used for setting channel successors, which become channel founders if the founders' account expires.
1029 * chanserv/saset/noexpire - Used for setting noexpire, which prevents channels from expiring.
1031 * This is a dummy command to provide a help wrapper for the various SET commands.
1038 * The default ban type for newly registered channels.
1040 * defbantype can be:
1042 * 0: ban in the form of *!user@host
1043 * 1: ban in the form of *!*user@host
1044 * 2: ban in the form of *!*@host
1045 * 3: ban in the form of *!*user@*.domain
1050 command { service = "ChanServ"; name = "SET"; command = "chanserv/set"; group = "chanserv/management"; }
1051 command { service = "ChanServ"; name = "SET AUTOOP"; command = "chanserv/set/autoop"; }
1052 command { service = "ChanServ"; name = "SET BANTYPE"; command = "chanserv/set/bantype"; }
1053 command { service = "ChanServ"; name = "SET DESCRIPTION"; command = "chanserv/set/description"; }
1054 command { service = "ChanServ"; name = "SET DESC"; command = "chanserv/set/description"; }
1055 command { service = "ChanServ"; name = "SET FOUNDER"; command = "chanserv/set/founder"; }
1056 command { service = "ChanServ"; name = "SET KEEPMODES"; command = "chanserv/set/keepmodes"; }
1057 command { service = "ChanServ"; name = "SET PEACE"; command = "chanserv/set/peace"; }
1058 #command { service = "ChanServ"; name = "SET PERSIST"; command = "chanserv/set/persist"; }
1059 command { service = "ChanServ"; name = "SET RESTRICTED"; command = "chanserv/set/restricted"; }
1060 command { service = "ChanServ"; name = "SET SECURE"; command = "chanserv/set/secure"; }
1061 command { service = "ChanServ"; name = "SET SECUREFOUNDER"; command = "chanserv/set/securefounder"; }
1062 command { service = "ChanServ"; name = "SET SECUREOPS"; command = "chanserv/set/secureops"; }
1063 command { service = "ChanServ"; name = "SET SIGNKICK"; command = "chanserv/set/signkick"; }
1064 command { service = "ChanServ"; name = "SET SUCCESSOR"; command = "chanserv/set/successor"; }
1065 command { service = "ChanServ"; name = "SET NOEXPIRE"; command = "chanserv/saset/noexpire"; permission = "chanserv/saset/noexpire"; }
1070 * Provides the command chanserv/set/misc.
1072 * Allows you to create arbitrary commands to set data, and have that data show up in chanserv/info.
1073 * A field named misc_description may be given for use with help output.
1075 module { name = "cs_set_misc" }
1076 command { service = "ChanServ"; name = "SET URL"; command = "chanserv/set/misc"; misc_description = _("Associate a URL with the channel"); }
1077 command { service = "ChanServ"; name = "SET EMAIL"; command = "chanserv/set/misc"; misc_description = _("Associate an E-mail address with the channel"); }
1078 command { service = "ChanServ"; name = "SET TWITTER"; command = "chanserv/set/misc"; misc_description = _("Associate a Twitter account with the channel"); }
1083 * Provides the command chanserv/status.
1085 * Used for determining a user's access on a channel and whether
1086 * or not they match any autokick entries.
1088 module { name = "cs_status" }
1089 command { service = "ChanServ"; name = "STATUS"; command = "chanserv/status"; }
1094 * Provides the commands chanserv/suspend and chanserv/unsuspend.
1096 * Used for suspending and unsuspending channels. Suspended channels can not be used but their settings are stored.
1103 * The length of time before a suspended channel expires.
1105 * This directive is optional.
1106 * If not set, the default is never.
1111 * Settings to show to non-opers in ChanServ's INFO output.
1112 * Comment to completely disable showing any information about
1113 * suspended channels to non-opers.
1115 show = "suspended, by, reason, on, expires"
1117 command { service = "ChanServ"; name = "SUSPEND"; command = "chanserv/suspend"; permission = "chanserv/suspend"; group = "chanserv/admin"; }
1118 command { service = "ChanServ"; name = "UNSUSPEND"; command = "chanserv/unsuspend"; permission = "chanserv/suspend"; group = "chanserv/admin"; }
1123 * Provides the command chanserv/sync.
1125 * Used to sync users channel status modes with what access they have.
1127 module { name = "cs_sync" }
1128 command { service = "ChanServ"; name = "SYNC"; command = "chanserv/sync"; group = "chanserv/management"; }
1133 * Provides the commands:
1134 * chanserv/topic - Used for changing the channel topic. Useful in conjunction with chanserv/set/topiclock.
1135 * chanserv/set/keeptopic - Used for configuring if ChanServ is to restore the channel topic when a channel is created.
1138 module { name = "cs_topic" }
1139 command { service = "ChanServ"; name = "TOPIC"; command = "chanserv/topic"; group = "chanserv/management"; }
1140 command { service = "ChanServ"; name = "SET KEEPTOPIC"; command = "chanserv/set/keeptopic"; }
1145 * Provides the command chanserv/unban.
1147 * Used for unbanning users from channels.
1149 module { name = "cs_unban" }
1150 command { service = "ChanServ"; name = "UNBAN"; command = "chanserv/unban"; }
1155 * Provides the commands chanserv/up and chanserv/down.
1157 * Used for setting or removing your status modes on a channel.
1159 module { name = "cs_updown" }
1160 command { service = "ChanServ"; name = "DOWN"; command = "chanserv/down"; group = "chanserv/status"; }
1161 command { service = "ChanServ"; name = "UP"; command = "chanserv/up"; group = "chanserv/status"; }
1166 * Provides the command chanserv/xop.
1167 * Provides the access system "XOP".
1169 * Used for giving users access in channels. Many commands may be linked to chanserv/xop, but the
1170 * privileges given by each is determined by the privilege:xop settings above. These commands should
1171 * be ordered from highest to lowest, as each command inherits the privileges of the commands below
1174 module { name = "cs_xop" }
1175 command { service = "ChanServ"; name = "QOP"; command = "chanserv/xop"; group = "chanserv/access"; }
1176 command { service = "ChanServ"; name = "SOP"; command = "chanserv/xop"; group = "chanserv/access"; }
1177 command { service = "ChanServ"; name = "AOP"; command = "chanserv/xop"; group = "chanserv/access"; }
1178 command { service = "ChanServ"; name = "HOP"; command = "chanserv/xop"; group = "chanserv/access"; }
1179 command { service = "ChanServ"; name = "VOP"; command = "chanserv/xop"; group = "chanserv/access"; }
1183 * Extra ChanServ related modules.
1189 * This module automatically updates users status on channels when the
1190 * channel's access list is modified.
1192 module { name = "cs_statusupdate" }