summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--data/example.conf22
-rw-r--r--docs/Changes1
-rw-r--r--docs/Changes.conf4
-rw-r--r--docs/Changes.lang19
-rw-r--r--lang/cat.l111
-rw-r--r--lang/de.l113
-rw-r--r--lang/en_us.l110
-rw-r--r--lang/es.l113
-rw-r--r--lang/fr.l112
-rw-r--r--lang/gr.l110
-rw-r--r--lang/hun.l110
-rw-r--r--lang/it.l111
-rw-r--r--lang/nl.l110
-rw-r--r--lang/pl.l112
-rw-r--r--lang/pt.l112
-rw-r--r--lang/ru.l110
-rw-r--r--lang/tr.l112
-rw-r--r--src/core/cs_saset.cpp131
-rw-r--r--src/core/cs_saset_noexpire.cpp85
-rw-r--r--src/core/cs_set.cpp794
-rw-r--r--src/core/cs_set_bantype.cpp113
-rw-r--r--src/core/cs_set_description.cpp107
-rw-r--r--src/core/cs_set_email.cpp106
-rw-r--r--src/core/cs_set_entrymsg.cpp114
-rw-r--r--src/core/cs_set_founder.cpp142
-rw-r--r--src/core/cs_set_keeptopic.cpp112
-rw-r--r--src/core/cs_set_mlock.cpp197
-rw-r--r--src/core/cs_set_opnotice.cpp112
-rw-r--r--src/core/cs_set_peace.cpp114
-rw-r--r--src/core/cs_set_persist.cpp163
-rw-r--r--src/core/cs_set_private.cpp112
-rw-r--r--src/core/cs_set_restricted.cpp116
-rw-r--r--src/core/cs_set_secure.cpp112
-rw-r--r--src/core/cs_set_securefounder.cpp118
-rw-r--r--src/core/cs_set_secureops.cpp112
-rw-r--r--src/core/cs_set_signkick.cpp112
-rw-r--r--src/core/cs_set_successor.cpp145
-rw-r--r--src/core/cs_set_topiclock.cpp112
-rw-r--r--src/core/cs_set_url.cpp114
-rw-r--r--src/core/cs_set_xop.cpp144
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}
diff --git a/lang/de.l b/lang/de.l
index f457eccc0..c1286a050 100644
--- a/lang/de.l
+++ b/lang/de.l
@@ -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}
diff --git a/lang/es.l b/lang/es.l
index 3f79f3d06..d4d7d331c 100644
--- a/lang/es.l
+++ b/lang/es.l
@@ -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}
diff --git a/lang/fr.l b/lang/fr.l
index b034e1fef..5cfd45e99 100644
--- a/lang/fr.l
+++ b/lang/fr.l
@@ -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}
diff --git a/lang/gr.l b/lang/gr.l
index 38922a876..a08db200f 100644
--- a/lang/gr.l
+++ b/lang/gr.l
@@ -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}
diff --git a/lang/it.l b/lang/it.l
index db3346afc..378184eeb 100644
--- a/lang/it.l
+++ b/lang/it.l
@@ -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}
diff --git a/lang/nl.l b/lang/nl.l
index bfb20edaf..ad84bb31c 100644
--- a/lang/nl.l
+++ b/lang/nl.l
@@ -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}
diff --git a/lang/pl.l b/lang/pl.l
index 2e5685ca9..66cd28344 100644
--- a/lang/pl.l
+++ b/lang/pl.l
@@ -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}
diff --git a/lang/pt.l b/lang/pt.l
index cdb25ebec..256c7d744 100644
--- a/lang/pt.l
+++ b/lang/pt.l
@@ -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}
diff --git a/lang/ru.l b/lang/ru.l
index 4b77e7180..fb57668e6 100644
--- a/lang/ru.l
+++ b/lang/ru.l
@@ -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}
diff --git a/lang/tr.l b/lang/tr.l
index 78408a9aa..7e5df2b0e 100644
--- a/lang/tr.l
+++ b/lang/tr.l
@@ -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> &params)
+ {
+ 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> &params)
+ {
+ 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 &param)
- {
- 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 &param)
- {
- 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 &param)
- {
- 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 &param)
- {
- 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 &param)
- {
- 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 &param)
- {
- 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 &param)
- {
- 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 &param)
- {
- 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 &param)
- {
- 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 &param)
- {
- 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 &param)
+ 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 &param)
+ ~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 &param)
+ CommandReturn Execute(User *u, const std::vector<ci::string> &params)
{
- 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 &param)
- {
- 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 &param)
- {
- 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 &param)
- {
- 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 &param)
+ 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 &param)
- {
- 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 &param)
+ 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> &params)
+ 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> &params)
+ {
+ 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> &params)
+ {
+ 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> &params)
+ {
+ 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> &params)
+ {
+ 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> &params)
+ {
+ 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> &params)
+ {
+ 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> &params)
+ {
+ 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> &params)
+ {
+ 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> &params)
+ {
+ 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> &params)
+ {
+ 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> &params)
+ {
+ 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> &params)
+ {
+ 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> &params)
+ {
+ 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> &params)
+ {
+ 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> &params)
+ {
+ 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> &params)
+ {
+ 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> &params)
+ {
+ 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> &params)
+ {
+ 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> &params)
+ {
+ 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> &params)
+ {
+ 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)