From a71c8271dd68661c78026fa1bb67e735f3aa9ed0 Mon Sep 17 00:00:00 2001 From: "Naram Qashat cyberbotx@cyberbotx.com" Date: Sun, 19 Oct 2008 20:06:11 +0000 Subject: [PATCH] Added minusers directive to botserv block in new config. git-svn-id: http://anope.svn.sourceforge.net/svnroot/anope/trunk@1454 5417fbe8-f217-4b02-8779-1006273d7864 --- data/example_new.conf | 7 +++++++ src/config.c | 6 ++++-- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/data/example_new.conf b/data/example_new.conf index ff19061b3..22ab698cd 100644 --- a/data/example_new.conf +++ b/data/example_new.conf @@ -531,4 +531,11 @@ botserv * This directive is optional, if left blank, there will be no defaults. */ defaults="greet fantasy symbiosis" + + /* + * The minimum number of users there must be in a channel before the bot joins it. The best + * value for this setting is 1 or 2. This cannot be 0, otherwise topic retention and mode + * lock and such other things won't work. + */ + minusers = 1 } diff --git a/src/config.c b/src/config.c index abfd6b627..8c6cf88f9 100644 --- a/src/config.c +++ b/src/config.c @@ -485,6 +485,9 @@ bool ValidateBotServ(ServerConfig *, const char *tag, const char *value, ValueIt if (static_cast(value) == "description" || static_cast(value) == "database") { if (!*data.GetString()) throw ConfigException(static_cast("The value for <") + tag + ":" + value + "> cannot be empty when BotServ is enabled!"); } + else if (static_cast(value) == "minusers") { + if (!data.GetInteger()) throw ConfigException(static_cast("The value for <") + tag + ":" + value + "> must be non-zero when BotServ is enabled!"); + } } return true; } @@ -610,6 +613,7 @@ int ServerConfig::Read(bool bail) {"botserv", "description", "Bot Service", new ValueContainerChar(&desc_BotServ), DT_CHARPTR, ValidateBotServ}, {"botserv", "database", "bot.db", new ValueContainerChar(&BotDBName), DT_CHARPTR, ValidateBotServ}, {"botserv", "defaults", "", new ValueContainerString(&BSDefaults), DT_STRING, NoValidation}, + {"botserv", "minusers", "0", new ValueContainerInt(&BSMinUsers), DT_INTEGER, ValidateBotServ}, {NULL, NULL, NULL, NULL, DT_NOTHING, NoValidation} }; /* These tags can occur multiple times, and therefore they have special code to read them @@ -1196,7 +1200,6 @@ Directive directives[] = { {{PARAM_STRING, PARAM_RELOAD, &BSFantasyCharacter}}}, {"BSGentleBWReason", {{PARAM_SET, PARAM_RELOAD, &BSGentleBWReason}}}, {"BSKeepData", {{PARAM_TIME, PARAM_RELOAD, &BSKeepData}}}, - {"BSMinUsers", {{PARAM_POSINT, PARAM_RELOAD, &BSMinUsers}}}, {"BSSmartJoin", {{PARAM_SET, PARAM_RELOAD, &BSSmartJoin}}}, {"HostServDB", {{PARAM_STRING, PARAM_RELOAD, &HostDBName}}}, {"HostServName", {{PARAM_STRING, 0, &s_HostServ}, @@ -1892,7 +1895,6 @@ int read_config(int reload) if (s_BotServ) { CHECK(BSBadWordsMax); - CHECK(BSMinUsers); CHECK(BSKeepData); if (!BSFantasyCharacter) BSFantasyCharacter = sstrdup("!");