summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAdam <Adam@anope.org>2013-07-01 22:17:52 -0400
committerAdam <Adam@anope.org>2013-07-01 22:17:52 -0400
commit1a3d9a016d3adc49788bbff73aac9b3b5ea85b17 (patch)
treec0ecf92ed768473bc82ff64a7fce827245f37ba9
parent518182ac9204f815258b0de91b3f884d8efa1502 (diff)
Change extensible keys to require explicitly having a type defined for it. Completely modularize more features like bs_kick, entrymsg, log, mode, etc. Move fantasy to its own module. Move greet to its own module.
-rw-r--r--data/botserv.example.conf80
-rw-r--r--data/chanserv.example.conf70
-rw-r--r--data/example.conf1
-rw-r--r--data/nickserv.example.conf54
-rw-r--r--include/account.h73
-rw-r--r--include/channels.h2
-rw-r--r--include/defs.h1
-rw-r--r--include/extensible.h295
-rw-r--r--include/lists.h1
-rw-r--r--include/modules.h23
-rw-r--r--include/modules/bs_badwords.h70
-rw-r--r--include/modules/bs_kick.h45
-rw-r--r--include/modules/cs_log.h41
-rw-r--r--include/modules/cs_mode.h87
-rw-r--r--include/modules/cs_suspend.h19
-rw-r--r--include/modules/ns_cert.h61
-rw-r--r--include/modules/ns_suspend.h19
-rw-r--r--include/regchannel.h206
-rw-r--r--include/service.h2
-rw-r--r--modules/commands/bs_assign.cpp65
-rw-r--r--modules/commands/bs_badwords.cpp187
-rw-r--r--modules/commands/bs_info.cpp127
-rw-r--r--modules/commands/bs_kick.cpp623
-rw-r--r--modules/commands/bs_set.cpp317
-rw-r--r--modules/commands/cs_akick.cpp2
-rw-r--r--modules/commands/cs_clone.cpp19
-rw-r--r--modules/commands/cs_drop.cpp13
-rw-r--r--modules/commands/cs_enforce.cpp4
-rw-r--r--modules/commands/cs_entrymsg.cpp48
-rw-r--r--modules/commands/cs_info.cpp45
-rw-r--r--modules/commands/cs_list.cpp83
-rw-r--r--modules/commands/cs_log.cpp126
-rw-r--r--modules/commands/cs_mode.cpp368
-rw-r--r--modules/commands/cs_seen.cpp2
-rw-r--r--modules/commands/cs_set.cpp263
-rw-r--r--modules/commands/cs_set_misc.cpp57
-rw-r--r--modules/commands/cs_suspend.cpp131
-rw-r--r--modules/commands/cs_topic.cpp129
-rw-r--r--modules/commands/greet.cpp210
-rw-r--r--modules/commands/hs_request.cpp60
-rw-r--r--modules/commands/ms_info.cpp9
-rw-r--r--modules/commands/ms_set.cpp36
-rw-r--r--modules/commands/ns_ajoin.cpp53
-rw-r--r--modules/commands/ns_alist.cpp6
-rw-r--r--modules/commands/ns_cert.cpp224
-rw-r--r--modules/commands/ns_group.cpp10
-rw-r--r--modules/commands/ns_info.cpp170
-rw-r--r--modules/commands/ns_list.cpp112
-rw-r--r--modules/commands/ns_recover.cpp49
-rw-r--r--modules/commands/ns_register.cpp63
-rw-r--r--modules/commands/ns_resetpass.cpp28
-rw-r--r--modules/commands/ns_set.cpp427
-rw-r--r--modules/commands/ns_set_misc.cpp57
-rw-r--r--modules/commands/ns_suspend.cpp125
-rw-r--r--modules/commands/os_defcon.cpp20
-rw-r--r--modules/commands/os_login.cpp21
-rw-r--r--modules/commands/os_noop.cpp20
-rw-r--r--modules/database/db_old.cpp175
-rw-r--r--modules/database/db_plain.cpp339
-rw-r--r--modules/extra/m_chanstats.cpp16
-rw-r--r--modules/extra/m_ldap_authentication.cpp15
-rw-r--r--modules/extra/webcpanel/pages/chanserv/set.cpp40
-rw-r--r--modules/extra/webcpanel/pages/index.cpp4
-rw-r--r--modules/extra/webcpanel/pages/logout.cpp4
-rw-r--r--modules/extra/webcpanel/pages/nickserv/alist.cpp4
-rw-r--r--modules/extra/webcpanel/pages/nickserv/cert.cpp7
-rw-r--r--modules/extra/webcpanel/pages/nickserv/info.cpp54
-rw-r--r--modules/extra/webcpanel/webcpanel.cpp3
-rw-r--r--modules/extra/webcpanel/webcpanel.h2
-rw-r--r--modules/fantasy.cpp200
-rw-r--r--modules/m_dnsbl.cpp4
-rw-r--r--modules/m_helpchan.cpp4
-rw-r--r--modules/protocol/charybdis.cpp19
-rw-r--r--modules/protocol/inspircd12.cpp5
-rw-r--r--modules/protocol/inspircd20.cpp18
-rw-r--r--modules/protocol/unreal.cpp24
-rw-r--r--modules/pseudoclients/botserv.cpp138
-rw-r--r--modules/pseudoclients/chanserv.cpp104
-rw-r--r--modules/pseudoclients/nickserv.cpp126
-rw-r--r--src/bots.cpp4
-rw-r--r--src/channels.cpp72
-rw-r--r--src/config.cpp4
-rw-r--r--src/extensible.cpp101
-rw-r--r--src/misc.cpp21
-rw-r--r--src/nickalias.cpp13
-rw-r--r--src/nickcore.cpp72
-rw-r--r--src/regchannel.cpp498
-rw-r--r--src/serialize.cpp5
-rw-r--r--src/sockets.cpp2
-rw-r--r--src/users.cpp5
90 files changed, 3994 insertions, 3567 deletions
diff --git a/data/botserv.example.conf b/data/botserv.example.conf
index 1bd450123..299289416 100644
--- a/data/botserv.example.conf
+++ b/data/botserv.example.conf
@@ -100,13 +100,6 @@ module
#smartjoin = yes
/*
- * Defines the prefixes for fantasy commands in channels. One of these characters will have to be prepended
- * to all fantasy commands. If you choose "!", for example, fantasy commands will be "!kick",
- * "!op", etc. This directive is optional, if left out, the default fantasy character is "!".
- */
- #fantasycharacter = "!."
-
- /*
* Modes to set on service bots when they join channels, comment this out for no modes
*
* This directive is optional.
@@ -137,13 +130,17 @@ command { service = "BotServ"; name = "HELP"; command = "generic/help"; }
/*
* bs_assign
*
- * Provides the commands botserv/assign and botserv/unassign.
+ * Provides the commands:
+ * botserv/assign - Used to assign BotServ bots to channels
+ * botserv/unassign - Used to unassign BotServ bots
+ * botserv/set/nobot - Used to prohibit channels from being assigned BotServ bots.
*
* Used for assigning and unassigning bots to channels.
*/
module { name = "bs_assign" }
command { service = "BotServ"; name = "ASSIGN"; command = "botserv/assign"; }
command { service = "BotServ"; name = "UNASSIGN"; command = "botserv/unassign"; }
+command { service = "BotServ"; name = "SET NOBOT"; command = "botserv/set/nobot"; permission = "botserv/set/nobot"; }
/*
* bs_autoassign
@@ -240,6 +237,8 @@ command { service = "BotServ"; name = "INFO"; command = "botserv/info"; }
* botserv/kick/repeat - Configures BotServ's repeat kicker.
* botserv/kick/reverses - Configures BotServ's reverse kicker.
* botserv/kick/underlines - Configures BotServ's reverse kicker.
+ * botserv/set/dontkickops - Used for preventing BotServ from kicking channel operators.
+ * botserv/set/dontkickvoices - Used for preventing BotServ from kicking voices.
*
* Used for configuring what bots should kick for.
*/
@@ -275,30 +274,71 @@ command { service = "BotServ"; name = "KICK REPEAT"; command = "botserv/kick/rep
command { service = "BotServ"; name = "KICK REVERSES"; command = "botserv/kick/reverses"; }
command { service = "BotServ"; name = "KICK UNDERLINES"; command = "botserv/kick/underlines"; }
+command { service = "BotServ"; name = "SET DONTKICKOPS"; command = "botserv/set/dontkickops"; }
+command { service = "BotServ"; name = "SET DONTKICKVOICES"; command = "botserv/set/dontkickvoices"; }
+
/*
* bs_set
*
* Provides the commands:
- * botserv/set/dontkickops - Used for preventing BotServ from kicking channel operators.
- * botserv/set/dontkickvoices - Used for preventing BotServ from kicking voices.
- * botserv/set/fantasy - Used for enabling or disabling BotServ's fantasist commands.
- * botserv/set/greet - Used for enabling or disabling BotServ's greet messages in a channel.
- * botserv/set/nobot - Used to prohibit specific channels from being assigned BotServ bots.
* botserv/set/private - Used to prohibit specific BotServ bots from being assigned to channels.
- *
- * Used for setting options such as kickers and fantasy replies.
*/
module { name = "bs_set" }
command { service = "BotServ"; name = "SET"; command = "botserv/set"; }
command { service = "BotServ"; name = "SET BANEXPIRE"; command = "botserv/set/banexpire"; }
-command { service = "BotServ"; name = "SET DONTKICKOPS"; command = "botserv/set/dontkickops"; }
-command { service = "BotServ"; name = "SET DONTKICKVOICES"; command = "botserv/set/dontkickvoices"; }
-command { service = "BotServ"; name = "SET FANTASY"; command = "botserv/set/fantasy"; }
-command { service = "BotServ"; name = "SET GREET"; command = "botserv/set/greet"; }
-command { service = "BotServ"; name = "SET NOBOT"; command = "botserv/set/nobot"; permission = "botserv/set/nobot"; }
command { service = "BotServ"; name = "SET PRIVATE"; command = "botserv/set/private"; permission = "botserv/set/private"; }
/*
+ * greet
+ *
+ * Provides the commands:
+ * botserv/set/greet - Used for enabling or disabling BotServ's greet messages in a channel.
+ * nickserv/set/greet, nickserv/saset/greet - Used for changing a users greet message, which is displayed when they enter channels.
+ */
+module { name = "greet" }
+command { service = "BotServ"; name = "SET GREET"; command = "botserv/set/greet"; }
+command { service = "NickServ"; name = "SET GREET"; command = "nickserv/set/greet"; }
+command { service = "NickServ"; name = "SASET GREET"; command = "nickserv/saset/greet"; permission = "nickserv/saset/greet"; }
+
+/*
+ * GREET privilege.
+ *
+ * Used by 'greet'.
+ *
+ * Users with this privilege have their greet shown when they join channels.
+ */
+privilege
+{
+ name = "GREET"
+ rank = 40
+ level = 5
+ flag = "g"
+ xop = "AOP"
+}
+
+
+/*
+ * fantasy
+ *
+ * Allows 'fantaisist' commands to be used in channels.
+ *
+ * Provides the commands:
+ * botserv/set/fantasy - Used for enabling or disabling BotServ's fantasist commands.
+ */
+module
+{
+ name = "fantasy"
+
+ /*
+ * Defines the prefixes for fantasy commands in channels. One of these characters will have to be prepended
+ * to all fantasy commands. If you choose "!", for example, fantasy commands will be "!kick",
+ * "!op", etc. This directive is optional, if left out, the default fantasy character is "!".
+ */
+ #fantasycharacter = "!."
+}
+command { service = "BotServ"; name = "SET FANTASY"; command = "botserv/set/fantasy"; }
+
+/*
* Fantasy commands
*
* Fantasy commands can be executed in channels that have a BotServ bot by prefixing the
diff --git a/data/chanserv.example.conf b/data/chanserv.example.conf
index 6dc40991a..184c170fd 100644
--- a/data/chanserv.example.conf
+++ b/data/chanserv.example.conf
@@ -74,9 +74,9 @@ module
* - keeptopic: Retain topic when the channel is not in use
* - peace: Disallow users from kicking or removing modes from others who are of the same
* access level or superior
- * - private: Hide the channel from ChanServ's LIST command
+ * - cs_private: Hide the channel from ChanServ's LIST command
* - restricted: Kick/ban users who are restricted from the channel
- * - secure: Enable channel security, requiring the user to be identified with NickServ in
+ * - cs_secure: Enable channel security, requiring the user to be identified with NickServ in
* order to be considered for being on the access list of the channel
* - secureops: Only allow operator status to be given if the user is on the access list
* - securefounder: Only allow the real founder of the channel to drop the channel, change it's
@@ -89,10 +89,10 @@ module
* - noautoop: Disables autoop on the channel
* - none: No defaults
*
- * This directive is optional, if left blank, the options will default to keeptopic, secure, securefounder,
+ * This directive is optional, if left blank, the options will default to keeptopic, cs_secure, securefounder,
* and signkick. If you really want no defaults, use "none" by itself as the option.
*/
- defaults = "keeptopic peace secure securefounder signkick"
+ defaults = "keeptopic peace cs_secure securefounder signkick"
/*
* The maximum number of channels which may be registered to a single nickname.
@@ -111,18 +111,6 @@ module
expire = 14d
/*
- * The default ban type for newly registered channels.
- *
- * defbantype can be:
- *
- * 0: ban in the form of *!user@host
- * 1: ban in the form of *!*user@host
- * 2: ban in the form of *!*@host
- * 3: ban in the form of *!*user@*.domain
- */
- defbantype = 2
-
- /*
* The maximum number of entries on a channel's access list.
*/
accessmax = 1024
@@ -424,22 +412,6 @@ privilege
}
/*
- * GREET privilege.
- *
- * Used by botserv/main.
- *
- * Users with this permission get their greet shown on join.
- */
-privilege
-{
- name = "GREET"
- rank = 40
- level = 5
- flag = "g"
- xop = "AOP"
-}
-
-/*
* HALFOP privilege.
*
* Used by chanserv/mode, chanserv/halfop and chanserv/dehalfop.
@@ -983,9 +955,9 @@ command { service = "ChanServ"; name = "KICK"; command = "chanserv/kick"; }
/*
* cs_list
*
- * Provides the command chanserv/list.
- *
- * Used for retrieving and searching the registered channel list.
+ * Provides the commands:
+ * chanserv/list - Used for retrieving and searching the registered channel list.
+ * chanserv/set/private - Used for setting whether channels should show up in chanserv/list.
*/
module
{
@@ -998,6 +970,7 @@ module
}
command { service = "ChanServ"; name = "LIST"; command = "chanserv/list"; permission = "chanserv/list"; group = "chanserv/admin"; }
+command { service = "ChanServ"; name = "SET PRIVATE"; command = "chanserv/set/private"; }
/*
* cs_log
@@ -1057,10 +1030,8 @@ cs_seen
* chanserv/set/bantype - Used for controlling what format of bans are placed on channels.
* chanserv/set/description - Used for changing channels descriptions.
* chanserv/set/founder - Used for changing a channel's founder.
- * chanserv/set/keeptopic - Used for configuring if ChanServ is to restore the channel topic when a channel is created.
* chanserv/set/peace - Used for configuring if users are able to kick other users with higher access than them.
* chanserv/set/persist - Used for setting whether ChanServ should stay in channels after the last user leaves.
- * chanserv/set/private - Used for setting whether channels should show up in chanserv/list.
* chanserv/set/restricted - Used for setting whether users not on a channel's access list can join.
* chanserv/set/secure - Used for setting whether users who are recognized for accounts should have their access in channels.
* chanserv/set/securefounder - Used for setting whether users with founder level access in channels have true founder or not.
@@ -1071,7 +1042,22 @@ cs_seen
*
* This is a dummy command to provide a help wrapper for the various SET commands.
*/
-module { name = "cs_set" }
+module
+{
+ name = "cs_set"
+
+ /*
+ * The default ban type for newly registered channels.
+ *
+ * defbantype can be:
+ *
+ * 0: ban in the form of *!user@host
+ * 1: ban in the form of *!*user@host
+ * 2: ban in the form of *!*@host
+ * 3: ban in the form of *!*user@*.domain
+ */
+ defbantype = 2
+}
command { service = "ChanServ"; name = "SET"; command = "chanserv/set"; group = "chanserv/management"; }
command { service = "ChanServ"; name = "SET AUTOOP"; command = "chanserv/set/autoop"; }
@@ -1079,10 +1065,8 @@ command { service = "ChanServ"; name = "SET BANTYPE"; command = "chanserv/set/ba
command { service = "ChanServ"; name = "SET DESCRIPTION"; command = "chanserv/set/description"; }
command { service = "ChanServ"; name = "SET DESC"; command = "chanserv/set/description"; }
command { service = "ChanServ"; name = "SET FOUNDER"; command = "chanserv/set/founder"; }
-command { service = "ChanServ"; name = "SET KEEPTOPIC"; command = "chanserv/set/keeptopic"; }
command { service = "ChanServ"; name = "SET PEACE"; command = "chanserv/set/peace"; }
command { service = "ChanServ"; name = "SET PERSIST"; command = "chanserv/set/persist"; }
-command { service = "ChanServ"; name = "SET PRIVATE"; command = "chanserv/set/private"; }
command { service = "ChanServ"; name = "SET RESTRICTED"; command = "chanserv/set/restricted"; }
command { service = "ChanServ"; name = "SET SECURE"; command = "chanserv/set/secure"; }
command { service = "ChanServ"; name = "SET SECUREFOUNDER"; command = "chanserv/set/securefounder"; }
@@ -1149,12 +1133,14 @@ command { service = "ChanServ"; name = "SYNC"; command = "chanserv/sync"; group
/*
* cs_topic
*
- * Provides the command chanserv/topic.
+ * Provides the commands:
+ * chanserv/topic - Used for changing the channel topic. Useful in conjunction with chanserv/set/topiclock.
+ * chanserv/set/keeptopic - Used for configuring if ChanServ is to restore the channel topic when a channel is created.
*
- * Used for changing the channel topic. Useful in conjunction with chanserv/set/topiclock.
*/
module { name = "cs_topic" }
command { service = "ChanServ"; name = "TOPIC"; command = "chanserv/topic"; group = "chanserv/management"; }
+command { service = "ChanServ"; name = "SET KEEPTOPIC"; command = "chanserv/set/keeptopic"; }
/*
* cs_unban
diff --git a/data/example.conf b/data/example.conf
index b8ec96a9c..41a1a0163 100644
--- a/data/example.conf
+++ b/data/example.conf
@@ -1109,6 +1109,7 @@ mail
* [DEPRECATED] db_plain
*
* This is the flatfile database format from Anope-1.9.2 to Anope-1.9.5.
+ * This module only loads this database, and will NOT save it.
* To convert from this format, load both this and db_flatfile. Be sure to name db_flatfile's
* target database to something else. Start Anope then shut down so the new database will be written.
* Then unload this and restart Anope, loading from the new database.
diff --git a/data/nickserv.example.conf b/data/nickserv.example.conf
index 36eec61e1..dab48996a 100644
--- a/data/nickserv.example.conf
+++ b/data/nickserv.example.conf
@@ -94,9 +94,9 @@ module
* - killprotect: Kill nick if not identified within 60 seconds
* - kill_quick: Kill nick if not identified within 20 seconds, this one overrides the above
* option and the above must be specified with this one
- * - secure: Enable nickname security, requiring the nick's password before any operations
+ * - ns_secure: Enable nickname security, requiring the nick's password before any operations
* can be done on it
- * - private: Hide the nick from NickServ's LIST command
+ * -