]> git.somenet.org - root/pub/somesible.git/blob - roles/server/irc-services/files/default/chanserv.conf
roles/server/irc-services/files
[root/pub/somesible.git] / roles / server / irc-services / files / default / chanserv.conf
1 #
2 ################################################
3 ### Managed by someone's ansible provisioner ###
4 ################################################
5 # Part of: https://git.somenet.org/root/pub/somesible.git
6 # 2017-2025 by someone <someone@somenet.org>
7 #
8
9 /*
10  * First, create the service.
11  */
12 service
13 {
14         /*
15          * The name of the ChanServ client.
16          * If you change this value, you probably want to change the client directive in the configuration for the chanserv module too.
17          */
18         nick = "ChanServ"
19
20         /*
21          * The username of the ChanServ client.
22          */
23         user = "services"
24
25         /*
26          * The hostname of the ChanServ client.
27          */
28         host = "services.host"
29
30         /*
31          * The realname of the ChanServ client.
32          */
33         gecos = "Channel Registration Service"
34
35         /*
36          * The modes this client should use.
37          * Do not modify this unless you know what you are doing.
38          *
39          * These modes are very IRCd specific. If left commented, sane defaults
40          * are used based on what protocol module you have loaded.
41          *
42          * Note that setting this option incorrectly could potentially BREAK some, if
43          * not all, usefulness of the client. We will not support you if this client is
44          * unable to do certain things if this option is enabled.
45          */
46         #modes = "+o"
47
48         /*
49          * An optional comma separated list of channels this service should join. Outside
50          * of log channels this is not very useful, as the service will just idle in the
51          * specified channels, and will not accept any types of commands.
52          *
53          * Prefixes may be given to the channels in the form of mode characters or prefix symbols.
54          */
55         #channels = "@#services,#mychan"
56 }
57
58 /*
59  * Core ChanServ module.
60  *
61  * Provides essential functionality for ChanServ.
62  */
63 module
64 {
65         name = "chanserv"
66
67         /*
68          * The name of the client that should be ChanServ.
69          */
70         client = "ChanServ"
71
72         /*
73          * The default options for newly registered channels. Note that changing these options
74          * will have no effect on channels which are already registered. The list must be separated
75          * by spaces.
76          *
77          * The options are:
78          * -      keeptopic: Retain topic when the channel is not in use
79          * -          peace: Disallow users from kicking or removing modes from others who are of the same
80          *                     access level or superior
81          * -     cs_private: Hide the channel from ChanServ's LIST command
82          * -     restricted: Kick/ban users who are restricted from the channel
83          * -      cs_secure: Enable channel security, requiring the user to be identified with NickServ in
84          *                     order to be considered for being on the access list of the channel
85          * -      secureops: Only allow operator status to be given if the user is on the access list
86          * -  securefounder: Only allow the real founder of the channel to drop the channel, change its
87          *                     password, or change the founder or successor
88          * -       signkick: Use of ChanServ's KICK command will cause the user's nick to be signed to the kick.
89          * - signkick_level: Same as above, but the kick will not be signed if the user is at the same access
90          *                     level or superior to the target
91          * -      topiclock: Disallow the topic to be changed except with ChanServ's TOPIC command
92          * -        persist: Keep the channel open at all times
93          * -       noautoop: Disables autoop on the channel
94          * -  cs_keep_modes: Enables keep modes on the channel, which retains modes when the channel is
95          *                     not in use.
96          * -   cs_no_expire: Enables no expire. Needs founder, successor (if set) or anyone in the access list
97          *                   to be a registered nick, otherwise the channel will be dropped.
98          * -           none: No defaults
99          *
100          * This directive is optional, if left blank, the options will default to keeptopic, peace, cs_secure,
101          * securefounder, and signkick. If you really want no defaults, use "none" by itself as the option.
102          */
103         defaults = "keeptopic peace cs_secure securefounder signkick cs_keep_modes"
104
105         /*
106          * The maximum number of channels which may be registered to a single nickname.
107          *
108          * This directive is optional, but recommended.
109          * If not set, there will be no restriction on the numbers of channels a single nickname can have registered.
110          */
111         maxregistered = 200
112
113         /*
114          * The length of time before a channel registration expires.
115          *
116          * This directive is optional. If not set, the default is never.
117          */
118         expire = 180d
119
120         /*
121          * The maximum number of entries on a channel's access list.
122          * If not set, the default is 1024. This can be set to 0 for unlimited.
123          */
124         accessmax = 1024
125
126         /*
127          * The length of time ChanServ stays in a channel after kicking a user from a channel they are not
128          * permitted to be in. This only occurs when the user is the only one in the channel.
129          */
130         inhabit = 15s
131
132         /*
133          * Allow only IRC Operators to use ChanServ.
134          *
135          * This directive is optional.
136          */
137         #opersonly = yes
138
139         /*
140          * Modes that will not be allowed to be locked. Oper only modes such as +O
141          * are always restricted from regular users and are not affected by this.
142          * Comment out for no restrictions.
143          */
144         #nomlock = "P"
145
146         /*
147          * Modes that are required to be set and only set on all registered channels.
148          * These modes can not be locked or unlocked. The registered channel mode is
149          * automatically always required, if such a mode exists.
150          */
151         #require = "r"
152
153         /*
154          * The maximum length of the reason field for user commands such as chanserv/kick
155          * and chanserv/ban.
156          */
157         reasonmax = 200
158
159         /*
160          * The message formatting to use for signed kick messages.
161          * %n is the nick of the kicker
162          * %m is the message specified
163          */
164         signkickformat = "%m (%n)"
165
166         /*
167          * If set, prevents channel access entries from containing hostmasks.
168          */
169         disallow_hostmask_access = false
170
171         /*
172          * If set, prevents channels from being on access lists.
173          */
174         disallow_channel_access = false
175
176         /*
177          * If set, ChanServ will always lower the timestamp of registered channels to their registration date.
178          * This prevents several race conditions where unauthorized users can join empty registered channels and set
179          * modes etc. prior to services deopping them.
180          */
181         always_lower_ts = false
182 }
183
184 /*
185  * ChanServ privilege configuration.
186  *
187  * ChanServ privileges are used to determine who has what access in channels. By default the core has its own
188  * set of privileges it uses for various commands, which are defined below. Privilege ranks are used to
189  * determine how powerful privileges are relative to other privileges, which is used by Anope to determine
190  * who has greater access in a channel.
191  *
192  * If you load cs_access, you may define a level for the privilege, which is used by chanserv/access and chanserv/levels.
193  * The levels defined will be used as the default levels for newly registered channels.
194  * The level "founder" is a special level which means anyone with the privilege FOUNDER on the channel
195  * has that permission. Additionally, the level "disabled" means that no one can use the privilege, including founders.
196  *
197  * If you load cs_flags, you may define a flag associated with that privilege for use in chanserv/flags.
198  *
199  * If you load cs_xop, you may define a XOP command to associate the privilege with.
200  *
201  * The name of privileges are used to associate them with channel modes. If you are using an IRCd that allows you to define additional
202  * channel status modes, such as InspIRCd, you can associate privileges (and thus access levels, flags, xop) with the mode by naming
203  * the privileges appropriately. For example, if you had a channel mode called admin, you could create AUTOADMIN, ADMIN, and ADMINME
204  * privileges which would automatically be associated with that channel mode.
205  *
206  * Defining new privileges here is not useful unless you have a module (e.g. a third party one) made to check for
207  * the specific level you are defining.
208  *
209  * Sane defaults are provided below that do not need to be edited unless you wish to change the default behavior.
210  */
211
212 /*
213  * ACCESS_CHANGE privilege.
214  *
215  * Used by chanserv/access, chanserv/flags and chanserv/xop.
216  *
217  * Users with this permission can modify the permissions of others.
218  */
219 privilege
220 {
221         name = "ACCESS_CHANGE"
222         rank = 0
223         level = 10
224         flag = "f"
225         xop = "SOP"
226 }
227
228 /*
229  * ACCESS_LIST privilege.
230  *
231  * Used by chanserv/access, chanserv/flags, and chanserv/xop.
232  *
233  * Users with this permission can view the access list of channels.
234  */
235 privilege
236 {
237         name = "ACCESS_LIST"
238         rank = 10
239         level = 3
240         flag = "f"
241         xop = "VOP"
242 }
243
244 /*
245  * AKICK privilege.
246  *
247  * Used by chanserv/akick and chanserv/enforce.
248  *
249  * Users with this permission can modify the AKICK list.
250  */
251 privilege
252 {
253         name = "AKICK"
254         rank = 250
255         level = 10
256         flag = "K"
257         xop = "SOP"
258 }
259
260 /*
261  * ASSIGN privilege.
262  *
263  * Used by botserv/assign.
264  *
265  * Users with this permission can assign and unassign BotServ bots to and from the channel.
266  */
267 privilege
268 {
269         name = "ASSIGN"
270         rank = 270
271         level = "founder"
272         flag = "s"
273         xop = "QOP"
274 }
275
276 /*
277  * AUTOHALFOP privilege.
278  *
279  * Used by the core.
280  *
281  * Users with this permission get halfop on join.
282  */
283 privilege
284 {
285         name = "AUTOHALFOP"
286         rank = 100
287         level = 4
288         flag = "H"
289         xop = "HOP"
290 }
291
292 /*
293  * AUTOOP privilege.
294  *
295  * Used by the core.
296  *
297  * Users with this permission get op on join.
298  */
299 privilege
300 {
301         name = "AUTOOP"
302         rank = 210
303         level = 5
304         flag = "O"
305         xop = "AOP"
306 }
307
308 /*
309  * AUTOOWNER privilege.
310  *
311  * Used by the core.
312  *
313  * Users with this permission get owner on join.
314  */
315 privilege
316 {
317         name = "AUTOOWNER"
318         rank = 330
319         level = 9999
320         flag = "Q"
321         xop = "QOP"
322 }
323
324 /*
325  * AUTOPROTECT privilege.
326  *
327  * Used by the core.
328  *
329  * Users with this permission get admin on join.
330  */
331 privilege
332 {
333         name = "AUTOPROTECT"
334         rank = 240
335         level = 10
336         flag = "A"
337         xop = "SOP"
338 }
339
340 /*
341  * AUTOVOICE privilege.
342  *
343  * Used by the core.
344  *
345  * Users with this permission get voice on join.
346  */
347 privilege
348 {
349         name = "AUTOVOICE"
350         rank = 50
351         level = 3
352         flag = "V"
353         xop = "VOP"
354 }
355
356 /*
357  * BADWORDS privilege.
358  *
359  * Used by botserv/badwords.
360  *
361  * Users with this permission can modify BotServ's BADWORDS list.
362  */
363 privilege
364 {
365         name = "BADWORDS"
366         rank = 260
367         level = 10
368         flag = "K"
369         xop = "SOP"
370 }
371
372 /*
373  * BAN privilege.
374  *
375  * Used by chanserv/ban.
376  *
377  * Users with this permission can use the BAN command.
378  */
379 privilege
380 {
381         name = "BAN"
382         rank = 150
383         level = 4
384         flag = "b"
385         xop = "HOP"
386 }
387
388 /*
389  * FANTASIA privilege.
390  *
391  * Used by botserv/main and chanserv/xop.
392  *
393  * Users with this permission can use fantasy commands in the channel.
394  */
395 privilege
396 {
397         name = "FANTASIA"
398         rank = 30
399         level = 3
400         flag = "c"
401         xop = "VOP"
402 }
403
404 /*
405  * FOUNDER privilege.
406  *
407  * Used by chanserv/access, chanserv/akick,
408  * chanserv/drop, chanserv/set/founder,
409  * chanserv/set/securefounder, chanserv/set/successor and chanserv/xop.
410  *
411  * Users with this permission are treated as founders and can use
412  * commands restricted to founders.
413  */
414 privilege
415 {
416         name = "FOUNDER"
417         rank = 360
418         level = 10000
419         flag = "F"
420         xop = "QOP"
421 }
422
423 /*
424  * GETKEY privilege.
425  *
426  * Used by chanserv/getkey and nickserv/ajoin.
427  *
428  * Users with this permission can get their channel key with GETKEY and
429  * can use nickserv/ajoin to join channels with keys.
430  */
431 privilege
432 {
433         name = "GETKEY"
434         rank = 180
435         level = 5
436         flag = "G"
437         xop = "AOP"
438 }
439
440 /*
441  * HALFOP privilege.
442  *
443  * Used by chanserv/mode, chanserv/halfop and chanserv/dehalfop.
444  *
445  * Users with this permission can use ChanServ to halfop and dehalfop
446  * others in the channel.
447  */
448 privilege
449 {
450         name = "HALFOP"
451         rank = 120
452         level = 5
453         flag = "h"
454         xop = "AOP"
455 }
456
457 /*
458  * HALFOPME privilege.
459  *
460  * Used by chanserv/mode, chanserv/halfop and chanserv/dehalfop.
461  *
462  * Users with this permission can use ChanServ to halfop and dehalfop
463  * themselves in the channel.
464  */
465 privilege
466 {
467         name = "HALFOPME"
468         rank = 110
469         level = 4
470         flag = "h"
471         xop = "HOP"
472 }
473
474 /*
475  * INFO privilege.
476  *
477  * Used by botserv/info and chanserv/info.
478  *
479  * Users with this permission are allowed to get the full INFO output
480  * from BotServ and ChanServ.
481  */
482 privilege
483 {
484         name = "INFO"
485         rank = 80
486         level = 9999
487         flag = "I"
488         xop = "QOP"
489 }
490
491 /*
492  * INVITE privilege.
493  *
494  * Used by chanserv/invite and nickserv/ajoin.
495  *
496  * Users with this permission can invite users through ChanServ and
497  * join invite only channels with nickserv/ajoin.
498  */
499 privilege
500 {
501         name = "INVITE"
502         rank = 190
503         level = 5
504         flag = "i"
505         xop = "AOP"
506 }
507
508 /*
509  * KICK privilege.
510  *
511  * Used by chanserv/kick.
512  *
513  * Users with this permission can use the KICK command.
514  */
515 privilege
516 {
517         name = "KICK"
518         rank = 130
519         level = 4
520         flag = "k"
521         xop = "HOP"
522 }
523
524 /*
525  * MEMO privilege.
526  *
527  * Used by memoserv/del, memoserv/ignore, memoserv/info, memoserv/list,
528  * memoserv/main, memoserv/read and memoserv/set.
529  *
530  * Users with this permission can manage channel memos.
531  */
532 privilege
533 {
534         name = "MEMO"
535         rank = 280
536         level = 10
537         flag = "m"
538         xop = "SOP"
539 }
540
541 /*
542  * MODE privilege.
543  *
544  * Used by chanserv/mode.
545  *
546  * Users with this permission can set modes through ChanServ and change
547  * the mode lock.
548  */
549 privilege
550 {
551         name = "MODE"
552         rank = 170
553         level = 9999
554         flag = "s"
555         xop = "QOP"
556 }
557
558 /*
559  * NOKICK privilege.
560  *
561  * Used by botserv/kick.
562  *
563  * Users with this permission are spared from automated BotServ kicks.
564  */
565 privilege
566 {
567         name = "NOKICK"
568         rank = 20
569         level = 1
570         flag = "N"
571         xop = "VOP"
572 }
573
574 /*
575  * OP privilege.
576  *
577  * Used by chanserv/mode, chanserv/modes.
578  *
579  * Users with this permission can use ChanServ to op and deop
580  * others in the channel.
581  */
582 privilege
583 {
584         name = "OP"
585         rank = 230
586         level = 5
587         flag = "o"
588         xop = "SOP"
589 }
590
591 /*
592  * OPME privilege.
593  *
594  * Used by chanserv/mode, chanserv/modes.
595  *
596  * Users with this permission can use ChanServ to op and deop
597  * themselves in the channel.
598  */
599 privilege
600 {
601         name = "OPME"
602         rank = 220
603         level = 5
604         flag = "o"
605         xop = "AOP"
606 }
607
608 /*
609  * OWNER privilege.
610  *
611  * Used by chanserv/mode and chanserv/modes.
612  *
613  * Users with this permission can use ChanServ to owner and deowner
614  * others in the channel.
615  */
616 privilege
617 {
618         name = "OWNER"
619         rank = 350
620         level = "founder"
621         flag = "q"
622         xop = "QOP"
623 }
624
625 /*
626  * OWNERME privilege.
627  *
628  * Used by chanserv/mode and chanserv/modes.
629  *
630  * Users with this permission can use ChanServ to owner and deowner
631  * themselves in the channel.
632  */
633 privilege
634 {
635         name = "OWNERME"
636         rank = 340
637         level = 9999
638         flag = "q"
639         xop = "QOP"
640 }
641
642 /*
643  * PROTECT privilege.
644  *
645  * Used by chanserv/mode and chanserv/modes.
646  *
647  * Users with this permission can use ChanServ to protect and deprotect
648  * others in the channel.
649  */
650 privilege
651 {
652         name = "PROTECT"
653         rank = 310
654         level = 9999
655         flag = "a"
656         xop = "QOP"
657 }
658
659 /*
660  * PROTECTME privilege.
661  *
662  * Used by chanserv/mode and chanserv/modes.
663  *
664  * Users with this permission can use ChanServ to protect and deprotect
665  * themselves in the channel.
666  */
667 privilege
668 {
669         name = "PROTECTME"
670         rank = 300
671         level = 10
672         flag = "a"
673         xop = "AOP"
674 }
675
676 /*
677  * SAY privilege.
678  *
679  * Used by botserv/control.
680  *
681  * Users with this permission can use the BotServ bot in the channel to
682  * say or do a /me with the provided message.
683  */
684 privilege
685 {
686         name = "SAY"
687         rank = 90
688         level = 5
689         flag = "B"
690         xop = "AOP"
691 }
692
693 /*
694  * SET privilege.
695  *
696  * Used by botserv/kick, botserv/set, chanserv/clone, chanserv/log,
697  * chanserv/saset/noexpire and chanserv/set.
698  *
699  * Users with this permission can set what BotServ will kick for, change
700  * BotServ and ChanServ settings, clone ChanServ channel settings, and
701  * set ChanServ logging options.
702  */
703 privilege
704 {
705         name = "SET"
706         rank = 320
707         level = 9999
708         flag = "s"
709         xop = "QOP"
710 }
711
712 /*
713  * SIGNKICK privilege.
714  *
715  * Used by chanserv/ban and chanserv/kick.
716  *
717  * Users with this permission won't get their nick shown in the kick
718  * through ChanServ when the setting SIGNKICK is set to LEVEL.
719  */
720 privilege
721 {
722         name = "SIGNKICK"
723         rank = 140
724         level = 9999
725         flag = "K"
726         xop = "QOP"
727 }
728
729 /*
730  * TOPIC privilege.
731  *
732  * Used by chanserv/topic.
733  *
734  * Users with this permission can change the channel topic through ChanServ.
735  */
736 privilege
737 {
738         name = "TOPIC"
739         rank = 160
740         level = 5
741         flag = "t"
742         xop = "AOP"
743 }
744
745 /*
746  * UNBAN privilege.
747  *
748  * Used by chanserv/unban.
749  *
750  * Users with this permission can unban themselves and others through ChanServ.
751  */
752 privilege
753 {
754         name = "UNBAN"
755         rank = 200
756         level = 4
757         flag = "u"
758         xop = "HOP"
759 }
760
761 /*
762  * VOICE privilege.
763  *
764  * Used by chanserv/mode and chanserv/modes.
765  *
766  * Users with this permission can use ChanServ to voice and devoice
767  * others in the channel.
768  */
769 privilege
770 {
771         name = "VOICE"
772         rank = 70
773         level = 4
774         flag = "v"
775         xop = "HOP"
776 }
777
778 /*
779  * VOICEME privilege.
780  *
781  * Used by chanserv/mode and chanserv/modes.
782  *
783  * Users with this permission can use ChanServ to voice and devoice
784  * themselves in the channel.
785  */
786 privilege
787 {
788         name = "VOICEME"
789         rank = 60
790         level = 3
791         flag = "v"
792         xop = "VOP"
793 }
794
795 /*
796  * Core ChanServ commands.
797  *
798  * In Anope modules can provide (multiple) commands, each of which has a unique command name. Once these modules
799  * are loaded you can then configure the commands to be added to any client you like with any name you like.
800  *
801  * Additionally, you may provide a permission name that must be in the opertype of users executing the command.
802  *
803  * Sane defaults are provided below that do not need to be edited unless you wish to change the default behavior.
804  */
805
806 /* Command group configuration for ChanServ.
807  *
808  * Commands may optionally be placed into groups to make ChanServ's HELP output easier to understand.
809  * Remove the following groups to use the old behavior of simply listing all ChanServ commands from HELP.
810  */
811 command_group
812 {
813         name = "chanserv/access"
814         description = _("Used to manage the list of privileged users")
815 }
816
817 command_group
818 {
819         name = "chanserv/status"
820         description = _("Used to modify the channel status of you or other users")
821 }
822
823 command_group
824 {
825         name = "chanserv/management"
826         description = _("Used to manage channels")
827 }
828
829 command_group
830 {
831         name = "chanserv/admin"
832         description = _("Services Operator commands")
833 }
834
835 /* Give it a help command. */
836 command { service = "ChanServ"; name = "HELP"; command = "generic/help"; }
837
838 /*
839  * cs_access
840  *
841  * Provides commands chanserv/access and chanserv/levels.
842  * Provides the access system "levels".
843  *
844  * Used for giving users access in channels using a levels system. Allows redefining which privileges
845  * are represented by given level on a per channel basis.
846  *
847  * The "LIST" subcommand of chanserv/access will show every access entry on the channel, including access
848  * entries not added by cs_access. The "level" of these entries will be the representation of the access
849  * entry by the other access system, which could be an XOP command name, or a set of flags.
850  */
851 module { name = "cs_access" }
852 command { service = "ChanServ"; name = "ACCESS"; command = "chanserv/access"; group = "chanserv/access"; }
853 command { service = "ChanServ"; name = "LEVELS"; command = "chanserv/levels"; group = "chanserv/access"; }
854
855 /*
856  * cs_akick
857  *
858  * Provides the command chanserv/akick.
859  *
860  * Used for preventing users from joining channels.
861  */
862 module
863 {
864         name = "cs_akick"
865
866         /*
867          * The maximum number of entries on a channel's autokick list.
868          */
869         autokickmax = 32
870
871         /*
872          * The default reason for an autokick if none is given.
873          */
874         autokickreason = "User has been banned from the channel"
875 }
876 command { service = "ChanServ"; name = "AKICK"; command = "chanserv/akick"; group = "chanserv/management"; }
877
878 /*
879  * cs_ban
880  *
881  * Provides the command chanserv/ban.
882  *
883  * The configuration option 'kick' may be set in a command block for this command to control
884  * whether or not users will be kicked from the channel once banned. The default is 'yes'.
885  *
886  * The configuration option 'mode' may be set to control which mode is set, such as BAN or QUIET.
887  * The default is BAN.
888  *
889  * Used for banning users from channels.
890  */
891 module { name = "cs_ban" }
892 command { service = "ChanServ"; name = "BAN"; command = "chanserv/ban"; }
893
894 /*
895  * cs_clone
896  *
897  * Provides the command chanserv/clone.
898  *
899  * Used for copying channel settings from one channel to another.
900  */
901 module { name = "cs_clone" }
902 command { service = "ChanServ"; name = "CLONE"; command = "chanserv/clone"; group = "chanserv/management"; }
903
904 /*
905  * cs_drop
906  *
907  * Provides the command chanserv/drop.
908  *
909  * Used for unregistering channels.
910  */
911 module { name = "cs_drop" }
912 command { service = "ChanServ"; name = "DROP"; command = "chanserv/drop"; }
913
914 /*
915  * cs_enforce
916  *
917  * Provides the command chanserv/enforce.
918  *
919  * Used to enforce various channel settings such as secureops and restricted.
920  */
921 module { name = "cs_enforce" }
922 command { service = "ChanServ"; name = "ENFORCE"; command = "chanserv/enforce"; group = "chanserv/management"; }
923
924 /*
925  * cs_entrymsg
926  *
927  * Provides the command chanserv/entrymsg.
928  *
929  * Used to configure entry messages sent to users when they join a channel.
930  */
931 module
932 {
933         name = "cs_entrymsg"
934
935         /* The maximum number of entrymsgs allowed per channel. If not set, defaults to 5. */
936         maxentries = 5
937 }
938 command { service = "ChanServ"; name = "ENTRYMSG"; command = "chanserv/entrymsg"; group = "chanserv/management"; }
939
940 /*
941  * cs_flags
942  *
943  * Provides the command chanserv/flags.
944  * Provides the access system "flags".
945  *
946  * Used for giving users access in channels.
947  *
948  * The "LIST" subcommand of chanserv/flags will show every access entry on the channel, including access
949  * entries not added by cs_flags. The "flags" of these entries will be the flags representation of the
950  * privilege set granted by the access entry.
951  */
952 module { name = "cs_flags" }
953 command { service = "ChanServ"; name = "FLAGS"; command = "chanserv/flags"; group = "chanserv/access"; }
954
955 /*
956  * cs_getkey
957  *
958  * Provides the command chanserv/getkey.
959  *
960  * Used for getting the key for channels.
961  */
962 module { name = "cs_getkey" }
963 command { service = "ChanServ"; name = "GETKEY"; command = "chanserv/getkey"; }
964
965 /*
966  * cs_info
967  *
968  * Provides the command chanserv/info.
969  *
970  * Used for getting information about channels.
971  */
972 module { name = "cs_info" }
973 command { service = "ChanServ"; name = "INFO"; command = "chanserv/info"; }
974
975 /*
976  * cs_invite
977  *
978  * Provides the command chanserv/invite.
979  *
980  * Used for inviting yourself in to channels.
981  */
982 module { name = "cs_invite" }
983 command { service = "ChanServ"; name = "INVITE"; command = "chanserv/invite"; }
984
985 /*
986  * cs_kick
987  *
988  * Provides the command chanserv/kick.
989  *
990  * Used for kicking users from channels.
991  */
992 module { name = "cs_kick" }
993 command { service = "ChanServ"; name = "KICK"; command = "chanserv/kick"; }
994
995 /*
996  * cs_list
997  *
998  * Provides the commands:
999  *   chanserv/list - Used for retrieving and searching the registered channel list.
1000  *   chanserv/set/private - Used for setting whether channels should show up in chanserv/list.
1001  */
1002 module
1003 {
1004         name = "cs_list"
1005
1006         /*
1007          * The maximum number of channels to be returned for a ChanServ LIST command.
1008          */
1009         listmax = 50
1010 }
1011 command { service = "ChanServ"; name = "LIST"; command = "chanserv/list"; }
1012
1013 command { service = "ChanServ"; name = "SET PRIVATE"; command = "chanserv/set/private"; }
1014
1015
1016 /*
1017  * cs_log
1018  *
1019  * Provides the command chanserv/log.
1020  *
1021  * Use for configuring what actions on channels are logged and where.
1022  */
1023 module
1024 {
1025         name = "cs_log"
1026
1027         /* Default log settings for newly registered channels */
1028
1029         #default
1030         {
1031                 command = "chanserv/modes"
1032                 method = "MESSAGE @"
1033         }
1034
1035         #default
1036         {
1037                 service = "ChanServ"
1038                 command = "ACCESS"
1039                 method = "MESSAGE @"
1040         }
1041
1042         #default
1043         {
1044                 command = "chanserv/xop"
1045                 method = "MESSAGE @"
1046         }
1047
1048         #default
1049         {
1050                 service = "ChanServ"
1051                 command = "FLAGS"
1052                 method = "MESSAGE @"
1053         }
1054 }
1055 command { service = "ChanServ"; name = "LOG"; command = "chanserv/log"; group = "chanserv/management"; }
1056
1057 /*
1058  * cs_mode
1059  *
1060  * Provides the command chanserv/mode and chanserv/modes.
1061  *
1062  * Used for changing mode locks and changing modes. Multiple commands may be mapped to chanserv/modes, the
1063  * configuration directives 'set' and 'unset' are used to tell chanserv/modes which modes should be set or
1064  * unset when the command is executed.
1065  */
1066 module
1067 {
1068         name = "cs_mode"
1069
1070         /*
1071          * Default modes for mode lock, these are set on newly registered channels.
1072          *
1073          * If not set, the default is +nt.
1074          */
1075         mlock = "+nt"
1076
1077         /*
1078          * The maximum number of entries that may be on a mode lock list.
1079          *
1080          * This directive is optional.
1081          */
1082         max = 32
1083 }
1084 command { service = "ChanServ"; name = "MODE"; command = "chanserv/mode"; group = "chanserv/management"; }
1085
1086 command { service = "ChanServ"; name = "OWNER"; command = "chanserv/modes"; group = "chanserv/status"; set = "OWNER" }
1087 command { service = "ChanServ"; name = "DEOWNER"; command = "chanserv/modes"; group = "chanserv/status"; unset = "OWNER" }
1088
1089 command { service = "ChanServ"; name = "PROTECT"; command = "chanserv/modes"; group = "chanserv/status"; set = "PROTECT" }
1090 command { service = "ChanServ"; name = "DEPROTECT"; command = "chanserv/modes"; group = "chanserv/status"; unset = "PROTECT" }
1091
1092 command { service = "ChanServ"; name = "OP"; command = "chanserv/modes"; group = "chanserv/status"; set = "OP" }
1093 command { service = "ChanServ"; name = "DEOP"; command = "chanserv/modes"; group = "chanserv/status"; unset = "OP" }
1094
1095 command { service = "ChanServ"; name = "HALFOP"; command = "chanserv/modes"; group = "chanserv/status"; set = "HALFOP" }
1096 command { service = "ChanServ"; name = "DEHALFOP"; command = "chanserv/modes"; group = "chanserv/status"; unset = "HALFOP" }
1097
1098 command { service = "ChanServ"; name = "VOICE"; command = "chanserv/modes"; group = "chanserv/status"; set = "VOICE" }
1099 command { service = "ChanServ"; name = "DEVOICE"; command = "chanserv/modes"; group = "chanserv/status"; unset = "VOICE" }
1100
1101
1102 /*
1103  * cs_register
1104  *
1105  * Provides the commands chanserv/register.
1106  *
1107  * Used for registering channels.
1108  */
1109 module { name = "cs_register" }
1110 command { service = "ChanServ"; name = "REGISTER"; command = "chanserv/register"; }
1111
1112 /*
1113  * cs_seen
1114  *
1115  * Provides the commands chanserv/seen and operserv/seen.
1116  *
1117  * Records the last time a user was seen and what they were doing and allows users to request this data.
1118  * Also allows administrators to view stats about seen data and purge the database.
1119  */
1120 #module
1121 {
1122         name = "cs_seen"
1123
1124         /* If set, uses the older 1.8 style seen, which is less resource intensive */
1125         simple = false
1126
1127         /* Sets the time to keep seen entries in the seen database. */
1128         purgetime = "30d"
1129 }
1130 #command { service = "OperServ"; name = "SEEN"; command = "operserv/seen"; permission = "operserv/seen"; }
1131
1132 /*
1133  * cs_set
1134  *
1135  * Provides the commands:
1136  *   chanserv/set and chanserv/saset - Dummy help wrappers for the SET commands.
1137  *   chanserv/set/autoop - Used for configuring whether or not ChanServ automatically gives channel status to users.
1138  *   chanserv/set/bantype - Used for controlling what format of bans are placed on channels.
1139  *   chanserv/set/description - Used for changing channels descriptions.
1140  *   chanserv/set/founder - Used for changing a channel's founder.
1141  *   chanserv/set/keepmodes - Used for enabling or disabling keepmodes, which retains channel modes.
1142  *   chanserv/set/peace - Used for configuring if users are able to kick other users with higher access than them.
1143  *   chanserv/set/persist - Used for setting whether ChanServ should stay in channels after the last user leaves.
1144  *   chanserv/set/restricted - Used for setting whether users not on a channel's access list can join.
1145  *   chanserv/set/secure - Used for setting whether users who are recognized for accounts should have their access in channels.
1146  *   chanserv/set/securefounder - Used for setting whether users with founder level access in channels have true founder or not.
1147  *   chanserv/set/secureops - Used for restricting who can have channel op privilege in a channel to those whom have access in the channel.
1148  *   chanserv/set/signkick - Used for setting signkick, which appends the kicker's name to kicks sent through ChanServ.
1149  *   chanserv/set/successor - Used for setting channel successors, which become channel founders if the founders' account expires.
1150  *   chanserv/saset/noexpire - Used for setting noexpire, which prevents channels from expiring.
1151  *
1152  * This is a dummy command to provide a help wrapper for the various SET commands.
1153  */
1154 module
1155 {
1156         name = "cs_set"
1157
1158         /*
1159          * The default ban type for newly registered channels.
1160          *
1161          * defbantype can be:
1162          *
1163          * 0: ban in the form of *!user@host
1164          * 1: ban in the form of *!*user@host
1165          * 2: ban in the form of *!*@host
1166          * 3: ban in the form of *!*user@*.domain
1167          */
1168         defbantype = 2
1169
1170         /*
1171          * If set, persistent channels have their creation times lowered to their
1172          * original registration dates.
1173          */
1174         persist_lower_ts = true
1175 }
1176 command { service = "ChanServ"; name = "SET"; command = "chanserv/set"; group = "chanserv/management"; }
1177 command { service = "ChanServ"; name = "SET AUTOOP"; command = "chanserv/set/autoop"; }
1178 command { service = "ChanServ"; name = "SET BANTYPE"; command = "chanserv/set/bantype"; }
1179 command { service = "ChanServ"; name = "SET DESCRIPTION"; command = "chanserv/set/description"; }
1180 command { service = "ChanServ"; name = "SET DESC"; command = "chanserv/set/description"; hide = yes; }
1181 command { service = "ChanServ"; name = "SET FOUNDER"; command = "chanserv/set/founder"; }
1182 command { service = "ChanServ"; name = "SET KEEPMODES"; command = "chanserv/set/keepmodes"; }
1183 command { service = "ChanServ"; name = "SET PEACE"; command = "chanserv/set/peace"; }
1184 command { service = "ChanServ"; name = "SET PERSIST"; command = "chanserv/set/persist"; }
1185 command { service = "ChanServ"; name = "SET RESTRICTED"; command = "chanserv/set/restricted"; }
1186 command { service = "ChanServ"; name = "SET SECURE"; command = "chanserv/set/secure"; }
1187 command { service = "ChanServ"; name = "SET SECUREFOUNDER"; command = "chanserv/set/securefounder"; }
1188 command { service = "ChanServ"; name = "SET SECUREOPS"; command = "chanserv/set/secureops"; }
1189 command { service = "ChanServ"; name = "SET SIGNKICK"; command = "chanserv/set/signkick"; }
1190 command { service = "ChanServ"; name = "SET SUCCESSOR"; command = "chanserv/set/successor"; }
1191 command { service = "ChanServ"; name = "SET NOEXPIRE"; command = "chanserv/saset/noexpire"; permission = "chanserv/saset/noexpire"; }
1192
1193 /*
1194  * cs_set_misc
1195  *
1196  * Provides the command chanserv/set/misc.
1197  *
1198  * Allows you to create arbitrary commands to set data, and have that data show up in chanserv/info.
1199  * A field named misc_description may be given for use with help output.
1200  */
1201 module { name = "cs_set_misc" }
1202 command { service = "ChanServ"; name = "SET URL"; command = "chanserv/set/misc"; misc_description = _("Associate a URL with the channel"); }
1203 command { service = "ChanServ"; name = "SET EMAIL"; command = "chanserv/set/misc"; misc_description = _("Associate an E-mail address with the channel"); }
1204
1205 /*
1206  * cs_status
1207  *
1208  * Provides the command chanserv/status.
1209  *
1210  * Used for determining a user's access on a channel and whether
1211  * or not they match any autokick entries.
1212  */
1213 module { name = "cs_status" }
1214 command { service = "ChanServ"; name = "STATUS"; command = "chanserv/status"; }
1215
1216 /*
1217  * cs_suspend
1218  *
1219  * Provides the commands chanserv/suspend and chanserv/unsuspend.
1220  *
1221  * Used for suspending and unsuspending channels. Suspended channels can not be used but their settings are stored.
1222  */
1223 module
1224 {
1225         name = "cs_suspend"
1226
1227         /*
1228          * The length of time before a suspended channel expires.
1229          *
1230          * This directive is optional.
1231          * If not set, the default is never.
1232          */
1233         expire = 180d
1234
1235         /*
1236          * Settings to show to non-opers in ChanServ's INFO output.
1237          * Comment to completely disable showing any information about
1238          * suspended channels to non-opers.
1239          */
1240         show = "suspended, by, reason, on, expires"
1241 }
1242 command { service = "ChanServ"; name = "SUSPEND"; command = "chanserv/suspend"; permission = "chanserv/suspend"; group = "chanserv/admin"; }
1243 command { service = "ChanServ"; name = "UNSUSPEND"; command = "chanserv/unsuspend"; permission = "chanserv/suspend"; group = "chanserv/admin"; }
1244
1245 /*
1246  * cs_sync
1247  *
1248  * Provides the command chanserv/sync.
1249  *
1250  * Used to sync users channel status modes with what access they have.
1251  */
1252 module { name = "cs_sync" }
1253 command { service = "ChanServ"; name = "SYNC"; command = "chanserv/sync"; group = "chanserv/management"; }
1254
1255 /*
1256  * cs_topic
1257  *
1258  * Provides the commands:
1259  *   chanserv/topic - Used for changing the channel topic. Useful in conjunction with chanserv/set/topiclock.
1260  *   chanserv/set/keeptopic - Used for configuring if ChanServ is to restore the channel topic when a channel is created.
1261  *
1262  */
1263 module { name = "cs_topic" }
1264 command { service = "ChanServ"; name = "TOPIC"; command = "chanserv/topic"; group = "chanserv/management"; }
1265 command { service = "ChanServ"; name = "SET KEEPTOPIC"; command = "chanserv/set/keeptopic"; }
1266
1267 /*
1268  * cs_unban
1269  *
1270  * Provides the command chanserv/unban.
1271  *
1272  * Used for unbanning users from channels.
1273  */
1274 module { name = "cs_unban" }
1275 command { service = "ChanServ"; name = "UNBAN"; command = "chanserv/unban"; }
1276
1277 /*
1278  * cs_updown
1279  *
1280  * Provides the commands chanserv/up and chanserv/down.
1281  *
1282  * Used for setting or removing your status modes on a channel.
1283  */
1284 module { name = "cs_updown" }
1285 command { service = "ChanServ"; name = "DOWN"; command = "chanserv/down"; group = "chanserv/status"; }
1286 command { service = "ChanServ"; name = "UP"; command = "chanserv/up"; group = "chanserv/status"; }
1287
1288 /*
1289  * cs_xop
1290  *
1291  * Provides the command chanserv/xop.
1292  * Provides the access system "XOP".
1293  *
1294  * Used for giving users access in channels. Many commands may be linked to chanserv/xop, but the
1295  * privileges given by each are determined by the privilege:xop settings above. These commands should
1296  * be ordered from highest to lowest, as each command inherits the privileges of the commands below
1297  * it.
1298  *
1299  * The "LIST" subcommand of chanserv/xop will show only XOP access entries of the given XOP type. You
1300  * can not view the entire access list at once, and instead should use another access system to do that.
1301  */
1302 module { name = "cs_xop" }
1303 command { service = "ChanServ"; name = "QOP"; command = "chanserv/xop"; group = "chanserv/access"; }
1304 command { service = "ChanServ"; name = "SOP"; command = "chanserv/xop"; group = "chanserv/access"; }
1305 command { service = "ChanServ"; name = "AOP"; command = "chanserv/xop"; group = "chanserv/access"; }
1306 command { service = "ChanServ"; name = "HOP"; command = "chanserv/xop"; group = "chanserv/access"; }
1307 command { service = "ChanServ"; name = "VOP"; command = "chanserv/xop"; group = "chanserv/access"; }
1308
1309
1310 /*
1311  * Extra ChanServ related modules.
1312  */
1313
1314 /*
1315  * cs_statusupdate
1316  *
1317  * This module automatically updates users' status on channels when the
1318  * channel's access list is modified.
1319  */
1320 module { name = "cs_statusupdate" }