]> git.somenet.org - root/pub/somesible.git/blob - roles/server/irc-services/files/default/chanserv.conf
roles/base/backup/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-2024 by someone <someone@somenet.org>
7 #
8
9 /*
10  * First, create the service.
11  * Note that an easy way to rename this service is to define{} the client name to something else.
12  */
13 service
14 {
15         nick = "ChanServ"
16         user = "chanserv"
17         host = "services.host"
18         gecos = "Channel Registration Service"
19         #modes = "+o"
20 }
21
22 /*
23  * Core ChanServ module.
24  *
25  * Provides essential functionality for ChanServ.
26  */
27 module
28 {
29         name = "chanserv"
30
31         /*
32          * The name of the client that should be ChanServ.
33          */
34         client = "ChanServ"
35
36         /*
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
39          * by spaces.
40          *
41          * The options are:
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
59          *                     not in use.
60          * -           none: No defaults
61          *
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.
64          */
65         defaults = "keeptopic peace cs_secure securefounder signkick cs_keep_modes"
66         maxregistered = 64
67         expire = 180d
68         accessmax = 1024
69         inhabit = 30s
70         #nomlock = "P"
71         #require = "r"
72         reasonmax = 200
73         disallow_hostmask_access = false
74         disallow_channel_access = false
75
76         /*
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.
80          */
81         #always_lower_ts = true
82 }
83
84 /*
85  * ChanServ privilege configuration.
86  *
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.
91  *
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.
96  *
97  * If you loaded cs_flags, you may define a flag associated with that privilege for use in chanserv/flags.
98  *
99  * If you loaded cs_xop, you may define a xop command to associate the privilege with.
100  *
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.
105  *
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.
108  *
109  * Sane defaults are provided below that do not need to be edited unless you wish to change the default behavior.
110  */
111
112 /*
113  * ACCESS_CHANGE privilege.
114  *
115  * Used by chanserv/access, chanserv/flags and chanserv/xop.
116  *
117  * Users with this permission can modify the permissions of others.
118  */
119 privilege
120 {
121         name = "ACCESS_CHANGE"
122         rank = 0
123         level = 10
124         flag = "f"
125         xop = "SOP"
126 }
127
128 /*
129  * ACCESS_LIST privilege.
130  *
131  * Used by chanserv/access, chanserv/flags, and chanserv/xop.
132  *
133  * Users with this permission can view the access list of channels.
134  */
135 privilege
136 {
137         name = "ACCESS_LIST"
138         rank = 10
139         level = 3
140         flag = "f"
141         xop = "VOP"
142 }
143
144 /*
145  * AKICK privilege.
146  *
147  * Used by chanserv/akick and chanserv/enforce.
148  *
149  * Users with this permission can modify the AKICK list.
150  */
151 privilege
152 {
153         name = "AKICK"
154         rank = 250
155         level = 10
156         flag = "K"
157         xop = "SOP"
158 }
159
160 /*
161  * ASSIGN privilege.
162  *
163  * Used by botserv/assign.
164  *
165  * Users with this permission can assign and unassign BotServ bots to and from the channel.
166  */
167 privilege
168 {
169         name = "ASSIGN"
170         rank = 270
171         level = "founder"
172         flag = "s"
173         xop = "QOP"
174 }
175
176 /*
177  * AUTOHALFOP privilege.
178  *
179  * Used by the core.
180  *
181  * Users with this permission get halfop on join.
182  */
183 privilege
184 {
185         name = "AUTOHALFOP"
186         rank = 100
187         level = 4
188         flag = "H"
189         xop = "HOP"
190 }
191
192 /*
193  * AUTOOP privilege.
194  *
195  * Used by the core.
196  *
197  * Users with this permission get op on join.
198  */
199 privilege
200 {
201         name = "AUTOOP"
202         rank = 210
203         level = 5
204         flag = "O"
205         xop = "AOP"
206 }
207
208 /*
209  * AUTOOWNER privilege.
210  *
211  * Used by the core.
212  *
213  * Users with this permission get owner on join.
214  */
215 privilege
216 {
217         name = "AUTOOWNER"
218         rank = 330
219         level = 9999
220         flag = "Q"
221         xop = "QOP"
222 }
223
224 /*
225  * AUTOPROTECT privilege.
226  *
227  * Used by the core.
228  *
229  * Users with this permission get admin on join.
230  */
231 privilege
232 {
233         name = "AUTOPROTECT"
234         rank = 240
235         level = 10
236         flag = "A"
237         xop = "SOP"
238 }
239
240 /*
241  * AUTOVOICE privilege.
242  *
243  * Used by the core.
244  *
245  * Users with this permission get voice on join.
246  */
247 privilege
248 {
249         name = "AUTOVOICE"
250         rank = 50
251         level = 3
252         flag = "V"
253         xop = "VOP"
254 }
255
256 /*
257  * BADWORDS privilege.
258  *
259  * Used by botserv/badwords.
260  *
261  * Users with this permission can modify BotServ's BADWORDS list.
262  */
263 privilege
264 {
265         name = "BADWORDS"
266         rank = 260
267         level = 10
268         flag = "K"
269         xop = "SOP"
270 }
271
272 /*
273  * BAN privilege.
274  *
275  * Used by chanserv/ban.
276  *
277  * Users with this permission can use the BAN command.
278  */
279 privilege
280 {
281         name = "BAN"
282         rank = 150
283         level = 4
284         flag = "b"
285         xop = "HOP"
286 }
287
288 /*
289  * FANTASIA privilege.
290  *
291  * Used by botserv/main and chanserv/xop.
292  *
293  * Users with this permission can use fantasy commands in the channel.
294  */
295 privilege
296 {
297         name = "FANTASIA"
298         rank = 30
299         level = 3
300         flag = "c"
301         xop = "VOP"
302 }
303
304 /*
305  * FOUNDER privilege.
306  *
307  * Used by chanserv/access, chanserv/akick,
308  * chanserv/drop, chanserv/set/founder,
309  * chanserv/set/securefounder, chanserv/set/successor and chanserv/xop.
310  *
311  * Users with this permission are treated as founders and can use
312  * commands restricted to founders.
313  */
314 privilege
315 {
316         name = "FOUNDER"
317         rank = 360
318         level = "founder"
319         flag = "F"
320         xop = "QOP"
321 }
322
323 /*
324  * GETKEY privilege.
325  *
326  * Used by chanserv/getkey and nickserv/ajoin.
327  *
328  * Users with this permission can get they channel key with GETKEY and
329  * can use nickserv/ajoin to join channels with keys.
330  */
331 privilege
332 {
333         name = "GETKEY"
334         rank = 180
335         level = 5
336         flag = "G"
337         xop = "AOP"
338 }
339
340 /*
341  * HALFOP privilege.
342  *
343  * Used by chanserv/mode, chanserv/halfop and chanserv/dehalfop.
344  *
345  * Users with this permission can use ChanServ to halfop and dehalfop
346  * others in the channel.
347  */
348 privilege
349 {
350         name = "HALFOP"
351         rank = 120
352         level = 5
353         flag = "h"
354         xop = "AOP"
355 }
356
357 /*
358  * HALFOPME privilege.
359  *
360  * Used by chanserv/mode, chanserv/halfop and chanserv/dehalfop.
361  *
362  * Users with this permission can use ChanServ to halfop and dehalfop
363  * themselves in the channel.
364  */
365 privilege
366 {
367         name = "HALFOPME"
368         rank = 110
369         level = 4
370         flag = "h"
371         xop = "HOP"
372 }
373
374 /*
375  * INFO privilege.
376  *
377  * Used by botserv/info and chanserv/info.
378  *
379  * Users with this permission are allowed to get the full INFO output
380  * from BotServ and ChanServ.
381  */
382 privilege
383 {
384         name = "INFO"
385         rank = 80
386         level = 9999
387         flag = "I"
388         xop = "QOP"
389 }
390
391 /*
392  * INVITE privilege.
393  *
394  * Used by chanserv/invite and nickserv/ajoin.
395  *
396  * Users with this permission can invite users through ChanServ and
397  * join invite only channels with nickserv/ajoin.
398  */
399 privilege
400 {
401         name = "INVITE"
402         rank = 190
403         level = 5
404         flag = "i"
405         xop = "AOP"
406 }
407
408 /*
409  * KICK privilege.
410  *
411  * Used by chanserv/kick.
412  *
413  * Users with this permission can use the KICK command.
414  */
415 privilege
416 {
417         name = "KICK"
418         rank = 130
419         level = 4
420         flag = "k"
421         xop = "HOP"
422 }
423
424 /*
425  * MEMO privilege.
426  *
427  * Used by memoserv/del, memoserv/ignore, memoserv/info, memoserv/list,
428  * memoserv/main, memoserv/read and memoserv/set.
429  *
430  * Users with this permission can manage channel memos.
431  */
432 privilege
433 {
434         name = "MEMO"
435         rank = 280
436         level = 10
437         flag = "m"
438         xop = "SOP"
439 }
440
441 /*
442  * MODE privilege.
443  *
444  * Used by chanserv/mode.
445  *
446  * Users with this permission can set modes through ChanServ and change
447  * the mode lock.
448  */
449 privilege
450 {
451         name = "MODE"
452         rank = 170
453         level = 9999
454         flag = "s"
455         xop = "QOP"
456 }
457
458 /*
459  * NOKICK privilege.
460  *
461  * Used by botserv/kick.
462  *
463  * Users with this permission are spared from automated BotServ kicks.
464  */
465 privilege
466 {
467         name = "NOKICK"
468         rank = 20
469         level = 1
470         flag = "N"
471         xop = "VOP"
472 }
473
474 /*
475  * OP privilege.
476  *
477  * Used by chanserv/mode, chanserv/modes.
478  *
479  * Users with this permission can use ChanServ to op and deop
480  * others in the channel.
481  */
482 privilege
483 {
484         name = "OP"
485         rank = 230
486         level = 5
487         flag = "o"
488         xop = "SOP"
489 }
490
491 /*
492  * OPME privilege.
493  *
494  * Used by chanserv/mode, chanserv/modes.
495  *
496  * Users with this permission can use ChanServ to op and deop
497  * themselves in the channel.
498  */
499 privilege
500 {
501         name = "OPME"
502         rank = 220
503         level = 5
504         flag = "o"
505         xop = "AOP"
506 }
507
508 /*
509  * OWNER privilege.
510  *
511  * Used by chanserv/mode and chanserv/modes.
512  *
513  * Users with this permission can use ChanServ to owner and deowner
514  * others in the channel.
515  */
516 privilege
517 {
518         name = "OWNER"
519         rank = 350
520         level = "founder"
521         flag = "q"
522         xop = "QOP"
523 }
524
525 /*
526  * OWNERME privilege.
527  *
528  * Used by chanserv/mode and chanserv/modes.
529  *
530  * Users with this permission can use ChanServ to owner and deowner
531  * themselves in the channel.
532  */
533 privilege
534 {
535         name = "OWNERME"
536         rank = 340
537         level = 9999
538         flag = "q"
539         xop = "QOP"
540 }
541
542 /*
543  * PROTECT privilege.
544  *
545  * Used by chanserv/mode and chanserv/modes.
546  *
547  * Users with this permission can use ChanServ to protect and deprotect
548  * others in the channel.
549  */
550 privilege
551 {
552         name = "PROTECT"
553         rank = 310
554         level = 9999
555         flag = "a"
556         xop = "QOP"
557 }
558
559 /*
560  * PROTECTME privilege.
561  *
562  * Used by chanserv/mode and chanserv/modes.
563  *
564  * Users with this permission can use ChanServ to protect and deprotect
565  * themselves in the channel.
566  */
567 privilege
568 {
569         name = "PROTECTME"
570         rank = 300
571         level = 10
572         flag = "a"
573         xop = "AOP"
574 }
575
576 /*
577  * SAY privilege.
578  *
579  * Used by botserv/control.
580  *
581  * Users with this permission can use the BotServ bot in the channel to
582  * say or do a /me with the provided message.
583  */
584 privilege
585 {
586         name = "SAY"
587         rank = 90
588         level = 5
589         flag = "B"
590         xop = "AOP"
591 }
592
593 /*
594  * SET privilege.
595  *
596  * Used by botserv/kick, botserv/set, chanserv/clone, chanserv/log,
597  * chanserv/saset/noexpire and chanserv/set.
598  *
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.
602  */
603 privilege
604 {
605         name = "SET"
606         rank = 320
607         level = 9999
608         flag = "s"
609         xop = "QOP"
610 }
611
612 /*
613  * SIGNKICK privilege.
614  *
615  * Used by chanserv/ban and chanserv/kick.
616  *
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.
619  */
620 privilege
621 {
622         name = "SIGNKICK"
623         rank = 140
624         level = 9999
625         flag = "K"
626         xop = "QOP"
627 }
628
629 /*
630  * TOPIC privilege.
631  *
632  * Used by chanserv/topic.
633  *
634  * Users with this permission can change the channel topic through ChanServ.
635  */
636 privilege
637 {
638         name = "TOPIC"
639         rank = 160
640         level = 5
641         flag = "t"
642         xop = "AOP"
643 }
644
645 /*
646  * UNBAN privilege.
647  *
648  * Used by chanserv/unban.
649  *
650  * Users with this permission can unban themselves and others through ChanServ.
651  */
652 privilege
653 {
654         name = "UNBAN"
655         rank = 200
656         level = 4
657         flag = "u"
658         xop = "HOP"
659 }
660
661 /*
662  * VOICE privilege.
663  *
664  * Used by chanserv/mode and chanserv/modes.
665  *
666  * Users with this permission can use ChanServ to voice and devoice
667  * others in the channel.
668  */
669 privilege
670 {
671         name = "VOICE"
672         rank = 70
673         level = 4
674         flag = "v"
675         xop = "HOP"
676 }
677
678 /*
679  * VOICEME privilege.
680  *
681  * Used by chanserv/mode and chanserv/modes.
682  *
683  * Users with this permission can use ChanServ to voice and devoice
684  * themselves in the channel.
685  */
686 privilege
687 {
688         name = "VOICEME"
689         rank = 60
690         level = 3
691         flag = "v"
692         xop = "VOP"
693 }
694
695 /*
696  * Core ChanServ commands.
697  *
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.
700  *
701  * Additionally, you may provide a permission name that must be in the opertype of users executing the command.
702  *
703  * Sane defaults are provided below that do not need to be edited unless you wish to change the default behavior.
704  */
705
706 /* Command group configuration for ChanServ.
707  *
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.
710  */
711 command_group
712 {
713         name = "chanserv/access"
714         description = "Used to manage the list of privileged users"
715 }
716
717 command_group
718 {
719         name = "chanserv/status"
720         description = "Used to modify the channel status of you or other users"
721 }
722
723 command_group
724 {
725         name = "chanserv/management"
726         description = "Used to manage channels"
727 }
728
729 command_group
730 {
731         name = "chanserv/admin"
732         description = "Services Operator commands"
733 }
734
735 /* Give it a help command. */
736 command { service = "ChanServ"; name = "HELP"; command = "generic/help"; }
737
738 /*
739  * cs_access
740  *
741  * Provides commands chanserv/access and chanserv/levels.
742  * Provides the access system "levels".
743  *
744  * Used for giving users access in channels.
745  */
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"; }
749
750 /*
751  * cs_akick
752  *
753  * Provides the command chanserv/akick.
754  *
755  * Used for preventing users from joining channels.
756  */
757 module
758 {
759         name = "cs_akick"
760
761         /*
762          * The maximum number of entries on a channel's autokick list.
763          */
764         autokickmax = 64
765
766         /*
767          * The default reason for an autokick if none is given.
768          */
769         autokickreason = "User has been banned from the channel"
770 }
771
772 command { service = "ChanServ"; name = "AKICK"; command = "chanserv/akick"; group = "chanserv/management"; }
773
774 /*
775  * cs_ban
776  *
777  * Provides the command chanserv/ban.
778  *
779  * Used for banning users from channels.
780  */
781 module { name = "cs_ban" }
782 command { service = "ChanServ"; name = "BAN"; command = "chanserv/ban"; }
783
784 /*
785  * cs_clone
786  *
787  * Provides the command chanserv/clone.
788  *
789  * Used for copying channel settings from one channel to another.
790  */
791 module { name = "cs_clone" }
792 command { service = "ChanServ"; name = "CLONE"; command = "chanserv/clone"; group = "chanserv/management"; }
793
794 /*
795  * cs_drop
796  *
797  * Provides the command chanserv/drop.
798  *
799  * Used for unregistering channels.
800  */
801 module { name = "cs_drop" }
802 command { service = "ChanServ"; name = "DROP"; command = "chanserv/drop"; }
803
804 /*
805  * cs_enforce
806  *
807  * Provides the command chanserv/enforce.
808  *
809  * Used to enforce various channel settings such as secureops and restricted.
810  */
811 module { name = "cs_enforce" }
812 command { service = "ChanServ"; name = "ENFORCE"; command = "chanserv/enforce"; group = "chanserv/management"; }
813
814 /*
815  * cs_entrymsg
816  *
817  * Provides the command chanserv/entrymsg.
818  *
819  * Used to configure entry messages sent to users when they join a channel.
820  */
821 module
822 {
823         name = "cs_entrymsg"
824
825         /* The maximum number of entrymsgs allowed per channel. If not set, defaults to 5. */
826         maxentries = 5
827 }
828 command { service = "ChanServ"; name = "ENTRYMSG"; command = "chanserv/entrymsg"; group = "chanserv/management"; }
829
830 /*
831  * cs_flags
832  *
833  * Provides the command chanserv/flags.
834  * Provides the access system "flags".
835  *
836  * Used for giving users access in channels.
837  */
838 module { name = "cs_flags" }
839 command { service = "ChanServ"; name = "FLAGS"; command = "chanserv/flags"; group = "chanserv/access"; }
840
841 /*
842  * cs_getkey
843  *
844  * Provides the command chanserv/getkey.
845  *
846  * Used for getting the key for channels.
847  */
848 module { name = "cs_getkey" }
849 command { service = "ChanServ"; name = "GETKEY"; command = "chanserv/getkey"; }
850
851 /*
852  * cs_info
853  *
854  * Provides the command chanserv/info.
855  *
856  * Used for getting information about channels.
857  */
858 module { name = "cs_info" }
859 command { service = "ChanServ"; name = "INFO"; command = "chanserv/info"; }
860
861 /*
862  * cs_invite
863  *
864  * Provides the command chanserv/invite.
865  *
866  * Used for inviting yourself in to channels.
867  */
868 module { name = "cs_invite" }
869 command { service = "ChanServ"; name = "INVITE"; command = "chanserv/invite"; }
870
871 /*
872  * cs_kick
873  *
874  * Provides the command chanserv/kick.
875  *
876  * Used for kicking users from channels.
877  */
878 module { name = "cs_kick" }
879 command { service = "ChanServ"; name = "KICK"; command = "chanserv/kick"; }
880
881 /*
882  * cs_list
883  *
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.
887  */
888 module
889 {
890         name = "cs_list"
891
892         /*
893          * The maximum number of channels to be returned for a ChanServ LIST command.
894          */
895         listmax = 75
896 }
897
898 command { service = "ChanServ"; name = "LIST"; command = "chanserv/list"; group = "chanserv/admin"; }
899 command { service = "ChanServ"; name = "SET PRIVATE"; command = "chanserv/set/private"; }
900
901 /*
902  * cs_log
903  *
904  * Provides the command chanserv/log.
905  *
906  * Use for configuring what actions on channels are logged and where.
907  */
908 module
909 {
910         name = "cs_log"
911
912         /* Default log settings for newly registered channels */
913
914         #default
915         {
916                 command = "chanserv/modes"
917                 method = "MESSAGE @"
918         }
919
920         #default
921         {
922                 service = "ChanServ"
923                 command = "ACCESS"
924                 method = "MESSAGE @"
925         }
926
927         #default
928         {
929                 command = "chanserv/xop"
930                 method = "MESSAGE @"
931         }
932
933         #default
934         {
935                 service = "ChanServ"
936                 command = "FLAGS"
937                 method = "MESSAGE @"
938         }
939 }
940 command { service = "ChanServ"; name = "LOG"; command = "chanserv/log"; group = "chanserv/management"; }
941
942 /*
943  * cs_mode
944  *
945  * Provides the command chanserv/mode and chanserv/modes.
946  *
947  * Used for changing mode locks and changing modes.
948  */
949 module
950 {
951         name = "cs_mode"
952
953         /*
954          * Default modes for mode lock, these are set on newly registered channels.
955          *
956          * If not set, the default is +nt.
957          */
958         mlock = "+nt"
959 }
960
961 command { service = "ChanServ"; name = "MODE"; command = "chanserv/mode"; group = "chanserv/management"; }
962
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" }
965
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" }
968
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" }
971
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" }
974
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" }
977
978 /*
979  * cs_register
980  *
981  * Provides the commands chanserv/register.
982  *
983  * Used for registering channels.
984  */
985 module { name = "cs_register" }
986 command { service = "ChanServ"; name = "REGISTER"; command = "chanserv/register"; }
987
988 /*
989  * cs_seen
990  *
991  * Provides the commands chanserv/seen and operserv/seen.
992  *
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.
995  */
996 #module
997 {
998         name = "cs_seen"
999
1000         /* If set, uses the older 1.8 style seen, which is less resource intensive */
1001         simple = false
1002
1003         /* Sets the time to keep seen entries in the seen database. */
1004         purgetime = "30d"
1005
1006         /* Sets the delay between checks for expired seen entries. */
1007         expiretimeout = "1d"
1008 }
1009 #command { service = "OperServ"; name = "SEEN"; command = "operserv/seen"; permission = "operserv/seen"; }
1010
1011 /*
1012  * cs_set
1013  *
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.
1030  *
1031  * This is a dummy command to provide a help wrapper for the various SET commands.
1032  */
1033 module
1034 {
1035         name = "cs_set"
1036
1037         /*
1038          * The default ban type for newly registered channels.
1039          *
1040          * defbantype can be:
1041          *
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
1046          */
1047         defbantype = 2
1048 }
1049
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"; }
1066
1067 /*
1068  * cs_set_misc
1069  *
1070  * Provides the command chanserv/set/misc.
1071  *
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.
1074  */
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"); }
1079
1080 /*
1081  * cs_status
1082  *
1083  * Provides the command chanserv/status.
1084  *
1085  * Used for determining a user's access on a channel and whether
1086  * or not they match any autokick entries.
1087  */
1088 module { name = "cs_status" }
1089 command { service = "ChanServ"; name = "STATUS"; command = "chanserv/status"; }
1090
1091 /*
1092  * cs_suspend
1093  *
1094  * Provides the commands chanserv/suspend and chanserv/unsuspend.
1095  *
1096  * Used for suspending and unsuspending channels. Suspended channels can not be used but their settings are stored.
1097  */
1098 module
1099 {
1100         name = "cs_suspend"
1101
1102         /*
1103          * The length of time before a suspended channel expires.
1104          *
1105          * This directive is optional.
1106          * If not set, the default is never.
1107          */
1108         #expire = 90d
1109
1110         /*
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.
1114          */
1115         show = "suspended, by, reason, on, expires"
1116 }
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"; }
1119
1120 /*
1121  * cs_sync
1122  *
1123  * Provides the command chanserv/sync.
1124  *
1125  * Used to sync users channel status modes with what access they have.
1126  */
1127 module { name = "cs_sync" }
1128 command { service = "ChanServ"; name = "SYNC"; command = "chanserv/sync"; group = "chanserv/management"; }
1129
1130 /*
1131  * cs_topic
1132  *
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.
1136  *
1137  */
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"; }
1141
1142 /*
1143  * cs_unban
1144  *
1145  * Provides the command chanserv/unban.
1146  *
1147  * Used for unbanning users from channels.
1148  */
1149 module { name = "cs_unban" }
1150 command { service = "ChanServ"; name = "UNBAN"; command = "chanserv/unban"; }
1151
1152 /*
1153  * cs_updown
1154  *
1155  * Provides the commands chanserv/up and chanserv/down.
1156  *
1157  * Used for setting or removing your status modes on a channel.
1158  */
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"; }
1162
1163 /*
1164  * cs_xop
1165  *
1166  * Provides the command chanserv/xop.
1167  * Provides the access system "XOP".
1168  *
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
1172  * it.
1173  */
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"; }
1180
1181
1182 /*
1183  * Extra ChanServ related modules.
1184  */
1185
1186 /*
1187  * cs_statusupdate
1188  *
1189  * This module automatically updates users status on channels when the
1190  * channel's access list is modified.
1191  */
1192 module { name = "cs_statusupdate" }