diff options
40 files changed, 3846 insertions, 1133 deletions
diff --git a/data/example.conf b/data/example.conf index 0a018a393..90864f96a 100644 --- a/data/example.conf +++ b/data/example.conf @@ -590,16 +590,24 @@ options * botserv/bot/del botserv/bot/add botserv/bot/change botserv/assign/private * botserv/botlist botserv/set/private botserv/set/nobot * - * chanserv/access/list chanserv/drop chanserv/forbid chanserv/getkey - * chanserv/list chanserv/suspend chanserv/topic chanserv/set/noexpire - * chanserv/status + * chanserv/access/list chanserv/drop chanserv/forbid chanserv/getkey + * chanserv/list chanserv/suspend chanserv/topic chanserv/status * - * memoserv/sendall memoserv/staff + * chanserv/saset/bantype chanserv/saset/description chanserv/saset/email chanserv/saset/entrymsg + * chanserv/saset/founder chanserv/saset/keeptopic chanserv/saset/mlock chanserv/saset/opnotice + * chanserv/saset/peace chanserv/saset/persist chansev/saset/private chanserv/saset/restricted + * chanserv/saset/secure chanserv/saset/securefounder chanserv/saset/secureops + * chanserv/saset/signkick chanserv/saset/successor chanserv/saset/topiclock + * chanserv/saset/url chanserv/saset/xop + * + * memoserv/sendall memoserv/staff * * nickserv/getpass nickserv/sendpass nickserv/getemail nickserv/suspend - * nickserv/resetpass nickserv/saset/autoop nickserv/saset/email nickserv/saset/greet + * nickserv/resetpass + * + * nickserv/saset/autoop nickserv/saset/email nickserv/saset/greet * nickserv/saset/icq nickserv/saset/kill nickserv/saset/language nickserv/saset/message - * nickserv/saset/private nickserv/saset/secure nickserv/saset/url nickserv/saset/noexpire + * nickserv/saset/private nickserv/saset/secure nickserv/saset/url nickserv/saset/noexpire * * hostserv/set - Can add/modify/delete any vhost * @@ -959,7 +967,7 @@ chanserv * The core modules to load for ChanServ. This is a space separated list that corresponds * to the base names of the modules for ChanServ. This directive is optional, but highly recommended. */ - modules = "cs_help cs_register cs_set cs_xop cs_access cs_akick cs_drop cs_ban cs_clear cs_modes cs_getkey cs_invite cs_kick cs_list cs_topic cs_info forbid cs_suspend cs_status cs_unban" + modules = "cs_help cs_register cs_set cs_saset cs_set_bantype cs_set_description cs_set_email cs_set_entrymsg cs_set_founder cs_set_keeptopic cs_set_mlock cs_set_opnotice cs_set_peace cs_set_persist cs_set_private cs_set_restricted cs_set_secure cs_set_securefounder cs_set_secureops cs_set_signkick cs_set_successor cs_set_topiclock cs_set_url cs_set_xop cs_xop cs_access cs_akick cs_drop cs_ban cs_clear cs_modes cs_getkey cs_invite cs_kick cs_list cs_topic cs_info forbid cs_suspend cs_status cs_unban" /* * The default options for newly registered channels. Note that changing these options diff --git a/docs/Changes b/docs/Changes index 7786757fa..c296d382a 100644 --- a/docs/Changes +++ b/docs/Changes @@ -7,6 +7,7 @@ A Prevent negaitve mode changes, kicks, bans, and autokicks from affecting peopl A Added nickserv/auxpex permission A Added nickserv ungroup command A Renamed the SGLINE to be SNLINE +A Added /chanserv saset command Anope Version 1.9.2 -------------------- diff --git a/docs/Changes.conf b/docs/Changes.conf index 03d012a14..e4ee68fd0 100644 --- a/docs/Changes.conf +++ b/docs/Changes.conf @@ -4,6 +4,10 @@ Anope Version 1.9.3 nickserv/auspex privilege added SSL module added for SSL support opertype:inherits added to allow opertypes to inherit commands and privs from other opertypes +Various nickserv/saset/* and chanserv/saset/* opertype command privileges added +nickserv:modules added many new ns_set_command modules +chanserv:modules added many new cs_set_command modules +opertype:commands added nickserv/saset/* and chanserv/saset/* ** MODIFIED CONFIGURATION DIRECTIVES ** opertype:commands changed operserv/sgline to opserv/snline diff --git a/docs/Changes.lang b/docs/Changes.lang index 701d4fff4..1f75bae03 100644 --- a/docs/Changes.lang +++ b/docs/Changes.lang @@ -37,6 +37,21 @@ Anope Version 1.9.3 OPER_SNLINE_CLEAR OPER_HELP_CMD_SNLINE OPER_HELP_SNLINE + CHAN_SASET_SYNTAX + CHAN_SASET_KEEPTOPIC_SYNTAX + CHAN_SASET_OPNOTICE_SYNTAX + CHAN_SASET_PEACE + CHAN_SASET_PERSIST + CHAN_SASET_PRIVATE + CHAN_SASET_RESTIRCTED + CHAN_SASET_SECURE + CHAN_SASET_SECUREFOUNDER + CHAN_SASET_SECUREOPS + CHAN_SASET_SIGNKICK + CHAN_SASET_TOPICLOCK + CHAN_SASET_XOP + CHAN_HELP_CMD_SASET + CHAN_HELP_CMD_SASET_HEAD *** Mod Strings: NICK_GLIST_REPLY @@ -59,7 +74,6 @@ Anope Version 1.9.3 NICK_SENDPASS_HEAD_3 NICK_SENDPASS_HEAD_4 NICK_SENDPASS_HEAD_5 -<<<<<<< HEAD OPER_STATS_SGLINE_COUNT OPER_STATS_SGLINE_EXPIRE_DAY OPER_STATS_SGLINE_EXPIRE_HOURS @@ -85,8 +99,7 @@ Anope Version 1.9.3 OPER_SGLINE_CLEAR OPER_HELP_CMD_SGLINE OPER_HELP_SGLINE -======= ->>>>>>> 1.9.3-2 + CHAN_SERVADMIN_HELP_SET Anope Version 1.9.2 -------------------- diff --git a/lang/cat.l b/lang/cat.l index bd2c34d8a..b63731df7 100644 --- a/lang/cat.l +++ b/lang/cat.l @@ -1101,6 +1101,34 @@ CHAN_DROP_DISABLED CHAN_DROPPED El canal %s ha estat eliminat. +# SASET responses +CHAN_SASET_SYNTAX + SASET channel option parameters +CHAN_SASET_KEEPTOPIC_SYNTAX + SASET channel KEEPTOPIC {ON | OFF} +CHAN_SASET_OPNOTICE_SYNTAX + SASET channel OPNOTICE {ON | OFF} +CHAN_SASET_PEACE_SYNTAX + SASET channel PEACE {ON | OFF} +CHAN_SASET_PERSIST_SYNTAX + SASET channel PERSIST {ON | OFF} +CHAN_SASET_PRIVATE_SYNTAX + SASET channel PRIVATE {ON | OFF} +CHAN_SASET_RESTRICTED_SYNTAX + SASET channel RESTRICTED {ON | OFF} +CHAN_SASET_SECURE_SYNTAX + SASET channel SECURE {ON | OFF} +CHAN_SASET_SECUREFOUNDER_SYNTAX + SASET channel SECUREFOUNDER {ON | OFF} +CHAN_SASET_SECUREOPS_SYNTAX + SASET channel SECUREOPS {ON | OFF} +CHAN_SASET_SIGNKICK_SYNTAX + SASET channel SIGNKICK {ON | OFF} +CHAN_SASET_TOPICLOCK_SYNTAX + SASET channel TOPICLOCK {ON | OFF} +CHAN_SASET_XOP_SYNTAX + SASET channel XOP {ON | OFF} + # SET responses CHAN_SET_SYNTAX SET canal opció per ametres @@ -4254,6 +4282,8 @@ CHAN_HELP_CMD_REGISTER REGISTER Registra un canal CHAN_HELP_CMD_SET SET Establir opcions i informació d'un canal +CHAN_HELP_CMD_SASET + SASET Forcefully set channel options and information CHAN_HELP_CMD_QOP QOP Modify the list of QOP users CHAN_HELP_CMD_AOP @@ -4357,7 +4387,15 @@ CHAN_HELP_DROP Desenregistra el canal especificat. Nomès pot ser utilitzat pel fundador del canal. -CHAN_HELP_SET +CHAN_HELP_SASET_HEAD + Syntax: SASET channel option parameters + + Allows Services Operators to forcefully change settings + on channels. + + Available options: + +CHAN_HELP_SET_HEAD Sintaxis: SET canal opció parametres Li permet al fundador del canal establir varies opcions @@ -4365,44 +4403,67 @@ CHAN_HELP_SET Opcions disponibles: +CHAN_HELP_CMD_SET_FOUNDER FOUNDER Estableix el fundador d'un canal +CHAN_HELP_CMD_SET_SUCCESSOR SUCCESSOR Estableix el successor d'un canal +CHAN_HELP_CMD_SET_DESC DESC Estableix la descripció del canal +CHAN_HELP_CMD_SET_URL URL Associa una URL amb el canal +CHAN_HELP_CMD_SET_EMAIL EMAIL Associa un E-mail amb el canal +CHAN_HELP_CMD_SET_ENTRYMSG ENTRYMSG Estableix un missatge a enviar als usuaris quant entrin al canal +CHAN_HELP_CMD_SET_BANTYPE BANTYPE Estableix com els serveis posen bans en el canal +CHAN_HELP_CMD_SET_MLOCK MLOCK Fixa els Modes de canal on o off +CHAN_HELP_CMD_SET_KEEPTOPIC KEEPTOPIC Rete el topic quant el canal no esta en uso +CHAN_HELP_CMD_SET_OPNOTICE OPNOTICE Envia una noticia quant les comandes OP/DEOP son utilitzats +CHAN_HELP_CMD_SET_PEACE PEACE Regula l'ús de comandes critiques +CHAN_HELP_CMD_SET_PRIVATE PRIVATE Oculta el canal de la comanda LIST +CHAN_HELP_CMD_SET_RESTRICTED RESTRICTED Restringeix l'accés al canal +CHAN_HELP_CMD_SET_SECURE SECURE Activa les opcions de seguretat de %S +CHAN_HELP_CMD_SET_SECUREOPS SECUREOPS Estricte control de l'estatus de chanop +CHAN_HELP_CMD_SET_SECUREFOUNDER SECUREFOUNDER Estricto control de l'estatus de fundador del canal +CHAN_HELP_CMD_SET_SIGNKICK SIGNKICK Firma kicks fets amb la comanda KICK +CHAN_HELP_CMD_SET_TOPICLOCK TOPICLOCK El topic sols pot ser canviat amb TOPIC +CHAN_HELP_CMD_SET_XOP XOP Canvia el sistema de privilegis d'usuari +CHAN_HELP_CMD_SET_PERSIST PERSIST Set the channel as permanent +CHAN_HELP_CMD_SET_NOEXPIRE + NOEXPIRE Prevent the channel from expiring +CHAN_HELP_SET_TAIL Escriu %R%S HELP opció per més informació sobre una opció en particular. CHAN_HELP_SET_FOUNDER - Sintaxis: SET canal FOUNDER nick + Sintaxis: %s canal FOUNDER nick Canvia el fundador d'un canal. El nou nickname ha de ser un d'enregistrat. CHAN_HELP_SET_SUCCESSOR - Sintaxis: SET canal SUCCESSOR nick + Sintaxis: %s canal SUCCESSOR nick Canvia el successor d'un canal. Si el nickname fundador caduca o es eliminat mentres el canal esta encara registrat, @@ -4413,13 +4474,13 @@ CHAN_HELP_SET_SUCCESSOR d'enregistrat. CHAN_HELP_SET_DESC - Sintaxis: SET canal DESC descripció + Sintaxis: %s canal DESC descripció Estableix la descripció pel canal, la que es mostrada amb les comandes LIST i INFO. CHAN_HELP_SET_URL - Sintaxis: SET canal URL [url] + Sintaxis: %s canal URL [url] Associa l'URL especificada amb el canal. Aquesta URL sera mostrada quant algu sol.liciti informació sobre el canal amb @@ -4427,7 +4488,7 @@ CHAN_HELP_SET_URL esborra la URL actual pel canal. CHAN_HELP_SET_EMAIL - Sintaxis: SET canal EMAIL [direcció] + Sintaxis: %s canal EMAIL [direcció] Associa l'adreça e-mail especificada amb el canal. Aquesta adreça sera mostrada quant algu sol.liciti @@ -4436,14 +4497,14 @@ CHAN_HELP_SET_EMAIL actual pel canal. CHAN_HELP_SET_ENTRYMSG - Sintaxis: SET canal ENTRYMSG [missatge] + Sintaxis: %s canal ENTRYMSG [missatge] Especifica el missatge que sera enviat via /notice als usuaris quant ingressin al canal. Si cap parametre es especificat, cap missatge sera enviat al entrar al canal. CHAN_HELP_SET_BANTYPE - Sintaxis: SET canal BANTYPE tipus_de_ban + Sintaxis: %s canal BANTYPE tipus_de_ban Especifica el tipus de ban que sera utilitzat pels serveis quant necessitin banear algu @@ -4457,7 +4518,7 @@ CHAN_HELP_SET_BANTYPE 3: ban de la forma *!*usuari@*.domini CHAN_HELP_SET_KEEPTOPIC - Sintaxis: SET canal KEEPTOPIC {ON | OFF} + Sintaxis: %s canal KEEPTOPIC {ON | OFF} Habilita o deshabilita l'opció de retenció de topic per un canal. Quant la retenció de topic esta @@ -4467,7 +4528,7 @@ CHAN_HELP_SET_KEEPTOPIC el canal sigui creat. CHAN_HELP_SET_TOPICLOCK - Sintàxi: SET canal TOPICLOCK {ON | OFF} + Sintàxi: %s canal TOPICLOCK {ON | OFF} Habilita o deshabilita L'opció de fixació de topic per a un canal. Quan la fixació de topic està @@ -4475,7 +4536,7 @@ CHAN_HELP_SET_TOPICLOCK sigui canviat excepte amb la comanda TOPIC. CHAN_HELP_SET_MLOCK - Sintàxi: SET canal MLOCK Modes + Sintàxi: %s canal MLOCK Modes Estableix el paràmetre de fixació de Modes pel canal. %S et permet definir certs Modes de canal per a estar @@ -4513,7 +4574,7 @@ CHAN_HELP_SET_MLOCK són lliures d'estar encesos o apagats. CHAN_HELP_SET_PEACE - Sintàxi: SET canal PEACE {ON | OFF} + Sintàxi: %s canal PEACE {ON | OFF} Habilita o deshabilita l'opció de pau per a un canal. Quan pau està establerta, un usuari no @@ -4522,21 +4583,21 @@ CHAN_HELP_SET_PEACE comandes de %S. CHAN_HELP_SET_PRIVATE - Sintàxi: SET canal PRIVATE {ON | OFF} + Sintàxi: %s canal PRIVATE {ON | OFF} Habilita o deshabilita l'opció de privacitat per a un canal. Quan privacitat està establerta, un %R%S LIST no inclourà el canal en cap llista. CHAN_HELP_SET_RESTRICTED - Sintàxi: SET canal RESTRICTED {ON | OFF} + Sintàxi: %s canal RESTRICTED {ON | OFF} Enables or disables the restricted access option for a channel. When restricted access is set, users not on the access list will instead be kicked and banned from the channel. CHAN_HELP_SET_SECURE - Sintàxi: SET canal SECURE {ON | OFF} + Sintàxi: %s canal SECURE {ON | OFF} Habilita o deshabilita les característiques de seguretat de %S per a un canal. Quan SECURE està @@ -4546,7 +4607,7 @@ CHAN_HELP_SET_SECURE accés. CHAN_HELP_SET_SECUREOPS - Sintàxi: SET canal SECUREOPS {ON | OFF} + Sintàxi: %s canal SECUREOPS {ON | OFF} Habilita o deshabilita l'opció seguretat de ops per a un canal. Quan seguretat de ops està establerta, usuaris @@ -4554,7 +4615,7 @@ CHAN_HELP_SET_SECUREOPS obtenir l' estatus d'operador de canal. CHAN_HELP_SET_SECUREFOUNDER - Sintàxi: SET canal SECUREFOUNDER {ON | OFF} + Sintàxi: %s canal SECUREFOUNDER {ON | OFF} Habilita o deshabilita l'opció seguretat de fundador per a un canal. Quan seguretat de fundador està establerta, només @@ -4563,7 +4624,7 @@ CHAN_HELP_SET_SECUREFOUNDER amb %S. CHAN_HELP_SET_SIGNKICK - Sintàxi: SET canal SIGNKICK {ON | LEVEL | OFF} + Sintàxi: %s canal SIGNKICK {ON | LEVEL | OFF} Habilita o deshabilita els kicks firmats per a un canal. Quan SIGNKICK està establert, kicks @@ -4575,7 +4636,7 @@ CHAN_HELP_SET_SIGNKICK firmats. Veure %R%S HELP LEVELS per a més informació. CHAN_HELP_SET_XOP - Sintàxi: SET canal XOP {ON | OFF} + Sintàxi: %s canal XOP {ON | OFF} Habilita o deshabilita el sistema de llistes xOP per a un canal. Quan XOP està establert, has de fer servir les comandes AOP/SOP/VOP @@ -4597,7 +4658,7 @@ CHAN_HELP_SET_XOP problema. CHAN_HELP_SET_PERSIST - Syntax: SET channel PERSIST {ON | OFF} + Syntax: %s channel PERSIST {ON | OFF} Enables or disables the persistant channel setting. When persistant is set, the service bot will remain @@ -4620,7 +4681,7 @@ CHAN_HELP_SET_PERSIST set persist on or off. CHAN_HELP_SET_OPNOTICE - Sintàxi: SET canal OPNOTICE {ON | OFF} + Sintàxi: %s canal OPNOTICE {ON | OFF} Habilita o deshabilita l'opció de op-notice per a un canal. Quan op-notice està establert, %S enviarà una noticia @@ -5196,14 +5257,6 @@ CHAN_SERVADMIN_HELP_DROP administradors de serveis poden eliminar un canal per el qual no s'haguin identificado. -CHAN_SERVADMIN_HELP_SET - - Administradors de serveis poden tambié establir la - Opció NOEXPIRE, amb la qual s'evita que els canals - expirin. A més, administradors de - serveis poden establir opcions per a qualsevol canal - sense haver d'identificarse per clau en el canal. - CHAN_SERVADMIN_HELP_SET_NOEXPIRE Sintàxi: SET canal NOEXPIRE {ON | OFF} @@ -1122,6 +1122,34 @@ CHAN_DROP_DISABLED CHAN_DROPPED Channel %s wurde aus der Datenbank entfernt. +# SASET responses +CHAN_SASET_SYNTAX + SASET channel option parameter +CHAN_SASET_KEEPTOPIC_SYNTAX + SASET channel KEEPTOPIC {ON | OFF} +CHAN_SASET_OPNOTICE_SYNTAX + SASET channel OPNOTICE {ON | OFF} +CHAN_SASET_PEACE_SYNTAX + SASET channel PEACE {ON | OFF} +CHAN_SASET_PERSIST_SYNTAX + SASET channel PERSIST {ON | OFF} +CHAN_SASET_PRIVATE_SYNTAX + SASET channel PRIVATE {ON | OFF} +CHAN_SASET_RESTRICTED_SYNTAX + SASET channel RESTRICTED {ON | OFF} +CHAN_SASET_SECURE_SYNTAX + SASET channel SECURE {ON | OFF} +CHAN_SASET_SECUREFOUNDER_SYNTAX + SASET channel SECUREFOUNDER {ON | OFF} +CHAN_SASET_SECUREOPS_SYNTAX + SASET channel SECUREOPS {ON | OFF} +CHAN_SASET_SIGNKICK_SYNTAX + SASET channel SIGNKICK {ON | OFF} +CHAN_SASET_TOPICLOCK_SYNTAX + SASET channel TOPICLOCK {ON | OFF} +CHAN_SASET_XOP_SYNTAX + SASET channel XOP {ON | OFF} + # SET responses CHAN_SET_SYNTAX SET Channel Option Parameter @@ -4287,6 +4315,8 @@ CHAN_HELP_CMD_REGISTER CHAN_HELP_CMD_SET SET Bestimmte Channel-Optionen und Informationen einstellen +CHAN_HELP_CMD_SASET + SASET Forcefully set channel options and information CHAN_HELP_CMD_QOP QOP Verwaltet die QOP-Liste von einem Channel CHAN_HELP_CMD_AOP @@ -4394,7 +4424,15 @@ CHAN_HELP_DROP Entfernt die Registrierung des angegebenen Channels. Kann nur vom Channel-Founder benutzt werden. -CHAN_HELP_SET +CHAN_HELP_SASET_HEAD + Syntax: SASET channel option parameters + + Allows Services Operators to forcefully change settings + on channels. + + Available options: + +CHAN_HELP_SET_HEAD Syntax: SET Channel Option Parameter Erlaubt es dem Channel-Founder bestimmte Optionen @@ -4402,44 +4440,65 @@ CHAN_HELP_SET Verfügbare Optionen: +CHAN_HELP_CMD_SET_FOUNDER FOUNDER Stellt den Gründer des Channels ein +CHAN_HELP_CMD_SET_SUCCESSOR SUCCESSOR Stellt den Vertreter des Founders ein +CHAN_HELP_CMD_SET_DESC DESC Ändert die Channel-Beschreibung +CHAN_HELP_CMD_SET_URL URL Verbindet eine URL mit dem Channel +CHAN_HELP_CMD_SET_EMAIL EMAIL Verbindet eine eMail-Adresse mit dem Channel +CHAN_HELP_CMD_SET_ENTRYMSG ENTRYMSG Stellt eine Begrüssungsmeldung des Channels ein - TOPIC Ändert das Topic im Channel +CHAN_HELP_CMD_SET_BANTYPE BANTYPE Ändert den Ban-Typ, den die Services in dem Channel anwenden +CHAN_HELP_CMD_SET_KEEPTOPIC KEEPTOPIC Topic behalten, wenn Channel nicht benutzt wird +CHAN_HELP_CMD_SET_TOPICLOCK TOPICLOCK Topic kann nur durch TOPIC geändert werden +CHAN_HELP_CMD_SET_MLOCK MLOCK Channel-Modes fest einstellen +CHAN_HELP_CMD_SET_PRIVATE PRIVATE Den Channel vom /LIST-Befehl verstecken +CHAN_HELP_CMD_SET_RESTRICTED RESTRICTED Eingeschränkter Zugriff auf den Channel +CHAN_HELP_CMD_SET_SECURE SECURE Aktiviert %S's Sicherheits-funktionen +CHAN_HELP_CMD_SET_SECUREOPS SECUREOPS Strengere Kontrolle des Op-Status im Channel +CHAN_HELP_CMD_SET_SECUREFOUNDER SECUREFOUNDER Strengere Kontrolle des Founder-Status +CHAN_HELP_CMD_SET_SIGNKICK SIGNKICK Kicks durch ChanServ in dem Channel werden durch den Kicker signiert +CHAN_HELP_CMD_SET_OPNOTICE OPNOTICE Sendet eine Notice wenn Op/Deop-Befehl benutzt werden +CHAN_HELP_CMD_SET_XOP XOP Schaltet das Listen System ein oder aus +CHAN_HELP_CMD_SET_PERSIST PERSIST Set the channel as permanent +CHAN_HELP_CMD_SET_NOEXPIRE + NOEXPIRE Prevent the channel from expiring +CHAN_HELP_SET_TAIL Tippe %R%S HELP Option für weitere Informationen zu einem bestimmten Befehl. CHAN_HELP_SET_FOUNDER - Syntax: SET Channel FOUNDER Nickname + Syntax: %s Channel FOUNDER Nickname Ändert den Gründer (Founder) eines Channels. Der neue Nickname muss registriert sein. CHAN_HELP_SET_SUCCESSOR - Syntax: SET Channel SUCCESSOR Nickname + Syntax: %s Channel SUCCESSOR Nickname Ändert den Vertreter des Gründers in dem Channel. Wenn der Nickname des Gründers ausläuft oder gedropped wird, @@ -4451,13 +4510,13 @@ CHAN_HELP_SET_SUCCESSOR Der Nickname des Vertreters muss registriert sein. CHAN_HELP_SET_DESC - Syntax: SET Channel DESC Beschreibung + Syntax: %s Channel DESC Beschreibung Ändert die Beschreibung für einen Channel, die bei dem LIST und INFO Befehl angezeigt wird. CHAN_HELP_SET_URL - Syntax: SET Channel URL [Url] + Syntax: %s Channel URL [Url] Verbindet die angegebene URL mit dem Channel. Diese URL wird angezeigt, wenn jemand Informationen @@ -4466,7 +4525,7 @@ CHAN_HELP_SET_URL URL gelöscht. CHAN_HELP_SET_EMAIL - Syntax: SET Channel EMAIL [eMail-Adresse] + Syntax: %s Channel EMAIL [eMail-Adresse] Verbindet die angegebene eMail-Adresse mit dem Channel. Diese eMail-Adresse wird angezeigt, @@ -4475,7 +4534,7 @@ CHAN_HELP_SET_EMAIL angegeben, wird die aktuelle eMail-Adresse gelöscht. CHAN_HELP_SET_ENTRYMSG - Syntax: SET Channel ENTRYMSG [Nachricht] + Syntax: %s Channel ENTRYMSG [Nachricht] Ändert die Nachricht, die User beim Joinen des Channels per /notice bekommen. Wird kein Parameter @@ -4483,7 +4542,7 @@ CHAN_HELP_SET_ENTRYMSG angezeigt. CHAN_HELP_SET_BANTYPE - Syntax: SET Channel BANTYPE Ban-Typ + Syntax: %s Channel BANTYPE Ban-Typ Stellt den Ban-Typ für den Channel ein, den die Services anwenden, wenn sie einen Ban eintragen @@ -4497,7 +4556,7 @@ CHAN_HELP_SET_BANTYPE 3: Ban in der Form *!*user@*.domain CHAN_HELP_SET_KEEPTOPIC - Syntax: SET Channel KEEPTOPIC {ON | OFF} + Syntax: %s Channel KEEPTOPIC {ON | OFF} Aktiviert oder deaktiviert die Topic Wiederherstellung für den Channel. Wird diese Option eingeschaltet, wird das @@ -4507,7 +4566,7 @@ CHAN_HELP_SET_KEEPTOPIC kommt. CHAN_HELP_SET_TOPICLOCK - Syntax: SET Channel TOPICLOCK {ON | OFF} + Syntax: %s Channel TOPICLOCK {ON | OFF} Aktiviert oder deaktiviert die topic lock-Option für den angegebenen Channel. @@ -4516,7 +4575,7 @@ CHAN_HELP_SET_TOPICLOCK ausser es wurde durch TOPIC eingestellt. CHAN_HELP_SET_MLOCK - Syntax: SET Channel MLOCK Modi + Syntax: %s Channel MLOCK Modi Stellt den Mode-Lock-Parameter für den angegebenen Channel ein. %S ermöglicht es dir, einzustellen, @@ -4551,7 +4610,7 @@ CHAN_HELP_SET_MLOCK kann jetzt wahlweise an oder ausgeschaltet werden. CHAN_HELP_SET_PEACE - Syntax: SET Channel PEACE {ON | OFF} + Syntax: %s Channel PEACE {ON | OFF} Aktiviert oder deaktiviert die peace Option. Wenn peace aktiviert ist, kann ein User einen anderen User @@ -4559,21 +4618,21 @@ CHAN_HELP_SET_PEACE %S kicken, bannen oder dessen Channelstatus löschen. CHAN_HELP_SET_PRIVATE - Syntax: SET Channel PRIVATE {ON | OFF} + Syntax: %s Channel PRIVATE {ON | OFF} Schaltet den Privat-Modus für einen Channel an oder aus. Wird er aktiviert, wird der Channel in der Ausgabe von%R%S LIST nicht mehr auftauchen. CHAN_HELP_SET_RESTRICTED - Syntax: SET Channel RESTRICTED {ON | OFF} + Syntax: %s Channel RESTRICTED {ON | OFF} Enables or disables the restricted access option for a channel. When restricted access is set, users not on the access list will instead be kicked and banned from the channel. CHAN_HELP_SET_SECURE - Syntax: SET Channel SECURE {ON | OFF} + Syntax: %s Channel SECURE {ON | OFF} Aktiviert oder deaktiviert die Sicherheitsfunktionen von %S für den angegebenen Channel. @@ -4583,7 +4642,7 @@ CHAN_HELP_SET_SECURE in der Zugriffsliste des Channels steht. CHAN_HELP_SET_SECUREOPS - Syntax: SET Channel SECUREOPS {ON | OFF} + Syntax: %s Channel SECUREOPS {ON | OFF} Ändert die Secure-Ops Option für einen Channel. Wird diese Option eingeschaltet, können Nicknamen, @@ -4591,7 +4650,7 @@ CHAN_HELP_SET_SECUREOPS keinen Op-Status erhalten. CHAN_HELP_SET_SECUREFOUNDER - Syntax: SET Channel SECUREFOUNDER {ON | OFF} + Syntax: %s Channel SECUREFOUNDER {ON | OFF} Aktiviert oder deaktiviert die Secure Founder-Option für einen Channel. @@ -4602,7 +4661,7 @@ CHAN_HELP_SET_SECUREFOUNDER hat. CHAN_HELP_SET_SIGNKICK - Syntax: SET Channel SIGNKICK {ON | LEVEL | OFF} + Syntax: %s Channel SIGNKICK {ON | LEVEL | OFF} Aktiviert oder deaktiviert signierte Kicks für einen Channel. Ist SIGNKICK aktiviert, wird der Grund @@ -4615,7 +4674,7 @@ CHAN_HELP_SET_SIGNKICK Siehe %R%S HELP LEVELS für weitere Informationen. CHAN_HELP_SET_XOP - Syntax: SET Channel XOP {ON | OFF} + Syntax: %s Channel XOP {ON | OFF} Aktiviert oder deaktiviert das xOP Listen System für einen Channel. Wenn XOP aktiviert ist, musst du AOP/SOP/VOP @@ -4636,7 +4695,7 @@ CHAN_HELP_SET_XOP jedoch fehlerfrei. CHAN_HELP_SET_PERSIST - Syntax: SET channel PERSIST {ON | OFF} + Syntax: %s channel PERSIST {ON | OFF} Enables or disables the persistant channel setting. When persistant is set, the service bot will remain @@ -4659,7 +4718,7 @@ CHAN_HELP_SET_PERSIST set persist on or off. CHAN_HELP_SET_OPNOTICE - Syntax: SET Channel OPNOTICE {ON | OFF} + Syntax: %s Channel OPNOTICE {ON | OFF} Aktiviert oder deaktiviert die Op-Notice Option für einen Channel. @@ -5230,16 +5289,6 @@ CHAN_SERVADMIN_HELP_DROP (löschen) ohne sich vorher gegenüber dem Channel als Founder zu identifizieren. -CHAN_SERVADMIN_HELP_SET - - Services Administratoren können zusätzlich die Option NOEXPIRE - an einem Channel setzen, dies verhindert den automatischen - Auslauf des Channels. - - Weiterhin können Services Administratoren Einstellungen - eines Channels verändern, ohne sich vorher für ihn - identifizieren zu müssen. - CHAN_SERVADMIN_HELP_SET_NOEXPIRE Syntax: SET Channel NOEXPIRE {ON | OFF} diff --git a/lang/en_us.l b/lang/en_us.l index fca68c14b..9616558c0 100644 --- a/lang/en_us.l +++ b/lang/en_us.l @@ -1077,6 +1077,34 @@ CHAN_DROP_DISABLED CHAN_DROPPED Channel %s has been dropped. +# SASET responses +CHAN_SASET_SYNTAX + SASET channel option parameters +CHAN_SASET_KEEPTOPIC_SYNTAX + SASET channel KEEPTOPIC {ON | OFF} +CHAN_SASET_OPNOTICE_SYNTAX + SASET channel OPNOTICE {ON | OFF} +CHAN_SASET_PEACE_SYNTAX + SASET channel PEACE {ON | OFF} +CHAN_SASET_PERSIST_SYNTAX + SASET channel PERSIST {ON | OFF} +CHAN_SASET_PRIVATE_SYNTAX + SASET channel PRIVATE {ON | OFF} +CHAN_SASET_RESTRICTED_SYNTAX + SASET channel RESTRICTED {ON | OFF} +CHAN_SASET_SECURE_SYNTAX + SASET channel SECURE {ON | OFF} +CHAN_SASET_SECUREFOUNDER_SYNTAX + SASET channel SECUREFOUNDER {ON | OFF} +CHAN_SASET_SECUREOPS_SYNTAX + SASET channel SECUREOPS {ON | OFF} +CHAN_SASET_SIGNKICK_SYNTAX + SASET channel SIGNKICK {ON | OFF} +CHAN_SASET_TOPICLOCK_SYNTAX + SASET channel TOPICLOCK {ON | OFF} +CHAN_SASET_XOP_SYNTAX + SASET channel XOP {ON | OFF} + # SET responses CHAN_SET_SYNTAX SET channel option parameters @@ -4102,6 +4130,8 @@ CHAN_HELP_CMD_REGISTER REGISTER Register a channel CHAN_HELP_CMD_SET SET Set channel options and information +CHAN_HELP_CMD_SASET + SASET Forcefully set channel options and information CHAN_HELP_CMD_QOP QOP Modify the list of QOP users CHAN_HELP_CMD_AOP @@ -4203,7 +4233,15 @@ CHAN_HELP_DROP Unregisters the named channel. Can only be used by channel founder. -CHAN_HELP_SET +CHAN_HELP_SASET_HEAD + Syntax: SASET channel option parameters + + Allows Services Operators to forcefully change settings + on channels. + + Available options: + +CHAN_HELP_SET_HEAD Syntax: SET channel option parameters Allows the channel founder to set various channel options @@ -4211,39 +4249,62 @@ CHAN_HELP_SET Available options: +CHAN_HELP_CMD_SET_FOUNDER FOUNDER Set the founder of a channel +CHAN_HELP_CMD_SET_SUCCESSOR SUCCESSOR Set the successor for a channel +CHAN_HELP_CMD_SET_DESC DESC Set the channel description +CHAN_HELP_CMD_SET_URL URL Associate a URL with the channel +CHAN_HELP_CMD_SET_EMAIL EMAIL Associate an E-mail address with the channel +CHAN_HELP_CMD_SET_ENTRYMSG ENTRYMSG Set a message to be sent to users when they enter the channel +CHAN_HELP_CMD_SET_BANTYPE BANTYPE Set how Services make bans on the channel +CHAN_HELP_CMD_SET_MLOCK MLOCK Lock channel modes on or off +CHAN_HELP_CMD_SET_KEEPTOPIC KEEPTOPIC Retain topic when channel is not in use +CHAN_HELP_CMD_SET_OPNOTICE OPNOTICE Send a notice when OP/DEOP commands are used +CHAN_HELP_CMD_SET_PEACE PEACE Regulate the use of critical commands +CHAN_HELP_CMD_SET_PRIVATE PRIVATE Hide channel from LIST command +CHAN_HELP_CMD_SET_RESTRICTED RESTRICTED Restrict access to the channel +CHAN_HELP_CMD_SET_SECURE SECURE Activate %S security features +CHAN_HELP_CMD_SET_SECUREOPS SECUREOPS Stricter control of chanop status +CHAN_HELP_CMD_SET_SECUREFOUNDER SECUREFOUNDER Stricter control of channel founder status +CHAN_HELP_CMD_SET_SIGNKICK SIGNKICK Sign kicks that are done with KICK command +CHAN_HELP_CMD_SET_TOPICLOCK TOPICLOCK Topic can only be changed with TOPIC +CHAN_HELP_CMD_SET_XOP XOP Toggle the user privilege system +CHAN_HELP_CMD_SET_PERSIST PERSIST Set the channel as permanent +CHAN_HELP_CMD_SET_NOEXPIRE + NOEXPIRE Prevent the channel from expiring +CHAN_HELP_SET_TAIL Type %R%S HELP SET option for more information on a particular option. CHAN_HELP_SET_FOUNDER - Syntax: SET channel FOUNDER nick + Syntax: %s channel FOUNDER nick Changes the founder of a channel. The new nickname must be a registered one. CHAN_HELP_SET_SUCCESSOR - Syntax: SET channel SUCCESSOR nick + Syntax: %s channel SUCCESSOR nick Changes the successor of a channel. If the founder's nickname expires or is dropped while the channel is still @@ -4254,13 +4315,13 @@ CHAN_HELP_SET_SUCCESSOR nickname must be a registered one. CHAN_HELP_SET_DESC - Syntax: SET channel DESC description + Syntax: %s channel DESC description Sets the description for the channel, which shows up with the LIST and INFO commands. CHAN_HELP_SET_URL - Syntax: SET channel URL [url] + Syntax: %s channel URL [url] Associates the given URL with the channel. This URL will be displayed whenever someone requests information on the @@ -4268,7 +4329,7 @@ CHAN_HELP_SET_URL deletes any current URL for the channel. CHAN_HELP_SET_EMAIL - Syntax: SET channel EMAIL [address] + Syntax: %s channel EMAIL [address] Associates the given E-mail address with the channel. This address will be displayed whenever someone requests @@ -4277,14 +4338,14 @@ CHAN_HELP_SET_EMAIL the channel. CHAN_HELP_SET_ENTRYMSG - Syntax: SET channel ENTRYMSG [message] + Syntax: %s channel ENTRYMSG [message] Sets the message which will be sent via /notice to users when they enter the channel. If no parameter is given, causes no message to be sent upon entering the channel. CHAN_HELP_SET_BANTYPE - Syntax: SET channel BANTYPE bantype + Syntax: %s channel BANTYPE bantype Sets the ban type that will be used by services whenever they need to ban someone from your channel. @@ -4297,7 +4358,7 @@ CHAN_HELP_SET_BANTYPE 3: ban in the form *!*user@*.domain CHAN_HELP_SET_KEEPTOPIC - Syntax: SET channel KEEPTOPIC {ON | OFF} + Syntax: %s channel KEEPTOPIC {ON | OFF} Enables or disables the topic retention option for a channel. When topic retention is set, the topic for the @@ -4306,7 +4367,7 @@ CHAN_HELP_SET_KEEPTOPIC next time the channel is created. CHAN_HELP_SET_TOPICLOCK - Syntax: SET channel TOPICLOCK {ON | OFF} + Syntax: %s channel TOPICLOCK {ON | OFF} Enables or disables the topic lock option for a channel. When topic lock is set, %S will not allow the @@ -4314,7 +4375,7 @@ CHAN_HELP_SET_TOPICLOCK command. CHAN_HELP_SET_MLOCK - Syntax: SET channel MLOCK modes + Syntax: %s channel MLOCK modes Sets the mode-lock parameter for the channel. %S allows you to define certain channel modes to be always @@ -4348,7 +4409,7 @@ CHAN_HELP_SET_MLOCK to be either on or off. CHAN_HELP_SET_PEACE - Syntax: SET channel PEACE {ON | OFF} + Syntax: %s channel PEACE {ON | OFF} Enables or disables the peace option for a channel. When peace is set, a user won't be able to kick, @@ -4356,21 +4417,21 @@ CHAN_HELP_SET_PEACE a level superior or equal to his via %S commands. CHAN_HELP_SET_PRIVATE - Syntax: SET channel PRIVATE {ON | OFF} + Syntax: %s channel PRIVATE {ON | OFF} Enables or disables the private option for a channel. When private is set, a %R%S LIST will not include the channel in any lists. CHAN_HELP_SET_RESTRICTED - Syntax: SET channel RESTRICTED {ON | OFF} + Syntax: %s channel RESTRICTED {ON | OFF} Enables or disables the restricted access option for a channel. When restricted access is set, users not on the access list will instead be kicked and banned from the channel. CHAN_HELP_SET_SECURE - Syntax: SET channel SECURE {ON | OFF} + Syntax: %s channel SECURE {ON | OFF} Enables or disables %S's security features for a channel. When SECURE is set, only users who have @@ -4379,14 +4440,14 @@ CHAN_HELP_SET_SECURE as controlled by the access list. CHAN_HELP_SET_SECUREOPS - Syntax: SET channel SECUREOPS {ON | OFF} + Syntax: %s channel SECUREOPS {ON | OFF} Enables or disables the secure ops option for a channel. When secure ops is set, users who are not on the userlist will not be allowed chanop status. CHAN_HELP_SET_SECUREFOUNDER - Syntax: SET channel SECUREFOUNDER {ON | OFF} + Syntax: %s channel SECUREFOUNDER {ON | OFF} Enables or disables the secure founder option for a channel. When secure founder is set, only the real founder will be @@ -4394,7 +4455,7 @@ CHAN_HELP_SET_SECUREFOUNDER successor, and not those who are IDENTIFY'd with %S. CHAN_HELP_SET_SIGNKICK - Syntax: SET channel SIGNKICK {ON | LEVEL | OFF} + Syntax: %s channel SIGNKICK {ON | LEVEL | OFF} Enables or disables signed kicks for a channel. When SIGNKICK is set, kicks issued with @@ -4406,7 +4467,7 @@ CHAN_HELP_SET_SIGNKICK kicks signed. See %R%S HELP LEVELS for more information. CHAN_HELP_SET_XOP - Syntax: SET channel XOP {ON | OFF} + Syntax: %s channel XOP {ON | OFF} Enables or disables the xOP lists system for a channel. When XOP is set, you have to use the AOP/SOP/VOP @@ -4428,7 +4489,7 @@ CHAN_HELP_SET_XOP causes no problem though. CHAN_HELP_SET_PERSIST - Syntax: SET channel PERSIST {ON | OFF} + Syntax: %s channel PERSIST {ON | OFF} Enables or disables the persistant channel setting. When persistant is set, the service bot will remain @@ -4451,7 +4512,7 @@ CHAN_HELP_SET_PERSIST set persist on or off. CHAN_HELP_SET_OPNOTICE - Syntax: SET channel OPNOTICE {ON | OFF} + Syntax: %s channel OPNOTICE {ON | OFF} Enables or disables the op-notice option for a channel. When op-notice is set, %S will send a notice to the @@ -5002,13 +5063,6 @@ CHAN_SERVADMIN_HELP_DROP Unregisters the named channel. Only Services Operators can drop a channel for which they have not identified. -CHAN_SERVADMIN_HELP_SET - - Services Operators can also set the option NOEXPIRE, with - which channels can be prevented from expiring. - Additionally, Services Operators can set options for any - channel without identifying by password for the channel. - CHAN_SERVADMIN_HELP_SET_NOEXPIRE Syntax: SET channel NOEXPIRE {ON | OFF} @@ -1099,6 +1099,34 @@ CHAN_DROP_DISABLED CHAN_DROPPED El canal %s ha sido botado. +# SASET responses +CHAN_SASET_SYNTAX + SASET channel option parameters +CHAN_SASET_KEEPTOPIC_SYNTAX + SASET channel KEEPTOPIC {ON | OFF} +CHAN_SASET_OPNOTICE_SYNTAX + SASET channel OPNOTICE {ON | OFF} +CHAN_SASET_PEACE_SYNTAX + SASET channel PEACE {ON | OFF} +CHAN_SASET_PERSIST_SYNTAX + SASET channel PERSIST {ON | OFF} +CHAN_SASET_PRIVATE_SYNTAX + SASET channel PRIVATE {ON | OFF} +CHAN_SASET_RESTRICTED_SYNTAX + SASET channel RESTRICTED {ON | OFF} +CHAN_SASET_SECURE_SYNTAX + SASET channel SECURE {ON | OFF} +CHAN_SASET_SECUREFOUNDER_SYNTAX + SASET channel SECUREFOUNDER {ON | OFF} +CHAN_SASET_SECUREOPS_SYNTAX + SASET channel SECUREOPS {ON | OFF} +CHAN_SASET_SIGNKICK_SYNTAX + SASET channel SIGNKICK {ON | OFF} +CHAN_SASET_TOPICLOCK_SYNTAX + SASET channel TOPICLOCK {ON | OFF} +CHAN_SASET_XOP_SYNTAX + SASET channel XOP {ON | OFF} + # SET responses CHAN_SET_SYNTAX SET canal opcion parametros @@ -4225,6 +4253,8 @@ CHAN_HELP_CMD_REGISTER REGISTER Registra un canal CHAN_HELP_CMD_SET SET Setea opciones e informacion de un canal +CHAN_HELP_CMD_SASET + SASET Forcefully set channel options and information CHAN_HELP_CMD_QOP QOP Modify the list of QOP users CHAN_HELP_CMD_AOP @@ -4328,7 +4358,15 @@ CHAN_HELP_DROP Desregistra el canal dado. Solo puede ser usado por el fundador del canal. -CHAN_HELP_SET +CHAN_HELP_SASET_HEAD + Sintaxis: SASET channel option parameters + + Allows Services Operators to forcefully change settings + on channels. + + Available options: + +CHAN_HELP_SET_HEAD Sintaxis: SET canal opcion parametros Le permite al fundador del canal setear varias opciones @@ -4336,45 +4374,68 @@ CHAN_HELP_SET Opciones disponibles: +CHAN_HELP_CMD_SET_FOUNDER FOUNDER Setea el fundador de un canal +CHAN_HELP_CMD_SET_SUCCESSOR SUCCESSOR Setea el sucesor de un canal +CHAN_HELP_CMD_SET_DESC DESC Setea la descripcion del canal +CHAN_HELP_CMD_SET_URL URL Asocia una URL con el canal +CHAN_HELP_CMD_SET_EMAIL EMAIL Asocia un E-mail con el canal +CHAN_HELP_CMD_SET_ENTRYMSG ENTRYMSG Setea un mensaje a enviar a los usuarios cuando entren al canal +CHAN_HELP_CMD_SET_BANTYPE BANTYPE Setea como los Servicios ponen bans en el canal +CHAN_HELP_CMD_SET_MLOCK MLOCK Fija los modos de canal on u off +CHAN_HELP_CMD_SET_KEEPTOPIC KEEPTOPIC Retiene el topic cuando el canal no esta en uso +CHAN_HELP_CMD_SET_OPNOTICE OPNOTICE Envia una noticia cuando los comandos OP/DEOP son usados +CHAN_HELP_CMD_SET_PEACE PEACE Regula el uso de comandos criticos +CHAN_HELP_CMD_SET_PRIVATE PRIVATE Esconde el canal del comando LIST +CHAN_HELP_CMD_SET_RESTRICTED RESTRICTED Restrinje el acceso al canal +CHAN_HELP_CMD_SET_SECURE SECURE Activa las opciones de seguridad de %S +CHAN_HELP_CMD_SET_SECUREOPS SECUREOPS Estricto control del estatus de chanop +CHAN_HELP_CMD_SET_SECUREFOUNDER SECUREFOUNDER Estricto control del estatus de fundador de canal +CHAN_HELP_CMD_SET_SIGNKICK SIGNKICK Firma kicks hechos con el comando KICK +CHAN_HELP_CMD_SET_TOPICLOCK TOPICLOCK El topic solo puede ser cambiado con TOPIC +CHAN_HELP_CMD_SET_XOP XOP Cambia el sistema de privilegios de usuario +CHAN_HELP_CMD_SET_PERSIST PERSIST Set the channel as permanent - +CHAN_HELP_CMD_SET_NOEXPIRE + NOEXPIRE Prevent the channel from expiring + +CHAN_HELP_SET_TAIL Tipea %R%S HELP opcion para mayor informacion acerca de una opcion en particular. CHAN_HELP_SET_FOUNDER - Sintaxis: SET canal FOUNDER nick + Sintaxis: %s canal FOUNDER nick Cambia el fundador de un canal. El nuevo nickname debe ser uno registrado. CHAN_HELP_SET_SUCCESSOR - Sintaxis: SET canal SUCCESSOR nick + Sintaxis: %s canal SUCCESSOR nick Cambia el sucesor de un canal. Si el nickname fundador expira o es botado mientras el canal esta aun registrado, @@ -4385,13 +4446,13 @@ CHAN_HELP_SET_SUCCESSOR registrado. CHAN_HELP_SET_DESC - Sintaxis: SET canal DESC descripcion + Sintaxis: %s canal DESC descripcion Setea la descripcion para el canal, la que es mostrada con los comandos LIST y INFO. CHAN_HELP_SET_URL - Sintaxis: SET canal URL [url] + Sintaxis: %s canal URL [url] Asocia la URL dada con el canal. Esta URL sera mostrada cuando alguien solicite informacion sobre el canal con @@ -4399,7 +4460,7 @@ CHAN_HELP_SET_URL borra la URL actual para el canal. CHAN_HELP_SET_EMAIL - Sintaxis: SET canal EMAIL [direccion] + Sintaxis: %s canal EMAIL [direccion] Asocia la direccion E-mail dada con el canal. Esta direccion sera mostrada cuando alguien solicite @@ -4408,14 +4469,14 @@ CHAN_HELP_SET_EMAIL actual para el canal. CHAN_HELP_SET_ENTRYMSG - Sintaxis: SET canal ENTRYMSG [mensaje] + Sintaxis: %s canal ENTRYMSG [mensaje] Setea el mensaje que sera enviado via /notice a los usuarios cuando ingresen al canal. Si ningun parametro es dado, ningun mensaje sera enviado al entrar al canal. CHAN_HELP_SET_BANTYPE - Sintaxis: SET canal BANTYPE tipo_de_ban + Sintaxis: %s canal BANTYPE tipo_de_ban Setea el tipo de ban que sera usado por los Servicios cuando necesiten banear a alguien @@ -4429,7 +4490,7 @@ CHAN_HELP_SET_BANTYPE 3: ban en la forma *!*usuario@*.dominio CHAN_HELP_SET_KEEPTOPIC - Sintaxis: SET canal KEEPTOPIC {ON | OFF} + Sintaxis: %s canal KEEPTOPIC {ON | OFF} Habilita o deshabilita la opcion de retencion de topic para un canal. Cuando la retencion de topic esta @@ -4439,7 +4500,7 @@ CHAN_HELP_SET_KEEPTOPIC el canal sea creado. CHAN_HELP_SET_TOPICLOCK - Sintaxis: SET canal TOPICLOCK {ON | OFF} + Sintaxis: %s canal TOPICLOCK {ON | OFF} Abilita o desabilita la opcion de fijacion de topic para un canal. Cuando la fijacion de topic esta @@ -4447,7 +4508,7 @@ CHAN_HELP_SET_TOPICLOCK sea cambiado excepto con el comando TOPIC. CHAN_HELP_SET_MLOCK - Sintaxis: SET canal MLOCK modos + Sintaxis: %s canal MLOCK modos Setea el parametro de fijacion de modos para el canal. %S te permite definir ciertos modos de canal para estar @@ -4485,7 +4546,7 @@ CHAN_HELP_SET_MLOCK son libres de estar encendidos o apagados. CHAN_HELP_SET_PEACE - Sintaxis: SET canal PEACE {ON | OFF} + Sintaxis: %s canal PEACE {ON | OFF} Habilita o deshabilita la opcion de paz para un canal. Cuando paz esta seteada, un usuario no @@ -4494,21 +4555,21 @@ CHAN_HELP_SET_PEACE comandos de %S. CHAN_HELP_SET_PRIVATE - Sintaxis: SET canal PRIVATE {ON | OFF} + Sintaxis: %s canal PRIVATE {ON | OFF} Habilita o deshabilita la opcion de privacidad para un canal. Cuando privacidad esta seteada, un %R%S LIST no incluira el canal en ninguna lista. CHAN_HELP_SET_RESTRICTED - Sintaxis: SET canal RESTRICTED {ON | OFF} + Sintaxis: %s canal RESTRICTED {ON | OFF} Enables or disables the restricted access option for a channel. When restricted access is set, users not on the access list will instead be kicked and banned from the channel. CHAN_HELP_SET_SECURE - Sintaxis: SET canal SECURE {ON | OFF} + Sintaxis: %s canal SECURE {ON | OFF} Habilita o deshabilita las caracteristicas de seguridad de %S para un canal. Cuando SECURE esta @@ -4518,7 +4579,7 @@ CHAN_HELP_SET_SECURE acceso. CHAN_HELP_SET_SECUREOPS - Sintaxis: SET canal SECUREOPS {ON | OFF} + Sintaxis: %s canal SECUREOPS {ON | OFF} Habilita o deshabilita la opcion seguridad de ops para un canal. Cuando seguridad de ops esta seteada, usuarios @@ -4526,7 +4587,7 @@ CHAN_HELP_SET_SECUREOPS obtener el status de operador de canal. CHAN_HELP_SET_SECUREFOUNDER - Sintaxis: SET canal SECUREFOUNDER {ON | OFF} + Sintaxis: %s canal SECUREFOUNDER {ON | OFF} Habilita o deshabilita la opcion seguridad de fundador para un canal. Cuando seguridad de fundador esta seteada, solo @@ -4535,7 +4596,7 @@ CHAN_HELP_SET_SECUREFOUNDER con %S. CHAN_HELP_SET_SIGNKICK - Sintaxis: SET canal SIGNKICK {ON | LEVEL | OFF} + Sintaxis: %s canal SIGNKICK {ON | LEVEL | OFF} Habilita o deshabilita los kicks firmados para un canal. Cuando SIGNKICK esta seteado, kicks @@ -4547,7 +4608,7 @@ CHAN_HELP_SET_SIGNKICK firmados. Ver %R%S HELP LEVELS para mayor informacion. CHAN_HELP_SET_XOP - Sintaxis: SET canal XOP {ON | OFF} + Sintaxis: %s canal XOP {ON | OFF} Habilita o deshabilita el sistema de listas xOP para un canal. Cuando XOP esta seteado, debes usar los comandos AOP/SOP/VOP @@ -4569,7 +4630,7 @@ CHAN_HELP_SET_XOP problema alguno. CHAN_HELP_SET_PERSIST - Syntax: SET channel PERSIST {ON | OFF} + Syntax: %s channel PERSIST {ON | OFF} Enables or disables the persistant channel setting. When persistant is set, the service bot will remain @@ -4592,7 +4653,7 @@ CHAN_HELP_SET_PERSIST set persist on or off. CHAN_HELP_SET_OPNOTICE - Sintaxis: SET canal OPNOTICE {ON | OFF} + Sintaxis: %s canal OPNOTICE {ON | OFF} Habilita o deshabilita la opcion de op-notice para un canal. Cuando op-notice esta seteado, %S enviara una noticia @@ -5161,14 +5222,6 @@ CHAN_SERVADMIN_HELP_DROP administradores de Servicios pueden botar un canal por el cual no se hayan identificado. -CHAN_SERVADMIN_HELP_SET - - Administradores de Servicios pueden tambien setear la - opcion NOEXPIRE, con la cual canales pueden ser - prevenidos a expirar. Ademas, administradores de - Servicios pueden setear opciones para cualquier canal - sin tener que identificarse por clave en el canal. - CHAN_SERVADMIN_HELP_SET_NOEXPIRE Sintaxis: SET canal NOEXPIRE {ON | OFF} @@ -1111,6 +1111,34 @@ CHAN_DROP_DISABLED CHAN_DROPPED Le canal %s a été effacé. +# SASET responses +CHAN_SASET_SYNTAX + SASET channel option parameters +CHAN_SASET_KEEPTOPIC_SYNTAX + SASET channel KEEPTOPIC {ON | OFF} +CHAN_SASET_OPNOTICE_SYNTAX + SASET channel OPNOTICE {ON | OFF} +CHAN_SASET_PEACE_SYNTAX + SASET channel PEACE {ON | OFF} +CHAN_SASET_PERSIST_SYNTAX + SASET channel PERSIST {ON | OFF} +CHAN_SASET_PRIVATE_SYNTAX + SASET channel PRIVATE {ON | OFF} +CHAN_SASET_RESTRICTED_SYNTAX + SASET channel RESTRICTED {ON | OFF} +CHAN_SASET_SECURE_SYNTAX + SASET channel SECURE {ON | OFF} +CHAN_SASET_SECUREFOUNDER_SYNTAX + SASET channel SECUREFOUNDER {ON | OFF} +CHAN_SASET_SECUREOPS_SYNTAX + SASET channel SECUREOPS {ON | OFF} +CHAN_SASET_SIGNKICK_SYNTAX + SASET channel SIGNKICK {ON | OFF} +CHAN_SASET_TOPICLOCK_SYNTAX + SASET channel TOPICLOCK {ON | OFF} +CHAN_SASET_XOP_SYNTAX + SASET channel XOP {ON | OFF} + # SET responses CHAN_SET_SYNTAX SET canal option paramètres @@ -4286,6 +4314,8 @@ CHAN_HELP_CMD_REGISTER CHAN_HELP_CMD_SET SET Configure les options et informations du canal +CHAN_HELP_CMD_SASET + SASET Forcefully set channel options and information CHAN_HELP_CMD_QOP QOP Modify the list of QOP users CHAN_HELP_CMD_AOP @@ -4390,7 +4420,15 @@ CHAN_HELP_DROP Efface le canal donné. Peut uniquement être utilisé par le propriétaire du canal. -CHAN_HELP_SET +CHAN_HELP_SASET_HEAD + Syntaxe: SASET channel option parameters + + Allows Services Operators to forcefully change settings + on channels. + + Available options: + +CHAN_HELP_SET_HEAD Syntaxe: SET canal option paramètres Permet au propriétaire du canal de configurer diverses options @@ -4398,44 +4436,66 @@ CHAN_HELP_SET Options disponibles: +CHAN_HELP_CMD_SET_FOUNDER FOUNDER Définit le propriétaire d'un canal +CHAN_HELP_CMD_SET_SUCCESSOR SUCCESSOR Définit le successeur d'un canal +CHAN_HELP_CMD_SET_DESC DESC Définit la description du canal +CHAN_HELP_CMD_SET_URL URL Associe un site avec un canal +CHAN_HELP_CMD_SET_EMAIL EMAIL Associe un E-mail avec le canal +CHAN_HELP_CMD_SET_ENTRYMSG ENTRYMSG Définit un message envoyé aux utilisateurs qui entrent sur le canal - TOPIC Change le topic du canal +CHAN_HELP_CMD_SET_BANTYPE BANTYPE Définit comment les services mettent les bans sur le canal +CHAN_HELP_CMD_SET_MLOCK MLOCK Oblige ou interdit des modes de canal +CHAN_HELP_CMD_SET_KEEPTOPIC KEEPTOPIC Maintient le topic quand le canal n'est pas utilisé +CHAN_HELP_CMD_SET_OPNOTICE OPNOTICE Envoie une notice quand OP/DEOP sont utilisés +CHAN_HELP_CMD_SET_PEACE PEACE Régule l'utilisation de commandes sensibles +CHAN_HELP_CMD_SET_PRIVATE PRIVATE Cacher le canal de la commande LIST +CHAN_HELP_CMD_SET_RESTRICTED RESTRICTED Restreindre l'accès au canal +CHAN_HELP_CMD_SET_SECURE SECURE Active les fonctions de sécurité de %S +CHAN_HELP_CMD_SET_SECUREOPS SECUREOPS Contrôle plus strict du statut d'OP +CHAN_HELP_CMD_SET_SECUREFOUNDER SECUREFOUNDER Contrôle plus strict du statut de propriétaire du canal +CHAN_HELP_CMD_SET_SIGNKICK SIGNKICK Signe les kicks générés par la commande KICK +CHAN_HELP_CMD_SET_TOPICLOCK TOPICLOCK Le sujet peut uniquement être changé avec TOPIC +CHAN_HELP_CMD_SET_XOP XOP Change le système de privilèges utilisateurs +CHAN_HELP_CMD_SET_PERSIST PERSIST Set the channel as permanent +CHAN_HELP_CMD_SET_NOEXPIRE + NOEXPIRE Prevent the channel from expiring +CHAN_HELP_SET_TAIL Tapez %R%S HELP SET option pour plus d'informations sur une option particulière. CHAN_HELP_SET_FOUNDER - Syntaxe: SET canal FOUNDER pseudo + Syntaxe: %s canal FOUNDER pseudo Change le propriétaire d'un canal. Le nouveau pseudo doit être enregistré. CHAN_HELP_SET_SUCCESSOR - Syntaxe: SET canal SUCCESSOR pseudo + Syntaxe: %s canal SUCCESSOR pseudo Change le successeur d'un canal. Si le pseudo du propriétaire expire ou est effacé alors que le canal est toujours @@ -4446,13 +4506,13 @@ CHAN_HELP_SET_SUCCESSOR doit être enregistré. CHAN_HELP_SET_DESC - Syntaxe: SET canal DESC description + Syntaxe: %s canal DESC description Définit la description du canal, qui apparait dans les commandes LIST et INFO. CHAN_HELP_SET_URL - Syntaxe: SET canal URL [adresse] + Syntaxe: %s canal URL [adresse] Associe l'adresse de site web donnée avec le canal. Cette adresse sera affichée à chaque fois que quelqu'un demande des informations @@ -4460,7 +4520,7 @@ CHAN_HELP_SET_URL n'est donné, supprime l'adresse de site du canal. CHAN_HELP_SET_EMAIL - Syntaxe: SET canal EMAIL [adresse] + Syntaxe: %s canal EMAIL [adresse] Associe l'E-mail donné avec le canal. Cette E-mail sera affiché lorsque quelqu'un demande des informations @@ -4468,7 +4528,7 @@ CHAN_HELP_SET_EMAIL n'est donné, supprime l'E-mail actuel du canal. CHAN_HELP_SET_ENTRYMSG - Syntaxe: SET canal ENTRYMSG [message] + Syntaxe: %s canal ENTRYMSG [message] Définit le message qui sera envoyé en /notice aux utilisateurs quand ils entrent dans un canal. Si aucun @@ -4476,7 +4536,7 @@ CHAN_HELP_SET_ENTRYMSG l'entrée. CHAN_HELP_SET_BANTYPE - Syntaxe: SET canal BANTYPE typedeban + Syntaxe: %s canal BANTYPE typedeban Définit le type de ban qui sera utilisé par les services lorsqu'ils doivent bannir quelqu'un de votre canal. @@ -4489,7 +4549,7 @@ CHAN_HELP_SET_BANTYPE 3: ban de style *!*user@*.domain CHAN_HELP_SET_KEEPTOPIC - Syntaxe: SET canal KEEPTOPIC {ON | OFF} + Syntaxe: %s canal KEEPTOPIC {ON | OFF} Active ou désactive l'option de maintien du sujet pour un canal. Lorsque le maintien du sujet est défini, le @@ -4498,7 +4558,7 @@ CHAN_HELP_SET_KEEPTOPIC la prochaine fois que le canal sera créé. CHAN_HELP_SET_TOPICLOCK - Syntaxe: SET canal TOPICLOCK {ON | OFF} + Syntaxe: %s canal TOPICLOCK {ON | OFF} Active ou désactive l'option de verrouillage du sujet pour un canal. Lorsque le verrouillage du sujet est actif, @@ -4506,7 +4566,7 @@ CHAN_HELP_SET_TOPICLOCK avec la commande TOPIC. CHAN_HELP_SET_MLOCK - Syntaxe: SET canal MLOCK modes + Syntaxe: %s canal MLOCK modes Configure les modes maintenus sur le canal. %S vous permet de toujours garder certains modes, d'empêcher l'utilisation d'autres @@ -4543,7 +4603,7 @@ CHAN_HELP_SET_MLOCK pourront désormais être librement utilisés. CHAN_HELP_SET_PEACE - Syntaxe: SET canal PEACE {ON | OFF} + Syntaxe: %s canal PEACE {ON | OFF} Active ou désactive l'option de paix pour un canal. Quand elle est active, cette option empêche un @@ -4552,21 +4612,21 @@ CHAN_HELP_SET_PEACE égal au sien via les commandes de %S. CHAN_HELP_SET_PRIVATE - Syntaxe: SET canal PRIVATE {ON | OFF} + Syntaxe: %s canal PRIVATE {ON | OFF} Active ou désactive l'option private pour un canal. Si private est défini, un %R%S LIST ne comprendra le canal dans aucune liste. CHAN_HELP_SET_RESTRICTED - Syntaxe: SET canal RESTRICTED {ON | OFF} + Syntaxe: %s canal RESTRICTED {ON | OFF} Active ou désactive l'option d'accès restreint pour un canal. Quand l'accès restreint est activé, les utilisateurs qui ne sont pas inscrits à la liste d'accès seront kickés et bannis du canal. CHAN_HELP_SET_SECURE - Syntaxe: SET canal SECURE {ON | OFF} + Syntaxe: %s canal SECURE {ON | OFF} Active ou désactive les caractéristiques de sécurité %S pour un canal. Lorsque la sécurité est active, seuls les @@ -4575,14 +4635,14 @@ CHAN_HELP_SET_SECURE au canal, sous contrôle de la liste d'accès. CHAN_HELP_SET_SECUREOPS - Syntaxe: SET canal SECUREOPS {ON | OFF} + Syntaxe: %s canal SECUREOPS {ON | OFF} Active ou désactive le contrôle des OPs sur un canal. Lorsque le contrôle des OPs est actif, les utilisateurs qui ne sont pas sur la liste d'accès ne pourront être OP. CHAN_HELP_SET_SECUREFOUNDER - Syntaxe: SET canal SECUREFOUNDER {ON | OFF} + Syntaxe: %s canal SECUREFOUNDER {ON | OFF} Active ou désactive l'option contrôle du propriétaire pour un canal. Lorsque le contrôle du propriétaire est activé, seul le vrai @@ -4591,7 +4651,7 @@ CHAN_HELP_SET_SECUREFOUNDER avec %S. CHAN_HELP_SET_SIGNKICK - Syntaxe: SET canal SIGNKICK {ON | LEVEL | OFF} + Syntaxe: %s canal SIGNKICK {ON | LEVEL | OFF} Active ou désactive les kicks signés sur un canal. Quand cette option est utilisée, les kicks générés @@ -4604,7 +4664,7 @@ CHAN_HELP_SET_SIGNKICK pour plus d'informations. CHAN_HELP_SET_XOP - Syntaxe: SET canal XOP {ON | OFF} + Syntaxe: %s canal XOP {ON | OFF} Active ou désactive le système de listes de xOPs pour un canal. Si vous choisissez ce système, vous devez @@ -4629,7 +4689,7 @@ CHAN_HELP_SET_XOP d'accès ne pose aucun problème par contre. CHAN_HELP_SET_PERSIST - Syntax: SET channel PERSIST {ON | OFF} + Syntax: %s channel PERSIST {ON | OFF} Enables or disables the persistant channel setting. When persistant is set, the service bot will remain @@ -4652,7 +4712,7 @@ CHAN_HELP_SET_PERSIST set persist on or off. CHAN_HELP_SET_OPNOTICE - Syntaxe: SET canal OPNOTICE {ON | OFF} + Syntaxe: %s canal OPNOTICE {ON | OFF} Active ou désactive l'option notice sur OP/DEOP pour un canal. Lorsque notice sur OP/DEOP est défini, %S enverra une notice au @@ -5218,14 +5278,6 @@ CHAN_SERVADMIN_HELP_DROP peuvent effacer un canal pour lequel ils n'ont pas été identifiés. -CHAN_SERVADMIN_HELP_SET - - Les Services operators peuvent aussi définir l'option - NOEXPIRE, avec lequel les canaux peuvent être empêchés - d'expirer. De plus, les Services operators peuvent définir - les options de tout canal sans s'identifier à l'aide du - mot de passe du canal. - CHAN_SERVADMIN_HELP_SET_NOEXPIRE Syntaxe: SET canal NOEXPIRE {ON | OFF} @@ -1099,6 +1099,34 @@ CHAN_DROP_DISABLED CHAN_DROPPED Ôï êáíÜëé %s äéáãñÜöôçêå áðü ôéò õðçñåóßåò. +# SASET responses +CHAN_SASET_SYNTAX + SASET channel option parameters +CHAN_SASET_KEEPTOPIC_SYNTAX + SASET channel KEEPTOPIC {ON | OFF} +CHAN_SASET_OPNOTICE_SYNTAX + SASET channel OPNOTICE {ON | OFF} +CHAN_SASET_PEACE_SYNTAX + SASET channel PEACE {ON | OFF} +CHAN_SASET_PERSIST_SYNTAX + SASET channel PERSIST {ON | OFF} +CHAN_SASET_PRIVATE_SYNTAX + SASET channel PRIVATE {ON | OFF} +CHAN_SASET_RESTRICTED_SYNTAX + SASET channel RESTRICTED {ON | OFF} +CHAN_SASET_SECURE_SYNTAX + SASET channel SECURE {ON | OFF} +CHAN_SASET_SECUREFOUNDER_SYNTAX + SASET channel SECUREFOUNDER {ON | OFF} +CHAN_SASET_SECUREOPS_SYNTAX + SASET channel SECUREOPS {ON | OFF} +CHAN_SASET_SIGNKICK_SYNTAX + SASET channel SIGNKICK {ON | OFF} +CHAN_SASET_TOPICLOCK_SYNTAX + SASET channel TOPICLOCK {ON | OFF} +CHAN_SASET_XOP_SYNTAX + SASET channel XOP {ON | OFF} + # SET responses CHAN_SET_SYNTAX SET channel option parameters @@ -4244,6 +4272,8 @@ CHAN_HELP_CMD_REGISTER CHAN_HELP_CMD_SET SET Ñõèìßæåé ôéò åðéëïãÝò êáé ôéò ðëçñïöïñßåò ôïõ êáíáëéïý +CHAN_HELP_CMD_SASET + SASET Forcefully set channel options and information CHAN_HELP_CMD_QOP QOP Modify the list of QOP users CHAN_HELP_CMD_AOP @@ -4346,7 +4376,15 @@ CHAN_HELP_DROP ÊÜíåé ôï êáíÜëé îåêáôï÷õñþóçìï,ôï áöÞíåé åëåýèåñï ÷ùñßò founder. Ãéá íá ãßíåé áõôü ðñÝðåé ï founder. -CHAN_HELP_SET +CHAN_HELP_SASET_HEAD + Syntax: SASET channel option parameters + + Allows Services Operators to forcefully change settings + on channels. + + Available options: + +CHAN_HELP_SET_HEAD Óýíôáîç: SET êáíÜëé åðéëïãÞ ðáñÜìåôñïé ÅðéôñÝðïõí óôïí founder ôïõ êáíáëéïý íá åðéëÝîåé êáé íá ñõèìßóåé ôï êáíÜëé @@ -4354,40 +4392,63 @@ CHAN_HELP_SET ÄéáèÝóéìåò åðéëïãÝò: +CHAN_HELP_CMD_SET_FOUNDER FOUNDER ÁëëÜæåé ôïí founder ôïõ êáíáëéïý +CHAN_HELP_CMD_SET_SUCCESSOR SUCCESSOR ÁëëÜæåé ôïí successor ôïõ êáíáëéïý +CHAN_HELP_CMD_SET_DESC DESC ÁëëÜæåé ôçí ðåñéãñáöÞ ôïõ êáíáëéïý +CHAN_HELP_CMD_SET_URL URL Óõó÷åôßæåé Ýíá URL ìå ôï êáíÜëé +CHAN_HELP_CMD_SET_EMAIL EMAIL Óõó÷åôßæåé Ýíá E-mail ìå ôï êáíÜëé +CHAN_HELP_CMD_SET_ENTRYMSG ENTRYMSG ÁëëÜæåé ôï ìÞíõìá åéóáãùãÞò ðïõ óôÝëíåôå óå üëïõò ôïõò ÷ñÞóôåò ðïõ ìðÝíïõí óôï êáíÜëé +CHAN_HELP_CMD_SET_BANTYPE BANTYPE ÁëëÜæåé ôïí ôýðï ôïõ ban ðïõ èá êÜíïõí ôá Services +CHAN_HELP_CMD_SET_MLOCK MLOCK Êëåßäùìá ôùí Modes ôïõ êáíáëéïý +CHAN_HELP_CMD_SET_KEEPTOPIC KEEPTOPIC Íá áëëÜæåé ôï topic üôáí äåí ÷ñçóéìïðïéåßôáé ôï êáíÜëé +CHAN_HELP_CMD_SET_OPNOTICE OPNOTICE Íá óôÝëíåé ìÝóá óôï êáíÜëé ìÞíõìá ðïéïò ÷ñçóéìïðïéåß OP/DEOP åíôïëÝò +CHAN_HELP_CMD_SET_PEACE PEACE Íá åëëáôþíåé ôçí ÷ñÞóç "âßáéùí" åíôïëþí +CHAN_HELP_CMD_SET_PRIVATE PRIVATE Íá ìçí åìöáíßæåôáé ôï êáíÜëé üôáí ãßíåôáé åíôïëÞ LIST +CHAN_HELP_CMD_SET_RESTRICTED RESTRICTED Áðáãüñåõóç åéóüäïõ óôï êáíÜëé áí äåí Ý÷åéò access åêåß +CHAN_HELP_CMD_SET_SECURE SECURE Åíåñãïðïßçóç ôïõ %S ,ìåëëïíôéêÞ áóöÜëåéá +CHAN_HELP_CMD_SET_SECUREOPS SECUREOPS Ìüíï üóïé Ý÷ïõí access èá Ý÷ïõí op +CHAN_HELP_CMD_SET_SECUREFOUNDER SECUREFOUNDER ÁóöÜëåéá ôïõ founder áðü ôï êáíÜëé +CHAN_HELP_CMD_SET_SIGNKICK SIGNKICK Åìöáí. kicks ôá ïðïßá ãßíïíôáé ìå ôçí åíôïëÞ KICK +CHAN_HELP_CMD_SET_TOPICLOCK TOPICLOCK Ôï Topic ìðïñåß íá áëëÜîåé ìå ôçí åíôïëÞ TOPIC +CHAN_HELP_CMD_SET_XOP XOP Áí åßíáé ON äïõëåýåé ìå AOP/SOP,áí åßíáé off ìå access +CHAN_HELP_CMD_SET_PERSIST PERSIST Set the channel as permanent +CHAN_HELP_CMD_SET_NOEXPIRE + NOEXPIRE Prevent the channel from expiring +CHAN_HELP_SET_TAIL ÃñÜøå %R%S HELP åðéëïãÞ ãéá ðåñéóóüôåñåò ðëçñïöïñßåò ãéá ôçí êÜèå åíôïëÞ. CHAN_HELP_SET_FOUNDER - Óýíôáîç: SET êáíÜëé FOUNDER øåõäþíõìï + Óýíôáîç: %s êáíÜëé FOUNDER øåõäþíõìï ÁëëÜæåé ôïí founder ôïõ êáíáëéïý. Ôï íÝï øåõäþíõìï ðñÝðåé íá åßíáé êáôï÷õñùìÝíï. CHAN_HELP_SET_SUCCESSOR - Óýíôáîç: SET êáíÜëé SUCCESSOR øåõäþíõìï + Óýíôáîç: %s êáíÜëé SUCCESSOR øåõäþíõìï ÁëëÜæåé ôïí successor ôïõ êáíáëéïý. Áí ôï øåõäþíõìï ôïõ founder ëÞîåé Þ óâçóôåß (drop) ôüôå ôï êáíÜëé èá åßíáé áêüìá êáôï÷õñùìÝíï. @@ -4397,13 +4458,13 @@ CHAN_HELP_SET_SUCCESSOR successor. Ôï íÝï øåõäþíõìï èá ðñÝðåé íá åßíáé êáôï÷õñùìÝíï. CHAN_HELP_SET_DESC - Óýíôáîç: SET êáíÜëé DESC ðåñéãñáöÞ + Óýíôáîç: %s êáíÜëé DESC ðåñéãñáöÞ ÁëëÜæåôå ôçí ðåñéãñáöÞ ôïõ êáíáëéïý, ç ïðïßá öÝíåôáé ìå ôçí åíôïëÞ LIST êáé INFO. CHAN_HELP_SET_URL - Óýíôáîç: SET êáíÜëé URL [url] + Óýíôáîç: %s êáíÜëé URL [url] Óõó÷åôßæåé Ýíá URL ìå ôï êáíÜëé. Áõôü ôï URL èá åìöáíßæåôáé üôáí êÜðïéïò èá êïéôÜæåéò ôéò ðëçñïöïñßåò ôïõ êáíáëéïý @@ -4411,7 +4472,7 @@ CHAN_HELP_SET_URL èá óâçóôåß ïðïéïäÞðïôå URL åß÷å äùèåß ðáëáéüôåñá óôï êáíÜëé. CHAN_HELP_SET_EMAIL - Óýíôáîç: SET êáíÜëé EMAIL [äéåýèõíóç] + Óýíôáîç: %s êáíÜëé EMAIL [äéåýèõíóç] Óõó÷åôßæåé ìéá äéåýèõíóç E-mail ìå ôï êáíÜëé. ÁõôÞ ç äéåýèõíóç åìöáíßæåôáé üôáí êÜðïéïò èÝëåé íá äåé @@ -4420,14 +4481,14 @@ CHAN_HELP_SET_EMAIL åß÷å äùèåß óôï êáíÜëé. CHAN_HELP_SET_ENTRYMSG - Óýíôáîç: SET êáíÜëé ENTRYMSG [ìÞíõìá] + Óýíôáîç: %s êáíÜëé ENTRYMSG [ìÞíõìá] ÁëëÜæåé ôï ìÞíõìá åéóáãùãÞò ôï ïðïßï óôÝëíåôå óå êÜèå ÷ñÞóôç ìÝóù /notice (ðáñáôÞñçóç) üôáí áõôüò ìðÝíåé óôï êáíÜëé. Áí äåí äùèåß êáìßá ðáñÜìåôñïò, äåí èá óôÝëíåôå êáíÝíá ìÞíõìá óôï ÷ñÞóôç,ï ïðïßïò èá åéóÝñ÷åôáé óôï êáíÜëé. CHAN_HELP_SET_BANTYPE - Óýíôáîç: SET êáíÜëé BANTYPE ôýðïò-ban + Óýíôáîç: %s êáíÜëé BANTYPE ôýðïò-ban ÁëëÜæåé ôïí ôýðï ôïõ ban, ï ïðïßïò èá ÷ñçóéìïðïéåßôáé áðü ôéò õðçñåóßåò üôáí èá ÷ñåéÜæåôáé íá êÜíåé êÜðïéïí ban áðü ôï êáíÜëé (ð÷ akick). @@ -4440,7 +4501,7 @@ CHAN_HELP_SET_BANTYPE 3: ôï ban èá åßíáé ôçò ìïñöÞò *!*user@*.domain CHAN_HELP_SET_KEEPTOPIC - Óýíôáîç: SET êáíÜëé KEEPTOPIC {ON | OFF} + Óýíôáîç: %s êáíÜëé KEEPTOPIC {ON | OFF} Åíåñãïðïéåß Þ áðåíåñãïðïéåß ôçí åðéëïãÞ topic retention ôïõ êáíáëéïý. ¼ôáí ôï topic retention åßíáé on, ôï topic ôïõ êáíáëéïý @@ -4448,14 +4509,14 @@ CHAN_HELP_SET_KEEPTOPIC ôï êáíÜëé, êáé èá áðïèçêåýåôáé ãéá ôçí åðüìåíç öïñÜ. CHAN_HELP_SET_TOPICLOCK - Óýíôáîç: SET êáíÜëé KEEPTOPIC {ON | OFF} + Óýíôáîç: %s êáíÜëé KEEPTOPIC {ON | OFF} Åíåñãïðïéåß Þ áðåíåñãïðïéåß ôçí åðéëïãÞ êëåßäùìá topic ôïõ êáíáëéïý. ¼ôáí ôï êëåßäùìá topic åßíáé on, ï %S äåí èá åðéôñÝðåé óå êáíÝíáí íá áëëÜîåé ôï topic ôïõ êáíáëéïý åêôüò ôçò åíôïëÞò TOPIC ôïõ. CHAN_HELP_SET_MLOCK - Óýíôáîç: SET êáíÜëé MLOCK modes + Óýíôáîç: %s êáíÜëé MLOCK modes Êáèïñßæåé ôï êëåßäùìá ôùí modes ãéá ôï êáíÜëé. Ï %S óáò åðéôñÝðåé íá êáèïñßóåôå óõãêåêñéìÝíá modes ãéá ôï êáíÜëé @@ -4492,7 +4553,7 @@ CHAN_HELP_SET_MLOCK áðåíåñãïðïéçèïýí. CHAN_HELP_SET_PEACE - Óýíôáîç: SET êáíÜëé PEACE {ON | OFF} + Óýíôáîç: %s êáíÜëé PEACE {ON | OFF} Åíåñãïðïéåß Þ áðååñãïðïéåß ôçí åíôïëÞ peace óôï êáíÜëé. ¼ôáí ç åíôïëÞ peace åßíáé on, ï ÷ñÞóôçò äåí ìðïñåß íá êÜíåé kick, @@ -4500,21 +4561,21 @@ CHAN_HELP_SET_PEACE level áðü áõôüí Þ ßóï ìå áõôüí ìÝóù åíôïëþí %S. CHAN_HELP_SET_PRIVATE - Óýíôáîç: SET êáíÜëé PRIVATE {ON | OFF} + Óýíôáîç: %s êáíÜëé PRIVATE {ON | OFF} Åíåñãïðïéåß Þ áðåíåñãïðïéåß ôçí åðéëïãÞ private ãéá Ýíá êáíÜëé. ¼ôáí åíåñãïðïéåßôáé ç private åíôïëÞ, ôï êáíÜëé äå óõìðåñéëáìâÜíåôáé óôç ëßóôá ðïõ ðñïêýðôåé áðü ôçí åíôïëÞ %R%S LIST. CHAN_HELP_SET_RESTRICTED - Óýíôáîç: SET êáíÜëé RESTRICTED {ON | OFF} + Óýíôáîç: %s êáíÜëé RESTRICTED {ON | OFF} Enables or disables the restricted access option for a channel. When restricted access is set, users not on the access list will instead be kicked and banned from the channel. CHAN_HELP_SET_SECURE - Óýíôáîç: SET êáíÜëé SECURE {ON | OFF} + Óýíôáîç: %s êáíÜëé SECURE {ON | OFF} Åíåñãïðïéåß Þ áðåíåñãïðïéåß ôéò äõíáôüôçôåò áóöÜëåéáò ôïõ %S ãéá Ýíá êáíÜëé. ¼ôáí åíåñãïðïéåßôáé ôï SECURE, ìüíï ïé ÷ñÞóôåò ðïõ @@ -4523,14 +4584,14 @@ CHAN_HELP_SET_SECURE áðü ôç ëßóôá ðñüóâáóçò. CHAN_HELP_SET_SECUREOPS - Óýíôáîç: SET êáíÜëé SECUREOPS {ON | OFF} + Óýíôáîç: %s êáíÜëé SECUREOPS {ON | OFF} Åíåñãïðïéåß Þ áðåíåñãïðïéåß ôçí åðéëïãÞ ðñïóôáôåõìÝíçò äéá÷åßñçóçò ãéá Ýíá êáíÜëé. ¼ôáí åíåñãïðïéåßôáé ç ðñïóôáôåõìÝíç äéá÷åßñçóç, ïé ÷ñÞóôåò ðïõ äåí åßíáé óôç ëßóôá ðñüóâáóçò, äå ìðïñïýí íá ðÜñïõí op. CHAN_HELP_SET_SECUREFOUNDER - Óýíôáîç: SET êáíÜëé SECUREFOUNDER {ON | OFF} + Óýíôáîç: %s êáíÜëé SECUREFOUNDER {ON | OFF} Åíåñãïðïéåß Þ áðåíåñãïðïéåß ôçí åðéëïãÞ áóöáëÞò founder ãéá Ýíá êáíÜëé. ¼ôáí åíåñãïðïéåßôáé ç åðéëïãÞ áóöáëÞò founder, ìüíï ï ðñáãìáôéêüò founder @@ -4539,7 +4600,7 @@ CHAN_HELP_SET_SECUREFOUNDER áíáãíþñéóçò ìå ôïí %S. CHAN_HELP_SET_SIGNKICK - Óýíôáîç: SET êáíÜëé SIGNKICK {ON | LEVEL | OFF} + Óýíôáîç: %s êáíÜëé SIGNKICK {ON | LEVEL | OFF} Åíåñãïðïéåß Þ áðåíåñãïðïéåß ôçí åðéëïãÞ signed kicks ôïõ êáíáëéïý. ¼ôáí åíåñãïðïéåßôáé ç åðéëïãÞ SIGNKICK, ôá kicks èá @@ -4551,7 +4612,7 @@ CHAN_HELP_SET_SIGNKICK kicks signed. Äåò %R%S HELP LEVELS ãéá ðåñéóóüôåñåò ðëçñïöïñßåò. CHAN_HELP_SET_XOP - Óýíôáîç: SET êáíÜëé XOP {ON | OFF} + Óýíôáîç: %s êáíÜëé XOP {ON | OFF} Åíåñãïðïéåß Þ áðåíåñãïðïéåß ôçí åðéëïãÞ xOP system ãéá Ýíá êáíÜëé. ¼ôáí åíåñãïðïéåßôáé ç åðéëïãÞ XOP, ÷ñçóéìïðïéåßò ôéò @@ -4567,7 +4628,7 @@ CHAN_HELP_SET_XOP äåí èá õðÜñîåé êáíÝíá ðñüâëçìá. CHAN_HELP_SET_PERSIST - Syntax: SET channel PERSIST {ON | OFF} + Syntax: %s channel PERSIST {ON | OFF} Enables or disables the persistant channel setting. When persistant is set, the service bot will remain @@ -4590,7 +4651,7 @@ CHAN_HELP_SET_PERSIST set persist on or off. CHAN_HELP_SET_OPNOTICE - Óýíôáîç: SET êáíÜëé OPNOTICE {ON | OFF} + Óýíôáîç: %s êáíÜëé OPNOTICE {ON | OFF} Åíåñãïðïéåß Þ áðåíåñãïðïéåß ôçí åðéëïãÞ åíçìÝñùóçò op ãéá Ýíá êáíÜëé. ¼ôáí åíåñãïðïéåßôáé ç åíçìÝñùóç op, ï %S óôÝëíåé Ýíá notice óôïõò ops @@ -5134,13 +5195,6 @@ CHAN_SERVADMIN_HELP_DROP ìðïñïõí íá ôï êÜíïõí áõôü óå Ýíá êáíÜëé, ÷ùñßò íá êÜíïõí åíôïëÞ áíáãíþñéóçò ãéá ôï êáíÜëé. -CHAN_SERVADMIN_HELP_SET - - Ïé Services Operators ìðïñïýí íá åðéëÝîïõí ôçí NOEXPIRE åíôïëÞ, óå - áõôÜ ðïõ äåí èÝëïõí ðïôÝ íá ëÞîïõí. - Åðßóçò, ïé Services Operators ìðïñïýí íá áëëÜîïõí ôéò åðéëïãÝò ãéá êÜèå êáíÜëé - ÷ùñßò íá êÜíïõí åíôïëÞ áíáãíþñéóçò óå êÜèå êáíÜëé. - CHAN_SERVADMIN_HELP_SET_NOEXPIRE Óýíôáîç: SET êáíÜëé NOEXPIRE {ON | OFF} diff --git a/lang/hun.l b/lang/hun.l index 3eb1d2785..daad32421 100644 --- a/lang/hun.l +++ b/lang/hun.l @@ -1090,6 +1090,34 @@ CHAN_DROP_DISABLED CHAN_DROPPED %s csatorna regisztrációjának törlése sikerült. +# SASET responses +CHAN_SASET_SYNTAX + SASET channel option parameters +CHAN_SASET_KEEPTOPIC_SYNTAX + SASET channel KEEPTOPIC {ON | OFF} +CHAN_SASET_OPNOTICE_SYNTAX + SASET channel OPNOTICE {ON | OFF} +CHAN_SASET_PEACE_SYNTAX + SASET channel PEACE {ON | OFF} +CHAN_SASET_PERSIST_SYNTAX + SASET channel PERSIST {ON | OFF} +CHAN_SASET_PRIVATE_SYNTAX + SASET channel PRIVATE {ON | OFF} +CHAN_SASET_RESTRICTED_SYNTAX + SASET channel RESTRICTED {ON | OFF} +CHAN_SASET_SECURE_SYNTAX + SASET channel SECURE {ON | OFF} +CHAN_SASET_SECUREFOUNDER_SYNTAX + SASET channel SECUREFOUNDER {ON | OFF} +CHAN_SASET_SECUREOPS_SYNTAX + SASET channel SECUREOPS {ON | OFF} +CHAN_SASET_SIGNKICK_SYNTAX + SASET channel SIGNKICK {ON | OFF} +CHAN_SASET_TOPICLOCK_SYNTAX + SASET channel TOPICLOCK {ON | OFF} +CHAN_SASET_XOP_SYNTAX + SASET channel XOP {ON | OFF} + # SET válaszok CHAN_SET_SYNTAX SET #szoba opció paraméterek @@ -4167,6 +4195,8 @@ CHAN_HELP_CMD_REGISTER REGISTER Szoba regisztrálása CHAN_HELP_CMD_SET SET Beállíthatod a csatornád opcióit +CHAN_HELP_CMD_SASET + SASET Forcefully set channel options and information CHAN_HELP_CMD_QOP QOP Modify the list of QOP users CHAN_HELP_CMD_AOP @@ -4269,7 +4299,15 @@ CHAN_HELP_DROP Törli a megnevezett szoba regisztrációját. Csak a szoba founder használhatja. -CHAN_HELP_SET +CHAN_HELP_SASET_HEAD + Syntax: SASET channel option parameters + + Allows Services Operators to forcefully change settings + on channels. + + Available options: + +CHAN_HELP_SET_HEAD Syntax: SET #szoba opció paraméterek Lehetõséget ad a foundernek, hogy a beállításokat @@ -4277,39 +4315,60 @@ CHAN_HELP_SET Elérhetõ opciók: +CHAN_HELP_CMD_SET_FOUNDER FOUNDER A founder megváltoztatása +CHAN_HELP_CMD_SET_SUCCESSOR SUCCESSOR A successor megadása - PASSWORD A founder jelszó változtatása +CHAN_HELP_CMD_SET_DESC DESC A szobameghatározás állítás +CHAN_HELP_CMD_SET_URL URL Egy URL társítása a szobához +CHAN_HELP_CMD_SET_EMAIL EMAIL Egy E-mail cím társítása a szobához +CHAN_HELP_CMD_SET_ENTRYMSG ENTRYMSG A szoba belépo üzenetének állítása +CHAN_HELP_CMD_SET_BANTYPE BANTYPE A banolás tipusának beállítása +CHAN_HELP_CMD_SET_MLOCK MLOCK Szoba módok lezárása (+flag -flag) +CHAN_HELP_CMD_SET_KEEPTOPIC KEEPTOPIC Topic megtartása ha a szoba nincs használatban +CHAN_HELP_CMD_SET_OPNOTICE OPNOTICE Üzenetet küld az OP/VOICE parancsok használtáról +CHAN_HELP_CMD_SET_PEACE PEACE Szabályozza a kritikus parancsok használatát +CHAN_HELP_CMD_SET_PRIVATE PRIVATE A szoba elrejtése a listából +CHAN_HELP_CMD_SET_SECURE SECURE Aktiválja a %S biztonsági lehetõségeit +CHAN_HELP_CMD_SET_SECUREOPS SECUREOPS A csatornán az op státusz szigorú kezelése +CHAN_HELP_CMD_SET_SECUREFOUNDER SECUREFOUNDER Csatornán a founder státusz szigorú kezelése +CHAN_HELP_CMD_SET_SIGNKICK SIGNKICK Sign kickek, melyek a KICK paranccsal történnek +CHAN_HELP_CMD_SET_TOPICLOCK TOPICLOCK Témaváltás letiltása +CHAN_HELP_CMD_SET_XOP XOP Xop (Sop, Aop, Hop, Vop) lista rendszer bekapcsolása +CHAN_HELP_CMD_SET_PERSIST PERSIST Set the channel as permanent +CHAN_HELP_CMD_SET_NOEXPIRE + NOEXPIRE Prevent the channel from expiring +CHAN_HELP_SET_TAIL Írd be: %R%S HELP SET opció bõvebb információért az adott opcióról. CHAN_HELP_SET_FOUNDER - Syntax: SET #szoba FOUNDER nick + Syntax: %s #szoba FOUNDER nick Megváltoztatja a szoba founderjét. Az új nicknév regisztrált kell hogy legyen! CHAN_HELP_SET_SUCCESSOR - Syntax: SET #szoba SUCCESSOR nick + Syntax: %s #szoba SUCCESSOR nick Megváltoztatja a successort a csatornán. Ha a founder neve elévül vagy törlõdik, de a szoba még regisztrált, akkor @@ -4320,20 +4379,20 @@ CHAN_HELP_SET_SUCCESSOR A nicknek regisztrálnak kell lennie. CHAN_HELP_SET_DESC - Syntax: SET #szoba DESC leírás + Syntax: %s #szoba DESC leírás Beállítható a szoba általános meghatározása, ami látszódni fog a LIST és INFO parancs használata esetén. CHAN_HELP_SET_URL - Syntax: SET #szoba URL [url] + Syntax: %s #szoba URL [url] Egy URL társítása a szobához. Ha van honlapja a szobának, akkor bárki megtudhatja, ha lekérte a szobáról az INFO-t. Ha nincs megadva paraméter, akkor törli a meglévõ URL-t. CHAN_HELP_SET_EMAIL - Syntax: SET #szoba EMAIL [emailcím] + Syntax: %s #szoba EMAIL [emailcím] Egy E-mail cím társítása a szobához. Ha van E-mail címe a szobának; akkor azt bárki megtudhatja, ha lekérte @@ -4341,14 +4400,14 @@ CHAN_HELP_SET_EMAIL törli a meglévõ e-mail címet. CHAN_HELP_SET_ENTRYMSG - Syntax: SET #szoba ENTRYMSG [üzenet] + Syntax: %s #szoba ENTRYMSG [üzenet] Beállít egy üzenetet, amit /notice formában fognak a szobába belépõ userek megkapni. Ha nincs paraméter megadva akkor a szoba belépõ üzenete törlõdik. CHAN_HELP_SET_BANTYPE - Syntax: SET #szoba BANTYPE bantípus + Syntax: %s #szoba BANTYPE bantípus A banolás típusának beállítása, amit a Services akkor fog használni, ha valakit banolni kell a csatornáról. @@ -4361,7 +4420,7 @@ CHAN_HELP_SET_BANTYPE 3: *!*user@*.domain formátumú tiltás CHAN_HELP_SET_KEEPTOPIC - Syntax: SET #szoba KEEPTOPIC {ON | OFF} + Syntax: %s #szoba KEEPTOPIC {ON | OFF} Engedélyezi vagy letiltja a topic megtartása opciót a szoba részére. Ha a topic megtartása be van állítva, @@ -4369,7 +4428,7 @@ CHAN_HELP_SET_KEEPTOPIC szobát, és visszaállítja a következõ megnyitáskor. CHAN_HELP_SET_TOPICLOCK - Syntax: SET #szoba TOPICLOCK {ON | OFF} + Syntax: %s #szoba TOPICLOCK {ON | OFF} Engedélyezi vagy letiltja a topic lezárása opciót a csatornán. Ha a topic lezárása be van kapcsolva,a %S nem @@ -4377,7 +4436,7 @@ CHAN_HELP_SET_TOPICLOCK paranccsal. CHAN_HELP_SET_MLOCK - Syntax: SET #szoba MLOCK módok + Syntax: %s #szoba MLOCK módok Beállíthatod a mode-lock opciót a csatornán. A %S lehetõséget nyújt arra, hogy meghatározd azokat a módokat @@ -4411,7 +4470,7 @@ CHAN_HELP_SET_MLOCK Minden mód szabadon ki/bekapcsolható. CHAN_HELP_SET_PEACE - Syntax: SET #szoba PEACE {ON | OFF} + Syntax: %s #szoba PEACE {ON | OFF} Engedélyezi vagy letiltja a peace opciót. Amikor a peace be van állítva, akkor a userek nem, @@ -4419,7 +4478,7 @@ CHAN_HELP_SET_PEACE egyenlõ vagy magasabb szintje van a %S parancsokhoz. CHAN_HELP_SET_PRIVATE - Syntax: SET #szoba PRIVATE {ON | OFF} + Syntax: %s #szoba PRIVATE {ON | OFF} Engedélyezi vagy letiltja a private opciót a csatornán. Amikor a private be van kapcsolva, a %R%S LIST @@ -4427,14 +4486,14 @@ CHAN_HELP_SET_PRIVATE a szoba. CHAN_HELP_SET_RESTRICTED - Syntax: SET #szoba RESTRICTED {ON | OFF} + Syntax: %s #szoba RESTRICTED {ON | OFF} Enables or disables the restricted access option for a channel. When restricted access is set, users not on the access list will instead be kicked and banned from the channel. CHAN_HELP_SET_SECURE - Syntax: SET #szoba SECURE {ON | OFF} + Syntax: %s #szoba SECURE {ON | OFF} Engedélyezi vagy letitlja a %S biztonsági lehetõségeit a szobában. Ha SECURE mûködik, csak azok a felhasználók @@ -4443,7 +4502,7 @@ CHAN_HELP_SET_SECURE a szobában jogokat, ha szerepelnek a hozzáférési listán. CHAN_HELP_SET_SECUREOPS - Syntax: SET #szoba SECUREOPS {ON | OFF} + Syntax: %s #szoba SECUREOPS {ON | OFF} Bekapcsolja vagy letiltja a secure ops opciót. Amikor a secure ops be van kapcsolva, akkor azok, akik @@ -4451,7 +4510,7 @@ CHAN_HELP_SET_SECUREOPS operátori státuszt. CHAN_HELP_SET_SECUREFOUNDER - Syntax: SET #szoba SECUREFOUNDER {ON | OFF} + Syntax: %s #szoba SECUREFOUNDER {ON | OFF} Engedélyezi vagy letiltja a secure founder opciót a csatornán. Amikor a secure founder be van állítva, csak @@ -4460,7 +4519,7 @@ CHAN_HELP_SET_SECUREFOUNDER akik csak az IDENTIFY parancsot használták a %S-ben. CHAN_HELP_SET_SIGNKICK - Syntax: SET #szoba SIGNKICK {ON | SZINT | OFF} + Syntax: %s #szoba SIGNKICK {ON | SZINT | OFF} Engedélyezi vagy letiltja a signed kick opciót a csatornán Amikor a SIGNKICK be van állítva, a %S KICK parancsával @@ -4472,7 +4531,7 @@ CHAN_HELP_SET_SIGNKICK Lásd még: %R%S HELP LEVELS bõvebb információkért. CHAN_HELP_SET_XOP - Syntax: SET #szoba XOP {ON | OFF} + Syntax: %s #szoba XOP {ON | OFF} Engedélyezi vagy letiltja az xOP lista rendszert. Ha az XOP be van kapcsolva, akkor AOP/SOP/VOP @@ -4483,7 +4542,7 @@ CHAN_HELP_SET_XOP áttérés nem okoz gondot. CHAN_HELP_SET_PERSIST - Syntax: SET channel PERSIST {ON | OFF} + Syntax: %s channel PERSIST {ON | OFF} Enables or disables the persistant channel setting. When persistant is set, the service bot will remain @@ -4506,7 +4565,7 @@ CHAN_HELP_SET_PERSIST set persist on or off. CHAN_HELP_SET_OPNOTICE - Syntax: SET #szoba OPNOTICE {ON | OFF} + Syntax: %s #szoba OPNOTICE {ON | OFF} Be/kikapcsolja az opnotice opciót a csatornán. Amikor az op-notice be van kapcsolva, a %S megjegyzést @@ -5069,13 +5128,6 @@ CHAN_SERVADMIN_HELP_DROP droppolhat csatornát,úgy hogy nem használja a szoba jelszavát. -CHAN_SERVADMIN_HELP_SET - - Szervíz admin beállíthatja a csatornát NEMELÉVÜLÕ -re, - ekkor a sorban megelõzi az elévülõket. A szervíz - adminisztrátor beállíthatja anélkül, hogy szoba - jelszót használná. - CHAN_SERVADMIN_HELP_SET_NOEXPIRE Syntax: SET #szoba NOEXPIRE {ON | OFF} @@ -1082,6 +1082,34 @@ CHAN_DROP_DISABLED CHAN_DROPPED Il canale %s è stato deregistrato. +# SASET responses +CHAN_SASET_SYNTAX + SASET channel option parameters +CHAN_SASET_KEEPTOPIC_SYNTAX + SASET channel KEEPTOPIC {ON | OFF} +CHAN_SASET_OPNOTICE_SYNTAX + SASET channel OPNOTICE {ON | OFF} +CHAN_SASET_PEACE_SYNTAX + SASET channel PEACE {ON | OFF} +CHAN_SASET_PERSIST_SYNTAX + SASET channel PERSIST {ON | OFF} +CHAN_SASET_PRIVATE_SYNTAX + SASET channel PRIVATE {ON | OFF} +CHAN_SASET_RESTRICTED_SYNTAX + SASET channel RESTRICTED {ON | OFF} +CHAN_SASET_SECURE_SYNTAX + SASET channel SECURE {ON | OFF} +CHAN_SASET_SECUREFOUNDER_SYNTAX + SASET channel SECUREFOUNDER {ON | OFF} +CHAN_SASET_SECUREOPS_SYNTAX + SASET channel SECUREOPS {ON | OFF} +CHAN_SASET_SIGNKICK_SYNTAX + SASET channel SIGNKICK {ON | OFF} +CHAN_SASET_TOPICLOCK_SYNTAX + SASET channel TOPICLOCK {ON | OFF} +CHAN_SASET_XOP_SYNTAX + SASET channel XOP {ON | OFF} + # SET responses CHAN_SET_SYNTAX SET canale opzione parametri @@ -4119,6 +4147,8 @@ CHAN_HELP_CMD_REGISTER REGISTER Registra un canale CHAN_HELP_CMD_SET SET Imposta le opzioni e le informazioni di canale +CHAN_HELP_CMD_SASET + SASET Forcefully set channel options and information CHAN_HELP_CMD_QOP QOP Modify the list of QOP users CHAN_HELP_CMD_AOP @@ -4221,7 +4251,15 @@ CHAN_HELP_DROP Deregistra il canale specificato. Può essere usato soltanto da un fondatore di canale. -CHAN_HELP_SET +CHAN_HELP_SASET_HEAD + Syntax: SASET channel option parameters + + Allows Services Operators to forcefully change settings + on channels. + + Available options: + +CHAN_HELP_SET_HEAD Sintassi: SET canale opzione parametri Permette al fondatore di un canale di impostare varie @@ -4229,43 +4267,66 @@ CHAN_HELP_SET Opzioni disponibili: +CHAN_HELP_CMD_SET_FOUNDER FOUNDER Imposta il fondatore del canale +CHAN_HELP_CMD_SET_SUCCESSOR SUCCESSOR Imposta il successore del fondatore del canale +CHAN_HELP_CMD_SET_DESC DESC Imposta la descrizione del canale +CHAN_HELP_CMD_SET_URL URL Associa un URL al canale +CHAN_HELP_CMD_SET_EMAIL EMAIL Associa un indirizzo e-mail al canale +CHAN_HELP_CMD_SET_ENTRYMSG ENTRYMSG Imposta un messaggio che sarà inviato agli utenti che entrano nel canale +CHAN_HELP_CMD_SET_BANTYPE BANTYPE Imposta il tipo di ban che sarà usato dai Services +CHAN_HELP_CMD_SET_MLOCK MLOCK Imposta il blocco dei modi di canale +CHAN_HELP_CMD_SET_KEEPTOPIC KEEPTOPIC Mantiene il topic quando il canale non è in uso +CHAN_HELP_CMD_SET_OPNOTICE OPNOTICE Invia una notifica quando vengono usati i comandi OP/DEOP +CHAN_HELP_CMD_SET_PEACE PEACE Regola l'uso dei comandi critici +CHAN_HELP_CMD_SET_PRIVATE PRIVATE Nasconde il canale dall'output del comando LIST +CHAN_HELP_CMD_SET_RESTRICTED RESTRICTED Limita l'accesso al canale +CHAN_HELP_CMD_SET_SECURE SECURE Attiva le funzionalità di sicurezza di %S +CHAN_HELP_CMD_SET_SECUREOPS SECUREOPS Abilita un controllo più severo dello stato di operatore +CHAN_HELP_CMD_SET_SECUREFOUNDER SECUREFOUNDER Abilita un controllo più severo dello stato di fondatore +CHAN_HELP_CMD_SET_SIGNKICK SIGNKICK "Firma" i kick effettuati con il comando KICK +CHAN_HELP_CMD_SET_TOPICLOCK TOPICLOCK Imposta il blocco del topic (modificabile solo attraverso il comando TOPIC) +CHAN_HELP_CMD_SET_XOP XOP Seleziona il sistema di privilegi utilizzato +CHAN_HELP_CMD_SET_PERSIST PERSIST Set the channel as permanent +CHAN_HELP_CMD_SET_NOEXPIRE + NOEXPIRE Prevent the channel from expiring +CHAN_HELP_SET_TAIL Digita %R%S HELP option per ottenere maggiori informazioni su un comando specifico. CHAN_HELP_SET_FOUNDER - Sintassi: SET canale FOUNDER nick + Sintassi: %s canale FOUNDER nick Imposta il nuovo fondatore del canale. Il nick specificato deve essere registrato. CHAN_HELP_SET_SUCCESSOR - Sintassi: SET canale SUCCESSOR nick + Sintassi: %s canale SUCCESSOR nick Imposta il successore del fondatore del canale. Se il nick del fondatore scade, o viene deregistrato mentre il canale @@ -4277,13 +4338,13 @@ CHAN_HELP_SET_SUCCESSOR Il nick specificato deve essere registrato. CHAN_HELP_SET_DESC - Sintassi: SET canale DESC descrizione + Sintassi: %s canale DESC descrizione Imposta la descrizione del canale, che viene mostrata con i comandi LIST e INFO. CHAN_HELP_SET_URL - Sintassi: SET canale URL [url] + Sintassi: %s canale URL [url] Associa l'URL specificato al canale. Questo URL sarà mostrato quando qualcuno richiede informazioni relative @@ -4291,7 +4352,7 @@ CHAN_HELP_SET_URL nessun URL, l'URL attuale del canale viene eliminato. CHAN_HELP_SET_EMAIL - Sintassi: SET canale EMAIL [indirizzo] + Sintassi: %s canale EMAIL [indirizzo] Associa l'indirizzo e-mail specificato al canale. Questo indirizzo sarà mostrato quando qualcuno richiede @@ -4300,7 +4361,7 @@ CHAN_HELP_SET_EMAIL del canale viene eliminato. CHAN_HELP_SET_ENTRYMSG - Sintassi: SET canale ENTRYMSG [messaggio] + Sintassi: %s canale ENTRYMSG [messaggio] Imposta il messaggio che sarà inviato con un /notice agli utenti che entrano nel canale. Se non viene @@ -4309,7 +4370,7 @@ CHAN_HELP_SET_ENTRYMSG riceveranno alcun messaggio. CHAN_HELP_SET_BANTYPE - Sintassi: SET canale BANTYPE tipo + Sintassi: %s canale BANTYPE tipo Imposta il tipo di can che sarà usato dai Services in tutte le occasioni in cui dovranno bannare @@ -4323,7 +4384,7 @@ CHAN_HELP_SET_BANTYPE 3: ban nella forma *!*user@*.dominio CHAN_HELP_SET_KEEPTOPIC - Sintassi: SET canale KEEPTOPIC {ON | OFF} + Sintassi: %s canale KEEPTOPIC {ON | OFF} Attiva o disattiva il mantenimento del topic per il canale. Quando il mantenimento del topic è @@ -4332,7 +4393,7 @@ CHAN_HELP_SET_KEEPTOPIC la volta successiva che entra qualcuno. CHAN_HELP_SET_TOPICLOCK - Sintassi: SET canale TOPICLOCK {ON | OFF} + Sintassi: %s canale TOPICLOCK {ON | OFF} Attiva o disattiva il blocco del topic per il canale. Quando il blocco del topic è attivo, @@ -4340,7 +4401,7 @@ CHAN_HELP_SET_TOPICLOCK non attraverso il comando TOPIC. CHAN_HELP_SET_MLOCK - Sintassi: SET canale MLOCK modi + Sintassi: %s canale MLOCK modi Imposta il blocco dei modi per il canale. %S permette di definire vari modi di canale che saranno @@ -4378,7 +4439,7 @@ CHAN_HELP_SET_MLOCK possono essere attivati o disattivati dagli utenti. CHAN_HELP_SET_PEACE - Sintassi: SET canale PEACE {ON | OFF} + Sintassi: %s canale PEACE {ON | OFF} Attiva o disattiva l'opzione "pace" per il canale. Quando l'opzione è attiva, gli utenti non potranno @@ -4387,21 +4448,21 @@ CHAN_HELP_SET_PEACE superiore, attraverso i comandi di %S. CHAN_HELP_SET_PRIVATE - Sintassi: SET canale PRIVATE {ON | OFF} + Sintassi: %s canale PRIVATE {ON | OFF} Attiva o disattiva l'opzione di privacy per il canale. Quando questa opzione è attiva, il canale non sarà incluso nella lista restituita da %R%S LIST. CHAN_HELP_SET_RESTRICTED - Sintassi: SET canale RESTRICTED {ON | OFF} + Sintassi: %s canale RESTRICTED {ON | OFF} Enables or disables the restricted access option for a channel. When restricted access is set, users not on the access list will instead be kicked and banned from the channel. CHAN_HELP_SET_SECURE - Sintassi: SET canale SECURE {ON | OFF} + Sintassi: %s canale SECURE {ON | OFF} Attiva o disattiva le funzionalità di sicurezza di %S per il canale. Quando SECURE è attivo, @@ -4410,7 +4471,7 @@ CHAN_HELP_SET_SECURE avranno l'accesso sul canale secondo le liste di accesso. CHAN_HELP_SET_SECUREOPS - Sintassi: SET canale SECUREOPS {ON | OFF} + Sintassi: %s canale SECUREOPS {ON | OFF} Attiva o disattiva l'opzione secure ops per il canale. Quando l'opzione è attiva, gli utenti che non sono nella @@ -4418,7 +4479,7 @@ CHAN_HELP_SET_SECUREOPS di canale. CHAN_HELP_SET_SECUREFOUNDER - Sintassi: SET canale SECUREFOUNDER {ON | OFF} + Sintassi: %s canale SECUREFOUNDER {ON | OFF} Attiva o disattiva l'opzione secure founder per il canale. Quando l'opzione è attiva, solo il vero fondatore @@ -4427,7 +4488,7 @@ CHAN_HELP_SET_SECUREFOUNDER su %S per il canale non potranno. CHAN_HELP_SET_SIGNKICK - Sintassi: SET canale SIGNKICK {ON | LEVEL | OFF} + Sintassi: %s canale SIGNKICK {ON | LEVEL | OFF} Attiva o disattiva i nick "firmati" per il canale. Quando l'opzione è attiva, i kick effettuati con il comando KICK @@ -4440,7 +4501,7 @@ CHAN_HELP_SET_SIGNKICK Per maggiori informazioni, digita %R%S HELP LEVELS. CHAN_HELP_SET_XOP - Sintassi: SET canale XOP {ON | OFF} + Sintassi: %s canale XOP {ON | OFF} Attiva o disattiva il sistema di liste xOP per il canale. Quando XOP è attivo, sarà necessario usare i comandi @@ -4461,7 +4522,7 @@ CHAN_HELP_SET_XOP non causa nessun problema. CHAN_HELP_SET_PERSIST - Syntax: SET channel PERSIST {ON | OFF} + Syntax: %s channel PERSIST {ON | OFF} Enables or disables the persistant channel setting. When persistant is set, the service bot will remain @@ -4484,7 +4545,7 @@ CHAN_HELP_SET_PERSIST set persist on or off. CHAN_HELP_SET_OPNOTICE - Sintassi: SET canale OPNOTICE {ON | OFF} + Sintassi: %s canale OPNOTICE {ON | OFF} Attiva o disattiva l'opzione op-notice per il canale. Quando l'opzione è attiva, %S invierà un notice al @@ -5067,14 +5128,6 @@ CHAN_SERVADMIN_HELP_DROP possono deregistrare un canale per il quale non si siano identificati. -CHAN_SERVADMIN_HELP_SET - - I Services Operator possono anche impostare l'opzione NOEXPIRE, - in modo da non far scadere i canali anche in caso di inutilizzo. - Inoltre, i Services Operator possono impostare le opzioni per - qualsiasi canale senza aver bisogno di identificarsi sui canali - stessi. - CHAN_SERVADMIN_HELP_SET_NOEXPIRE Sintassi: SET canale NOEXPIRE {ON | OFF} @@ -1097,6 +1097,34 @@ CHAN_DROP_DISABLED CHAN_DROPPED Kanaal %s is gede-registreerd. +# SASET responses +CHAN_SASET_SYNTAX + SASET channel option parameters +CHAN_SASET_KEEPTOPIC_SYNTAX + SASET channel KEEPTOPIC {ON | OFF} +CHAN_SASET_OPNOTICE_SYNTAX + SASET channel OPNOTICE {ON | OFF} +CHAN_SASET_PEACE_SYNTAX + SASET channel PEACE {ON | OFF} +CHAN_SASET_PERSIST_SYNTAX + SASET channel PERSIST {ON | OFF} +CHAN_SASET_PRIVATE_SYNTAX + SASET channel PRIVATE {ON | OFF} +CHAN_SASET_RESTRICTED_SYNTAX + SASET channel RESTRICTED {ON | OFF} +CHAN_SASET_SECURE_SYNTAX + SASET channel SECURE {ON | OFF} +CHAN_SASET_SECUREFOUNDER_SYNTAX + SASET channel SECUREFOUNDER {ON | OFF} +CHAN_SASET_SECUREOPS_SYNTAX + SASET channel SECUREOPS {ON | OFF} +CHAN_SASET_SIGNKICK_SYNTAX + SASET channel SIGNKICK {ON | OFF} +CHAN_SASET_TOPICLOCK_SYNTAX + SASET channel TOPICLOCK {ON | OFF} +CHAN_SASET_XOP_SYNTAX + SASET channel XOP {ON | OFF} + # SET responses CHAN_SET_SYNTAX SET kanaal optie parameters @@ -4204,6 +4232,8 @@ CHAN_HELP_CMD_REGISTER REGISTER Registreer een kanaal CHAN_HELP_CMD_SET SET Stel kanaal opties en informatie in +CHAN_HELP_CMD_SASET + SASET Forcefully set channel options and information CHAN_HELP_CMD_QOP QOP Modify the list of QOP users CHAN_HELP_CMD_AOP @@ -4305,7 +4335,15 @@ CHAN_HELP_DROP Heft de registratie van het gegeven kanaal op. Kan alleen gebruik wordt door de kanaalstichter. -CHAN_HELP_SET +CHAN_HELP_SASET_HEAD + Syntax: SASET channel option parameters + + Allows Services Operators to forcefully change settings + on channels. + + Available options: + +CHAN_HELP_SET_HEAD Gebruik: SET kanaal optie parameters Stelt de kanaalstichter in staat om verschillende kanaal- @@ -4313,42 +4351,65 @@ CHAN_HELP_SET Beschikbare opties: +CHAN_HELP_CMD_SET_FOUNDER FOUNDER Stelt de stichter van het kanaal in +CHAN_HELP_CMD_SET_SUCCESSOR SUCCESSOR Stelt de opvolger van het kanaal in +CHAN_HELP_CMD_SET_DESC DESC Stelt de kanaalbeschrijving in +CHAN_HELP_CMD_SET_URL URL Associeer een URL met het kanaal +CHAN_HELP_CMD_SET_EMAIL EMAIL Associate een E-mail adres met het kanaal +CHAN_HELP_CMD_SET_ENTRYMSG ENTRYMSG Stel een bericht in dat naar de gebruikers wordt gestuurd zodra ze het kanaal binnekomen +CHAN_HELP_CMD_SET_BANTYPE BANTYPE Stelt in hoe Services bans op het kanaal maken +CHAN_HELP_CMD_SET_MLOCK MLOCK Zet kanaal modes vast aan of uit +CHAN_HELP_CMD_SET_KEEPTOPIC KEEPTOPIC Onthoud het topic zoland het kanaal niet in gebruik is +CHAN_HELP_CMD_SET_OPNOTICE OPNOTICE Stuur een notice wanneer de OP/DEOP commando's worden gebruikt. +CHAN_HELP_CMD_SET_PEACE PEACE Reguleer het gebruik van kritieke commando's +CHAN_HELP_CMD_SET_PRIVATE PRIVATE Verberg een kanaal van het LIST commando +CHAN_HELP_CMD_SET_RESTRICTED RESTRICTED Limiteer toegang tot het kanaal +CHAN_HELP_CMD_SET_SECURE SECURE Activeer %S veiligheidsopties +CHAN_HELP_CMD_SET_SECUREOPS SECUREOPS Sterkere controle van de kanaalop status +CHAN_HELP_CMD_SET_SECUREFOUNDER SECUREFOUNDER Sterkere controle van de stichter status +CHAN_HELP_CMD_SET_SIGNKICK SIGNKICK Onderteken kicks die worden uitgevoerd met het KICK commando +CHAN_HELP_CMD_SET_TOPICLOCK TOPICLOCK Topic kan alleen veranderd worden met TOPIC +CHAN_HELP_CMD_SET_XOP XOP Schakel het gebruikersprivilegesysteem om +CHAN_HELP_CMD_SET_PERSIST PERSIST Set the channel as permanent +CHAN_HELP_CMD_SET_NOEXPIRE + NOEXPIRE Prevent the channel from expiring +CHAN_HELP_SET_TAIL Type %R%S HELP option voor meer informatie over een specifieke optie. CHAN_HELP_SET_FOUNDER - Gebruik: SET kanaal FOUNDER nick + Gebruik: %s kanaal FOUNDER nick Veranderd de stichter van een kanaal. De nieuwe nick moet een geregistreerde nick zijn. CHAN_HELP_SET_SUCCESSOR - Gebruik: SET kanaal SUCCESSOR nick + Gebruik: %s kanaal SUCCESSOR nick Veranderd de opvolger van een kanaal. Als de nick van de stichter verloopt of de registratie ervan wordt geannuleerd @@ -4360,13 +4421,13 @@ CHAN_HELP_SET_SUCCESSOR geregistreerde nick zijn. CHAN_HELP_SET_DESC - Gebruik: SET kanaal DESC beschrijving + Gebruik: %s kanaal DESC beschrijving Stelt de beschrijving van een kanaal in, die weergegeven wordt door de LIST en INFO commando's. CHAN_HELP_SET_URL - Gebruik: SET kanaal URL [url] + Gebruik: %s kanaal URL [url] Associeer de gegeven URL met het kanaal. Deze URL zal worden weergegeven wanneer iemand informatie over het kanaal op- @@ -4374,7 +4435,7 @@ CHAN_HELP_SET_URL wordt de URL voor het kanaal verwijderd. CHAN_HELP_SET_EMAIL - Gebruik: SET kanaal EMAIL [adres] + Gebruik: %s kanaal EMAIL [adres] Associeer het gegeven e-mail adres met het kanaal. Dit adres zal worden weergegeven wanneer iemand informatie over het @@ -4383,7 +4444,7 @@ CHAN_HELP_SET_EMAIL verwijderd. CHAN_HELP_SET_ENTRYMSG - Gebruik: SET kanaal ENTRYMSG [bericht] + Gebruik: %s kanaal ENTRYMSG [bericht] Stelt het bericht in dat via /notice zal worden verstuurd aan gebruikers die het kanaal binnenkomen. Als er geen @@ -4391,7 +4452,7 @@ CHAN_HELP_SET_ENTRYMSG als iemand het kanaal binnenkomt. CHAN_HELP_SET_BANTYPE - Gebruik: SET kanaal BANTYPE bantype + Gebruik: %s kanaal BANTYPE bantype Stelt het bantype in dat gebruikt zal worden door services wanneer ze een ban moet zetten op je kanaal. @@ -4404,7 +4465,7 @@ CHAN_HELP_SET_BANTYPE 3: ban in het formaat *!*gebruiker@*.domein CHAN_HELP_SET_KEEPTOPIC - Gebruik: SET kanaal KEEPTOPIC {ON | OFF} + Gebruik: %s kanaal KEEPTOPIC {ON | OFF} Zet de topicbehoud optie aan of uit voor een kanaal. Wanneer topicbehoud aan staat zal het topic van het @@ -4414,7 +4475,7 @@ CHAN_HELP_SET_KEEPTOPIC teruggezet. CHAN_HELP_SET_TOPICLOCK - Gebruik: SET kanaal TOPICLOCK {ON | OFF} + Gebruik: %s kanaal TOPICLOCK {ON | OFF} Zet de topicslot optie aan of uit voor een kanaal. Wanneer topicslot aan staat zal %S het niet toestaan om @@ -4422,7 +4483,7 @@ CHAN_HELP_SET_TOPICLOCK alleen veranderd worden met het TOPIC commando. CHAN_HELP_SET_MLOCK - Gebruik: SET kanaal MLOCK modes + Gebruik: %s kanaal MLOCK modes Stelt de mode-slot paramenter in voor het kanaal. %S staat je toe om verschillen kanaalmodes altijd aan of uit @@ -4458,7 +4519,7 @@ CHAN_HELP_SET_MLOCK vrij ingesteld worden met /MODE. CHAN_HELP_SET_PEACE - Gebruik: SET kanaal PEACE {ON | OFF} + Gebruik: %s kanaal PEACE {ON | OFF} Zet de vrede optie aan of uit voor een kanaal. Wanneer vrede aanstaat kan een gebruiker niemand kicken, bannen, @@ -4467,21 +4528,21 @@ CHAN_HELP_SET_PEACE van zichzelf via de %S commando's. CHAN_HELP_SET_PRIVATE - Gebruik: SET kanaal PRIVATE {ON | OFF} + Gebruik: %s kanaal PRIVATE {ON | OFF} Zet de prive optie aan of uit voor een kanaal. Wanneer de prive optie aan staat zal %R%S LIST het kanaal in geen enkele lijst weergeven. CHAN_HELP_SET_RESTRICTED - Gebruik: SET kanaal RESTRICTED {ON | OFF} + Gebruik: %s kanaal RESTRICTED {ON | OFF} Enables or disables the restricted access option for a channel. When restricted access is set, users not on the access list will instead be kicked and banned from the channel. CHAN_HELP_SET_SECURE - Gebruik: SET kanaal SECURE {ON | OFF} + Gebruik: %s kanaal SECURE {ON | OFF} Zet %S's veiligheidsfuncties aan of uit voor een kanaal. Wanneer SECURE aan staat zullen alleen gebruikers die @@ -4490,14 +4551,14 @@ CHAN_HELP_SET_SECURE zoals geregeld door de toegangslijst. CHAN_HELP_SET_SECUREOPS - Gebruik: SET kanaal SECUREOPS {ON | OFF} + Gebruik: %s kanaal SECUREOPS {ON | OFF} Zet de veilige ops optie aan of uit voor een kanaal. Wanneer veilige ops aan staat mogen gebruikers die niet op de toegangslijst staan geen kanaalop status krijgen. CHAN_HELP_SET_SECUREFOUNDER - Gebruik: SET kanaal SECUREFOUNDER {ON | OFF} + Gebruik: %s kanaal SECUREFOUNDER {ON | OFF} Zet de veilige stichter optie aan of uit voor een kanaal. Wanneer veilige stichter aan staat zal alleen de echte @@ -4506,7 +4567,7 @@ CHAN_HELP_SET_SECUREFOUNDER die alleen geidentificeerd zijn met %S. CHAN_HELP_SET_SIGNKICK - Gebruik: SET kanaal SIGNKICK {ON | LEVEL | OFF} + Gebruik: %s kanaal SIGNKICK {ON | LEVEL | OFF} Zet ondertekende kicks aan of uit voor een kanaal. Wanneer SIGNKICK aan staat zullen kicks die uitgevoerd @@ -4519,7 +4580,7 @@ CHAN_HELP_SET_SIGNKICK Zie %R%S HELP LEVELS voor meer informatie. CHAN_HELP_SET_XOP - Gebruik: SET kanaal XOP {ON | OFF} + Gebruik: %s kanaal XOP {ON | OFF} Zet het xOP lijsten systeem aan of uit voor een kanaal. Wanneer XOP aan staat moet je de AOP/SOP/VOP @@ -4542,7 +4603,7 @@ CHAN_HELP_SET_XOP systeem brengt echter geen problemen met zich mee. CHAN_HELP_SET_PERSIST - Syntax: SET channel PERSIST {ON | OFF} + Syntax: %s channel PERSIST {ON | OFF} Enables or disables the persistant channel setting. When persistant is set, the service bot will remain @@ -4565,7 +4626,7 @@ CHAN_HELP_SET_PERSIST set persist on or off. CHAN_HELP_SET_OPNOTICE - Gebruik: SET kanaal OPNOTICE {ON | OFF} + Gebruik: %s kanaal OPNOTICE {ON | OFF} Zet de op-notificatie optie aan of uit voor een kanaal. Wanneer op-notificatie aan staat zal %S een notice naar @@ -5127,13 +5188,6 @@ CHAN_SERVADMIN_HELP_DROP Services Operators kunnen elk kanaal droppen, ook al zijn ze niet voor het betreffende kanaal geindtificeerd. -CHAN_SERVADMIN_HELP_SET - - Services Operatorstrators kunnen ook de NOEXPIRE optie - instellen, waarmee kanalen niet kunnen verlopen. Ook - kunnen ze elke optie voor elk kanaal zet zonder zich te - identificeren met het wachtwoord voor het kanaal. - CHAN_SERVADMIN_HELP_SET_NOEXPIRE Gebruik: SET kanaal NOEXPIRE {ON | OFF} @@ -1399,6 +1399,34 @@ CHAN_DROP_DISABLED CHAN_DROPPED Kana³ %s zosta³ odrejestrowany. +# SASET responses +CHAN_SASET_SYNTAX + SASET channel option parameters +CHAN_SASET_KEEPTOPIC_SYNTAX + SASET channel KEEPTOPIC {ON | OFF} +CHAN_SASET_OPNOTICE_SYNTAX + SASET channel OPNOTICE {ON | OFF} +CHAN_SASET_PEACE_SYNTAX + SASET channel PEACE {ON | OFF} +CHAN_SASET_PERSIST_SYNTAX + SASET channel PERSIST {ON | OFF} +CHAN_SASET_PRIVATE_SYNTAX + SASET channel PRIVATE {ON | OFF} +CHAN_SASET_RESTRICTED_SYNTAX + SASET channel RESTRICTED {ON | OFF} +CHAN_SASET_SECURE_SYNTAX + SASET channel SECURE {ON | OFF} +CHAN_SASET_SECUREFOUNDER_SYNTAX + SASET channel SECUREFOUNDER {ON | OFF} +CHAN_SASET_SECUREOPS_SYNTAX + SASET channel SECUREOPS {ON | OFF} +CHAN_SASET_SIGNKICK_SYNTAX + SASET channel SIGNKICK {ON | OFF} +CHAN_SASET_TOPICLOCK_SYNTAX + SASET channel TOPICLOCK {ON | OFF} +CHAN_SASET_XOP_SYNTAX + SASET channel XOP {ON | OFF} + # SET responses CHAN_SET_SYNTAX SET kana³ opcja parametry @@ -5180,6 +5208,9 @@ CHAN_HELP_CMD_REGISTER CHAN_HELP_CMD_SET SET Modyfikuje ustawienia kana³u +CHAN_HELP_CMD_SASET + SASET Forcefully set channel options and information + CHAN_HELP_CMD_QOP QOP Modify the list of QOP users @@ -5309,7 +5340,15 @@ CHAN_HELP_DROP Usuwa podany kana³. Komenda mo¿e zostaæ u¿yta jedynie przez w³a¶ciciela kana³u. -CHAN_HELP_SET +CHAN_HELP_SASET_HEAD + Syntax: SASET channel option parameters + + Allows Services Operators to forcefully change settings + on channels. + + Available options: + +CHAN_HELP_SET_HEAD Sk³adnia: SET kana³ opcja parametry Pozwala w³a¶cicielowi kana³u na zmianê ro¿nych @@ -5317,42 +5356,65 @@ CHAN_HELP_SET Dostêpne opcje: +CHAN_HELP_CMD_SET_FOUNDER FOUNDER Ustawia nick w³a¶ciciela kana³u +CHAN_HELP_CMD_SET_SUCCESSOR SUCCESSOR Ustawia nick spadkobiercy kana³u +CHAN_HELP_CMD_SET_DESC DESC Ustawia opis kana³u +CHAN_HELP_CMD_SET_URL URL Przypisuje adres www do kana³u +CHAN_HELP_CMD_SET_EMAIL EMAIL Przypisuje adres e-mail do kana³u +CHAN_HELP_CMD_SET_ENTRYMSG ENTRYMSG Ustawia wiadomo¶æ, która bêdzie wysy³ana do u¿ytkowników wchodz±cych na kana³ +CHAN_HELP_CMD_SET_BANTYPE BANTYPE Ustawia sposób banowania przez serwisy +CHAN_HELP_CMD_SET_MLOCK MLOCK Blokuje zdejmowanie lub zak³adanie flag +CHAN_HELP_CMD_SET_KEEPTOPIC KEEPTOPIC Zapamiêtuje temat kiedy kana³ jest pusty +CHAN_HELP_CMD_SET_OPNOTICE OPNOTICE Wysy³a powiadomienie kiedy zostaj± u¿yte komendy OP/DEOP +CHAN_HELP_CMD_SET_PEACE PEACE Reguluje u¿ycie krytycznych komend +CHAN_HELP_CMD_SET_PRIVATE PRIVATE Zapobiega wy¶wietlaniu kana³u po wydaniu polecenia LIST +CHAN_HELP_CMD_SET_RESTRICTED RESTRICTED Ogranicza dostêp do kana³u +CHAN_HELP_CMD_SET_SECURE SECURE W³±cza lub wy³±cza bezpieczeñstwo kana³u +CHAN_HELP_CMD_SET_SECUREOPS SECUREOPS ¦ci¶le kontroluje status operatorów +CHAN_HELP_CMD_SET_SECUREFOUNDER SECUREFOUNDER ¦ci¶le kontroluje status w³a¶ciciela +CHAN_HELP_CMD_SET_SIGNKICK SIGNKICK Podpisuje kicki kiedy u¿yto komendy KICK +CHAN_HELP_CMD_SET_TOPICLOCK TOPICLOCK Ogranicza mo¿liwo¶æ zmiany tematu +CHAN_HELP_CMD_SET_XOP XOP W³±cza system uprawnieñ xOP (u¿ycie komend SOP, AOP, HOP, VOP) - PERSIST Set the channel as permanent +CHAN_HELP_CMD_SET_PERSIST + PERSIST Set the channel as permanent +CHAN_HELP_CMD_SET_NOEXPIRE + NOEXPIRE Prevent the channel from expiring +CHAN_HELP_SET_TAIL Aby uzyskaæ wiêcej informacji o danej opcji wpisz: %R%S HELP SET opcja CHAN_HELP_SET_FOUNDER - Sk³adnia: SET kana³ FOUNDER nick + Sk³adnia: %s kana³ FOUNDER nick Zmienia w³a¶ciciela kana³u. Nowy nick musi byæ zarejestrowany. CHAN_HELP_SET_SUCCESSOR - Sk³adnia: SET kana³ SUCCESSOR nick + Sk³adnia: %s kana³ SUCCESSOR nick Ustawia spadkobiercê kana³u. Je¶li nick w³a¶ciciela wyga¶nie lub zostanie usuniêty kana³ zostaje przekazany @@ -5361,33 +5423,33 @@ CHAN_HELP_SET_SUCCESSOR liczby kana³ów (%d) to kana³ zostanie odrejestrowany. CHAN_HELP_SET_DESC - Sk³adnia: SET kana³ DESC opis + Sk³adnia: %s kana³ DESC opis Ustawia opis kana³u widoczny po wydaniu polecenia LIST oraz INFO. CHAN_HELP_SET_URL - Sk³adnia: SET kana³ URL [url] + Sk³adnia: %s kana³ URL [url] Przypisuje adres strony www do kana³u. Adres bêdzie widoczny po u¿yciu polecenia INFO. Komenda wywo³ana bez parametru usuwa wcze¶niej ustawiony adres. CHAN_HELP_SET_EMAIL - Sk³adnia: SET kana³ EMAIL [adres] + Sk³adnia: %s kana³ EMAIL [adres] Przypisuje adres e-mail do kana³u. Adres bêdzie widoczny po u¿yciu polecenia INFO. Komenda wywo³ana bez parametru usuwa wcze¶niej ustawiony adres. CHAN_HELP_SET_ENTRYMSG - Sk³adnia: SET kana³ ENTRYMSG [tre¶æ] + Sk³adnia: %s kana³ ENTRYMSG [tre¶æ] Ustawia tekst powiadomienia wysy³anego poprzez /notice do u¿ytkowników wchodz±cych na kana³. Komenda wywo³ana bez parametru usuwa wcze¶niej ustawion± wiadomo¶æ. CHAN_HELP_SET_BANTYPE - Sk³adnia: SET kana³ BANTYPE typ + Sk³adnia: %s kana³ BANTYPE typ Ustala typ banów zak³adanych przez serwisy. @@ -5400,7 +5462,7 @@ CHAN_HELP_SET_BANTYPE 3: ban w postaci *!*ident@*.domena CHAN_HELP_SET_KEEPTOPIC - Sk³adnia: SET kana³ KEEPTOPIC {ON | OFF} + Sk³adnia: %s kana³ KEEPTOPIC {ON | OFF} W³±cza lub wy³±cza opcjê zapamiêtywania tematu. Kiedy ta opcja jest w³±czona %S ustawi ostatni @@ -5408,7 +5470,7 @@ CHAN_HELP_SET_KEEPTOPIC pierwsza osoba. CHAN_HELP_SET_TOPICLOCK - Sk³adnia: SET kana³ TOPICLOCK {ON | OFF} + Sk³adnia: %s kana³ TOPICLOCK {ON | OFF} W³±cza lub wy³±cza opcjê blokowania tematu kana³u. @@ -5416,7 +5478,7 @@ CHAN_HELP_SET_TOPICLOCK zmianê tematu tylko poprzez wydanie komendy TOPIC. CHAN_HELP_SET_MLOCK - Sk³adnia: SET kana³ MLOCK flagi + Sk³adnia: %s kana³ MLOCK flagi Ustawia blokadê flag kana³owych. %S pozwala na definiowanie, które flag kana³owe maj± byæ zawsze @@ -5452,7 +5514,7 @@ CHAN_HELP_SET_MLOCK Wy³±cza blokowanie flag - mog± byæ zmieniane dowolnie. CHAN_HELP_SET_PEACE - Sk³adnia: SET kana³ PEACE {ON | OFF} + Sk³adnia: %s kana³ PEACE {ON | OFF} W³±cza lub wy³±cza opcjê PEACE dla kana³u. W³±czenie tej opcji uniemo¿liwia wykopanie, @@ -5461,7 +5523,7 @@ CHAN_HELP_SET_PEACE korzystaj±c z poleceñ serwisu %S. CHAN_HELP_SET_PRIVATE - Sk³adnia: SET kana³ PRIVATE {ON | OFF} + Sk³adnia: %s kana³ PRIVATE {ON | OFF} W³±cza lub wy³±cza opcjê PRIVATE dla kana³u. Kiedy ta opcja jest w³±czona kana³ nie bêdzie @@ -5469,7 +5531,7 @@ CHAN_HELP_SET_PRIVATE %R%S LIST CHAN_HELP_SET_RESTRICTED - Sk³adnia: SET kana³ RESTRICTED {ON | OFF} + Sk³adnia: %s kana³ RESTRICTED {ON | OFF} W³±cza lub wy³±cza opcjê ograniczonego dostêpu do kana³u. Po w³±czeniu tej opcji tylko osoby znajduj±ce siê na @@ -5477,7 +5539,7 @@ CHAN_HELP_SET_RESTRICTED u¿ytkownicy bêd± banowani, a nastêpnie usuwani z kana³u. CHAN_HELP_SET_SECURE - Sk³adnia: SET kana³ SECURE {ON | OFF} + Sk³adnia: %s kana³ SECURE {ON | OFF} W³±cza lub wy³±cza opcje bezpieczeñstwa kana³u. Po w³±czeniu tej opcji tylko zarejestrowani @@ -5486,7 +5548,7 @@ CHAN_HELP_SET_SECURE wynikaj±ce z wpisów na li¶cie dostêpu. CHAN_HELP_SET_SECUREOPS - Sk³adnia: SET kana³ SECUREOPS {ON | OFF} + Sk³adnia: %s kana³ SECUREOPS {ON | OFF} W³±cza lub wy³±cza opcjê SECUREOPS dla kana³u. Kiedy ta opcja jest w³±czona u¿ytkownicy bez wpisu @@ -5494,7 +5556,7 @@ CHAN_HELP_SET_SECUREOPS mogli posiadaæ statusu operatora. CHAN_HELP_SET_SECUREFOUNDER - Sk³adnia: SET kana³ SECUREFOUNDER {ON | OFF} + Sk³adnia: %s kana³ SECUREFOUNDER {ON | OFF} W³±cza lub wy³±cza opcjê bezpiecznego w³a¶ciciela. Ustawienie tej opcji powoduje ograniczenie uprawnieñ @@ -5505,7 +5567,7 @@ CHAN_HELP_SET_SECUREFOUNDER dla jednego u¿ytkownika. CHAN_HELP_SET_SIGNKICK - Sk³adnia: SET kana³ SIGNKICK {ON | LEVEL | OFF} + Sk³adnia: %s kana³ SIGNKICK {ON | LEVEL | OFF} W³±cza lub wy³±cza podpisywanie komend kick. W³±czenie tej opcji powoduje dodawanie nicka osoby @@ -5517,7 +5579,7 @@ CHAN_HELP_SET_SIGNKICK %R%S HELP LEVELS CHAN_HELP_SET_XOP - Sk³adnia: SET kana³ XOP {ON | OFF} + Sk³adnia: %s kana³ XOP {ON | OFF} W³±cza lub wy³±cza system list xOP dla kana³u. Kiedy XOP zostanie w³±czony przyznawanie uprawnieñ @@ -5540,7 +5602,7 @@ CHAN_HELP_SET_XOP polecenia LEVELS. CHAN_HELP_SET_PERSIST - Syntax: SET channel PERSIST {ON | OFF} + Syntax: %s channel PERSIST {ON | OFF} Enables or disables the persistant channel setting. When persistant is set, the service bot will remain @@ -5563,7 +5625,7 @@ CHAN_HELP_SET_PERSIST set persist on or off. CHAN_HELP_SET_OPNOTICE - Sk³adnia: SET kana³ OPNOTICE {ON | OFF} + Sk³adnia: %s kana³ OPNOTICE {ON | OFF} W³±cza lub wy³±cza opcjê OPNOTICE dla kana³u. Kiedy ta opcja jest w³±czona, %S bêdzie @@ -6138,12 +6200,6 @@ CHAN_SERVADMIN_HELP_DROP Usuwa wskazany kana³. Tylko administratorzy serwisów mog± usun±æ kana³, którego nie s± w³a¶cicielami. -CHAN_SERVADMIN_HELP_SET - - Administratorzy serwisów mog± ustawiæ kana³owi - opcjê NOEXPIRE, która zapobiega wyga¶niêciu - kana³u je¶li nie jest on u¿ywany. - CHAN_SERVADMIN_HELP_SET_NOEXPIRE Sk³adnia: SET kana³ NOEXPIRE {ON | OFF} @@ -1099,6 +1099,34 @@ CHAN_DROP_DISABLED CHAN_DROPPED O canal %s foi desregistrado. +# SASET responses +CHAN_SASET_SYNTAX + SASET channel option parameters +CHAN_SASET_KEEPTOPIC_SYNTAX + SASET channel KEEPTOPIC {ON | OFF} +CHAN_SASET_OPNOTICE_SYNTAX + SASET channel OPNOTICE {ON | OFF} +CHAN_SASET_PEACE_SYNTAX + SASET channel PEACE {ON | OFF} +CHAN_SASET_PERSIST_SYNTAX + SASET channel PERSIST {ON | OFF} +CHAN_SASET_PRIVATE_SYNTAX + SASET channel PRIVATE {ON | OFF} +CHAN_SASET_RESTRICTED_SYNTAX + SASET channel RESTRICTED {ON | OFF} +CHAN_SASET_SECURE_SYNTAX + SASET channel SECURE {ON | OFF} +CHAN_SASET_SECUREFOUNDER_SYNTAX + SASET channel SECUREFOUNDER {ON | OFF} +CHAN_SASET_SECUREOPS_SYNTAX + SASET channel SECUREOPS {ON | OFF} +CHAN_SASET_SIGNKICK_SYNTAX + SASET channel SIGNKICK {ON | OFF} +CHAN_SASET_TOPICLOCK_SYNTAX + SASET channel TOPICLOCK {ON | OFF} +CHAN_SASET_XOP_SYNTAX + SASET channel XOP {ON | OFF} + # SET responses CHAN_SET_SYNTAX SET canal opções parâmetros @@ -4123,6 +4151,8 @@ CHAN_HELP_CMD_REGISTER REGISTER Registra um canal CHAN_HELP_CMD_SET SET Ajusta as opções e informações do canal +CHAN_HELP_CMD_SASET + SASET Forcefully set channel options and information CHAN_HELP_CMD_QOP QOP Modify the list of QOP users CHAN_HELP_CMD_AOP @@ -4225,7 +4255,15 @@ CHAN_HELP_DROP Cancela o registro do canal. So poderá ser usado pelo fundador do canal. -CHAN_HELP_SET +CHAN_HELP_SASET_HEAD + Syntax: SASET channel option parameters + + Allows Services Operators to forcefully change settings + on channels. + + Available options: + +CHAN_HELP_SET_HEAD Sintaxe: SET canal opção parâmetros Permite ao fundador do canal ajustar as várias opções do @@ -4233,39 +4271,62 @@ CHAN_HELP_SET Opções disponíveis: +CHAN_HELP_CMD_SET_FOUNDER FOUNDER Ajusta o fundador do canal +CHAN_HELP_CMD_SET_SUCCESSOR SUCCESSOR Ajusta o sucessor do canal +CHAN_HELP_CMD_SET_DESC DESC Ajusta a descrição do canal +CHAN_HELP_CMD_SET_URL URL Associa uma URL a um canal +CHAN_HELP_CMD_SET_EMAIL EMAIL Associa um E-mail a um canal +CHAN_HELP_CMD_SET_ENTRYMSG ENTRYMSG Ajusta a mensagem que deve ser mandada aos usuários quando eles entram no canal +CHAN_HELP_CMD_SET_BANTYPE BANTYPE Ajusta como os Services devem fazer o ban +CHAN_HELP_CMD_SET_MLOCK MLOCK Liga ou desliga a trava dos modos do canal +CHAN_HELP_CMD_SET_KEEPTOPIC KEEPTOPIC Mantem o tópico quando o canal não está em uso +CHAN_HELP_CMD_SET_TOPICLOCK TOPICLOCK O tópico pode ser mudado apenas com o comando TOPIC +CHAN_HELP_CMD_SET_PEACE PEACE Regula o uso de comandos críticos +CHAN_HELP_CMD_SET_PRIVATE PRIVATE Esconde o canal do comando LIST +CHAN_HELP_CMD_SET_RESTRICTED RESTRICTED Acesso restrito ao canal +CHAN_HELP_CMD_SET_SECURE SECURE Ativa os recursos de segurança do %S +CHAN_HELP_CMD_SET_SECUREOPS SECUREOPS Controle rigoroso do status de OP +CHAN_HELP_CMD_SET_SECUREFOUNDER SECUREFOUNDER Controle rigoroso do status de Fundador do Canal +CHAN_HELP_CMD_SET_SIGNKICK SIGNKICK Assinatura dos kicks feitos pelo comando KICK +CHAN_HELP_CMD_SET_OPNOTICE OPNOTICE Envia uma notice quando os comandos OP/DEOP são usados +CHAN_HELP_CMD_SET_XOP XOP Altera o sistema de privilégio de usuário - PERSIST Set the channel as permanent +CHAN_HELP_CMD_SET_PERSIST + PERSIST Set the channel as permanent +CHAN_HELP_CMD_SET_NOEXPIRE + NOEXPIRE Prevent the channel from expiring +CHAN_HELP_SET_TAIL Digite %R%S HELP SET opção para maiores informações sobre uma opção em particular. CHAN_HELP_SET_FOUNDER - Sintaxe: SET canal FOUNDER nick + Sintaxe: %s canal FOUNDER nick Muda o fundador do canal. O novo nick deve estar registrado. CHAN_HELP_SET_SUCCESSOR - Sintaxe: SET canal SUCCESSOR nick + Sintaxe: %s canal SUCCESSOR nick Altera o sucessor de um canal. Se o nick do founder expirar ou for dropado enquanto o canal ainda estiver registrado, @@ -4275,13 +4336,13 @@ CHAN_HELP_SET_SUCCESSOR sido ajustado. O novo nick deverá estar registrado. CHAN_HELP_SET_DESC - Sintaxe: SET canal DESC descrição + Sintaxe: %s canal DESC descrição Ajusta a descrição para o canal, que são mostradas com os comandos LIST e INFO. CHAN_HELP_SET_URL - Sintaxe: SET canal URL [url] + Sintaxe: %s canal URL [url] Associa uma URL ao canal. Esta URL será mostrada sempre que alguem solicitar informação sobre o canal @@ -4289,7 +4350,7 @@ CHAN_HELP_SET_URL apaga qualquer URL atualmente designada para o canal. CHAN_HELP_SET_EMAIL - Sintaxe: SET canal EMAIL [endereço] + Sintaxe: %s canal EMAIL [endereço] Associa um endereço de e-mail fornecido ao canal. Este endereço será mostrado sempre que alguem solicitar @@ -4298,7 +4359,7 @@ CHAN_HELP_SET_EMAIL do canal. CHAN_HELP_SET_ENTRYMSG - Sintaxe: SET canal ENTRYMSG [mensagem] + Sintaxe: %s canal ENTRYMSG [mensagem] Ajusta a mensagem na qual será enviada via /notice para os usuários quando eles entrarem no canal. Se nenhum @@ -4306,7 +4367,7 @@ CHAN_HELP_SET_ENTRYMSG ao se entrar no canal. CHAN_HELP_SET_BANTYPE - Sintaxe: SET canal BANTYPE tipo-de-ban + Sintaxe: %s canal BANTYPE tipo-de-ban Seleciona o tipo de ban que será usado sempre que os Services precisarem banir alguém do seu canal. @@ -4319,7 +4380,7 @@ CHAN_HELP_SET_BANTYPE 3: ban na forma *!*user@*.domain CHAN_HELP_SET_KEEPTOPIC - Sintaxe: SET canal KEEPTOPIC {ON|OFF} + Sintaxe: %s canal KEEPTOPIC {ON|OFF} Ativa ou desativa a opção de retenção de tópico para um canal. Quando a retenção de tópico está acionada, @@ -4328,7 +4389,7 @@ CHAN_HELP_SET_KEEPTOPIC restaurado na próxima vez que o canal for reutilizado. CHAN_HELP_SET_TOPICLOCK - Sintaxe: SET canal TOPICLOCK {ON|OFF} + Sintaxe: %s canal TOPICLOCK {ON|OFF} Ativa ou desativa a opção de trava do tópico de um canal. Quando a trava do tópico está ativada, o %S não @@ -4336,7 +4397,7 @@ CHAN_HELP_SET_TOPICLOCK TOPIC. CHAN_HELP_SET_MLOCK - Sintaxe: SET canal MLOCK modos + Sintaxe: %s canal MLOCK modos Ajusta o parâmetro da trava do modo para um canal. O %S permite que você defina certos modos no canal @@ -4374,7 +4435,7 @@ CHAN_HELP_SET_MLOCK ficam livres para ser ativos ou desativos. CHAN_HELP_SET_PEACE - Sintaxe: SET canal PEACE {ON | OFF} + Sintaxe: %s canal PEACE {ON | OFF} Ativa ou destiva a opção peace para um canal. Quando peace está ativada, um usuário não poderá kickar, @@ -4382,21 +4443,21 @@ CHAN_HELP_SET_PEACE nível superior ou igual ao seu via comandos do %S. CHAN_HELP_SET_PRIVATE - Sintaxe: SET canal PRIVATE {ON|OFF} + Sintaxe: %s canal PRIVATE {ON|OFF} Ativa ou desativa a opção private para um canal. Quando private está ativada, um %R%S LIST não irá incluir o canal em qualquer listagem. CHAN_HELP_SET_RESTRICTED - Sintaxe: SET canal RESTRICTED {ON|OFF} + Sintaxe: %s canal RESTRICTED {ON|OFF} Enables or disables the restricted access option for a channel. When restricted access is set, users not on the access list will instead be kicked and banned from the channel. CHAN_HELP_SET_SECURE - Sintaxe: SET canal SECURE {ON|OFF} + Sintaxe: %s canal SECURE {ON|OFF} Ativa ou desativa os recursos de segurança do %S para um canal. Quando o SECURE estiver ativo, somente @@ -4405,14 +4466,14 @@ CHAN_HELP_SET_SECURE controlado pela lista de acesso. CHAN_HELP_SET_SECUREOPS - Sintaxe: SET canal SECUREOPS {ON|OFF} + Sintaxe: %s canal SECUREOPS {ON|OFF} Ativa ou desativa a opção de segurança de ops para um canal. Quando secure ops estiver ativada, os usuários que não estiverem na lista de acesso não poderão ter o status de OP. CHAN_HELP_SET_SECUREFOUNDER - Sintaxe: SET canal SECUREFOUNDER {ON | OFF} + Sintaxe: %s canal SECUREFOUNDER {ON | OFF} Ativa ou desativa a opção secure founder para um canal. Quando o secure founder está ligado, apenas o verdadeiro founder @@ -4420,7 +4481,7 @@ CHAN_HELP_SET_SECUREFOUNDER successor, e não aqueles que estiverem identificados no %S. CHAN_HELP_SET_SIGNKICK - Sintaxe: SET canal SIGNKICK {ON | LEVEL | OFF} + Sintaxe: %s canal SIGNKICK {ON | LEVEL | OFF} Habilita ou desabilita a assinatura nos kicks para um canal. Quando o SIGNKICK está habilitado, kicks através @@ -4432,7 +4493,7 @@ CHAN_HELP_SET_SIGNKICK motivo. Veja %R%S HELP LEVELS para maiores informações. CHAN_HELP_SET_XOP - Sintaxe: SET canal XOP {ON | OFF} + Sintaxe: %s canal XOP {ON | OFF} Ativa ou desativa o sistema de listas xOP para um canal. Quando XOP está ativado, você deve usar os comandos @@ -4454,7 +4515,7 @@ CHAN_HELP_SET_XOP de acesso não causa problemas. CHAN_HELP_SET_PERSIST - Syntax: SET channel PERSIST {ON | OFF} + Syntax: %s channel PERSIST {ON | OFF} Enables or disables the persistant channel setting. When persistant is set, the service bot will remain @@ -4477,7 +4538,7 @@ CHAN_HELP_SET_PERSIST set persist on or off. CHAN_HELP_SET_OPNOTICE - Sintaxe: SET canal OPNOTICE {ON | OFF} + Sintaxe: %s canal OPNOTICE {ON | OFF} Ativa e desativa a opção Op-notice para um canal. Quando Op-notice estiver ativado, o %S enviará uma notice para @@ -5028,13 +5089,6 @@ CHAN_SERVADMIN_HELP_DROP Cancela o registro de um canal. Somente Administradores dos Services podem cancelar canais que pertencem a outros usuários. -CHAN_SERVADMIN_HELP_SET - - Administradores dos Services também podem ajustar a opção - NOEXPIRE, fazendo com que canais sejam impedidos de ter - seu registro expirado. Services Operators ainda - podem ajustar opções para qualquer canal de outros usuários. - CHAN_SERVADMIN_HELP_SET_NOEXPIRE Sintaxe: SET canal NOEXPIRE {ON | OFF} @@ -1078,6 +1078,34 @@ CHAN_DROP_DISABLED CHAN_DROPPED Êàíàë %s óäàëåí èç áàçû äàííûõ. +# SASET responses +CHAN_SASET_SYNTAX + SASET channel option parameters +CHAN_SASET_KEEPTOPIC_SYNTAX + SASET channel KEEPTOPIC {ON | OFF} +CHAN_SASET_OPNOTICE_SYNTAX + SASET channel OPNOTICE {ON | OFF} +CHAN_SASET_PEACE_SYNTAX + SASET channel PEACE {ON | OFF} +CHAN_SASET_PERSIST_SYNTAX + SASET channel PERSIST {ON | OFF} +CHAN_SASET_PRIVATE_SYNTAX + SASET channel PRIVATE {ON | OFF} +CHAN_SASET_RESTRICTED_SYNTAX + SASET channel RESTRICTED {ON | OFF} +CHAN_SASET_SECURE_SYNTAX + SASET channel SECURE {ON | OFF} +CHAN_SASET_SECUREFOUNDER_SYNTAX + SASET channel SECUREFOUNDER {ON | OFF} +CHAN_SASET_SECUREOPS_SYNTAX + SASET channel SECUREOPS {ON | OFF} +CHAN_SASET_SIGNKICK_SYNTAX + SASET channel SIGNKICK {ON | OFF} +CHAN_SASET_TOPICLOCK_SYNTAX + SASET channel TOPICLOCK {ON | OFF} +CHAN_SASET_XOP_SYNTAX + SASET channel XOP {ON | OFF} + # SET responses CHAN_SET_SYNTAX SET #êàíàë îïöèÿ ïàðàìåòð @@ -4183,6 +4211,8 @@ CHAN_HELP_CMD_REGISTER REGISTER Ðåãèñòðàöèÿ êàíàëà CHAN_HELP_CMD_SET SET Íàñòðîéêà ðàçëè÷íûõ îïöèé êàíàëà +CHAN_HELP_CMD_SASET + SASET Forcefully set channel options and information CHAN_HELP_CMD_QOP QOP Modify the list of QOP users CHAN_HELP_CMD_AOP @@ -4287,45 +4317,76 @@ CHAN_HELP_DROP Óäàëÿåò óêàçàííûé êàíàë èç áàçû äàííûõ ñåðâèñîâ. Èñïîëüçîâàòü DROP ìîæåò ëèøü âëàäåëåö êàíàëà. -CHAN_HELP_SET +CHAN_HELP_SASET_HEAD + Syntax: SASET channel option parameters + + Allows Services Operators to forcefully change settings + on channels. + + Available options: + +CHAN_HELP_SET_HEAD Ñèíòàêñèñ: SET #êàíàë îïöèÿ ïàðàìåòð Ïîçâîëÿåò âëàäåëüöó êàíàëà ìåíÿòü ðàçëè÷íûå íàñòðîéêè êàíàëà. Äîñòóïíûå îïöèè: +CHAN_HELP_CMD_SET_FOUNDER FOUNDER ñìåíà âëàäåëüöà êàíàëà +CHAN_HELP_CMD_SET_SUCCESSOR SUCCESSOR óñòàíîâêà íàñëåäíèêà êàíàëà +CHAN_HELP_CMD_SET_DESC DESC èçìåíåíèå îïèñàíèÿ êàíàëà +CHAN_HELP_CMD_SET_URL URL óñòàíîâêà URL-àäðåñà êàíàëà +CHAN_HELP_CMD_SET_EMAIL EMAIL óñòàíîâêà Email-àäðåñà êàíàëà +CHAN_HELP_CMD_SET_ENTRYMSG ENTRYMSG óñòàíîâêà àâòîñîîáùåíèÿ ïðè âõîäå íà êàíàë +CHAN_HELP_CMD_SET_BANTYPE BANTYPE óñòàíîâêà òèïà áàíà ñåðâèñàìè íà êàíàëå +CHAN_HELP_CMD_SET_MLOCK MLOCK áëîêèðîâêà îïðåäåëåííûõ ðåæèìîâ êàíàëà +CHAN_HELP_CMD_SET_KEEPTOPIC KEEPTOPIC àêòèâèðîâàíèå àâòîñîõðàíåíèÿ òîïèêà êàíàëà +CHAN_HELP_CMD_SET_OPNOTICE OPNOTICE àêòèâèðîâàíèå óâåäîìëåíèé îá èñïîëüçîâàíèè êîìàíä OP/DEOP +CHAN_HELP_CMD_SET_PEACE PEACE àêòèâèðîâàíèå ðåæèìà "ñïîêîéñòâèÿ" íà êàíàëå +CHAN_HELP_CMD_SET_PRIVATE PRIVATE ñêðûòèå êàíàëà â ñïèñêå êàíàëîâ âûâîäèìûõ ïî LIST +CHAN_HELP_CMD_SET_RESTRICTED RESTRICTED îãðàíè÷åíèå óðîâíÿ äîñòóïà íà êàíàë äî ïðîïèñàííûõ +CHAN_HELP_CMD_SET_SECURE SECURE äîïîëíèòåëüíûå âîçìîæíîñòè %S'à ïî áåçîïàñíîñòè +CHAN_HELP_CMD_SET_SECUREOPS SECUREOPS êîíòðîëü çà ïîëó÷åíèåì ñòàòóñà îïåðàòîðà êàíàëà +CHAN_HELP_CMD_SET_SECUREFOUNDER SECUREFOUNDER îãðàíè÷åíèå íà ïîëó÷åíèå ñòàòóñà âëàäåëüöà êàíàëà +CHAN_HELP_CMD_SET_SIGNKICK SIGNKICK íàñòðîéêà ðåæèìà "ïîäïèñàííûõ êèêîâ" +CHAN_HELP_CMD_SET_TOPICLOCK TOPICLOCK áëîêèðîâêà òîïèêà êàíàëà îò èçìåíåíèé åãî êåì-ëèáî +CHAN_HELP_CMD_SET_XOP XOP íàñòðîéêà ñèñòåìû ïðèâèëåãèé êàíàëà +CHAN_HELP_CMD_SET_PERSIST PERSIST Set the channel as permanent +CHAN_HELP_CMD_SET_NOEXPIRE + NOEXPIRE Prevent the channel from expiring +CHAN_HELP_SET_TAIL Äëÿ áîëåå ïîäðîáíîé èíôîðìàöèè î êàêîé-ëèáî êîíêðåòíîé îïöèè, ñì. ñïðàâêó ïî %R%S HELP îïöèÿ CHAN_HELP_SET_FOUNDER - Ñèíòàêñèñ: SET #êàíàë FOUNDER íèê + Ñèíòàêñèñ: %s #êàíàë FOUNDER íèê Ïîçâîëÿåò ïåðåäàòü ïðàâà íà âëàäåíèå êàíàëîì äðóãîìó ïîëüçîâàòåëþ. Íèê íîâîãî âëàäåëüöà êàíàëà äîëæåí áûòü çàðåãèñòðèðîâàííûì. CHAN_HELP_SET_SUCCESSOR - Ñèíòàêñèñ: SET #êàíàë SUCCESSOR íèê + Ñèíòàêñèñ: %s #êàíàë SUCCESSOR íèê Ïîçâîëÿåò íàçíà÷èòü íàñëåäíèêà êàíàëà. Åñëè íèê òåêóùåãî âëàäåëüöà êàíàëà áóäåò óäàëåí ââèäó èñòå÷åíèÿ ñðîêà ðåãèñòðàöèè èëè ïî êàêèì @@ -4336,13 +4397,13 @@ CHAN_HELP_SET_SUCCESSOR äîëæåí áûòü çàðåãèñòðèðîâàííûì íèêîì. CHAN_HELP_SET_DESC - Ñèíòàêñèñ: SET #êàíàë DESC îïèñàíèå + Ñèíòàêñèñ: %s #êàíàë DESC îïèñàíèå Ïîçâîëÿåò óñòàíîâèòü îïèñàíèå êàíàëà, êîòîðîå áóäåò ïîêàçàíî ïðè èñïîëüçîâàíèè êîìàíä LIST è INFO. CHAN_HELP_SET_URL - Ñèíòàêñèñ: SET #êàíàë URL [àäðåñ] + Ñèíòàêñèñ: %s #êàíàë URL [àäðåñ] Ïîçâîëÿåò óñòàíîâèòü URL-àäðåñ êàíàëà. Äàííûé URL áóäåò ïîêàçàí òîãäà, êîãäà êòî-ëèáî çàïðîñèò èíôîðìàöèþ î êàíàëå ñ ïîìîùüþ @@ -4350,7 +4411,7 @@ CHAN_HELP_SET_URL äàííóþ êîìàíäó áåç ïàðàìåòðà. CHAN_HELP_SET_EMAIL - Ñèíòàêñèñ: SET #êàíàë EMAIL [àäðåñ@ïî÷òû] + Ñèíòàêñèñ: %s #êàíàë EMAIL [àäðåñ@ïî÷òû] Ïîçâîëÿåò óñòàíîâèòü àäðåñ ýëåêòðîííîé ïî÷òû êàíàëà. Ýòîò àäðåñ áóäåò ïîêàçàí òîãäà, êîãäà êòî-ëèáî çàïðîñèò èíôîðìàöèþ î êàíàëå @@ -4358,7 +4419,7 @@ CHAN_HELP_SET_EMAIL èñïîëüçóéòå äàííóþ êîìàíäó áåç ïàðàìåòðà. CHAN_HELP_SET_ENTRYMSG - Ñèíòàêñèñ: SET #êàíàë ENTRYMSG [òåêñò] + Ñèíòàêñèñ: %s #êàíàë ENTRYMSG [òåêñò] Ïîçâîëÿåò óñòàíîâèòü "ñîîáùåíèå ïðè âõîäå", êîòîðîå áóäåò îòïðàâëåíî íîòèñîì (notice) êàæäîìó âîøåäøåìó íà êàíàë ïîëüçîâàòåëþ. @@ -4366,7 +4427,7 @@ CHAN_HELP_SET_ENTRYMSG ñîîáùåíèå áóäåò óäàëåíî. CHAN_HELP_SET_BANTYPE - Ñèíòàêñèñ: SET #êàíàë BANTYPE òèï_áàíà + Ñèíòàêñèñ: %s #êàíàë BANTYPE òèï_áàíà Ïîçâîëÿåò óñòàíîâèòü øàáëîí áàíìàñêè, ïî êîòîðîé áóäåò çàáàíåí ïîëüçîâàòåëü êàíàëà, îòíîñèòåëüíî êîòîðîãî ïðèìåíÿåòñÿ ñåðâèñíàÿ @@ -4381,7 +4442,7 @@ CHAN_HELP_SET_BANTYPE 3 - áàí âèäà *!*èäåíò@*.äîìåí CHAN_HELP_SET_KEEPTOPIC - Ñèíòàêñèñ: SET #êàíàë KEEPTOPIC {ON | OFF} + Ñèíòàêñèñ: %s #êàíàë KEEPTOPIC {ON | OFF} Ïîçâîëÿåò àêòèâèðîâàòü/äåàêòèâèðîâàòü îïöèþ õðàíåíèÿ òîïèêà íà êàíàëå. Ïðè âêëþ÷åííîì ðåæèìå õðàíåíèÿ òîïèêà, òåêñò òîïèêà êàíàëà @@ -4391,14 +4452,14 @@ CHAN_HELP_SET_KEEPTOPIC êòî-ëèáî çàéäåò). CHAN_HELP_SET_TOPICLOCK - Ñèíòàêñèñ: SET #êàíàë TOPICLOCK {ON | OFF} + Ñèíòàêñèñ: %s #êàíàë TOPICLOCK {ON | OFF} Âêëþ÷àåò èëè âûêëþ÷àåò îïöèþ áëîêèðîâêè òîïèêà íà êàíàëå. Ïðè âêëþ÷åííîì ðåæèìå áëîêèðîâêè òîïèêà, %S ðàçðåøèò ìåíÿòü òîïèê êàíàëà òîëüêî ÷åðåç ñåðâèñíóþ êîìàíäó TOPIC. CHAN_HELP_SET_MLOCK - Ñèíòàêñèñ: SET #êàíàë MLOCK ðåæèìû + Ñèíòàêñèñ: %s #êàíàë MLOCK ðåæèìû MLOCK ïîçâîëÿåò âàì óñòàíîâèòü è çàáëîêèðîâàòü îïðåäåëåííûå ðåæèìû êàíàëà. Âû ìîæåòå çàáëîêèðîâàòü îò ñíÿòèÿ/óñòàíîâêè ëþáûå ðåæèìû, @@ -4434,7 +4495,7 @@ CHAN_HELP_SET_MLOCK ñâîáîäíî èçìåíåíû ëþáûì îïåðàòîðîì êàíàëà. CHAN_HELP_SET_PEACE - Ñèíòàêñèñ: SET #êàíàë PEACE {ON | OFF} + Ñèíòàêñèñ: %s #êàíàë PEACE {ON | OFF} Àêòèâèðóåò/äåàêòèâèðóåò îïöèþ ñïîêîéñòâèÿ íà êàíàëå. Äàííûé ðåæèì ïîçâîëÿåò çàïðåòèòü èñïîëüçîâàíèå òàêèõ êîìàíä %S'à êàê BAN, @@ -4444,20 +4505,20 @@ CHAN_HELP_SET_PEACE ñìîæåò èñïîëüçîâàòü èõ îòíîñèòåëüíî ñåáÿ. CHAN_HELP_SET_PRIVATE - Ñèíòàêñèñ: SET #êàíàë PRIVATE {ON | OFF} + Ñèíòàêñèñ: %s #êàíàë PRIVATE {ON | OFF} Àêòèâèðóåò/äåàêòèâèðóåò îïöèþ ïðèâàòíîñòè êàíàëà. Äàííûé ðåæèì ïîçâîëÿåò ñêðûòü âàø êàíàë â ñïèñêå êàíàëîâ ïî %R%S LIST. CHAN_HELP_SET_RESTRICTED - Ñèíòàêñèñ: SET #êàíàë RESTRICTED {ON | OFF} + Ñèíòàêñèñ: %s #êàíàë RESTRICTED {ON | OFF} Enables or disables the restricted access option for a channel. When restricted access is set, users not on the access list will instead be kicked and banned from the channel. CHAN_HELP_SET_SECURE - Ñèíòàêñèñ: SET #êàíàë SECURE {ON | OFF} + Ñèíòàêñèñ: %s #êàíàë SECURE {ON | OFF} Àêòèâèðóåò/äåàêòèâèðóåò ðåæèì áåçîïàñíîñòè äëÿ êàíàëà. Êîãäà SECURE âêëþ÷åíî, òîëüêî ïîëüçîâàòåëè ñ çàðåãèñòðèðîâàííûìè @@ -4469,7 +4530,7 @@ CHAN_HELP_SET_SECURE âñåãî ëèøü ÷åðåç ñïèñîê ìàñîê íà %s. CHAN_HELP_SET_SECUREOPS - Ñèíòàêñèñ: SET #êàíàë SECUREOPS {ON | OFF} + Ñèíòàêñèñ: %s #êàíàë SECUREOPS {ON | OFF} Àêòèâèðóåò/äåàêòèâèðóåò ðåæèì îãðàíè÷åíèÿ íà ïîëó÷åíèå ñòàòóñà îïåðàòîðà êàíàëà. Äàííûé ðåæèì ïîçâîëÿåò çàïðåòèòü âîçìîæíîñòü @@ -4478,7 +4539,7 @@ CHAN_HELP_SET_SECUREOPS ïîëó÷àåìîìó ñòàòóñó. CHAN_HELP_SET_SECUREFOUNDER - Ñèíòàêñèñ: SET #êàíàë SECUREFOUNDER {ON | OFF} + Ñèíòàêñèñ: %s #êàíàë SECUREFOUNDER {ON | OFF} Àêòèâèðóåò/äåàêòèâèðóåò ðåæèì áåçîïàñíîñòè âëàäåëüöà íà êàíàëå. Àêòèâèðîâàíèå SECUREFOUNDER ïîçâîëÿåò âàì îãðàíè÷èòü âîçìîæíîñòü @@ -4487,7 +4548,7 @@ CHAN_HELP_SET_SECUREFOUNDER (è íå âàæíî, êòî òàì èäåíòèôèöèðîâàëñÿ ê êàíàëó ÷åðåç %S ID). CHAN_HELP_SET_SIGNKICK - Ñèíòàêñèñ: SET #êàíàë SIGNKICK {ON | LEVEL | OFF} + Ñèíòàêñèñ: %s #êàíàë SIGNKICK {ON | LEVEL | OFF} Âêëþ÷àåò èëè âûêëþ÷àåò îïöèþ "ïîäïèñàííûõ êèêîâ" íà êàíàëå. Àêòèâèðîâàíèå ðåæèìà SIGNKICK çàñòàâèò %S àâòîìàòè÷åñêè @@ -4500,7 +4561,7 @@ CHAN_HELP_SET_SIGNKICK áîëåå ïîäðîáíîé èíôîðìàöèè). CHAN_HELP_SET_XOP - Ñèíòàêñèñ: SET #êàíàë XOP {ON | OFF} + Ñèíòàêñèñ: %s #êàíàë XOP {ON | OFF} Ïîçâîëÿåò àêòèâèðîâàòü/äåàêòèâèðîâàòü ñèñòåìó ïðèâåëåãèé xOP íà âàøåì êàíàëå. Îñîáåííîñòè äàííîé ñèñòåìû ñîñòîÿò â òîì, ÷òî âñå @@ -4527,7 +4588,7 @@ CHAN_HELP_SET_XOP êàêèõ-ëèáî ïðîáëåì. CHAN_HELP_SET_PERSIST - Syntax: SET channel PERSIST {ON | OFF} + Syntax: %s channel PERSIST {ON | OFF} Enables or disables the persistant channel setting. When persistant is set, the service bot will remain @@ -4550,7 +4611,7 @@ CHAN_HELP_SET_PERSIST set persist on or off. CHAN_HELP_SET_OPNOTICE - Ñèíòàêñèñ: SET #êàíàë OPNOTICE {ON | OFF} + Ñèíòàêñèñ: %s #êàíàë OPNOTICE {ON | OFF} Âêëþ÷àåò èëè âûêëþ÷àåò îïöèþ OP-óâåäîìëåíèÿ íà âàøåì êàíàëå. Êîãäà îï-óâåäîìëåíèå âêëþ÷åíî, %S áóäåò ïîñûëàòü íîòèñ @@ -5132,13 +5193,6 @@ CHAN_SERVADMIN_HELP_DROP Êàê Àäìèíèñòðàòîð ñåðâèñîâ, âû ìîæåòå óäàëèòü ëþáîé çàðåãèñòðèðîâàííûé êàíàë ñåòè áåç êàêîé-ëèáî èäåíòèôèêàöèè ê íåìó. -CHAN_SERVADMIN_HELP_SET - - Àäìèíèñòðàòîðàì ñåðâèñîâ äîñòóïíà âîçìîæíîñòü èçìåíÿòü íàñòðîéêè - ëþáîãî çàðåãèñòðèðîâàííîãî êàíàëà ñåòè. Òàêæå, èì äîñòóïíà - óñòàíîâêà ñêðûòîé îïöèè NOEXPIRE (èñêëþ÷àåò êàíàë èç óñëîâèé - èñòå÷åíèÿ ðåãèñòðàöèè ïî âðåìåíè). - CHAN_SERVADMIN_HELP_SET_NOEXPIRE Ñèíòàêñèñ: SET #êàíàë NOEXPIRE {ON | OFF} @@ -1105,6 +1105,34 @@ CHAN_DROP_DISABLED CHAN_DROPPED %s kanalýnýn kaydý silinmiþtir (dropped). +# SASET responses +CHAN_SASET_SYNTAX + SASET channel option parameters +CHAN_SASET_KEEPTOPIC_SYNTAX + SASET channel KEEPTOPIC {ON | OFF} +CHAN_SASET_OPNOTICE_SYNTAX + SASET channel OPNOTICE {ON | OFF} +CHAN_SASET_PEACE_SYNTAX + SASET channel PEACE {ON | OFF} +CHAN_SASET_PERSIST_SYNTAX + SASET channel PERSIST {ON | OFF} +CHAN_SASET_PRIVATE_SYNTAX + SASET channel PRIVATE {ON | OFF} +CHAN_SASET_RESTRICTED_SYNTAX + SASET channel RESTRICTED {ON | OFF} +CHAN_SASET_SECURE_SYNTAX + SASET channel SECURE {ON | OFF} +CHAN_SASET_SECUREFOUNDER_SYNTAX + SASET channel SECUREFOUNDER {ON | OFF} +CHAN_SASET_SECUREOPS_SYNTAX + SASET channel SECUREOPS {ON | OFF} +CHAN_SASET_SIGNKICK_SYNTAX + SASET channel SIGNKICK {ON | OFF} +CHAN_SASET_TOPICLOCK_SYNTAX + SASET channel TOPICLOCK {ON | OFF} +CHAN_SASET_XOP_SYNTAX + SASET channel XOP {ON | OFF} + # SET responses CHAN_SET_SYNTAX SET kanaladý özellik parametre @@ -4233,6 +4261,8 @@ CHAN_HELP_CMD_REGISTER REGISTER Kanalý kaydeder CHAN_HELP_CMD_SET SET Kanal özelliklerini ve bilgisini ayarlar +CHAN_HELP_CMD_SASET + SASET Forcefully set channel options and information CHAN_HELP_CMD_QOP QOP Modify the list of QOP users CHAN_HELP_CMD_AOP @@ -4333,7 +4363,15 @@ CHAN_HELP_DROP Kanalýn kaydýný siler. -CHAN_HELP_SET +CHAN_HELP_SASET_HEAD + Syntax: SASET channel option parameters + + Allows Services Operators to forcefully change settings + on channels. + + Available options: + +CHAN_HELP_SET_HEAD Kullanýmý: SET kanaladý özellik parametre Kanal founderýnýn çeþitli kanal özelliklerini ve diðer bilgileri @@ -4341,40 +4379,63 @@ CHAN_HELP_SET Mevcut özellikler: +CHAN_HELP_CMD_SET_FOUNDER FOUNDER Kanal founderýný belirler +CHAN_HELP_CMD_SET_SUCCESSOR SUCCESSOR Kanal successorýný belirler +CHAN_HELP_CMD_SET_DESC DESC Kanal açýklamasýný belirler +CHAN_HELP_CMD_SET_URL URL Kanala bir URL adresini iliþkilendirir +CHAN_HELP_CMD_SET_EMAIL EMAIL Kanala bir E-mail adresini iliþkilendirir +CHAN_HELP_CMD_SET_ENTRYMSG ENTRYMSG Kanala giren kullanýcýlara gönderilecek mesajý belirler +CHAN_HELP_CMD_SET_BANTYPE BANTYPE Servislerin kanalda ne tip ban koyacaðýný belirler +CHAN_HELP_CMD_SET_KEEPTOPIC KEEPTOPIC Kanalda kimse olmasa bile topiði hatýrlar +CHAN_HELP_CMD_SET_TOPICLOCK TOPICLOCK Topic sadece SET TOPIC komutuyla deðiþtirilir +CHAN_HELP_CMD_SET_MLOCK MLOCK Kanal modlarýný kitler yada açar +CHAN_HELP_CMD_SET_PRIVATE PRIVATE LIST komutuyla kanal listelenmez +CHAN_HELP_CMD_SET_RESTRICTED RESTRICTED Kanala izinli giriþ gerektirir +CHAN_HELP_CMD_SET_SECURE SECURE %S güvenlik özelliklerini aktifleþtirir +CHAN_HELP_CMD_SET_SECUREOPS SECUREOPS Kanal opu durumunun sýký kontrolünü saðlar +CHAN_HELP_CMD_SET_SECUREFOUNDER SECUREFOUNDER Kanal founderý durumunun sýký kontrolünü saðlar +CHAN_HELP_CMD_SET_SIGNKICK SIGNKICK KICK komutuyla yapýlan atmalarý iþaretler +CHAN_HELP_CMD_SET_OPNOTICE OPNOTICE OP/DEOP komutlarý kullanýldýðýnda mesaj yollar +CHAN_HELP_CMD_SET_PEACE PEACE kritik komutlarin kullanilmasini engeller +CHAN_HELP_CMD_SET_XOP XOP Ayricalik sistemleri arasinda geçisi saglar +CHAN_HELP_CMD_SET_PERSIST PERSIST Set the channel as permanent - +CHAN_HELP_CMD_SET_NOEXPIRE + NOEXPIRE Prevent the channel from expiring +CHAN_HELP_SET_TAIL + Belirli bir özellik hakkýnda daha fazla bilgi için %R%S HELP özellik yazýn. CHAN_HELP_SET_FOUNDER - Kullanýmý: SET kanaladý FOUNDER nick + Kullanýmý: %s kanaladý FOUNDER nick Kanal founderýný deðiþtirir. Yeni nickin kayýtlý olmasý gereklidir. CHAN_HELP_SET_SUCCESSOR - Kullanýmý: SET kanaladý SUCCESSOR nick + Kullanýmý: %s kanaladý SUCCESSOR nick Kanal successorýný belirler, deðiþtirir. Eðer bir kanalýn founderýnýn nicki zaman aþýmýna uðrayýp kaydý silinirse @@ -4385,13 +4446,13 @@ CHAN_HELP_SET_SUCCESSOR Komutta belirtilen nickin kayýtlý olmasý gereklidir. CHAN_HELP_SET_DESC - Kullanýmý: SET kanaladý DESC açýklama + Kullanýmý: %s kanaladý DESC açýklama LIST ve INFO komutlarý kullanýldýðýnda gözükecek kanal açýklamasýný belirler. CHAN_HELP_SET_URL - Kullanýmý: SET kanaladý URL [urladresi] + Kullanýmý: %s kanaladý URL [urladresi] Belirtilen URL adresini kanal ile iliþkilendirir. Bu URL adresi birisi kanal hakkýnda bilgi almak için INFO @@ -4400,7 +4461,7 @@ CHAN_HELP_SET_URL silinir. CHAN_HELP_SET_EMAIL - Kullanýmý: SET kanaladý EMAIL [emailadresi] + Kullanýmý: %s kanaladý EMAIL [emailadresi] Belirtilen E-mail adresini kanal ile iliþkilendirir.Bu E-mail adresi birisi kanal hakkýnda bilgi almak için INFO komutunu @@ -4409,14 +4470,14 @@ CHAN_HELP_SET_EMAIL silinir. CHAN_HELP_SET_ENTRYMSG - Kullanýmý: SET kanaladý ENTRYMSG [mesaj] + Kullanýmý: %s kanaladý ENTRYMSG [mesaj] Kanala giren kullanýcýlara notice þeklinde gönderilecek mesajý belirler. Eðer mesaj parametresi belirtilmezse giren kullanýcýya bir mesaj gönderilmez. CHAN_HELP_SET_BANTYPE - Kullanýmý: SET kanaladý BANTYPE bantipi + Kullanýmý: %s kanaladý BANTYPE bantipi Servislerin birini kanaldan banlarken kullanacaðý ban tipini belirler. @@ -4429,7 +4490,7 @@ CHAN_HELP_SET_BANTYPE 3: *!*user@*.domain formatýnda ban için CHAN_HELP_SET_KEEPTOPIC - Kullanýmý: SET kanaladý KEEPTOPIC {ON | OFF} + Kullanýmý: %s kanaladý KEEPTOPIC {ON | OFF} Bir kanal için topic hatýrlamayý aktifleþtirir yada kapatýr. topic hatýrlama aktifse kanal kapansa bile kanal topic i @@ -4437,14 +4498,14 @@ CHAN_HELP_SET_KEEPTOPIC topic geçerli olur. CHAN_HELP_SET_TOPICLOCK - Kullanýmý: SET kanaladý TOPICLOCK {ON | OFF} + Kullanýmý: %s kanaladý TOPICLOCK {ON | OFF} Bir kanal için topic kilidini aktifleþtirir yada kapatýr. topic kilidi aktifse, %S SET TOPIC komutunun dýþýnda kanal topic inin deðiþtirilmesine izin vermez. CHAN_HELP_SET_MLOCK - Kullanýmý: SET kanaladý MLOCK modlar + Kullanýmý: %s kanaladý MLOCK modlar Bir kanal için mod-kilidini aktifleþtirir. %S belirlediðiniz modlarýn her zaman açýk yada kapalý olacaðýný ayarlar. @@ -4474,7 +4535,7 @@ CHAN_HELP_SET_MLOCK kapanacak þekilde serbest býrakýr. CHAN_HELP_SET_PEACE - Kullanimi: SET kanaladi PEACE {ON | OFF} + Kullanimi: %s kanaladi PEACE {ON | OFF} Bir kanalin peace özelligini açar veya kapatir. peace özelligi ayarlandiginda, hic kimse seviyesi kendinden @@ -4482,20 +4543,20 @@ CHAN_HELP_SET_PEACE seviyesini degistiremez. CHAN_HELP_SET_PRIVATE - Kullanýmý: SET kanaladý PRIVATE {ON | OFF} + Kullanýmý: %s kanaladý PRIVATE {ON | OFF} Bir kanal için private özelliðini açar kapatýr. private özelliði aktifse, %R%S LIST komutuyla kanal listelenemez. CHAN_HELP_SET_RESTRICTED - Kullanýmý: SET kanaladý RESTRICTED {ON | OFF} + Kullanýmý: %s kanaladý RESTRICTED {ON | OFF} Enables or disables the restricted access option for a channel. When restricted access is set, users not on the access list will instead be kicked and banned from the channel. CHAN_HELP_SET_SECURE - Kullanýmý: SET kanaladý SECURE {ON | OFF} + Kullanýmý: %s kanaladý SECURE {ON | OFF} Bir kanal için %S'ün güvenlik özelliklerini açar veya kapatýr. SECURE özelliði aktifse, sadece nicki kayýtlý @@ -4504,14 +4565,14 @@ CHAN_HELP_SET_SECURE alabilirler.(mesela op olabilirler) CHAN_HELP_SET_SECUREOPS - Kullanýmý: SET kanaladý SECUREOPS {ON | OFF} + Kullanýmý: %s kanaladý SECUREOPS {ON | OFF} Bir kanal için güvenli op özelliðini açar veya kapatýr. güvenli op özelliði aktifse, access listesinde olmayan kullanýcýlar kanalda op olamazlar. CHAN_HELP_SET_SECUREFOUNDER - Kullanýmý: SET kanaladý SECUREFOUNDER {ON | OFF} + Kullanýmý: %s kanaladý SECUREFOUNDER {ON | OFF} Bir kanal için güvenli founder özelliðini açar yada kapatýr. güvenli founder özelliði aktifse, sadece gerçek founder @@ -4521,7 +4582,7 @@ CHAN_HELP_SET_SECUREFOUNDER ama nicki founderýn nicki olmayanlar bu komutlarý kullanamazlar. CHAN_HELP_SET_SIGNKICK - Kullanýmý: SET kanaladý SIGNKICK {ON | LEVEL | OFF} + Kullanýmý: %s kanaladý SIGNKICK {ON | LEVEL | OFF} Bir kanal için iþaretli atmayý açar yada kapatýr. SIGNKICK ayarlandýðý zaman, %S KICK @@ -4534,7 +4595,7 @@ CHAN_HELP_SET_SIGNKICK bilgi için %R%S HELP LEVELS yazýn. CHAN_HELP_SET_XOP - Kullanimi: SET kanaladi XOP {ON | OFF} + Kullanimi: %s kanaladi XOP {ON | OFF} Bir kanalin xOP sistemini açar veya kapatir. XOP ayarlandigi zaman, AOP/SOP/VOP komutlariyla @@ -4557,7 +4618,7 @@ CHAN_HELP_SET_XOP bir problem çikarmaz. CHAN_HELP_SET_PERSIST - Syntax: SET channel PERSIST {ON | OFF} + Syntax: %s channel PERSIST {ON | OFF} Enables or disables the persistant channel setting. When persistant is set, the service bot will remain @@ -4580,7 +4641,7 @@ CHAN_HELP_SET_PERSIST set persist on or off. CHAN_HELP_SET_OPNOTICE - Kullanýmý: SET kanaladý OPNOTICE {ON | OFF} + Kullanýmý: %s kanaladý OPNOTICE {ON | OFF} Bir kanal için op-notu özelliðini açar yada kapatýr. op-notu özelliði aktifse, %S kanala bir kullanýcý @@ -5100,13 +5161,6 @@ CHAN_SERVADMIN_HELP_DROP Belirtilen kanalýn kaydýný siler. Sadece Servis adminleri kanalý tanýtmadan kaydýný silebilirler. -CHAN_SERVADMIN_HELP_SET - - Servis adminleri NOEXPIRE özelliðini ayarlayarak istedikleri - kanalýn zaman aþýmýna uðramasýný engelleyebilirler. - Ek olarak, Servis adminleri þifreyle kanalý tanýtmaya gerek - olmadan bir kanalýn tüm özelliklerini ayarlayabilirler. - CHAN_SERVADMIN_HELP_SET_NOEXPIRE Kullanýmý: SET kanaladý NOEXPIRE {ON | OFF} diff --git a/src/core/cs_saset.cpp b/src/core/cs_saset.cpp new file mode 100644 index 000000000..29f7f7264 --- /dev/null +++ b/src/core/cs_saset.cpp @@ -0,0 +1,131 @@ +/* ChanServ core functions + * + * (C) 2003-2010 Anope Team + * Contact us at team@anope.org + * + * Please read COPYING and README for further details. + * + * Based on the original code of Epona by Lara. + * Based on the original code of Services by Andy Church. + * + * $Id$ + * + */ +/*************************************************************************/ + +#include "module.h" + +class CommandCSSASet : public Command +{ + std::map<ci::string, Command *> subcommands; + + public: + CommandCSSASet(const ci::string &cname) : Command(cname, 2, 3) + { + } + + ~CommandCSSASet() + { + for (std::map<ci::string, Command *>::const_iterator it = this->subcommands.begin(); it != this->subcommands.end(); ++it) + { + delete it->second; + } + this->subcommands.clear(); + } + + CommandReturn Execute(User *u, const std::vector<ci::string> ¶ms) + { + if (readonly) + { + notice_lang(Config.s_ChanServ, u, CHAN_SET_DISABLED); + return MOD_CONT; + } + + Command *c = this->FindCommand(params[1]); + + if (c) + { + ci::string cmdparams = cs_findchan(params[0])->name.c_str(); + for (std::vector<ci::string>::const_iterator it = params.begin() + 2; it != params.end(); ++it) + cmdparams += " " + *it; + mod_run_cmd(ChanServ, u, c, params[1], cmdparams); + } + else + { + notice_lang(Config.s_ChanServ, u, CHAN_SET_UNKNOWN_OPTION, params[1].c_str()); + notice_lang(Config.s_ChanServ, u, MORE_INFO, Config.s_ChanServ, "SET"); + } + + return MOD_CONT; + } + + bool OnHelp(User *u, const ci::string &subcommand) + { + if (subcommand.empty()) + { + notice_help(Config.s_ChanServ, u, CHAN_HELP_SASET_HEAD); + for (std::map<ci::string, Command *>::iterator it = this->subcommands.begin(); it != this->subcommands.end(); ++it) + it->second->OnServHelp(u); + notice_help(Config.s_ChanServ, u, CHAN_HELP_SET_TAIL); + return true; + } + else + { + Command *c = this->FindCommand(subcommand); + + if (c) + { + return c->OnHelp(u, subcommand); + } + } + + return false; + } + + void OnSyntaxError(User *u, const ci::string &subcommand) + { + syntax_error(Config.s_ChanServ, u, "SASET", CHAN_SASET_SYNTAX); + } + + void OnServHelp(User *u) + { + notice_lang(Config.s_ChanServ, u, CHAN_HELP_CMD_SASET); + } + + bool AddSubcommand(Command *c) + { + return this->subcommands.insert(std::make_pair(c->name, c)).second; + } + + bool DelSubcommand(const ci::string &command) + { + return this->subcommands.erase(command); + } + + Command *FindCommand(const ci::string &subcommand) + { + std::map<ci::string, Command *>::const_iterator it = this->subcommands.find(subcommand); + + if (it != this->subcommands.end()) + { + return it->second; + } + + return NULL; + } +}; + +class CSSASet : public Module +{ + public: + CSSASet(const std::string &modname, const std::string &creator) : Module(modname, creator) + { + this->SetAuthor("Anope"); + this->SetVersion("$Id$"); + this->SetType(CORE); + + this->AddCommand(ChanServ, new CommandCSSASet("SASET")); + } +}; + +MODULE_INIT(CSSASet) diff --git a/src/core/cs_saset_noexpire.cpp b/src/core/cs_saset_noexpire.cpp new file mode 100644 index 000000000..8d9ce2e18 --- /dev/null +++ b/src/core/cs_saset_noexpire.cpp @@ -0,0 +1,85 @@ +/* ChanServ core functions + * + * (C) 2003-2010 Anope Team + * Contact us at team@anope.org + * + * Please read COPYING and README for further details. + * + * Based on the original code of Epona by Lara. + * Based on the original code of Services by Andy Church. + * + * $Id$ + * + */ +/*************************************************************************/ + +#include "module.h" + +class CommandCSSASetNoexpire : public Command +{ + public: + CommandCSSASetNoexpire(const ci::string &cname) : Command(cname, 2, 2, "chanserv/saset/noexpire") + { + } + + CommandReturn Execute(User *u, const std::vector<ci::string> ¶ms) + { + ChannelInfo *ci = cs_findchan(params[0]); + assert(ci); + + if (params[0] == "ON") + { + ci->SetFlag(CI_NO_EXPIRE); + notice_lang(Config.s_ChanServ, u, CHAN_SET_NOEXPIRE_ON, ci->name.c_str()); + } + else if (params[0] == "OFF") + { + ci->UnsetFlag(CI_NO_EXPIRE); + notice_lang(Config.s_ChanServ, u, CHAN_SET_NOEXPIRE_OFF, ci->name.c_str()); + } + else + this->OnSyntaxError(u, "NOEXPIRE"); + + return MOD_CONT; + } + + bool OnHelp(User *u, const ci::string &) + { + notice_help(Config.s_ChanServ, u, CHAN_SERVADMIN_HELP_SET_NOEXPIRE); + return true; + } + + void OnSyntaxError(User *u, const ci::string &) + { + syntax_error(Config.s_ChanServ, u, "SET NOEXPIRE", CHAN_SET_NOEXPIRE_SYNTAX); + } + + void OnServHelp(User *u) + { + notice_lang(Config.s_ChanServ, u, CHAN_HELP_CMD_SET_NOEXPIRE); + } +}; + +class CSSetNoexpire : public Module +{ + public: + CSSetNoexpire(const std::string &modname, const std::string &creator) : Module(modname, creator) + { + this->SetAuthor("Anope"); + this->SetVersion("$Id$"); + this->SetType(CORE); + + Command *c = FindCommand(ChanServ, "SASET"); + if (c) + c->AddSubcommand(new CommandCSSASetNoexpire("NOEXPIRE")); + } + + ~CSSetNoexpire() + { + Command *c = FindCommand(ChanServ, "SASET"); + if (c) + c->DelSubcommand("NOEXPIRE"); + } +}; + +MODULE_INIT(CSSetNoexpire) diff --git a/src/core/cs_set.cpp b/src/core/cs_set.cpp index f169e2264..c11a1c102 100644 --- a/src/core/cs_set.cpp +++ b/src/core/cs_set.cpp @@ -13,809 +13,110 @@ /*************************************************************************/ #include "module.h" -#include "hashcomp.h" class CommandCSSet : public Command { - private: - CommandReturn DoSetFounder(User * u, ChannelInfo * ci, const ci::string ¶m) - { - NickAlias *na = findnick(param); - NickCore *nc, *nc0 = ci->founder; - - if (!na) - { - notice_lang(Config.s_ChanServ, u, NICK_X_NOT_REGISTERED, param.c_str()); - return MOD_CONT; - } - else if (na->HasFlag(NS_FORBIDDEN)) - { - notice_lang(Config.s_ChanServ, u, NICK_X_FORBIDDEN, param.c_str()); - return MOD_CONT; - } - - nc = na->nc; - if (Config.CSMaxReg && nc->channelcount >= Config.CSMaxReg && !u->Account()->HasPriv("chanserv/no-register-limit")) - { - notice_lang(Config.s_ChanServ, u, CHAN_SET_FOUNDER_TOO_MANY_CHANS, param.c_str()); - return MOD_CONT; - } - - Alog() << Config.s_ChanServ << ": Changing founder of " << ci->name << " from " << ci->founder->display - << " to " << nc->display << " by " << u->GetMask(); - - /* Founder and successor must not be the same group */ - if (nc == ci->successor) - ci->successor = NULL; - - nc0->channelcount--; - ci->founder = nc; - nc->channelcount++; - - notice_lang(Config.s_ChanServ, u, CHAN_FOUNDER_CHANGED, ci->name.c_str(), param.c_str()); - return MOD_CONT; - } - - CommandReturn DoSetSuccessor(User * u, ChannelInfo * ci, const ci::string ¶m) - { - NickAlias *na; - NickCore *nc; - - if (!param.empty()) - { - na = findnick(param); - - if (!na) - { - notice_lang(Config.s_ChanServ, u, NICK_X_NOT_REGISTERED, param.c_str()); - return MOD_CONT; - } - if (na->HasFlag(NS_FORBIDDEN)) - { - notice_lang(Config.s_ChanServ, u, NICK_X_FORBIDDEN, param.c_str()); - return MOD_CONT; - } - if (na->nc == ci->founder) - { - notice_lang(Config.s_ChanServ, u, CHAN_SUCCESSOR_IS_FOUNDER, param.c_str(), ci->name.c_str()); - return MOD_CONT; - } - nc = na->nc; - - } - else - nc = NULL; - - Alog() << Config.s_ChanServ << ": Changing successor of " << ci->name << " from " - << (ci->successor ? ci->successor->display : "none") - << " to " << (nc ? nc->display : "none") << " by " << u->GetMask(); - - ci->successor = nc; - - if (nc) - notice_lang(Config.s_ChanServ, u, CHAN_SUCCESSOR_CHANGED, ci->name.c_str(), param.c_str()); - else - notice_lang(Config.s_ChanServ, u, CHAN_SUCCESSOR_UNSET, ci->name.c_str()); - - return MOD_CONT; - } - - CommandReturn DoSetDesc(User * u, ChannelInfo * ci, const ci::string ¶m) - { - if (ci->desc) - delete [] ci->desc; - ci->desc = sstrdup(param.c_str()); - notice_lang(Config.s_ChanServ, u, CHAN_DESC_CHANGED, ci->name.c_str(), param.c_str()); - return MOD_CONT; - } - - CommandReturn DoSetURL(User * u, ChannelInfo * ci, const ci::string ¶m) - { - if (ci->url) - delete [] ci->url; - if (!param.empty()) - { - ci->url = sstrdup(param.c_str()); - notice_lang(Config.s_ChanServ, u, CHAN_URL_CHANGED, ci->name.c_str(), param.c_str()); - } - else - { - ci->url = NULL; - notice_lang(Config.s_ChanServ, u, CHAN_URL_UNSET, ci->name.c_str()); - } - return MOD_CONT; - } - - CommandReturn DoSetEMail(User * u, ChannelInfo * ci, const ci::string ¶m) - { - if (ci->email) - delete [] ci->email; - if (!param.empty()) - { - ci->email = sstrdup(param.c_str()); - notice_lang(Config.s_ChanServ, u, CHAN_EMAIL_CHANGED, ci->name.c_str(), param.c_str()); - } - else - { - ci->email = NULL; - notice_lang(Config.s_ChanServ, u, CHAN_EMAIL_UNSET, ci->name.c_str()); - } - return MOD_CONT; - } - - CommandReturn DoSetEntryMsg(User * u, ChannelInfo * ci, const ci::string ¶m) - { - if (ci->entry_message) - delete [] ci->entry_message; - if (!param.empty()) - { - ci->entry_message = sstrdup(param.c_str()); - notice_lang(Config.s_ChanServ, u, CHAN_ENTRY_MSG_CHANGED, ci->name.c_str(), param.c_str()); - } - else - { - ci->entry_message = NULL; - notice_lang(Config.s_ChanServ, u, CHAN_ENTRY_MSG_UNSET, ci->name.c_str()); - } - return MOD_CONT; - } - - CommandReturn DoSetMLock(User * u, ChannelInfo * ci, const char *modes) - { - int add = -1; /* 1 if adding, 0 if deleting, -1 if neither */ - unsigned char mode; - ChannelMode *cm; - ChannelModeParam *cmp; - - ci->ClearMLock(); - - if (ModeManager::FindChannelModeByName(CMODE_REGISTERED)) - ci->SetMLock(CMODE_REGISTERED, true); - - ci->ClearParams(); - - std::string params(modes ? modes : ""), param; - unsigned space = params.find(' '); - if (space != std::string::npos) - { - param = params.substr(space + 1); - params = params.substr(0, space); - modes = params.c_str(); - } - spacesepstream modeparams(param); - - while (modes && (mode = *modes++)) { - switch (mode) { - case '+': - add = 1; - continue; - case '-': - add = 0; - continue; - default: - if (add < 0) - continue; - } - - if ((cm = ModeManager::FindChannelModeByChar(mode))) - { - if (cm->Type == MODE_STATUS || cm->Type == MODE_LIST || !cm->CanSet(u)) - { - notice_lang(Config.s_ChanServ, u, CHAN_SET_MLOCK_IMPOSSIBLE_CHAR, mode); - } - else if (add) - { - ci->RemoveMLock(cm->Name); - - if (cm->Type == MODE_PARAM) - { - cmp = dynamic_cast<ChannelModeParam *>(cm); - - if (!modeparams.GetToken(param)) - continue; - - if (!cmp->IsValid(param)) - continue; - - ci->SetMLock(cmp->Name, true, param); - } - else - { - ci->SetMLock(cm->Name, true); - } - } - else - { - ci->SetMLock(cm->Name, false); - } - } - else - notice_lang(Config.s_ChanServ, u, CHAN_SET_MLOCK_UNKNOWN_CHAR, mode); - } /* while (*modes) */ - - if (ModeManager::FindChannelModeByName(CMODE_REDIRECT)) { - /* We can't mlock +L if +l is not mlocked as well. */ - if (ci->HasMLock(CMODE_REDIRECT, true) && !ci->HasMLock(CMODE_LIMIT, true)) - { - ci->RemoveMLock(CMODE_REDIRECT); - notice_lang(Config.s_ChanServ, u, CHAN_SET_MLOCK_L_REQUIRED); - } - } - - /* Some ircd we can't set NOKNOCK without INVITE */ - /* So check if we need there is a NOKNOCK MODE and that we need INVITEONLY */ - if (ModeManager::FindChannelModeByName(CMODE_NOKNOCK) && ircd->knock_needs_i) { - if (ci->HasMLock(CMODE_NOKNOCK, true) && !ci->HasMLock(CMODE_INVITE, true)) - { - ci->RemoveMLock(CMODE_NOKNOCK); - notice_lang(Config.s_ChanServ, u, CHAN_SET_MLOCK_K_REQUIRED); - } - } - - /* Since we always enforce mode r there is no way to have no - * mode lock at all. - */ - if (get_mlock_modes(ci, 0)) { - notice_lang(Config.s_ChanServ, u, CHAN_MLOCK_CHANGED, ci->name.c_str(), - get_mlock_modes(ci, 0)); - } - - /* Implement the new lock. */ - if (ci->c) - check_modes(ci->c); - return MOD_CONT; - } - - CommandReturn DoSetBanType(User * u, ChannelInfo * ci, const char *param) - { - char *endptr; - - int16 bantype = strtol(param, &endptr, 10); - - if (*endptr != 0 || bantype < 0 || bantype > 3) { - notice_lang(Config.s_ChanServ, u, CHAN_SET_BANTYPE_INVALID, param); - } else { - ci->bantype = bantype; - notice_lang(Config.s_ChanServ, u, CHAN_SET_BANTYPE_CHANGED, ci->name.c_str(), - ci->bantype); - } - return MOD_CONT; - } - - CommandReturn DoSetKeepTopic(User * u, ChannelInfo * ci, const ci::string ¶m) - { - if (param == "ON") - { - ci->SetFlag(CI_KEEPTOPIC); - notice_lang(Config.s_ChanServ, u, CHAN_SET_KEEPTOPIC_ON, ci->name.c_str()); - } - else if (param == "OFF") - { - ci->UnsetFlag(CI_KEEPTOPIC); - notice_lang(Config.s_ChanServ, u, CHAN_SET_KEEPTOPIC_OFF, ci->name.c_str()); - } - else - this->OnSyntaxError(u, "KEEPTOPIC"); - - return MOD_CONT; - } - - CommandReturn DoSetTopicLock(User * u, ChannelInfo * ci, const ci::string ¶m) - { - if (param == "ON") - { - ci->SetFlag(CI_TOPICLOCK); - notice_lang(Config.s_ChanServ, u, CHAN_SET_TOPICLOCK_ON, ci->name.c_str()); - } - else if (param == "OFF") - { - ci->UnsetFlag(CI_TOPICLOCK); - notice_lang(Config.s_ChanServ, u, CHAN_SET_TOPICLOCK_OFF, ci->name.c_str()); - } - else - this->OnSyntaxError(u, "TOPICLOCK"); - - return MOD_CONT; - } - - CommandReturn DoSetPrivate(User * u, ChannelInfo * ci, const ci::string ¶m) - { - if (param == "ON") - { - ci->SetFlag(CI_PRIVATE); - notice_lang(Config.s_ChanServ, u, CHAN_SET_PRIVATE_ON, ci->name.c_str()); - } - else if (param == "OFF") - { - ci->UnsetFlag(CI_PRIVATE); - notice_lang(Config.s_ChanServ, u, CHAN_SET_PRIVATE_OFF, ci->name.c_str()); - } - else - this->OnSyntaxError(u, "PRIVATE"); - - return MOD_CONT; - } + std::map<ci::string, Command *> subcommands; - CommandReturn DoSetSecureOps(User * u, ChannelInfo * ci, const ci::string ¶m) - { - if (param == "ON") - { - ci->SetFlag(CI_SECUREOPS); - notice_lang(Config.s_ChanServ, u, CHAN_SET_SECUREOPS_ON, ci->name.c_str()); - } - else if (param == "OFF") - { - ci->UnsetFlag(CI_SECUREOPS); - notice_lang(Config.s_ChanServ, u, CHAN_SET_SECUREOPS_OFF, ci->name.c_str()); - } - else - this->OnSyntaxError(u, "SECUREOPS"); - - return MOD_CONT; - } - - CommandReturn DoSetSecureFounder(User * u, ChannelInfo * ci, const ci::string ¶m) + public: + CommandCSSet(const ci::string &cname) : Command(cname, 2, 3) { - if (param == "ON") - { - ci->SetFlag(CI_SECUREFOUNDER); - notice_lang(Config.s_ChanServ, u, CHAN_SET_SECUREFOUNDER_ON, ci->name.c_str()); - } - else if (param == "OFF") - { - ci->UnsetFlag(CI_SECUREFOUNDER); - notice_lang(Config.s_ChanServ, u, CHAN_SET_SECUREFOUNDER_OFF, ci->name.c_str()); - } - else - this->OnSyntaxError(u, "SECUREFOUNDER"); - - return MOD_CONT; } - CommandReturn DoSetRestricted(User * u, ChannelInfo * ci, const ci::string ¶m) + ~CommandCSSet() { - if (param == "ON") + for (std::map<ci::string, Command *>::const_iterator it = this->subcommands.begin(); it != this->subcommands.end(); ++it) { - ci->SetFlag(CI_RESTRICTED); - if (ci->levels[CA_NOJOIN] < 0) - ci->levels[CA_NOJOIN] = 0; - notice_lang(Config.s_ChanServ, u, CHAN_SET_RESTRICTED_ON, ci->name.c_str()); + delete it->second; } - else if (param == "OFF") - { - ci->UnsetFlag(CI_RESTRICTED); - if (ci->levels[CA_NOJOIN] >= 0) - ci->levels[CA_NOJOIN] = -2; - notice_lang(Config.s_ChanServ, u, CHAN_SET_RESTRICTED_OFF, ci->name.c_str()); - } - else - this->OnSyntaxError(u, "RESTRICTED"); - - return MOD_CONT; + this->subcommands.clear(); } - CommandReturn DoSetSecure(User * u, ChannelInfo * ci, const ci::string ¶m) + CommandReturn Execute(User *u, const std::vector<ci::string> ¶ms) { - if (param == "ON") + if (readonly) { - ci->SetFlag(CI_SECURE); - notice_lang(Config.s_ChanServ, u, CHAN_SET_SECURE_ON, ci->name.c_str()); + notice_lang(Config.s_ChanServ, u, CHAN_SET_DISABLED); + return MOD_CONT; } - else if (param == "OFF") + if (!check_access(u, cs_findchan(params[0]), CA_SET)) { - ci->UnsetFlag(CI_SECURE); - notice_lang(Config.s_ChanServ, u, CHAN_SET_SECURE_OFF, ci->name.c_str()); + notice_lang(Config.s_ChanServ, u, ACCESS_DENIED); + return MOD_CONT; } - else - this->OnSyntaxError(u, "SECURE"); - return MOD_CONT; - } - - CommandReturn DoSetSignKick(User * u, ChannelInfo * ci, const ci::string ¶m) - { - if (param == "ON") - { - ci->SetFlag(CI_SIGNKICK); - ci->UnsetFlag(CI_SIGNKICK_LEVEL); - notice_lang(Config.s_ChanServ, u, CHAN_SET_SIGNKICK_ON, ci->name.c_str()); - } - else if (param == "LEVEL") - { - ci->SetFlag(CI_SIGNKICK_LEVEL); - ci->UnsetFlag(CI_SIGNKICK); - notice_lang(Config.s_ChanServ, u, CHAN_SET_SIGNKICK_LEVEL, ci->name.c_str()); - } - else if (param == "OFF") - { - ci->UnsetFlag(CI_SIGNKICK); - ci->UnsetFlag(CI_SIGNKICK_LEVEL); - notice_lang(Config.s_ChanServ, u, CHAN_SET_SIGNKICK_OFF, ci->name.c_str()); - } - else - this->OnSyntaxError(u, "SIGNKICK"); - return MOD_CONT; - } + Command *c = this->FindCommand(params[1]); - CommandReturn DoSetOpNotice(User * u, ChannelInfo * ci, const ci::string ¶m) - { - if (param == "ON") - { - ci->SetFlag(CI_OPNOTICE); - notice_lang(Config.s_ChanServ, u, CHAN_SET_OPNOTICE_ON, ci->name.c_str()); - } - else if (param == "OFF") + if (c) { - ci->UnsetFlag(CI_OPNOTICE); - notice_lang(Config.s_ChanServ, u, CHAN_SET_OPNOTICE_OFF, ci->name.c_str()); + ci::string cmdparams = cs_findchan(params[0])->name.c_str(); + for (std::vector<ci::string>::const_iterator it = params.begin() + 2; it != params.end(); ++it) + cmdparams += " " + *it; + mod_run_cmd(ChanServ, u, c, params[1], cmdparams); } else - this->OnSyntaxError(u, "OPNOTICE"); - - return MOD_CONT; - } - -#define CHECKLEV(lev) ((ci->levels[(lev)] != ACCESS_INVALID) && (access->level >= ci->levels[(lev)])) - - CommandReturn DoSetXOP(User * u, ChannelInfo * ci, const ci::string ¶m) - { - if (param == "ON") { - if (!(ci->HasFlag(CI_XOP))) - { - ChanAccess *access; - - for (unsigned i = ci->GetAccessCount() - 1; 0 <= i; --i) - { - access = ci->GetAccess(i); - - /* This will probably cause wrong levels to be set, but hey, - * it's better than losing it altogether. - */ - if (access->level == ACCESS_QOP) - access->level = ACCESS_QOP; - else if (CHECKLEV(CA_AKICK) || CHECKLEV(CA_SET)) - access->level = ACCESS_SOP; - else if (CHECKLEV(CA_AUTOOP) || CHECKLEV(CA_OPDEOP) || CHECKLEV(CA_OPDEOPME)) - access->level = ACCESS_AOP; - else if (ModeManager::FindChannelModeByName(CMODE_HALFOP) && (CHECKLEV(CA_AUTOHALFOP) || CHECKLEV(CA_HALFOP) || CHECKLEV(CA_HALFOPME))) - access->level = ACCESS_HOP; - else if (CHECKLEV(CA_AUTOVOICE) || CHECKLEV(CA_VOICE) || CHECKLEV(CA_VOICEME)) - access->level = ACCESS_VOP; - else - { - ci->EraseAccess(i); - } - } - - reset_levels(ci); - ci->SetFlag(CI_XOP); - } - - Alog() << Config.s_ChanServ << ": " << u->GetMask() << " enabled XOP for " << ci->name; - notice_lang(Config.s_ChanServ, u, CHAN_SET_XOP_ON, ci->name.c_str()); - } - else if (param == "OFF") - { - ci->UnsetFlag(CI_XOP); - - Alog() << Config.s_ChanServ << ": " << u->GetMask() << " disabled XOP for " << ci->name; - notice_lang(Config.s_ChanServ, u, CHAN_SET_XOP_OFF, ci->name.c_str()); + notice_lang(Config.s_ChanServ, u, CHAN_SET_UNKNOWN_OPTION, params[1].c_str()); + notice_lang(Config.s_ChanServ, u, MORE_INFO, Config.s_ChanServ, "SET"); } - else - this->OnSyntaxError(u, "XOP"); return MOD_CONT; } -#undef CHECKLEV - - CommandReturn DoSetPeace(User * u, ChannelInfo * ci, const ci::string ¶m) + bool OnHelp(User *u, const ci::string &subcommand) { - if (param == "ON") - { - ci->SetFlag(CI_PEACE); - notice_lang(Config.s_ChanServ, u, CHAN_SET_PEACE_ON, ci->name.c_str()); - } - else if (param == "OFF") + if (subcommand.empty()) { - ci->UnsetFlag(CI_PEACE); - notice_lang(Config.s_ChanServ, u, CHAN_SET_PEACE_OFF, ci->name.c_str()); + notice_help(Config.s_ChanServ, u, CHAN_HELP_SET_HEAD); + for (std::map<ci::string, Command *>::iterator it = this->subcommands.begin(); it != this->subcommands.end(); ++it) + it->second->OnServHelp(u); + notice_help(Config.s_ChanServ, u, CHAN_HELP_SET_TAIL); + return true; } else - this->OnSyntaxError(u, "PEACE"); - - return MOD_CONT; - } - - CommandReturn DoSetPersist(User *u, ChannelInfo *ci, const ci::string ¶m) - { - ChannelMode *cm = ModeManager::FindChannelModeByName(CMODE_PERM); - - if (param == "ON") { - if (!ci->HasFlag(CI_PERSIST)) - { - ci->SetFlag(CI_PERSIST); - - /* Channel doesn't exist, create it internally */ - if (!ci->c) - { - new Channel(ci->name); - if (ci->bi) - bot_join(ci); - } + Command *c = this->FindCommand(subcommand); - /* No botserv bot, no channel mode */ - if (!ci->bi && !cm) - { - /* Give them ChanServ - * Yes, this works fine with no Config.s_BotServ - */ - ChanServ->Assign(NULL, ci); - } - - /* Set the perm mode */ - if (cm && ci->c && !ci->c->HasMode(CMODE_PERM)) - { - ci->c->SetMode(NULL, cm); - } - } - - notice_lang(Config.s_ChanServ, u, CHAN_SET_PERSIST_ON, ci->name.c_str()); - } - else if (param == "OFF") - { - if (ci->HasFlag(CI_PERSIST)) + if (c) { - ci->UnsetFlag(CI_PERSIST); - - /* Unset perm mode */ - if (cm && ci->c && ci->c->HasMode(CMODE_PERM)) - ci->c->RemoveMode(NULL, cm); - if (Config.s_BotServ && ci->bi && ci->c->users.size() == Config.BSMinUsers - 1) - ircdproto->SendPart(ci->bi, ci->c, NULL); - - /* No channel mode, no BotServ, but using ChanServ as the botserv bot - * which was assigned when persist was set on - */ - if (!cm && !Config.s_BotServ && ci->bi) - { - /* Unassign bot */ - ChanServ->UnAssign(NULL, ci); - } - - if (ci->c && ci->c->users.empty()) - delete ci->c; + return c->OnHelp(u, subcommand); } - - notice_lang(Config.s_ChanServ, u, CHAN_SET_PERSIST_OFF, ci->name.c_str()); } - else - this->OnSyntaxError(u, "PERSIST"); - return MOD_CONT; + return false; } - CommandReturn DoSetNoExpire(User * u, ChannelInfo * ci, const ci::string ¶m) + void OnSyntaxError(User *u, const ci::string &subcommand) { - if (!u->Account()->HasCommand("chanserv/set/noexpire")) - { - notice_lang(Config.s_ChanServ, u, ACCESS_DENIED); - return MOD_CONT; - } - if (param == "ON") - { - ci->SetFlag(CI_NO_EXPIRE); - notice_lang(Config.s_ChanServ, u, CHAN_SET_NOEXPIRE_ON, ci->name.c_str()); - } - else if (param == "OFF") - { - ci->UnsetFlag(CI_NO_EXPIRE); - notice_lang(Config.s_ChanServ, u, CHAN_SET_NOEXPIRE_OFF, ci->name.c_str()); - } - else - this->OnSyntaxError(u, "NOEXPIRE"); - - return MOD_CONT; + syntax_error(Config.s_ChanServ, u, "SET", CHAN_SET_SYNTAX); } - public: - CommandCSSet() : Command("SET", 2, 3) + void OnServHelp(User *u) { + notice_lang(Config.s_ChanServ, u, CHAN_HELP_CMD_SET); } - CommandReturn Execute(User *u, const std::vector<ci::string> ¶ms) + bool AddSubcommand(Command *c) { - const char *chan = params[0].c_str(); - ci::string cmd = params[1]; - ci::string param = params.size() > 2 ? params[2] : ""; - ChannelInfo *ci = cs_findchan(chan); - bool is_servadmin = u->Account()->HasPriv("chanserv/set"); - - if (readonly) { - notice_lang(Config.s_ChanServ, u, CHAN_SET_DISABLED); - return MOD_CONT; - } - - if (param.empty() && cmd != "SUCCESSOR" && cmd != "URL" && cmd != "EMAIL" && cmd != "ENTRYMSG" && cmd != "MLOCK") - this->OnSyntaxError(u, cmd); - else if (!is_servadmin && !check_access(u, ci, CA_SET)) - notice_lang(Config.s_ChanServ, u, ACCESS_DENIED); - else if (cmd == "FOUNDER") - { - if (!is_servadmin && (ci->HasFlag(CI_SECUREFOUNDER) ? !IsFounder(u, ci) : !check_access(u, ci, CA_FOUNDER))) - notice_lang(Config.s_ChanServ, u, ACCESS_DENIED); - else - DoSetFounder(u, ci, param); - } - else if (cmd == "SUCCESSOR") - { - if (!is_servadmin && (ci->HasFlag(CI_SECUREFOUNDER) ? !IsFounder(u, ci) : !check_access(u, ci, CA_FOUNDER))) - notice_lang(Config.s_ChanServ, u, ACCESS_DENIED); - else - DoSetSuccessor(u, ci, param); - } - else if (cmd == "DESC") - DoSetDesc(u, ci, param); - else if (cmd == "URL") - DoSetURL(u, ci, param); - else if (cmd == "EMAIL") - DoSetEMail(u, ci, param); - else if (cmd == "ENTRYMSG") - DoSetEntryMsg(u, ci, param); - else if (cmd == "TOPIC") - notice_lang(Config.s_ChanServ, u, OBSOLETE_COMMAND, "TOPIC"); - else if (cmd == "BANTYPE") - DoSetBanType(u, ci, param.c_str()); - else if (cmd == "MLOCK") - DoSetMLock(u, ci, param.c_str()); - else if (cmd == "KEEPTOPIC") - DoSetKeepTopic(u, ci, param); - else if (cmd == "TOPICLOCK") - DoSetTopicLock(u, ci, param); - else if (cmd == "PRIVATE") - DoSetPrivate(u, ci, param); - else if (cmd == "SECUREOPS") - DoSetSecureOps(u, ci, param); - else if (cmd == "SECUREFOUNDER") - { - if (!is_servadmin && (ci->HasFlag(CI_SECUREFOUNDER) ? !IsFounder(u, ci) : !check_access(u, ci, CA_FOUNDER))) - notice_lang(Config.s_ChanServ, u, ACCESS_DENIED); - else - DoSetSecureFounder(u, ci, param); - } - else if (cmd == "RESTRICTED") - DoSetRestricted(u, ci, param); - else if (cmd == "SECURE") - DoSetSecure(u, ci, param); - else if (cmd == "SIGNKICK") - DoSetSignKick(u, ci, param); - else if (cmd == "OPNOTICE") - DoSetOpNotice(u, ci, param); - else if (cmd == "XOP") - { - if (!FindModule("cs_xop")) - notice_lang(Config.s_ChanServ, u, CHAN_XOP_NOT_AVAILABLE, cmd.c_str()); - else - DoSetXOP(u, ci, param); - } - else if (cmd == "PEACE") - DoSetPeace(u, ci, param); - else if (cmd == "PERSIST") - DoSetPersist(u, ci, param); - else if (cmd == "NOEXPIRE") - DoSetNoExpire(u, ci, param); - else - { - notice_lang(Config.s_ChanServ, u, CHAN_SET_UNKNOWN_OPTION, cmd.c_str()); - notice_lang(Config.s_ChanServ, u, MORE_INFO, Config.s_ChanServ, "SET"); - } - - return MOD_CONT; + return this->subcommands.insert(std::make_pair(c->name, c)).second; } - bool OnHelp(User *u, const ci::string &subcommand) + bool DelSubcommand(const ci::string &command) { - if (subcommand.empty()) - { - notice_help(Config.s_ChanServ, u, CHAN_HELP_SET); - if (u->Account() && u->Account()->IsServicesOper()) - notice_help(Config.s_ChanServ, u, CHAN_SERVADMIN_HELP_SET); - } - else if (subcommand == "FOUNDER") - notice_help(Config.s_ChanServ, u, CHAN_HELP_SET_FOUNDER); - else if (subcommand == "SUCCESSOR") - notice_help(Config.s_ChanServ, u, CHAN_HELP_SET_SUCCESSOR); - else if (subcommand == "DESC") - notice_help(Config.s_ChanServ, u, CHAN_HELP_SET_DESC); - else if (subcommand == "URL") - notice_help(Config.s_ChanServ, u, CHAN_HELP_SET_URL); - else if (subcommand == "EMAIL") - notice_help(Config.s_ChanServ, u, CHAN_HELP_SET_EMAIL); - else if (subcommand == "ENTRYMSG") - notice_help(Config.s_ChanServ, u, CHAN_HELP_SET_ENTRYMSG); - else if (subcommand == "BANTYPE") - notice_help(Config.s_ChanServ, u, CHAN_HELP_SET_BANTYPE); - else if (subcommand == "PRIVATE") - notice_help(Config.s_ChanServ, u, CHAN_HELP_SET_PRIVATE); - else if (subcommand == "KEEPTOPIC") - notice_help(Config.s_ChanServ, u, CHAN_HELP_SET_KEEPTOPIC); - else if (subcommand == "TOPICLOCK") - notice_help(Config.s_ChanServ, u, CHAN_HELP_SET_TOPICLOCK); - else if (subcommand == "MLOCK") - notice_help(Config.s_ChanServ, u, CHAN_HELP_SET_MLOCK); - else if (subcommand == "RESTRICTED") - notice_help(Config.s_ChanServ, u, CHAN_HELP_SET_RESTRICTED); - else if (subcommand == "SECURE") - notice_help(Config.s_ChanServ, u, CHAN_HELP_SET_SECURE, Config.s_NickServ); - else if (subcommand == "SECUREOPS") - notice_help(Config.s_ChanServ, u, CHAN_HELP_SET_SECUREOPS); - else if (subcommand == "SECUREFOUNDER") - notice_help(Config.s_ChanServ, u, CHAN_HELP_SET_SECUREFOUNDER); - else if (subcommand == "SIGNKICK") - notice_help(Config.s_ChanServ, u, CHAN_HELP_SET_SIGNKICK); - else if (subcommand == "OPNOTICE") - notice_help(Config.s_ChanServ, u, CHAN_HELP_SET_OPNOTICE); - else if (subcommand == "XOP") - notice_help(Config.s_ChanServ, u, CHAN_HELP_SET_XOP); - else if (subcommand == "PEACE") - notice_help(Config.s_ChanServ, u, CHAN_HELP_SET_PEACE); - else if (subcommand == "PERSIST") - notice_help(Config.s_ChanServ, u, CHAN_HELP_SET_PERSIST); - else if (subcommand == "NOEXPIRE") - notice_help(Config.s_ChanServ, u, CHAN_SERVADMIN_HELP_SET_NOEXPIRE); - else - return false; - - return true; + return this->subcommands.erase(command); } - void OnSyntaxError(User *u, const ci::string &subcommand) + Command *FindCommand(const ci::string &subcommand) { - int reply = CHAN_SET_SYNTAX; - ci::string command = "SET"; + std::map<ci::string, Command *>::const_iterator it = this->subcommands.find(subcommand); - if (!subcommand.empty()) + if (it != this->subcommands.end()) { - if (subcommand == "KEEPTOPIC") - reply = CHAN_SET_KEEPTOPIC_SYNTAX; - else if (subcommand == "TOPICLOCK") - reply = CHAN_SET_TOPICLOCK_SYNTAX; - else if (subcommand == "PRIVATE") - reply = CHAN_SET_PRIVATE_SYNTAX; - else if (subcommand == "SECUREOPS") - reply = CHAN_SET_SECUREOPS_SYNTAX; - else if (subcommand == "SECUREFOUNDER") - reply = CHAN_SET_SECUREFOUNDER_SYNTAX; - else if (subcommand == "RESTRICTED") - reply = CHAN_SET_RESTRICTED_SYNTAX; - else if (subcommand == "SECURE") - reply = CHAN_SET_SECURE_SYNTAX; - else if (subcommand == "SIGNKICK") - reply = CHAN_SET_SIGNKICK_SYNTAX; - else if (subcommand == "OPNOTICE") - reply = CHAN_SET_OPNOTICE_SYNTAX; - else if (subcommand == "XOP") - reply = CHAN_SET_XOP_SYNTAX; - else if (subcommand == "PEACE") - reply = CHAN_SET_PEACE_SYNTAX; - else if (subcommand == "PERSIST") - reply = CHAN_SET_PERSIST_SYNTAX; - else if (subcommand == "NOEXPIRE") - reply = CHAN_SET_NOEXPIRE_SYNTAX; - - if (reply != CHAN_SET_SYNTAX) - command += " " + subcommand; + return it->second; } - syntax_error(Config.s_ChanServ, u, command.c_str(), reply); - } - - void OnServHelp(User *u) - { - notice_lang(Config.s_ChanServ, u, CHAN_HELP_CMD_SET); + return NULL; } }; @@ -827,7 +128,8 @@ class CSSet : public Module this->SetAuthor("Anope"); this->SetVersion(VERSION_STRING); this->SetType(CORE); - this->AddCommand(ChanServ, new CommandCSSet()); + + this->AddCommand(ChanServ, new CommandCSSet("SET")); } }; diff --git a/src/core/cs_set_bantype.cpp b/src/core/cs_set_bantype.cpp new file mode 100644 index 000000000..985c6f1e6 --- /dev/null +++ b/src/core/cs_set_bantype.cpp @@ -0,0 +1,113 @@ +/* ChanServ core functions + * + * (C) 2003-2010 Anope Team + * Contact us at team@anope.org + * + * Please read COPYING and README for further details. + * + * Based on the original code of Epona by Lara. + * Based on the original code of Services by Andy Church. + * + * $Id$ + * + */ +/*************************************************************************/ + +#include "module.h" + +class CommandCSSetBanType : public Command +{ + public: + CommandCSSetBanType(const ci::string &cname, const std::string &cpermission = "") : Command(cname, 2, 2, cpermission) + { + } + + CommandReturn Execute(User *u, const std::vector<ci::string> ¶ms) + { + ChannelInfo *ci = cs_findchan(params[0]); + assert(ci); + + char *endptr; + + int16 bantype = strtol(params[1].c_str(), &endptr, 10); + + if (*endptr != 0 || bantype < 0 || bantype > 3) + notice_lang(Config.s_ChanServ, u, CHAN_SET_BANTYPE_INVALID, params[1].c_str()); + else + { + ci->bantype = bantype; + notice_lang(Config.s_ChanServ, u, CHAN_SET_BANTYPE_CHANGED, ci->name.c_str(), ci->bantype); + } + + return MOD_CONT; + } + + bool OnHelp(User *u, const ci::string &) + { + notice_help(Config.s_ChanServ, u, CHAN_HELP_SET_BANTYPE, "SET"); + return true; + } + + void OnSyntaxError(User *u, const ci::string &) + { + // XXX + syntax_error(Config.s_ChanServ, u, "SET", CHAN_SET_SYNTAX); + } + + void OnServHelp(User *u) + { + notice_lang(Config.s_ChanServ, u, CHAN_HELP_CMD_SET_BANTYPE); + } +}; + +class CommandCSSASetBanType : public CommandCSSetBanType +{ + public: + CommandCSSASetBanType(const ci::string &cname) : CommandCSSetBanType(cname, "chanserv/saset/bantype") + { + } + + bool OnHelp(User *u, const ci::string &) + { + notice_help(Config.s_ChanServ, u, CHAN_HELP_SET_BANTYPE, "SASET"); + return true; + } + + void OnSyntaxError(User *u, const ci::string &) + { + // XXX + syntax_error(Config.s_ChanServ, u, "SASET", CHAN_SASET_SYNTAX); + } +}; + +class CSSetBanType : public Module +{ + public: + CSSetBanType(const std::string &modname, const std::string &creator) : Module(modname, creator) + { + this->SetAuthor("Anope"); + this->SetVersion("$Id$"); + this->SetType(CORE); + + Command *c = FindCommand(ChanServ, "SET"); + if (c) + c->AddSubcommand(new CommandCSSetBanType("BANTYPE")); + + c = FindCommand(ChanServ, "SASET"); + if (c) + c->AddSubcommand(new CommandCSSASetBanType("BANTYPE")); + } + + ~CSSetBanType() + { + Command *c = FindCommand(ChanServ, "SET"); + if (c) + c->DelSubcommand("BANTYPE"); + + c = FindCommand(ChanServ, "SASET"); + if (c) + c->DelSubcommand("BANTYPE"); + } +}; + +MODULE_INIT(CSSetBanType) diff --git a/src/core/cs_set_description.cpp b/src/core/cs_set_description.cpp new file mode 100644 index 000000000..44e6090bf --- /dev/null +++ b/src/core/cs_set_description.cpp @@ -0,0 +1,107 @@ +/* ChanServ core functions + * + * (C) 2003-2010 Anope Team + * Contact us at team@anope.org + * + * Please read COPYING and README for further details. + * + * Based on the original code of Epona by Lara. + * Based on the original code of Services by Andy Church. + * + * $Id$ + * + */ +/*************************************************************************/ + +#include "module.h" + +class CommandCSSetDescription : public Command +{ + public: + CommandCSSetDescription(const ci::string &cname, const std::string &cpermission = "") : Command(cname, 2, 2, cpermission) + { + } + + CommandReturn Execute(User *u, const std::vector<ci::string> ¶ms) + { + ChannelInfo *ci = cs_findchan(params[0]); + assert(ci); + + if (ci->desc) + delete [] ci->desc; + ci->desc = sstrdup(params[1].c_str()); + + notice_lang(Config.s_ChanServ, u, CHAN_DESC_CHANGED, ci->name.c_str(), ci->desc); + + return MOD_CONT; + } + + bool OnHelp(User *u, const ci::string &) + { + notice_help(Config.s_ChanServ, u, CHAN_HELP_SET_DESC, "SET"); + return true; + } + + void OnSyntaxError(User *u, const ci::string &) + { + // XXX + syntax_error(Config.s_ChanServ, u, "SET", CHAN_SET_SYNTAX); + } + + void OnServHelp(User *u) + { + notice_lang(Config.s_ChanServ, u, CHAN_HELP_CMD_SET_DESC); + } +}; + +class CommandCSSASetDescription : public CommandCSSetDescription +{ + public: + CommandCSSASetDescription(const ci::string &cname) : CommandCSSetDescription(cname, "chanserv/saset/description") + { + } + + bool OnHelp(User *u, const ci::string &) + { + notice_help(Config.s_ChanServ, u, CHAN_HELP_SET_DESC, "SASET"); + return true; + } + + void OnSyntaxError(User *u, const ci::string &) + { + // XXX + syntax_error(Config.s_ChanServ, u, "SASET", CHAN_SASET_SYNTAX); + } +}; + +class CSSetDescription : public Module +{ + public: + CSSetDescription(const std::string &modname, const std::string &creator) : Module(modname, creator) + { + this->SetAuthor("Anope"); + this->SetVersion("$Id$"); + this->SetType(CORE); + + Command *c = FindCommand(ChanServ, "SET"); + if (c) + c->AddSubcommand(new CommandCSSetDescription("DESC")); + + c = FindCommand(ChanServ, "SASEt"); + if (c) + c->AddSubcommand(new CommandCSSASetDescription("DESC")); + } + + ~CSSetDescription() + { + Command *c = FindCommand(ChanServ, "SET"); + if (c) + c->DelSubcommand("DESC"); + + c = FindCommand(ChanServ, "SASET"); + if (c) + c->DelSubcommand("DESC"); + } +}; + +MODULE_INIT(CSSetDescription) diff --git a/src/core/cs_set_email.cpp b/src/core/cs_set_email.cpp new file mode 100644 index 000000000..d226a3b06 --- /dev/null +++ b/src/core/cs_set_email.cpp @@ -0,0 +1,106 @@ +/* ChanServ core functions + * + * (C) 2003-2010 Anope Team + * Contact us at team@anope.org + * + * Please read COPYING and README for further details. + * + * Based on the original code of Epona by Lara. + * Based on the original code of Services by Andy Church. + * + * $Id$ + * + */ +/*************************************************************************/ + +#include "module.h" + +class CommandCSSetEMail : public Command +{ + public: + CommandCSSetEMail(const ci::string &cname, const std::string &cpermission = "") : Command(cname, 1, 2, cpermission) + { + } + + CommandReturn Execute(User *u, const std::vector<ci::string> ¶ms) + { + ChannelInfo *ci = cs_findchan(params[0]); + assert(ci); + + if (ci->email) + delete [] ci->email; + if (params.size() > 1) + { + ci->email = sstrdup(params[1].c_str()); + notice_lang(Config.s_ChanServ, u, CHAN_EMAIL_CHANGED, ci->name.c_str(), ci->email); + } + else + { + ci->email = NULL; + notice_lang(Config.s_ChanServ, u, CHAN_EMAIL_UNSET, ci->name.c_str()); + } + + return MOD_CONT; + } + + bool OnHelp(User *u, const ci::string &) + { + notice_help(Config.s_ChanServ, u, CHAN_HELP_SET_EMAIL, "SET"); + return true; + } + + void OnSyntaxError(User *u, const ci::string &) + { + // XXX + syntax_error(Config.s_ChanServ, u, "SET", CHAN_SET_SYNTAX); + } + + void OnServHelp(User *u) + { + notice_lang(Config.s_ChanServ, u, CHAN_HELP_CMD_SET_EMAIL); + } +}; + +class CommandCSSASetEMail : public CommandCSSetEMail +{ + public: + CommandCSSASetEMail(const ci::string &cname) : CommandCSSetEMail(cname, "chanserv/saset/email") + { + } + + bool OnHelp(User *u, const ci::string &) + { + notice_help(Config.s_ChanServ, u, CHAN_HELP_SET_EMAIL, "SASET"); + return true; + } + + void OnSyntaxError(User *u, const ci::string &) + { + /// XXX + syntax_error(Config.s_ChanServ, u, "SASET", CHAN_SASET_SYNTAX); + } +}; + +class CSSetEMail : public Module +{ + public: + CSSetEMail(const std::string &modname, const std::string &creator) : Module(modname, creator) + { + this->SetAuthor("Anope"); + this->SetVersion("$Id$"); + this->SetType(CORE); + + Command *c = FindCommand(ChanServ, "SET"); + if (c) + c->AddSubcommand(new CommandCSSetEMail("EMAIL")); + } + + ~CSSetEMail() + { + Command *c = FindCommand(ChanServ, "SET"); + if (c) + c->DelSubcommand("EMAIL"); + } +}; + +MODULE_INIT(CSSetEMail) diff --git a/src/core/cs_set_entrymsg.cpp b/src/core/cs_set_entrymsg.cpp new file mode 100644 index 000000000..b7c223546 --- /dev/null +++ b/src/core/cs_set_entrymsg.cpp @@ -0,0 +1,114 @@ +/* ChanServ core functions + * + * (C) 2003-2010 Anope Team + * Contact us at team@anope.org + * + * Please read COPYING and README for further details. + * + * Based on the original code of Epona by Lara. + * Based on the original code of Services by Andy Church. + * + * $Id$ + * + */ +/*************************************************************************/ + +#include "module.h" + +class CommandCSSetEntryMsg : public Command +{ + public: + CommandCSSetEntryMsg(const ci::string &cname, const std::string &cpermission = "") : Command(cname, 1, 2, cpermission) + { + } + + CommandReturn Execute(User *u, const std::vector<ci::string> ¶ms) + { + ChannelInfo *ci = cs_findchan(params[0]); + assert(ci); + + if (ci->entry_message) + delete [] ci->entry_message; + if (params.size() > 1) + { + ci->entry_message = sstrdup(params[1].c_str()); + notice_lang(Config.s_ChanServ, u, CHAN_ENTRY_MSG_CHANGED, ci->name.c_str(), ci->entry_message); + } + else + { + ci->entry_message = NULL; + notice_lang(Config.s_ChanServ, u, CHAN_ENTRY_MSG_UNSET, ci->name.c_str()); + } + + return MOD_CONT; + } + + bool OnHelp(User *u, const ci::string &) + { + notice_help(Config.s_ChanServ, u, CHAN_HELP_SET_ENTRYMSG, "SEt"); + return true; + } + + void OnSyntaxError(User *u, const ci::string &) + { + // XXX + syntax_error(Config.s_ChanServ, u, "SET", CHAN_SET_SYNTAX); + } + + void OnServHelp(User *u) + { + notice_lang(Config.s_ChanServ, u, CHAN_HELP_CMD_SET_ENTRYMSG); + } +}; + +class CommandCSSASetEntryMsg : public CommandCSSetEntryMsg +{ + public: + CommandCSSASetEntryMsg(const ci::string &cname) : CommandCSSetEntryMsg(cname, "/chanserv/saset/entrymsg") + { + } + + bool OnHelp(User *u, const ci::string &) + { + notice_help(Config.s_ChanServ, u, CHAN_HELP_SET_ENTRYMSG, "SASET"); + return true; + } + + void OnSyntaxError(User *u, const ci::string &) + { + // XXX + syntax_error(Config.s_ChanServ, u, "SASET", CHAN_SASET_SYNTAX); + } +}; + +class CSSetEntryMsg : public Module +{ + public: + CSSetEntryMsg(const std::string &modname, const std::string &creator) : Module(modname, creator) + { + this->SetAuthor("Anope"); + this->SetVersion("$Id$"); + this->SetType(CORE); + + Command *c = FindCommand(ChanServ, "SET"); + if (c) + c->AddSubcommand(new CommandCSSetEntryMsg("ENTRYMSG")); + + c = FindCommand(ChanServ, "SASET"); + if (c) + c->AddSubcommand(new CommandCSSASetEntryMsg("ENTRYMSG")); + } + + ~CSSetEntryMsg() + { + Command *c = FindCommand(ChanServ, "SET"); + if (c) + c->DelSubcommand("ENTRYMSG"); + + c = FindCommand(ChanServ, "SASET"); + if (c) + c->DelSubcommand("ENTRYMSG"); + } +}; + +MODULE_INIT(CSSetEntryMsg) diff --git a/src/core/cs_set_founder.cpp b/src/core/cs_set_founder.cpp new file mode 100644 index 000000000..6a456a0f6 --- /dev/null +++ b/src/core/cs_set_founder.cpp @@ -0,0 +1,142 @@ +/* ChanServ core functions + * + * (C) 2003-2010 Anope Team + * Contact us at team@anope.org + * + * Please read COPYING and README for further details. + * + * Based on the original code of Epona by Lara. + * Based on the original code of Services by Andy Church. + * + * $Id$ + * + */ +/*************************************************************************/ + +#include "module.h" + +class CommandCSSetFounder : public Command +{ + public: + CommandCSSetFounder(const ci::string &cname, const std::string &cpermission = "") : Command(cname, 2, 2, cpermission) + { + } + + CommandReturn Execute(User *u, const std::vector<ci::string> ¶ms) + { + ChannelInfo *ci = cs_findchan(params[0]); + assert(ci); + + if (this->permission.empty() && (ci->HasFlag(CI_SECUREFOUNDER) ? !IsFounder(u, ci) : !check_access(u, ci, CA_FOUNDER))) + { + notice_lang(Config.s_ChanServ, u, ACCESS_DENIED); + return MOD_CONT; + } + + NickAlias *na = findnick(params[1]); + NickCore *nc, *nc0 = ci->founder; + + + if (!na) + { + notice_lang(Config.s_ChanServ, u, NICK_X_NOT_REGISTERED, params[1].c_str()); + return MOD_CONT; + } + else if (na->HasFlag(NS_FORBIDDEN)) + { + notice_lang(Config.s_ChanServ, u, NICK_X_FORBIDDEN, na->nick); + return MOD_CONT; + } + + nc = na->nc; + if (Config.CSMaxReg && nc->channelcount >= Config.CSMaxReg && !u->Account()->HasPriv("chanserv/no-register-limit")) + { + notice_lang(Config.s_ChanServ, u, CHAN_SET_FOUNDER_TOO_MANY_CHANS, na->nick); + return MOD_CONT; + } + + Alog() << Config.s_ChanServ << ": Changing founder of " << ci->name << " from " << ci->founder->display + << " to " << nc->display << " by " << u->GetMask(); + + /* Founder and successor must not be the same group */ + if (nc == ci->successor) + ci->successor = NULL; + + nc0->channelcount--; + ci->founder = nc; + nc->channelcount++; + + notice_lang(Config.s_ChanServ, u, CHAN_FOUNDER_CHANGED, ci->name.c_str(), na->nick); + + return MOD_CONT; + } + + bool OnHelp(User *u, const ci::string &) + { + notice_help(Config.s_ChanServ, u, CHAN_HELP_SET_FOUNDER, "SET"); + return true; + } + + void OnSyntaxError(User *u, const ci::string &) + { + // XXX + syntax_error(Config.s_ChanServ, u, "SET", CHAN_SET_SYNTAX); + } + + void OnServHelp(User *u) + { + notice_lang(Config.s_ChanServ, u, CHAN_HELP_CMD_SET_FOUNDER); + } +}; + +class CommandCSSASetFounder : public CommandCSSetFounder +{ + public: + CommandCSSASetFounder(const ci::string &cname) : CommandCSSetFounder(cname, "chanserv/saset/founder") + { + } + + bool OnHelp(User *u, const ci::string &) + { + notice_help(Config.s_ChanServ, u, CHAN_HELP_SET_FOUNDER, "SASET"); + return true; + } + + void OnSyntaxError(User *u) + { + // XXX + syntax_error(Config.s_ChanServ, u, "SASET", CHAN_SASET_SYNTAX); + } +}; + +class CSSetFounder : public Module +{ + public: + CSSetFounder(const std::string &modname, const std::string &creator) : Module(modname, creator) + { + this->SetAuthor("Anope"); + this->SetVersion("$Id$"); + this->SetType(CORE); + + Command *c = FindCommand(ChanServ, "SET"); + if (c) + c->AddSubcommand(new CommandCSSetFounder("FOUNDER")); + + c = FindCommand(ChanServ, "SASET"); + if (c) + c->AddSubcommand(new CommandCSSASetFounder("FOUNDER")); + } + + ~CSSetFounder() + { + Command *c = FindCommand(ChanServ, "SET"); + if (c) + c->DelSubcommand("FOUNDER"); + + c = FindCommand(ChanServ, "SASET"); + if (c) + c->DelSubcommand("FOUNDER"); + } +}; + +MODULE_INIT(CSSetFounder) diff --git a/src/core/cs_set_keeptopic.cpp b/src/core/cs_set_keeptopic.cpp new file mode 100644 index 000000000..87a4660cf --- /dev/null +++ b/src/core/cs_set_keeptopic.cpp @@ -0,0 +1,112 @@ +/* ChanServ core functions + * + * (C) 2003-2010 Anope Team + * Contact us at team@anope.org + * + * Please read COPYING and README for further details. + * + * Based on the original code of Epona by Lara. + * Based on the original code of Services by Andy Church. + * + * $Id$ + * + */ +/*************************************************************************/ + +#include "module.h" + +class CommandCSSetKeepTopic : public Command +{ + public: + CommandCSSetKeepTopic(const ci::string &cname, const std::string &cpermission = "") : Command(cname, 2, 2, cpermission) + { + } + + CommandReturn Execute(User *u, const std::vector<ci::string> ¶ms) + { + ChannelInfo *ci = cs_findchan(params[0]); + assert(ci); + + if (params[1] == "ON") + { + ci->SetFlag(CI_KEEPTOPIC); + notice_lang(Config.s_ChanServ, u, CHAN_SET_KEEPTOPIC_ON, ci->name.c_str()); + } + else if (params[1] == "OFF") + { + ci->UnsetFlag(CI_KEEPTOPIC); + notice_lang(Config.s_ChanServ, u, CHAN_SET_KEEPTOPIC_OFF, ci->name.c_str()); + } + else + this->OnSyntaxError(u, "KEEPTOPIC"); + + return MOD_CONT; + } + + bool OnHelp(User *u, const ci::string &) + { + notice_help(Config.s_ChanServ, u, CHAN_HELP_SET_KEEPTOPIC, "SET"); + return true; + } + + void OnSyntaxError(User *u, const ci::string &) + { + syntax_error(Config.s_ChanServ, u, "SET KEEPTOPIC", CHAN_SET_KEEPTOPIC_SYNTAX); + } + + void OnServHelp(User *u) + { + notice_lang(Config.s_ChanServ, u, CHAN_HELP_CMD_SET_KEEPTOPIC); + } +}; + +class CommandCSSASetKeepTopic : public CommandCSSetKeepTopic +{ + public: + CommandCSSASetKeepTopic(const ci::string &cname) : CommandCSSetKeepTopic(cname, "chanserv/saset/keeptopic") + { + } + + bool OnHelp(User *u, const ci::string &) + { + notice_help(Config.s_ChanServ, u, CHAN_HELP_SET_KEEPTOPIC, "SASET"); + return true; + } + + void OnSyntaxError(User *u, const ci::string &) + { + syntax_error(Config.s_ChanServ, u, "SET KEEPTOPIC", CHAN_SASET_KEEPTOPIC_SYNTAX); + } +}; + +class CSSetKeepTopic : public Module +{ + public: + CSSetKeepTopic(const std::string &modname, const std::string &creator) : Module(modname, creator) + { + this->SetAuthor("Anope"); + this->SetVersion("$Id$"); + this->SetType(CORE); + + Command *c = FindCommand(ChanServ, "SET"); + if (c) + c->AddSubcommand(new CommandCSSetKeepTopic("KEEPTOPIC")); + + c = FindCommand(ChanServ, "SASET"); + if (c) + c->AddSubcommand(new CommandCSSASetKeepTopic("KEEPTOPIC")); + } + + ~CSSetKeepTopic() + { + Command *c = FindCommand(ChanServ, "SET"); + if (c) + c->DelSubcommand("KEEPTOPIC"); + + c = FindCommand(ChanServ, "SASET"); + if (c) + c->DelSubcommand("KEEPTOPIC"); + } +}; + +MODULE_INIT(CSSetKeepTopic) diff --git a/src/core/cs_set_mlock.cpp b/src/core/cs_set_mlock.cpp new file mode 100644 index 000000000..d75363ac4 --- /dev/null +++ b/src/core/cs_set_mlock.cpp @@ -0,0 +1,197 @@ +/* ChanServ core functions + * + * (C) 2003-2010 Anope Team + * Contact us at team@anope.org + * + * Please read COPYING and README for further details. + * + * Based on the original code of Epona by Lara. + * Based on the original code of Services by Andy Church. + * + * $Id$ + * + */ +/*************************************************************************/ + +#include "module.h" + +class CommandCSSetMLock : public Command +{ + public: + CommandCSSetMLock(const ci::string &cname, const std::string &cpermission = "") : Command(cname, 1, 0, cpermission) + { + } + + CommandReturn Execute(User *u, const std::vector<ci::string> ¶ms) + { + ChannelInfo *ci = cs_findchan(params[0]); + assert(ci); + + int add = -1; /* 1 if adding, 0 if deleting, -1 if neither */ + unsigned char mode; + ChannelMode *cm; + unsigned paramcount = 2; + + ci->ClearMLock(); + ci->ClearParams(); + + if (ModeManager::FindChannelModeByName(CMODE_REGISTERED)) + ci->SetMLock(CMODE_REGISTERED, true); + + const char *modes = params[1].c_str(); + while (modes && (mode = *modes++)) + { + switch (mode) { + case '+': + add = 1; + continue; + case '-': + add = 0; + continue; + default: + if (add < 0) + continue; + } + + if ((cm = ModeManager::FindChannelModeByChar(mode))) + { + if (cm->Type == MODE_STATUS || cm->Type == MODE_LIST || !cm->CanSet(u)) + { + notice_lang(Config.s_ChanServ, u, CHAN_SET_MLOCK_IMPOSSIBLE_CHAR, mode); + } + else if (add) + { + ci->RemoveMLock(cm->Name); + + if (cm->Type == MODE_PARAM) + { + if (paramcount >= params.size()) + continue; + + std::string param = params[paramcount].c_str(); + + ChannelModeParam *cmp = dynamic_cast<ChannelModeParam *>(cm); + + if (!cmp || !cmp->IsValid(param)) + continue; + + ci->SetMLock(cmp->Name, true, param); + } + else + { + ci->SetMLock(cm->Name, true); + } + } + else + { + ci->SetMLock(cm->Name, false); + } + } + else + notice_lang(Config.s_ChanServ, u, CHAN_SET_MLOCK_UNKNOWN_CHAR, mode); + } /* while (*modes) */ + + if (ModeManager::FindChannelModeByName(CMODE_REDIRECT)) + { + /* We can't mlock +L if +l is not mlocked as well. */ + if (ci->HasMLock(CMODE_REDIRECT, true) && !ci->HasMLock(CMODE_LIMIT, true)) + { + ci->RemoveMLock(CMODE_REDIRECT); + notice_lang(Config.s_ChanServ, u, CHAN_SET_MLOCK_L_REQUIRED); + } + } + + /* Some ircd we can't set NOKNOCK without INVITE */ + /* So check if we need there is a NOKNOCK MODE and that we need INVITEONLY */ + if (ModeManager::FindChannelModeByName(CMODE_NOKNOCK) && ircd->knock_needs_i) + { + if (ci->HasMLock(CMODE_NOKNOCK, true) && !ci->HasMLock(CMODE_INVITE, true)) + { + ci->RemoveMLock(CMODE_NOKNOCK); + notice_lang(Config.s_ChanServ, u, CHAN_SET_MLOCK_K_REQUIRED); + } + } + + /* Since we always enforce mode r there is no way to have no + * mode lock at all. + */ + if (get_mlock_modes(ci, 0)) { + notice_lang(Config.s_ChanServ, u, CHAN_MLOCK_CHANGED, ci->name.c_str(), get_mlock_modes(ci, 0)); + } + + /* Implement the new lock. */ + if (ci->c) + check_modes(ci->c); + + return MOD_CONT; + } + + bool OnHelp(User *u, const ci::string &) + { + notice_help(Config.s_ChanServ, u, CHAN_HELP_SET_MLOCK, "SET"); + return true; + } + + void OnSyntaxError(User *u, const ci::string &) + { + // XXX + syntax_error(Config.s_ChanServ, u, "SET", CHAN_SET_SYNTAX); + } + + void OnServHelp(User *u) + { + notice_lang(Config.s_ChanServ, u, CHAN_HELP_CMD_SET_MLOCK); + } +}; + +class CommandCSSASetMLock : public CommandCSSetMLock +{ + public: + CommandCSSASetMLock(const ci::string &cname) : CommandCSSetMLock(cname, "chanserv/saset/mlock") + { + } + + bool OnHelp(User *u, const ci::string &) + { + notice_help(Config.s_ChanServ, u, CHAN_HELP_SET_MLOCK, "SASET"); + return true; + } + + void OnSyntaxError(User *u, const ci::string &) + { + // XXX + syntax_error(Config.s_ChanServ, u, "SASET", CHAN_SASET_SYNTAX); + } +}; + +class CSSetMLock : public Module +{ + public: + CSSetMLock(const std::string &modname, const std::string &creator) : Module(modname, creator) + { + this->SetAuthor("Anope"); + this->SetVersion("$Id$"); + this->SetType(CORE); + + Command *c = FindCommand(ChanServ, "SET"); + if (c) + c->AddSubcommand(new CommandCSSetMLock("MLOCK")); + + c = FindCommand(ChanServ, "SASET"); + if (c) + c->AddSubcommand(new CommandCSSASetMLock("MLOCK")); + } + + ~CSSetMLock() + { + Command *c = FindCommand(ChanServ, "SET"); + if (c) + c->DelSubcommand("MLOCK"); + + c = FindCommand(ChanServ, "SASET"); + if (c) + c->DelSubcommand("MLOCK"); + } +}; + +MODULE_INIT(CSSetMLock) diff --git a/src/core/cs_set_opnotice.cpp b/src/core/cs_set_opnotice.cpp new file mode 100644 index 000000000..b889869bd --- /dev/null +++ b/src/core/cs_set_opnotice.cpp @@ -0,0 +1,112 @@ +/* ChanServ core functions + * + * (C) 2003-2010 Anope Team + * Contact us at team@anope.org + * + * Please read COPYING and README for further details. + * + * Based on the original code of Epona by Lara. + * Based on the original code of Services by Andy Church. + * + * $Id$ + * + */ +/*************************************************************************/ + +#include "module.h" + +class CommandCSSetOpNotice : public Command +{ + public: + CommandCSSetOpNotice(const ci::string &cname, const std::string &cpermission = "") : Command(cname, 2, 2, cpermission) + { + } + + CommandReturn Execute(User *u, const std::vector<ci::string> ¶ms) + { + ChannelInfo *ci = cs_findchan(params[0]); + assert(ci); + + if (params[1] == "ON") + { + ci->SetFlag(CI_OPNOTICE); + notice_lang(Config.s_ChanServ, u, CHAN_SET_OPNOTICE_ON, ci->name.c_str()); + } + else if (params[1] == "OFF") + { + ci->UnsetFlag(CI_OPNOTICE); + notice_lang(Config.s_ChanServ, u, CHAN_SET_OPNOTICE_OFF, ci->name.c_str()); + } + else + this->OnSyntaxError(u, "OPNOTICE"); + + return MOD_CONT; + } + + bool OnHelp(User *u, const ci::string &) + { + notice_help(Config.s_ChanServ, u, CHAN_HELP_SET_OPNOTICE, "SET"); + return true; + } + + void OnSyntaxError(User *u, const ci::string &) + { + syntax_error(Config.s_ChanServ, u, "SET OPNOTICE", CHAN_SET_OPNOTICE_SYNTAX); + } + + void OnServHelp(User *u) + { + notice_lang(Config.s_ChanServ, u, CHAN_HELP_CMD_SET_OPNOTICE); + } +}; + +class CommandCSSASetOpNotice : public CommandCSSetOpNotice +{ + public: + CommandCSSASetOpNotice(const ci::string &cname) : CommandCSSetOpNotice(cname, "chanserv/saset/opnotice") + { + } + + bool OnHelp(User *u, const ci::string &) + { + notice_help(Config.s_ChanServ, u, CHAN_HELP_SET_OPNOTICE, "SASET"); + return true; + } + + void OnSyntaxError(User *u, const ci::string &) + { + syntax_error(Config.s_ChanServ, u, "SET OPNOTICE", CHAN_SASET_OPNOTICE_SYNTAX); + } +}; + +class CSSetOpNotice : public Module +{ + public: + CSSetOpNotice(const std::string &modname, const std::string &creator) : Module(modname, creator) + { + this->SetAuthor("Anope"); + this->SetVersion("$Id$"); + this->SetType(CORE); + + Command *c = FindCommand(ChanServ, "SET"); + if (c) + c->AddSubcommand(new CommandCSSetOpNotice("OPNOTICE")); + + c = FindCommand(ChanServ, "SASET"); + if (c) + c->AddSubcommand(new CommandCSSASetOpNotice("OPNOTICE")); + } + + ~CSSetOpNotice() + { + Command *c = FindCommand(ChanServ, "SET"); + if (c) + c->DelSubcommand("OPNOTICE"); + + c = FindCommand(ChanServ, "SASET"); + if (c) + c->DelSubcommand("OPNOTICE"); + } +}; + +MODULE_INIT(CSSetOpNotice) diff --git a/src/core/cs_set_peace.cpp b/src/core/cs_set_peace.cpp new file mode 100644 index 000000000..05cf5f863 --- /dev/null +++ b/src/core/cs_set_peace.cpp @@ -0,0 +1,114 @@ +/* ChanServ core functions + * + * (C) 2003-2010 Anope Team + * Contact us at team@anope.org + * + * Please read COPYING and README for further details. + * + * Based on the original code of Epona by Lara. + * Based on the original code of Services by Andy Church. + * + * $Id$ + * + */ +/*************************************************************************/ + +#include "module.h" + +class CommandCSSetPeace : public Command +{ + public: + CommandCSSetPeace(const ci::string &cname, const std::string &cpermission = "") : Command(cname, 2, 2, cpermission) + { + } + + CommandReturn Execute(User *u, const std::vector<ci::string> ¶ms) + { + ChannelInfo *ci = cs_findchan(params[0]); + assert(ci); + + if (params[1] == "ON") + { + ci->SetFlag(CI_PEACE); + notice_lang(Config.s_ChanServ, u, CHAN_SET_PEACE_ON, ci->name.c_str()); + } + else if (params[1] == "OFF") + { + ci->UnsetFlag(CI_PEACE); + notice_lang(Config.s_ChanServ, u, CHAN_SET_PEACE_OFF, ci->name.c_str()); + } + else + { + this->OnSyntaxError(u, "PEACE"); + } + + return MOD_CONT; + } + + bool OnHelp(User *u, const ci::string &) + { + notice_help(Config.s_ChanServ, u, CHAN_HELP_SET_PEACE, "SET"); + return true; + } + + void OnSyntaxError(User *u, const ci::string &) + { + syntax_error(Config.s_ChanServ, u, "SET PEACE", CHAN_SET_PEACE_SYNTAX); + } + + void OnServHelp(User *u) + { + notice_lang(Config.s_ChanServ, u, CHAN_HELP_CMD_SET_PEACE, "SET"); + } +}; + +class CommandCSSASetPeace : public CommandCSSetPeace +{ + public: + CommandCSSASetPeace(const ci::string &cname) : CommandCSSetPeace(cname, "chanserv/saset/peace") + { + } + + bool OnHelp(User *u, const ci::string &) + { + notice_help(Config.s_ChanServ, u, CHAN_HELP_SET_PEACE, "SASET"); + return true; + } + + void OnSyntaxError(User *u, const ci::string &) + { + syntax_error(Config.s_ChanServ, u, "SASET PEACE", CHAN_SASET_PEACE_SYNTAX); + } +}; + +class CSSetPeace : public Module +{ + public: + CSSetPeace(const std::string &modname, const std::string &creator) : Module(modname, creator) + { + this->SetAuthor("Anope"); + this->SetVersion("$Id$"); + this->SetType(CORE); + + Command *c = FindCommand(ChanServ, "SET"); + if (c) + c->AddSubcommand(new CommandCSSetPeace("PEACE")); + + c = FindCommand(ChanServ, "SASET"); + if (c) + c->AddSubcommand(new CommandCSSASetPeace("PEACE")); + } + + ~CSSetPeace() + { + Command *c = FindCommand(ChanServ, "SET"); + if (c) + c->DelSubcommand("PEACE"); + + c = FindCommand(ChanServ, "SASET"); + if (c) + c->DelSubcommand("PEACE"); + } +}; + +MODULE_INIT(CSSetPeace) diff --git a/src/core/cs_set_persist.cpp b/src/core/cs_set_persist.cpp new file mode 100644 index 000000000..0e713c715 --- /dev/null +++ b/src/core/cs_set_persist.cpp @@ -0,0 +1,163 @@ +/* ChanServ core functions + * + * (C) 2003-2010 Anope Team + * Contact us at team@anope.org + * + * Please read COPYING and README for further details. + * + * Based on the original code of Epona by Lara. + * Based on the original code of Services by Andy Church. + * + * $Id$ + * + */ +/*************************************************************************/ + +#include "module.h" + +class CommandCSSetPersist : public Command +{ + public: + CommandCSSetPersist(const ci::string &cname, const std::string &cpermission = "") : Command(cname, 2, 2, cpermission) + { + } + + CommandReturn Execute(User *u, const std::vector<ci::string> ¶ms) + { + ChannelInfo *ci = cs_findchan(params[0]); + assert(ci); + + ChannelMode *cm = ModeManager::FindChannelModeByName(CMODE_PERM); + + if (params[0] == "ON") + { + if (!ci->HasFlag(CI_PERSIST)) + { + ci->SetFlag(CI_PERSIST); + + /* Channel doesn't exist, create it internally */ + if (!ci->c) + { + new Channel(ci->name); + if (ci->bi) + bot_join(ci); + } + + /* No botserv bot, no channel mode */ + if (!ci->bi && !cm) + { + /* Give them ChanServ + * Yes, this works fine with no Config.s_BotServ + */ + ChanServ->Assign(NULL, ci); + } + + /* Set the perm mode */ + if (cm && ci->c && !ci->c->HasMode(CMODE_PERM)) + { + ci->c->SetMode(NULL, cm); + } + } + + notice_lang(Config.s_ChanServ, u, CHAN_SET_PERSIST_ON, ci->name.c_str()); + } + else if (params[0] == "OFF") + { + if (ci->HasFlag(CI_PERSIST)) + { + ci->UnsetFlag(CI_PERSIST); + + /* Unset perm mode */ + if (cm && ci->c && ci->c->HasMode(CMODE_PERM)) + ci->c->RemoveMode(NULL, cm); + if (Config.s_BotServ && ci->bi && ci->c->users.size() == Config.BSMinUsers - 1) + ircdproto->SendPart(ci->bi, ci->c, NULL); + + /* No channel mode, no BotServ, but using ChanServ as the botserv bot + * which was assigned when persist was set on + */ + if (!cm && !Config.s_BotServ && ci->bi) + { + /* Unassign bot */ + ChanServ->UnAssign(NULL, ci); + } + + if (ci->c && ci->c->users.empty()) + delete ci->c; + } + + notice_lang(Config.s_ChanServ, u, CHAN_SET_PERSIST_OFF, ci->name.c_str()); + } + else + this->OnSyntaxError(u, "PERSIST"); + + return MOD_CONT; + } + + bool OnHelp(User *u, const ci::string &) + { + notice_help(Config.s_ChanServ, u, CHAN_HELP_SET_PERSIST, "SET"); + return true; + } + + void OnSyntaxError(User *u, const ci::string &) + { + syntax_error(Config.s_ChanServ, u, "SET PERSIST", CHAN_SET_PERSIST_SYNTAX); + } + + void OnServHelp(User *u) + { + notice_lang(Config.s_ChanServ, u, CHAN_HELP_CMD_SET_PERSIST); + } +}; + +class CommandCSSASetPersist : public CommandCSSetPersist +{ + public: + CommandCSSASetPersist(const ci::string &cname) : CommandCSSetPersist(cname, "chanserv/saset/persist") + { + } + + bool OnHelp(User *u, const ci::string &) + { + notice_help(Config.s_ChanServ, u, CHAN_HELP_SET_PERSIST, "SASET"); + return true; + } + + void OnSyntaxError(User *u, const ci::string &) + { + syntax_error(Config.s_ChanServ, u, "SASET PERSIST", CHAN_SASET_PERSIST_SYNTAX); + } +}; + +class CSSetPersist : public Module +{ + public: + CSSetPersist(const std::string &modname, const std::string &creator) : Module(modname, creator) + { + this->SetAuthor("Anope"); + this->SetVersion("$Id$"); + this->SetType(CORE); + + Command *c = FindCommand(ChanServ, "SET"); + if (c) + c->AddSubcommand(new CommandCSSetPersist("PERSIST")); + + c = FindCommand(ChanServ, "SASET"); + if (c) + c->AddSubcommand(new CommandCSSASetPersist("PERSIST")); + } + + ~CSSetPersist() + { + Command *c = FindCommand(ChanServ, "SET"); + if (c) + c->DelSubcommand("PERSIST"); + + c = FindCommand(ChanServ, "SASET"); + if (c) + c->DelSubcommand("PERSIST"); + } +}; + +MODULE_INIT(CSSetPersist) diff --git a/src/core/cs_set_private.cpp b/src/core/cs_set_private.cpp new file mode 100644 index 000000000..9f96828df --- /dev/null +++ b/src/core/cs_set_private.cpp @@ -0,0 +1,112 @@ +/* ChanServ core functions + * + * (C) 2003-2010 Anope Team + * Contact us at team@anope.org + * + * Please read COPYING and README for further details. + * + * Based on the original code of Epona by Lara. + * Based on the original code of Services by Andy Church. + * + * $Id$ + * + */ +/*************************************************************************/ + +#include "module.h" + +class CommandCSSetPrivate : public Command +{ + public: + CommandCSSetPrivate(const ci::string &cname, const std::string &cpermission = "") : Command(cname, 2, 2, cpermission) + { + } + + CommandReturn Execute(User *u, const std::vector<ci::string> ¶ms) + { + ChannelInfo *ci = cs_findchan(params[0]); + assert(ci); + + if (params[1] == "ON") + { + ci->SetFlag(CI_PRIVATE); + notice_lang(Config.s_ChanServ, u, CHAN_SET_PRIVATE_ON, ci->name.c_str()); + } + else if (params[1] == "OFF") + { + ci->UnsetFlag(CI_PRIVATE); + notice_lang(Config.s_ChanServ, u, CHAN_SET_PRIVATE_OFF, ci->name.c_str()); + } + else + this->OnSyntaxError(u, "PRIVATE"); + + return MOD_CONT; + } + + bool OnHelp(User *u, const ci::string &) + { + notice_help(Config.s_ChanServ, u, CHAN_HELP_SET_PRIVATE, "SASET"); + return true; + } + + void OnSyntaxError(User *u, const ci::string &) + { + syntax_error(Config.s_ChanServ, u, "SET PRIVATE", CHAN_SET_PRIVATE_SYNTAX); + } + + void OnServHelp(User *u) + { + notice_lang(Config.s_ChanServ, u, CHAN_HELP_CMD_SET_PRIVATE); + } +}; + +class CommandCSSASetPrivate : public CommandCSSetPrivate +{ + public: + CommandCSSASetPrivate(const ci::string &cname) : CommandCSSetPrivate(cname, "chanserv/saset/private") + { + } + + bool OnHelp(User *u, const ci::string &) + { + notice_help(Config.s_ChanServ, u, CHAN_HELP_SET_PRIVATE, "SASET"); + return true; + } + + void OnSyntaxError(User *u, const ci::string &) + { + syntax_error(Config.s_ChanServ, u, "SASET PRIVATE", CHAN_SASET_PRIVATE_SYNTAX); + } +}; + +class CSSetPrivate : public Module +{ + public: + CSSetPrivate(const std::string &modname, const std::string &creator) : Module(modname, creator) + { + this->SetAuthor("Anope"); + this->SetVersion("$Id$"); + this->SetType(CORE); + + Command *c = FindCommand(ChanServ, "SET"); + if (c) + c->AddSubcommand(new CommandCSSetPrivate("PRIVATE")); + + c = FindCommand(ChanServ, "SASET"); + if (c) + c->AddSubcommand(new CommandCSSASetPrivate("PRIVATE")); + } + + ~CSSetPrivate() + { + Command *c = FindCommand(ChanServ, "SET"); + if (c) + c->DelSubcommand("PRIVATE"); + + c = FindCommand(ChanServ, "SASET"); + if (c) + c->DelSubcommand("PRIVATE"); + } +}; + +MODULE_INIT(CSSetPrivate) diff --git a/src/core/cs_set_restricted.cpp b/src/core/cs_set_restricted.cpp new file mode 100644 index 000000000..7e0cc42b3 --- /dev/null +++ b/src/core/cs_set_restricted.cpp @@ -0,0 +1,116 @@ +/* ChanServ core functions + * + * (C) 2003-2010 Anope Team + * Contact us at team@anope.org + * + * Please read COPYING and README for further details. + * + * Based on the original code of Epona by Lara. + * Based on the original code of Services by Andy Church. + * + * $Id$ + * + */ +/*************************************************************************/ + +#include "module.h" + +class CommandCSSetRestricted : public Command +{ + public: + CommandCSSetRestricted(const ci::string &cname, const std::string &cpermission = "") : Command(cname, 2, 2, cpermission) + { + } + + CommandReturn Execute(User *u, const std::vector<ci::string> ¶ms) + { + ChannelInfo *ci = cs_findchan(params[0]); + assert(ci); + + if (params[1] == "ON") + { + ci->SetFlag(CI_RESTRICTED); + if (ci->levels[CA_NOJOIN] < 0) + ci->levels[CA_NOJOIN] = 0; + notice_lang(Config.s_ChanServ, u, CHAN_SET_RESTRICTED_ON, ci->name.c_str()); + } + else if (params[1] == "OFF") + { + ci->UnsetFlag(CI_RESTRICTED); + if (ci->levels[CA_NOJOIN] >= 0) + ci->levels[CA_NOJOIN] = -2; + notice_lang(Config.s_ChanServ, u, CHAN_SET_RESTRICTED_OFF, ci->name.c_str()); + } + else + this->OnSyntaxError(u, "RESTRICTED"); + + return MOD_CONT; + } + + bool OnHelp(User *u, const ci::string &) + { + notice_help(Config.s_ChanServ, u, CHAN_HELP_SET_RESTRICTED, "SET"); + return true; + } + + void OnSyntaxError(User *u, const ci::string &) + { + syntax_error(Config.s_ChanServ, u, "SET RESTRICTED", CHAN_SET_RESTRICTED_SYNTAX); + } + + void OnServHelp(User *u) + { + notice_lang(Config.s_ChanServ, u, CHAN_HELP_CMD_SET_RESTRICTED); + } +}; + +class CommandCSSASetRestricted : public CommandCSSetRestricted +{ + public: + CommandCSSASetRestricted(const ci::string &cname) : CommandCSSetRestricted(cname, "chanserv/saset/restricted") + { + } + + bool OnHelp(User *u, const ci::string &) + { + notice_help(Config.s_ChanServ, u, CHAN_HELP_SET_RESTRICTED, "SASET"); + return true; + } + + void OnSyntaxError(User *u, const ci::string &) + { + syntax_error(Config.s_ChanServ, u, "SASET RESTRICTED", CHAN_SASET_RESTRICTED_SYNTAX); + } +}; + +class CSSetRestricted : public Module +{ + public: + CSSetRestricted(const std::string &modname, const std::string &creator) : Module(modname, creator) + { + this->SetAuthor("Anope"); + this->SetVersion("$Id$"); + this->SetType(CORE); + + Command *c = FindCommand(ChanServ, "SET"); + if (c) + c->AddSubcommand(new CommandCSSetRestricted("RESTRICTED")); + + c = FindCommand(ChanServ, "SASET"); + if (c) + c->AddSubcommand(new CommandCSSASetRestricted("RESTRICTED")); + } + + ~CSSetRestricted() + { + Command *c = FindCommand(ChanServ, "SET"); + if (c) + c->DelSubcommand("RESTRICTED"); + + c = FindCommand(ChanServ, "SASET"); + if (c) + c->DelSubcommand("RESTRICTED"); + } +}; + +MODULE_INIT(CSSetRestricted) diff --git a/src/core/cs_set_secure.cpp b/src/core/cs_set_secure.cpp new file mode 100644 index 000000000..bdcffdb21 --- /dev/null +++ b/src/core/cs_set_secure.cpp @@ -0,0 +1,112 @@ +/* ChanServ core functions + * + * (C) 2003-2010 Anope Team + * Contact us at team@anope.org + * + * Please read COPYING and README for further details. + * + * Based on the original code of Epona by Lara. + * Based on the original code of Services by Andy Church. + * + * $Id$ + * + */ +/*************************************************************************/ + +#include "module.h" + +class CommandCSSetSecure : public Command +{ + public: + CommandCSSetSecure(const ci::string &cname, const std::string &cpermission = "") : Command(cname, 2, 2, cpermission) + { + } + + CommandReturn Execute(User *u, const std::vector<ci::string> ¶ms) + { + ChannelInfo *ci = cs_findchan(params[0]); + assert(ci); + + if (params[1] == "ON") + { + ci->SetFlag(CI_SECURE); + notice_lang(Config.s_ChanServ, u, CHAN_SET_SECURE_ON, ci->name.c_str()); + } + else if (params[1] == "OFF") + { + ci->UnsetFlag(CI_SECURE); + notice_lang(Config.s_ChanServ, u, CHAN_SET_SECURE_OFF, ci->name.c_str()); + } + else + this->OnSyntaxError(u, "SECURE"); + + return MOD_CONT; + } + + bool OnHelp(User *u, const ci::string &) + { + notice_help(Config.s_ChanServ, u, CHAN_HELP_SET_SECURE, "SET"); + return true; + } + + void OnSyntaxError(User *u, const ci::string &) + { + syntax_error(Config.s_ChanServ, u, "SET SECURE", CHAN_SET_SECURE_SYNTAX); + } + + void OnServHelp(User *u) + { + notice_lang(Config.s_ChanServ, u, CHAN_HELP_CMD_SET_SECURE); + } +}; + +class CommandCSSASetSecure : public CommandCSSetSecure +{ + public: + CommandCSSASetSecure(const ci::string &cname) : CommandCSSetSecure(cname, "chanserv/saset/secure") + { + } + + bool OnHelp(User *u, const ci::string &) + { + notice_help(Config.s_ChanServ, u, CHAN_HELP_SET_SECURE, "SASET"); + return true; + } + + void OnSyntaxError(User *u, const ci::string &) + { + syntax_error(Config.s_ChanServ, u, "SASET SECURE", CHAN_SASET_SECURE_SYNTAX); + } +}; + +class CSSetSecure : public Module +{ + public: + CSSetSecure(const std::string &modname, const std::string &creator) : Module(modname, creator) + { + this->SetAuthor("Anope"); + this->SetVersion("$Id$"); + this->SetType(CORE); + + Command *c = FindCommand(ChanServ, "SET"); + if (c) + c->AddSubcommand(new CommandCSSetSecure("SECURE")); + + c = FindCommand(ChanServ, "SASET"); + if (c) + c->AddSubcommand(new CommandCSSASetSecure("SECURE")); + } + + ~CSSetSecure() + { + Command *c = FindCommand(ChanServ, "SET"); + if (c) + c->DelSubcommand("SECURE"); + + c = FindCommand(ChanServ, "SASET"); + if (c) + c->DelSubcommand("SECURE"); + } +}; + +MODULE_INIT(CSSetSecure) diff --git a/src/core/cs_set_securefounder.cpp b/src/core/cs_set_securefounder.cpp new file mode 100644 index 000000000..9d4a99d20 --- /dev/null +++ b/src/core/cs_set_securefounder.cpp @@ -0,0 +1,118 @@ +/* ChanServ core functions + * + * (C) 2003-2010 Anope Team + * Contact us at team@anope.org + * + * Please read COPYING and README for further details. + * + * Based on the original code of Epona by Lara. + * Based on the original code of Services by Andy Church. + * + * $Id$ + * + */ +/*************************************************************************/ + +#include "module.h" + +class CommandCSSetSecureFounder : public Command +{ + public: + CommandCSSetSecureFounder(const ci::string &cname, const std::string &cpermission = "") : Command(cname, 2, 2, cpermission) + { + } + + CommandReturn Execute(User *u, const std::vector<ci::string> ¶ms) + { + ChannelInfo *ci = cs_findchan(params[0]); + assert(ci); + + if (this->permission.empty() && ci->HasFlag(CI_SECUREFOUNDER) ? !IsFounder(u, ci) : !check_access(u, ci, CA_FOUNDER)) + { + notice_lang(Config.s_ChanServ, u, ACCESS_DENIED); + return MOD_CONT; + } + + if (params[1] == "ON") + { + ci->SetFlag(CI_SECUREFOUNDER); + notice_lang(Config.s_ChanServ, u, CHAN_SET_SECUREFOUNDER_ON, ci->name.c_str()); + } + else if (params[1] == "OFF") + { + ci->UnsetFlag(CI_SECUREFOUNDER); + notice_lang(Config.s_ChanServ, u, CHAN_SET_SECUREFOUNDER_OFF, ci->name.c_str()); + } + else + this->OnSyntaxError(u, "SECUREFOUNDER"); + + return MOD_CONT; + } + + bool OnHelp(User *u, const ci::string &) + { + notice_help(Config.s_ChanServ, u, CHAN_HELP_SET_SECUREFOUNDER, "SET"); + return true; + } + + void OnSyntaxError(User *u, const ci::string &) + { + syntax_error(Config.s_ChanServ, u, "SET SECUREFOUNDER", CHAN_SET_SECUREFOUNDER_SYNTAX); + } + + void OnServHelp(User *u) + { + notice_lang(Config.s_ChanServ, u, CHAN_HELP_CMD_SET_SECUREFOUNDER); + } +}; + +class CommandCSSASetSecureFounder : public CommandCSSetSecureFounder +{ + public: + CommandCSSASetSecureFounder(const ci::string &cname) : CommandCSSetSecureFounder(cname, "chanserv/saset/securefounder") + { + } + + bool OnHelp(User *u, const ci::string &) + { + notice_help(Config.s_ChanServ, u, CHAN_HELP_SET_SECUREFOUNDER, "SASET"); + return true; + } + + void OnSyntaxError(User *u, const ci::string &) + { + syntax_error(Config.s_ChanServ, u, "SASET SECUREFOUNDER", CHAN_SASET_SECUREFOUNDER_SYNTAX); + } +}; + +class CSSetSecureFounder : public Module +{ + public: + CSSetSecureFounder(const std::string &modname, const std::string &creator) : Module(modname, creator) + { + this->SetAuthor("Anope"); + this->SetVersion("$Id$"); + this->SetType(CORE); + + Command *c = FindCommand(ChanServ, "SET"); + if (c) + c->AddSubcommand(new CommandCSSetSecureFounder("SECUREFOUNDER")); + + c = FindCommand(ChanServ, "SASET"); + if (c) + c->AddSubcommand(new CommandCSSASetSecureFounder("SECUREFOUNDER")); + } + + ~CSSetSecureFounder() + { + Command *c = FindCommand(ChanServ, "SET"); + if (c) + c->DelSubcommand("SECUREFOUNDER"); + + c = FindCommand(ChanServ, "SASET"); + if (c) + c->DelSubcommand("SECUREFOUNDER"); + } +}; + +MODULE_INIT(CSSetSecureFounder) diff --git a/src/core/cs_set_secureops.cpp b/src/core/cs_set_secureops.cpp new file mode 100644 index 000000000..dc510f71a --- /dev/null +++ b/src/core/cs_set_secureops.cpp @@ -0,0 +1,112 @@ +/* ChanServ core functions + * + * (C) 2003-2010 Anope Team + * Contact us at team@anope.org + * + * Please read COPYING and README for further details. + * + * Based on the original code of Epona by Lara. + * Based on the original code of Services by Andy Church. + * + * $Id$ + * + */ +/*************************************************************************/ + +#include "module.h" + +class CommandCSSetSecureOps : public Command +{ + public: + CommandCSSetSecureOps(const ci::string &cname, const std::string &cpermission = "") : Command(cname, 2, 2, cpermission) + { + } + + CommandReturn Execute(User *u, const std::vector<ci::string> ¶ms) + { + ChannelInfo *ci = cs_findchan(params[0]); + assert(ci); + + if (params[1] == "ON") + { + ci->SetFlag(CI_SECUREOPS); + notice_lang(Config.s_ChanServ, u, CHAN_SET_SECUREOPS_ON, ci->name.c_str()); + } + else if (params[1] == "OFF") + { + ci->UnsetFlag(CI_SECUREOPS); + notice_lang(Config.s_ChanServ, u, CHAN_SET_SECUREOPS_OFF, ci->name.c_str()); + } + else + this->OnSyntaxError(u, "SECUREOPS"); + + return MOD_CONT; + } + + bool OnHelp(User *u, const ci::string &) + { + notice_help(Config.s_ChanServ, u, CHAN_HELP_SET_SECUREOPS, "SET"); + return true; + } + + void OnSyntaxError(User *u, const ci::string &) + { + syntax_error(Config.s_ChanServ, u, "SET SECUREOPS", CHAN_SET_SECUREOPS_SYNTAX); + } + + void OnServHelp(User *u) + { + notice_lang(Config.s_ChanServ, u, CHAN_HELP_CMD_SET_SECUREOPS); + } +}; + +class CommandCSSASetSecureOps : public CommandCSSetSecureOps +{ + public: + CommandCSSASetSecureOps(const ci::string &cname) : CommandCSSetSecureOps(cname, "chanserv/saset/secureops") + { + } + + bool OnHelp(User *u, const ci::string &) + { + notice_help(Config.s_ChanServ, u, CHAN_HELP_SET_SECUREOPS, "SASET"); + return true; + } + + void OnSyntaxError(User *u, const ci::string &) + { + syntax_error(Config.s_ChanServ, u, "SASET SECUREOPS", CHAN_SASET_SECUREOPS_SYNTAX); + } +}; + +class CSSetSecureOps : public Module +{ + public: + CSSetSecureOps(const std::string &modname, const std::string &creator) : Module(modname, creator) + { + this->SetAuthor("Anope"); + this->SetVersion("$Id$"); + this->SetType(CORE); + + Command *c = FindCommand(ChanServ, "SET"); + if (c) + c->AddSubcommand(new CommandCSSetSecureOps("SECUREOPS")); + + c = FindCommand(ChanServ, "SASET"); + if (c) + c->AddSubcommand(new CommandCSSASetSecureOps("SECUREOPS")); + } + + ~CSSetSecureOps() + { + Command *c = FindCommand(ChanServ, "SET"); + if (c) + c->DelSubcommand("SECUREOPS"); + + c = FindCommand(ChanServ, "SASET"); + if (c) + c->DelSubcommand("SECUREOPS"); + } +}; + +MODULE_INIT(CSSetSecureOps) diff --git a/src/core/cs_set_signkick.cpp b/src/core/cs_set_signkick.cpp new file mode 100644 index 000000000..2e24f8d38 --- /dev/null +++ b/src/core/cs_set_signkick.cpp @@ -0,0 +1,112 @@ +/* ChanServ core functions + * + * (C) 2003-2010 Anope Team + * Contact us at team@anope.org + * + * Please read COPYING and README for further details. + * + * Based on the original code of Epona by Lara. + * Based on the original code of Services by Andy Church. + * + * $Id$ + * + */ +/*************************************************************************/ + +#include "module.h" + +class CommandCSSetSignKick : public Command +{ + public: + CommandCSSetSignKick(const ci::string &cname, const std::string &cpermission = "") : Command(cname, 2, 2, cpermission) + { + } + + CommandReturn Execute(User *u, const std::vector<ci::string> ¶ms) + { + ChannelInfo *ci = cs_findchan(params[0]); + assert(ci); + + if (params[1] == "ON") + { + ci->SetFlag(CI_SIGNKICK); + ci->UnsetFlag(CI_SIGNKICK_LEVEL); + notice_lang(Config.s_ChanServ, u, CHAN_SET_SIGNKICK_ON, ci->name.c_str()); + } + else if (params[1] == "LEVEL") + { + ci->SetFlag(CI_SIGNKICK_LEVEL); + ci->UnsetFlag(CI_SIGNKICK); + notice_lang(Config.s_ChanServ, u, CHAN_SET_SIGNKICK_LEVEL, ci->name.c_str()); + } + else if (params[1] == "OFF") + { + ci->UnsetFlag(CI_SIGNKICK); + ci->UnsetFlag(CI_SIGNKICK_LEVEL); + notice_lang(Config.s_ChanServ, u, CHAN_SET_SIGNKICK_OFF, ci->name.c_str()); + } + else + this->OnSyntaxError(u, "SIGNKICK"); + + return MOD_CONT; + } + + bool OnHelp(User *u, const ci::string &) + { + notice_help(Config.s_ChanServ, u, CHAN_HELP_SET_SIGNKICK, "SET"); + return true; + } + + void OnSyntaxError(User *u, const ci::string &) + { + syntax_error(Config.s_ChanServ, u, "SET SIGNKICK", CHAN_SET_SIGNKICK_SYNTAX); + } + + void OnServHelp(User *u) + { + notice_lang(Config.s_ChanServ, u, CHAN_HELP_CMD_SET_SIGNKICK); + } +}; + +class CommandCSSASetSignKick : public CommandCSSetSignKick +{ + public: + CommandCSSASetSignKick(const ci::string &cname) : CommandCSSetSignKick(cname, "chanserv/saset/signkick") + { + } + + bool OnHelp(User *u, const ci::string &) + { + notice_help(Config.s_ChanServ, u, CHAN_HELP_SET_SIGNKICK, "SASET"); + return true; + } + + void OnSyntaxError(User *u, const ci::string &) + { + syntax_error(Config.s_ChanServ, u, "SASET SIGNKICK", CHAN_SASET_SIGNKICK_SYNTAX); + } +}; + +class CSSetSignKick : public Module +{ + public: + CSSetSignKick(const std::string &modname, const std::string &creator) : Module(modname, creator) + { + this->SetAuthor("Anope"); + this->SetVersion("$Id$"); + this->SetType(CORE); + + Command *c = FindCommand(ChanServ, "SET"); + if (c) + c->AddSubcommand(new CommandCSSetSignKick("SIGNKICK")); + } + + ~CSSetSignKick() + { + Command *c = FindCommand(ChanServ, "SET"); + if (c) + c->DelSubcommand("SIGNKICK"); + } +}; + +MODULE_INIT(CSSetSignKick) diff --git a/src/core/cs_set_successor.cpp b/src/core/cs_set_successor.cpp new file mode 100644 index 000000000..3de30631a --- /dev/null +++ b/src/core/cs_set_successor.cpp @@ -0,0 +1,145 @@ +/* ChanServ core functions + * + * (C) 2003-2010 Anope Team + * Contact us at team@anope.org + * + * Please read COPYING and README for further details. + * + * Based on the original code of Epona by Lara. + * Based on the original code of Services by Andy Church. + * + * $Id$ + * + */ +/*************************************************************************/ + +#include "module.h" + +class CommandCSSetSuccessor : public Command +{ + public: + CommandCSSetSuccessor(const ci::string &cname, const std::string &cpermission = "") : Command(cname, 1, 2, cpermission) + { + } + + CommandReturn Execute(User *u, const std::vector<ci::string> ¶ms) + { + ChannelInfo *ci = cs_findchan(params[0]); + assert(ci); + + if (this->permission.empty() && ci->HasFlag(CI_SECUREFOUNDER) ? !IsFounder(u, ci) : !check_access(u, ci, CA_FOUNDER)) + { + notice_lang(Config.s_ChanServ, u, ACCESS_DENIED); + return MOD_CONT; + } + + NickCore *nc; + + if (params.size() > 1) + { + NickAlias *na = findnick(params[1]); + + if (!na) + { + notice_lang(Config.s_ChanServ, u, NICK_X_NOT_REGISTERED, params[1].c_str()); + return MOD_CONT; + } + if (na->HasFlag(NS_FORBIDDEN)) + { + notice_lang(Config.s_ChanServ, u, NICK_X_FORBIDDEN, na->nick); + return MOD_CONT; + } + if (na->nc == ci->founder) + { + notice_lang(Config.s_ChanServ, u, CHAN_SUCCESSOR_IS_FOUNDER, na->nick, ci->name.c_str()); + return MOD_CONT; + } + nc = na->nc; + + } + else + nc = NULL; + + Alog() << Config.s_ChanServ << ": Changing successor of " << ci->name << " from " + << (ci->successor ? ci->successor->display : "none") + << " to " << (nc ? nc->display : "none") << " by " << u->GetMask(); + + ci->successor = nc; + + if (nc) + notice_lang(Config.s_ChanServ, u, CHAN_SUCCESSOR_CHANGED, ci->name.c_str(), nc->display); + else + notice_lang(Config.s_ChanServ, u, CHAN_SUCCESSOR_UNSET, ci->name.c_str()); + + return MOD_CONT; + } + + bool OnHelp(User *u, const ci::string &) + { + notice_help(Config.s_ChanServ, u, CHAN_HELP_SET_SUCCESSOR, "SET"); + return true; + } + + void OnSyntaxError(User *u, const ci::string &) + { + // XXX + syntax_error(Config.s_ChanServ, u, "SET", CHAN_SET_SYNTAX); + } + + void OnServHelp(User *u) + { + notice_lang(Config.s_ChanServ, u, CHAN_HELP_CMD_SET_SUCCESSOR); + } +}; + +class CommandCSSASetSuccessor : public CommandCSSetSuccessor +{ + public: + CommandCSSASetSuccessor(const ci::string &cname) : CommandCSSetSuccessor(cname, "chanserv/saset/successor") + { + } + + bool OnHelp(User *u, const ci::string &) + { + notice_help(Config.s_ChanServ, u, CHAN_HELP_SET_SUCCESSOR, "SASET"); + return true; + } + + void OnSyntaxError(User *u, const ci::string &) + { + // XXX + syntax_error(Config.s_ChanServ, u, "SASEt", CHAN_SASET_SYNTAX); + } +}; + +class CSSetSuccessor : public Module +{ + public: + CSSetSuccessor(const std::string &modname, const std::string &creator) : Module(modname, creator) + { + this->SetAuthor("Anope"); + this->SetVersion("$Id$"); + this->SetType(CORE); + + Command *c = FindCommand(ChanServ, "SET"); + if (c) + c->AddSubcommand(new CommandCSSetSuccessor("SUCCESSOR")); + + c = FindCommand(ChanServ, "SASET"); + if (c) + c->AddSubcommand(new CommandCSSetSuccessor("SUCCESSOR")); + } + + ~CSSetSuccessor() + { + Command *c = FindCommand(ChanServ, "SET"); + if (c) + c->DelSubcommand("SUCCESSOR"); + + c = FindCommand(ChanServ, "SASET"); + if (c) + c->DelSubcommand("SUCCESSOR"); + } +}; + +MODULE_INIT(CSSetSuccessor) diff --git a/src/core/cs_set_topiclock.cpp b/src/core/cs_set_topiclock.cpp new file mode 100644 index 000000000..14934f551 --- /dev/null +++ b/src/core/cs_set_topiclock.cpp @@ -0,0 +1,112 @@ +/* ChanServ core functions + * + * (C) 2003-2010 Anope Team + * Contact us at team@anope.org + * + * Please read COPYING and README for further details. + * + * Based on the original code of Epona by Lara. + * Based on the original code of Services by Andy Church. + * + * $Id$ + * + */ +/*************************************************************************/ + +#include "module.h" + +class CommandCSSetTopicLock : public Command +{ + public: + CommandCSSetTopicLock(const ci::string &cname, const std::string &cpermission = "") : Command(cname, 2, 2, cpermission) + { + } + + CommandReturn Execute(User *u, const std::vector<ci::string> ¶ms) + { + ChannelInfo *ci = cs_findchan(params[0]); + assert(ci); + + if (params[1] == "ON") + { + ci->SetFlag(CI_TOPICLOCK); + notice_lang(Config.s_ChanServ, u, CHAN_SET_TOPICLOCK_ON, ci->name.c_str()); + } + else if (params[1] == "OFF") + { + ci->UnsetFlag(CI_TOPICLOCK); + notice_lang(Config.s_ChanServ, u, CHAN_SET_TOPICLOCK_OFF, ci->name.c_str()); + } + else + this->OnSyntaxError(u, "TOPICLOCK"); + + return MOD_CONT; + } + + bool OnHelp(User *u, const ci::string &) + { + notice_help(Config.s_ChanServ, u, CHAN_HELP_SET_TOPICLOCK, "SET"); + return true; + } + + void OnSyntaxError(User *u, const ci::string &) + { + syntax_error(Config.s_ChanServ, u, "SET", CHAN_SET_TOPICLOCK_SYNTAX);; + } + + void OnServHelp(User *u) + { + notice_lang(Config.s_ChanServ, u, CHAN_HELP_CMD_SET_TOPICLOCK); + } +}; + +class CommandCSSASetTopicLock : public CommandCSSetTopicLock +{ + public: + CommandCSSASetTopicLock(const ci::string &cname) : CommandCSSetTopicLock(cname, "chanserv/saset/topiclock") + { + } + + bool OnHelp(User *u, const ci::string &) + { + notice_help(Config.s_ChanServ, u, CHAN_HELP_SET_TOPICLOCK, "SASET"); + return true; + } + + void OnSyntaxError(User *u, const ci::string &) + { + syntax_error(Config.s_ChanServ, u, "SASET", CHAN_SASET_TOPICLOCK_SYNTAX); + } +}; + +class CSSetTopicLock : public Module +{ + public: + CSSetTopicLock(const std::string &modname, const std::string &creator) : Module(modname, creator) + { + this->SetAuthor("Anope"); + this->SetVersion("$Id$"); + this->SetType(CORE); + + Command *c = FindCommand(ChanServ, "SET"); + if (c) + c->AddSubcommand(new CommandCSSetTopicLock("TOPICLOCK")); + + c = FindCommand(ChanServ, "SASET"); + if (c) + c->AddSubcommand(new CommandCSSASetTopicLock("TOPICLOCK")); + } + + ~CSSetTopicLock() + { + Command *c = FindCommand(ChanServ, "SET"); + if (c) + c->DelSubcommand("TOPICLOCK"); + + c = FindCommand(ChanServ, "SASET"); + if (c) + c->DelSubcommand("TOPICLOCK"); + } +}; + +MODULE_INIT(CSSetTopicLock) diff --git a/src/core/cs_set_url.cpp b/src/core/cs_set_url.cpp new file mode 100644 index 000000000..06c49da4f --- /dev/null +++ b/src/core/cs_set_url.cpp @@ -0,0 +1,114 @@ +/* ChanServ core functions + * + * (C) 2003-2010 Anope Team + * Contact us at team@anope.org + * + * Please read COPYING and README for further details. + * + * Based on the original code of Epona by Lara. + * Based on the original code of Services by Andy Church. + * + * $Id$ + * + */ +/*************************************************************************/ + +#include "module.h" + +class CommandCSSetURL : public Command +{ + public: + CommandCSSetURL(const ci::string &cname, const std::string &cpermission = "") : Command(cname, 1, 2, cpermission) + { + } + + CommandReturn Execute(User *u, const std::vector<ci::string> ¶ms) + { + ChannelInfo *ci = cs_findchan(params[0]); + assert(ci); + + if (ci->url) + delete [] ci->url; + if (params.size() > 1) + { + ci->url = sstrdup(params[1].c_str()); + notice_lang(Config.s_ChanServ, u, CHAN_URL_CHANGED, ci->name.c_str(), ci->url); + } + else + { + ci->url = NULL; + notice_lang(Config.s_ChanServ, u, CHAN_URL_UNSET, ci->name.c_str()); + } + + return MOD_CONT; + } + + bool OnHelp(User *u, const ci::string &) + { + notice_help(Config.s_ChanServ, u, CHAN_HELP_SET_URL, "SET"); + return true; + } + + void OnSyntaxError(User *u, const ci::string &) + { + // XXX + syntax_error(Config.s_ChanServ, u, "SET", CHAN_SET_SYNTAX); + } + + void OnServHelp(User *u) + { + notice_lang(Config.s_ChanServ, u, CHAN_HELP_CMD_SET_URL); + } +}; + +class CommandCSSASetURL : public CommandCSSetURL +{ + public: + CommandCSSASetURL(const ci::string &cname) : CommandCSSetURL(cname, "chanserv/saset/url") + { + } + + bool OnHelp(User *u, const ci::string &) + { + notice_help(Config.s_ChanServ, u, CHAN_HELP_SET_URL, "SASET"); + return true; + } + + void OnSyntaxError(User *u, const ci::string &) + { + // XXX + syntax_error(Config.s_ChanServ, u, "SASET URL", CHAN_SASET_SYNTAX); + } +}; + +class CSSetURL : public Module +{ + public: + CSSetURL(const std::string &modname, const std::string &creator) : Module(modname, creator) + { + this->SetAuthor("Anope"); + this->SetVersion("$Id$"); + this->SetType(CORE); + + Command *c = FindCommand(ChanServ, "SET"); + if (c) + c->AddSubcommand(new CommandCSSetURL("URL")); + + c = FindCommand(ChanServ, "SASET"); + if (c) + c->AddSubcommand(new CommandCSSASetURL("URL")); + } + + ~CSSetURL() + { + Command *c = FindCommand(ChanServ, "SET"); + if (c) + c->DelSubcommand("URL"); + + c = FindCommand(ChanServ, "SASET"); + if (c) + c->DelSubcommand("URL"); + } +}; + +MODULE_INIT(CSSetURL) diff --git a/src/core/cs_set_xop.cpp b/src/core/cs_set_xop.cpp new file mode 100644 index 000000000..398cf4c1b --- /dev/null +++ b/src/core/cs_set_xop.cpp @@ -0,0 +1,144 @@ +/* ChanServ core functions + * + * (C) 2003-2010 Anope Team + * Contact us at team@anope.org + * + * Please read COPYING and README for further details. + * + * Based on the original code of Epona by Lara. + * Based on the original code of Services by Andy Church. + * + * $Id$ + * + */ +/*************************************************************************/ + +#include "module.h" + +#define CHECKLEV(lev) ((ci->levels[(lev)] != ACCESS_INVALID) && (access->level >= ci->levels[(lev)])) + +class CommandCSSetXOP : public Command +{ + public: + CommandCSSetXOP(const ci::string &cname, const std::string &cpermission = "") : Command(cname, 2, 2, cpermission) + { + } + + CommandReturn Execute(User *u, const std::vector<ci::string> ¶ms) + { + if (!FindModule("cs_xop")) + { + notice_lang(Config.s_ChanServ, u, CHAN_XOP_NOT_AVAILABLE, "XOP"); + return MOD_CONT; + } + + ChannelInfo *ci = cs_findchan(params[0]); + assert(ci); + + if (params[1] == "ON") + { + if (!ci->HasFlag(CI_XOP)) + { + ChanAccess *access; + + for (unsigned i = ci->GetAccessCount() - 1; 0 <= i; --i) + { + access = ci->GetAccess(i); + + /* This will probably cause wrong levels to be set, but hey, + * it's better than losing it altogether. + */ + if (access->level == ACCESS_QOP) + access->level = ACCESS_QOP; + else if (CHECKLEV(CA_AKICK) || CHECKLEV(CA_SET)) + access->level = ACCESS_SOP; + else if (CHECKLEV(CA_AUTOOP) || CHECKLEV(CA_OPDEOP) || CHECKLEV(CA_OPDEOPME)) + access->level = ACCESS_AOP; + else if (ModeManager::FindChannelModeByName(CMODE_HALFOP) && (CHECKLEV(CA_AUTOHALFOP) || CHECKLEV(CA_HALFOP) +|| CHECKLEV(CA_HALFOPME))) + access->level = ACCESS_HOP; + else if (CHECKLEV(CA_AUTOVOICE) || CHECKLEV(CA_VOICE) || CHECKLEV(CA_VOICEME)) + access->level = ACCESS_VOP; + else + ci->EraseAccess(i); + } + + reset_levels(ci); + ci->SetFlag(CI_XOP); + } + + Alog() << Config.s_ChanServ << ": " << u->GetMask() << " enabled XOP for " << ci->name; + notice_lang(Config.s_ChanServ, u, CHAN_SET_XOP_ON, ci->name.c_str()); + } + else if (params[1] == "OFF") + { + ci->UnsetFlag(CI_XOP); + + Alog() << Config.s_ChanServ << ": " << u->GetMask() << " disabled XOP for " << ci->name; + notice_lang(Config.s_ChanServ, u, CHAN_SET_XOP_OFF, ci->name.c_str()); + } + else + this->OnSyntaxError(u, "XOP"); + + return MOD_CONT; + } + + bool OnHelp(User *u, const ci::string &) + { + notice_help(Config.s_ChanServ, u, CHAN_HELP_SET_XOP, "SET"); + return true; + } + + void OnSyntaxError(User *u, const ci::string &) + { + syntax_error(Config.s_ChanServ, u, "SET XOP", CHAN_SET_XOP_SYNTAX); + } + + void OnServHelp(User *u) + { + notice_lang(Config.s_ChanServ, u, CHAN_HELP_CMD_SET_XOP); + } +}; + +class CommandCSSASetXOP : public CommandCSSetXOP +{ + public: + CommandCSSASetXOP(const ci::string &cname) : CommandCSSetXOP(cname, "chanserv/saset/xop") + { + } + + bool OnHelp(User *u, const ci::string &) + { + notice_help(Config.s_ChanServ, u, CHAN_HELP_SET_XOP, "SASET"); + return true; + } + + void OnSyntaxError(User *u, const ci::string &) + { + syntax_error(Config.s_ChanServ, u, "SASET XOP", CHAN_SASET_XOP_SYNTAX); + } +}; + +class CSSetXOP : public Module +{ + public: + CSSetXOP(const std::string &modname, const std::string &creator) : Module(modname, creator) + { + this->SetAuthor("Anope"); + this->SetVersion("$Id$"); + this->SetType(CORE); + + Command *c = FindCommand(ChanServ, "SET"); + if (c) + c->AddSubcommand(new CommandCSSetXOP("XOP")); + } + + ~CSSetXOP() + { + Command *c = FindCommand(ChanServ, "SET"); + if (c) + c->DelSubcommand("XOP"); + } +}; + +MODULE_INIT(CSSetXOP) |