summaryrefslogtreecommitdiff
path: root/modules
diff options
context:
space:
mode:
authorSadie Powell <sadie@witchery.services>2025-04-16 00:04:30 +0100
committerSadie Powell <sadie@witchery.services>2025-04-16 00:04:30 +0100
commitce362854a39c35249f8d2c7bcf27e3d5f9aa9980 (patch)
tree6d4012d9579c2d56055d621768122cf5f3b658ba /modules
parenta883b616a1360ba74254661cbd39280404d1753a (diff)
Update as many messages as possible for automatic line wrapping.
Diffstat (limited to 'modules')
-rw-r--r--modules/botserv/botserv.cpp64
-rw-r--r--modules/botserv/bs_assign.cpp30
-rw-r--r--modules/botserv/bs_badwords.cpp57
-rw-r--r--modules/botserv/bs_bot.cpp36
-rw-r--r--modules/botserv/bs_botlist.cpp28
-rw-r--r--modules/botserv/bs_control.cpp6
-rw-r--r--modules/botserv/bs_info.cpp12
-rw-r--r--modules/botserv/bs_kick.cpp281
-rw-r--r--modules/botserv/bs_set.cpp31
-rw-r--r--modules/chanserv/chanserv.cpp47
-rw-r--r--modules/chanserv/cs_access.cpp141
-rw-r--r--modules/chanserv/cs_akick.cpp70
-rw-r--r--modules/chanserv/cs_ban.cpp14
-rw-r--r--modules/chanserv/cs_clone.cpp10
-rw-r--r--modules/chanserv/cs_drop.cpp24
-rw-r--r--modules/chanserv/cs_enforce.cpp28
-rw-r--r--modules/chanserv/cs_entrymsg.cpp42
-rw-r--r--modules/chanserv/cs_flags.cpp39
-rw-r--r--modules/chanserv/cs_info.cpp14
-rw-r--r--modules/chanserv/cs_invite.cpp13
-rw-r--r--modules/chanserv/cs_kick.cpp10
-rw-r--r--modules/chanserv/cs_list.cpp73
-rw-r--r--modules/chanserv/cs_log.cpp42
-rw-r--r--modules/chanserv/cs_mode.cpp66
-rw-r--r--modules/chanserv/cs_register.cpp50
-rw-r--r--modules/chanserv/cs_seen.cpp24
-rw-r--r--modules/chanserv/cs_set.cpp200
-rw-r--r--modules/chanserv/cs_status.cpp12
-rw-r--r--modules/chanserv/cs_suspend.cpp24
-rw-r--r--modules/chanserv/cs_sync.cpp6
-rw-r--r--modules/chanserv/cs_topic.cpp32
-rw-r--r--modules/chanserv/cs_unban.cpp17
-rw-r--r--modules/chanserv/cs_updown.cpp16
-rw-r--r--modules/chanserv/cs_xop.cpp75
-rw-r--r--modules/fantasy.cpp22
-rw-r--r--modules/global/gl_global.cpp13
-rw-r--r--modules/global/gl_queue.cpp20
-rw-r--r--modules/global/gl_server.cpp13
-rw-r--r--modules/greet.cpp34
-rw-r--r--modules/help.cpp2
-rw-r--r--modules/hostserv/hs_del.cpp6
-rw-r--r--modules/hostserv/hs_group.cpp8
-rw-r--r--modules/hostserv/hs_list.cpp16
-rw-r--r--modules/hostserv/hs_off.cpp8
-rw-r--r--modules/hostserv/hs_on.cpp8
-rw-r--r--modules/hostserv/hs_request.cpp8
-rw-r--r--modules/hostserv/hs_set.cpp25
-rw-r--r--modules/memoserv/memoserv.cpp23
-rw-r--r--modules/memoserv/ms_cancel.cpp6
-rw-r--r--modules/memoserv/ms_check.cpp6
-rw-r--r--modules/memoserv/ms_del.cpp31
-rw-r--r--modules/memoserv/ms_ignore.cpp10
-rw-r--r--modules/memoserv/ms_info.cpp22
-rw-r--r--modules/memoserv/ms_list.cpp14
-rw-r--r--modules/memoserv/ms_read.cpp24
-rw-r--r--modules/memoserv/ms_rsend.cpp16
-rw-r--r--modules/memoserv/ms_send.cpp10
-rw-r--r--modules/memoserv/ms_set.cpp118
-rw-r--r--modules/nickserv/nickserv.cpp75
-rw-r--r--modules/nickserv/ns_ajoin.cpp10
-rw-r--r--modules/nickserv/ns_alist.cpp12
-rw-r--r--modules/nickserv/ns_cert.cpp38
-rw-r--r--modules/nickserv/ns_drop.cpp18
-rw-r--r--modules/nickserv/ns_group.cpp100
-rw-r--r--modules/nickserv/ns_identify.cpp13
-rw-r--r--modules/nickserv/ns_info.cpp47
-rw-r--r--modules/nickserv/ns_list.cpp95
-rw-r--r--modules/nickserv/ns_logout.cpp18
-rw-r--r--modules/nickserv/ns_recover.cpp26
-rw-r--r--modules/nickserv/ns_register.cpp86
-rw-r--r--modules/nickserv/ns_resetpass.cpp8
-rw-r--r--modules/nickserv/ns_set.cpp64
-rw-r--r--modules/nickserv/ns_set_keepmodes.cpp16
-rw-r--r--modules/nickserv/ns_set_language.cpp20
-rw-r--r--modules/nickserv/ns_set_message.cpp17
-rw-r--r--modules/nickserv/ns_set_protect.cpp22
-rw-r--r--modules/nickserv/ns_suspend.cpp10
-rw-r--r--modules/nickserv/ns_update.cpp8
-rw-r--r--modules/operserv/os_akill.cpp90
-rw-r--r--modules/operserv/os_chankill.cpp8
-rw-r--r--modules/operserv/os_config.cpp16
-rw-r--r--modules/operserv/os_defcon.cpp8
-rw-r--r--modules/operserv/os_dns.cpp30
-rw-r--r--modules/operserv/os_forbid.cpp13
-rw-r--r--modules/operserv/os_ignore.cpp31
-rw-r--r--modules/operserv/os_info.cpp8
-rw-r--r--modules/operserv/os_jupe.cpp18
-rw-r--r--modules/operserv/os_kick.cpp15
-rw-r--r--modules/operserv/os_kill.cpp8
-rw-r--r--modules/operserv/os_list.cpp46
-rw-r--r--modules/operserv/os_login.cpp18
-rw-r--r--modules/operserv/os_logsearch.cpp24
-rw-r--r--modules/operserv/os_mode.cpp16
-rw-r--r--modules/operserv/os_module.cpp3
-rw-r--r--modules/operserv/os_news.cpp36
-rw-r--r--modules/operserv/os_noop.cpp10
-rw-r--r--modules/operserv/os_oper.cpp8
-rw-r--r--modules/operserv/os_reload.cpp10
-rw-r--r--modules/operserv/os_session.cpp92
-rw-r--r--modules/operserv/os_set.cpp112
-rw-r--r--modules/operserv/os_shutdown.cpp16
-rw-r--r--modules/operserv/os_stats.cpp40
-rw-r--r--modules/operserv/os_sxline.cpp180
-rw-r--r--modules/operserv/os_update.cpp3
104 files changed, 2132 insertions, 1527 deletions
diff --git a/modules/botserv/botserv.cpp b/modules/botserv/botserv.cpp
index cd9d7f7ae..99e2c9134 100644
--- a/modules/botserv/botserv.cpp
+++ b/modules/botserv/botserv.cpp
@@ -135,29 +135,41 @@ public:
if (source.c)
{
- source.Reply(_("\002%s\002 allows you to execute \"fantasy\" commands in the channel.\n"
- "Fantasy commands are commands that can be executed from messaging a\n"
- "channel, and provide a more convenient way to execute commands. Commands that\n"
- "require a channel as a parameter will automatically have that parameter\n"
- "given.\n"), source.service->nick.c_str());
+ source.Reply(_(
+ "\002%s\002 allows you to execute \"fantasy\" commands in the channel. "
+ "Fantasy commands are commands that can be executed from messaging a "
+ "channel, and provide a more convenient way to execute commands. Commands that "
+ "require a channel as a parameter will automatically have that parameter "
+ "given."
+ ),
+ source.service->nick.c_str());
+
const Anope::string &fantasycharacters = Config->GetModule("fantasy").Get<const Anope::string>("fantasycharacter", "!");
if (!fantasycharacters.empty())
- source.Reply(_(" \n"
- "Fantasy commands may be prefixed with one of the following characters: %s\n"), fantasycharacters.c_str());
- source.Reply(_(" \n"
- "Available commands are:"));
+ {
+ source.Reply(" ");
+ source.Reply(_("Fantasy commands may be prefixed with one of the following characters: %s"),
+ fantasycharacters.c_str());
+ }
+ source.Reply(" ");
+ source.Reply(_("Available commands are:"));
}
else if (*source.service == BotServ)
{
- source.Reply(_("\002%s\002 allows you to have a bot on your own channel.\n"
- "It has been created for users that can't host or\n"
- "configure a bot, or for use on networks that don't\n"
- "allow user bots. Available commands are listed\n"
- "below; to use them, type \002%s \037command\037\002. For\n"
- "more information on a specific command, type\n"
- "\002%s \037command\037\002.\n"),
- BotServ->nick.c_str(), BotServ->GetQueryCommand().c_str(),
+ source.Reply(_(
+ "\002%s\002 allows you to have a bot on your own channel. "
+ "It has been created for users that can't host or "
+ "configure a bot, or for use on networks that don't "
+ "allow user bots. Available commands are listed "
+ "below; to use them, type \002%s\032\037command\037\002. For "
+ "more information on a specific command, type "
+ "\002%s\032\037command\037\002."
+ ),
+ BotServ->nick.c_str(),
+ BotServ->GetQueryCommand().c_str(),
BotServ->GetQueryCommand({}, source.command).c_str());
+
+ source.Reply(" ");
}
return EVENT_CONTINUE;
@@ -168,14 +180,20 @@ public:
if (!params.empty() || source.c || source.service != *BotServ)
return;
- source.Reply(_(" \n"
- "Bot will join a channel whenever there is at least\n"
- "\002%d\002 user(s) on it."), Config->GetModule(this).Get<unsigned>("minusers"));
+ source.Reply(" ");
+ source.Reply(_("Bot will join a channel whenever there is at least \002%d\002 user(s) on it."),
+ Config->GetModule(this).Get<unsigned>("minusers"));
+
const Anope::string &fantasycharacters = Config->GetModule("fantasy").Get<const Anope::string>("fantasycharacter", "!");
if (!fantasycharacters.empty())
- source.Reply(_("Additionally, if fantasy is enabled fantasy commands\n"
- "can be executed by prefixing the command name with\n"
- "one of the following characters: %s"), fantasycharacters.c_str());
+ {
+ source.Reply(_(
+ "Additionally, if fantasy is enabled fantasy commands "
+ "can be executed by prefixing the command name with "
+ "one of the following characters: %s"
+ ),
+ fantasycharacters.c_str());
+ }
}
EventReturn OnChannelModeSet(Channel *c, MessageSource &source, ChannelMode *mode, const Anope::string &param) override
diff --git a/modules/botserv/bs_assign.cpp b/modules/botserv/bs_assign.cpp
index f80e9c17e..292c89459 100644
--- a/modules/botserv/bs_assign.cpp
+++ b/modules/botserv/bs_assign.cpp
@@ -76,9 +76,11 @@ public:
{
this->SendSyntax(source);
source.Reply(" ");
- source.Reply(_("Assigns the specified bot to a channel. You\n"
- "can then configure the bot for the channel so it fits\n"
- "your needs."));
+ source.Reply(_(
+ "Assigns the specified bot to a channel. You "
+ "can then configure the bot for the channel so it fits "
+ "your needs."
+ ));
return true;
}
};
@@ -138,11 +140,13 @@ public:
{
this->SendSyntax(source);
source.Reply(" ");
- source.Reply(_("Unassigns a bot from a channel. When you use this command,\n"
- "the bot won't join the channel anymore. However, bot\n"
- "configuration for the channel is kept, so you will always\n"
- "be able to reassign a bot later without having to reconfigure\n"
- "it entirely."));
+ source.Reply(_(
+ "Unassigns a bot from a channel. When you use this command, "
+ "the bot won't join the channel anymore. However, bot "
+ "configuration for the channel is kept, so you will always "
+ "be able to reassign a bot later without having to reconfigure "
+ "it entirely."
+ ));
return true;
}
};
@@ -197,10 +201,12 @@ public:
bool OnHelp(CommandSource &source, const Anope::string &) override
{
this->SendSyntax(source);
- source.Reply(_(" \n"
- "This option makes a channel unassignable. If a bot\n"
- "is already assigned to the channel, it is unassigned\n"
- "automatically when you enable it."));
+ source.Reply(" ");
+ source.Reply(_(
+ "This option makes a channel unassignable. If a bot "
+ "is already assigned to the channel, it is unassigned "
+ "automatically when you enable it."
+ ));
return true;
}
};
diff --git a/modules/botserv/bs_badwords.cpp b/modules/botserv/bs_badwords.cpp
index 789689699..d50ca0f95 100644
--- a/modules/botserv/bs_badwords.cpp
+++ b/modules/botserv/bs_badwords.cpp
@@ -435,35 +435,38 @@ public:
{
this->SendSyntax(source);
source.Reply(" ");
- source.Reply(_("Maintains the \002bad words list\002 for a channel. The bad\n"
- "words list determines which words are to be kicked\n"
- "when the bad words kicker is enabled. For more information,\n"
- "type \002%s KICK %s\002.\n"
- " \n"
- "The \002ADD\002 command adds the given word to the\n"
- "bad words list. If SINGLE is specified, a kick will be\n"
- "done only if a user says the entire word. If START is\n"
- "specified, a kick will be done if a user says a word\n"
- "that starts with \037word\037. If END is specified, a kick\n"
- "will be done if a user says a word that ends with\n"
- "\037word\037. If you don't specify anything, a kick will\n"
- "be issued every time \037word\037 is said by a user.\n"
- " \n"), source.service->GetQueryCommand("generic/help").c_str(), source.command.c_str());
-
- source.Reply(_("The \002DEL\002 command removes the given word from the\n"
- "bad words list. If a list of entry numbers is given, those\n"
- "entries are deleted. (See the example for LIST below.)\n"
- " \n"
- "The \002LIST\002 command displays the bad words list. If\n"
- "a wildcard mask is given, only those entries matching the\n"
- "mask are displayed. If a list of entry numbers is given,\n"
+ source.Reply(_(
+ "Maintains the \002bad words list\002 for a channel. The bad "
+ "words list determines which words are to be kicked "
+ "when the bad words kicker is enabled. For more information, "
+ "type \002%s\032KICK\032%s\002."
+ "\n\n"
+ "The \002ADD\002 command adds the given word to the "
+ "bad words list. If SINGLE is specified, a kick will be "
+ "done only if a user says the entire word. If START is "
+ "specified, a kick will be done if a user says a word "
+ "that starts with \037word\037. If END is specified, a kick "
+ "will be done if a user says a word that ends with "
+ "\037word\037. If you don't specify anything, a kick will "
+ "be issued every time \037word\037 is said by a user."
+ "\n\n"
+ "The \002DEL\002 command removes the given word from the "
+ "bad words list. If a list of entry numbers is given, those "
+ "entries are deleted. (See the example for LIST below.)"
+ "\n\n"
+ "The \002LIST\002 command displays the bad words list. If "
+ "a wildcard mask is given, only those entries matching the "
+ "mask are displayed. If a list of entry numbers is given, "
"only those entries are shown; for example:\n"
- " \002#channel LIST 2-5,7-9\002\n"
+ " \002#channel\032LIST\0322-5,7-9\002\n"
" Lists bad words entries numbered 2 through 5 and\n"
- " 7 through 9.\n"
- " \n"
- "The \002CLEAR\002 command clears all entries from the\n"
- "bad words list."));
+ " 7 through 9."
+ "\n\n"
+ "The \002CLEAR\002 command clears all entries from the "
+ "bad words list."
+ ),
+ source.service->GetQueryCommand("generic/help").c_str(),
+ source.command.c_str());
return true;
}
};
diff --git a/modules/botserv/bs_bot.cpp b/modules/botserv/bs_bot.cpp
index 829b8ec9d..cd39f73b0 100644
--- a/modules/botserv/bs_bot.cpp
+++ b/modules/botserv/bs_bot.cpp
@@ -347,23 +347,25 @@ public:
{
this->SendSyntax(source);
source.Reply(" ");
- source.Reply(_("Allows Services Operators to create, modify, and delete\n"
- "bots that users will be able to use on their own\n"
- "channels.\n"
- " \n"
- "\002BOT ADD\002 adds a bot with the given nickname, username,\n"
- "hostname and realname. Since no integrity checks are done\n"
- "for these settings, be really careful.\n"
- " \n"
- "\002BOT CHANGE\002 allows you to change the nickname, username, hostname\n"
- "or realname of a bot without deleting it (and\n"
- "all the data associated with it).\n"
- " \n"
- "\002BOT DEL\002 removes the given bot from the bot list.\n"
- " \n"
- "\002Note\002: You cannot create a bot with a nick that is\n"
- "currently registered. If an unregistered user is currently\n"
- "using the nick, they will be killed."));
+ source.Reply(_(
+ "Allows Services Operators to create, modify, and delete "
+ "bots that users will be able to use on their own "
+ "channels."
+ "\n\n"
+ "\002BOT\032ADD\002 adds a bot with the given nickname, username, "
+ "hostname and realname. Since no integrity checks are done "
+ "for these settings, be really careful."
+ "\n\n"
+ "\002BOT\032CHANGE\002 allows you to change the nickname, username, hostname "
+ "or realname of a bot without deleting it (and "
+ "all the data associated with it)."
+ "\n\n"
+ "\002BOT\032DEL\002 removes the given bot from the bot list."
+ "\n\n"
+ "\002Note\002: You cannot create a bot with a nick that is "
+ "currently registered. If an unregistered user is currently "
+ "using the nick, they will be killed."
+ ));
return true;
}
};
diff --git a/modules/botserv/bs_botlist.cpp b/modules/botserv/bs_botlist.cpp
index dbb92a999..c49d5bc26 100644
--- a/modules/botserv/bs_botlist.cpp
+++ b/modules/botserv/bs_botlist.cpp
@@ -70,8 +70,12 @@ public:
list.Process(replies);
if (!count)
- source.Reply(_("There are no bots available at this time.\n"
- "Ask a Services Operator to create one!"));
+ {
+ source.Reply(_(
+ "There are no bots available at this time. "
+ "Ask a Services Operator to create one!"
+ ));
+ }
else
{
source.Reply(_("Bot list:"));
@@ -87,15 +91,17 @@ public:
{
this->SendSyntax(source);
source.Reply(" ");
- source.Reply(_("Lists all available bots on this network.\n"
- "\n"
- "If the OPERONLY, UNUSED or VANITY options are given only\n"
- "bots which, respectively, are oper-only, unused or were\n"
- "added at runtime will be displayed. If multiple options are\n"
- "given, all nicks matching at least one option will be\n"
- "displayed.\n"
- "\n"
- "Note that these options are limited to \037Services Operators\037."));
+ source.Reply(_(
+ "Lists all available bots on this network."
+ "\n\n"
+ "If the OPERONLY, UNUSED or VANITY options are given only "
+ "bots which, respectively, are oper-only, unused or were "
+ "added at runtime will be displayed. If multiple options are "
+ "given, all nicks matching at least one option will be "
+ "displayed."
+ "\n\n"
+ "Note that these options are limited to \037Services Operators\037."
+ ));
return true;
}
};
diff --git a/modules/botserv/bs_control.cpp b/modules/botserv/bs_control.cpp
index 2ea81a45b..e97b98871 100644
--- a/modules/botserv/bs_control.cpp
+++ b/modules/botserv/bs_control.cpp
@@ -122,8 +122,10 @@ public:
{
this->SendSyntax(source);
source.Reply(" ");
- source.Reply(_("Makes the bot do the equivalent of a \"/me\" command\n"
- "on the specified channel using the specified text."));
+ source.Reply(_(
+ "Makes the bot do the equivalent of a \"/me\" command "
+ "on the specified channel using the specified text."
+ ));
return true;
}
};
diff --git a/modules/botserv/bs_info.cpp b/modules/botserv/bs_info.cpp
index ae4af76cf..8ecff03ec 100644
--- a/modules/botserv/bs_info.cpp
+++ b/modules/botserv/bs_info.cpp
@@ -104,11 +104,13 @@ public:
{
this->SendSyntax(source);
source.Reply(" ");
- source.Reply(_("Allows you to see %s information about a channel or a bot.\n"
- "If the parameter is a channel, then you'll get information\n"
- "such as enabled kickers. If the parameter is a nick,\n"
- "you'll get information about a bot, such as creation\n"
- "time or number of channels it is on."), source.service->nick.c_str());
+ source.Reply(_(
+ "Allows you to see %s information about a channel or a bot. "
+ "If the parameter is a channel, then you'll get information "
+ "such as enabled kickers. If the parameter is a nick, "
+ "you'll get information about a bot, such as creation "
+ "time or number of channels it is on."
+ ), source.service->nick.c_str());
return true;
}
diff --git a/modules/botserv/bs_kick.cpp b/modules/botserv/bs_kick.cpp
index 835d90491..80d8fc45d 100644
--- a/modules/botserv/bs_kick.cpp
+++ b/modules/botserv/bs_kick.cpp
@@ -153,13 +153,14 @@ public:
}
}
- source.Reply(_("Type \002%s \037option\037\002 for more information\n"
- "on a specific option.\n"
- " \n"
- "Note: access to this command is controlled by the\n"
- "level SET."),
+ source.Reply(_(
+ "Type \002%s\032\037option\037\002 for more information "
+ "on a specific option."
+ "\n\n"
+ "Note: access to this command is controlled by the "
+ "level SET."
+ ),
source.service->GetQueryCommand("generic/help", this_name).c_str());
-
return true;
}
};
@@ -221,8 +222,10 @@ protected:
val = true;
if (kd->ttb[ttb_idx])
- source.Reply(_("Bot will now kick for \002%s\002, and will place a ban\n"
- "after %d kicks for the same user."), optname.c_str(), kd->ttb[ttb_idx]);
+ {
+ source.Reply(_("Bot will now kick for \002%s\002, and will place a ban after %d kicks for the same user."),
+ optname.c_str(), kd->ttb[ttb_idx]);
+ }
else
source.Reply(_("Bot will now kick for \002%s\002."), optname.c_str());
@@ -268,13 +271,16 @@ public:
this->SendSyntax(source);
source.Reply(" ");
BotInfo *bi = Config->GetClient("BotServ");
- source.Reply(_("Sets the AMSG kicker on or off. When enabled, the bot will\n"
- "kick users who send the same message to multiple channels\n"
- "where %s bots are.\n"
- " \n"
- "\037ttb\037 is the number of times a user can be kicked\n"
- "before they get banned. Don't give ttb to disable\n"
- "the ban system once activated."), bi ? bi->nick.c_str() : "BotServ");
+ source.Reply(_(
+ "Sets the AMSG kicker on or off. When enabled, the bot will "
+ "kick users who send the same message to multiple channels "
+ "where %s bots are."
+ "\n\n"
+ "\037ttb\037 is the number of times a user can be kicked "
+ "before they get banned. Don't give ttb to disable "
+ "the ban system once activated."
+ ),
+ bi ? bi->nick.c_str() : "BotServ");
return true;
}
};
@@ -305,16 +311,19 @@ public:
{
this->SendSyntax(source);
source.Reply(" ");
- source.Reply(_("Sets the bad words kicker on or off. When enabled, this\n"
- "option tells the bot to kick users who say certain words\n"
- "on the channels.\n"
- "You can define bad words for your channel using the\n"
- "\002BADWORDS\002 command. Type \002%s BADWORDS\002 for\n"
- "more information.\n"
- " \n"
- "\037ttb\037 is the number of times a user can be kicked\n"
- "before it gets banned. Don't give ttb to disable\n"
- "the ban system once activated."),
+ source.Reply(_(
+ "Sets the bad words kicker on or off. When enabled, this "
+ "option tells the bot to kick users who say certain words "
+ "on the channels."
+ "\n\n"
+ "You can define bad words for your channel using the "
+ "\002BADWORDS\002 command. Type \002%s\032BADWORDS\002 for "
+ "more information."
+ "\n\n"
+ "\037ttb\037 is the number of times a user can be kicked "
+ "before it gets banned. Don't give ttb to disable "
+ "the ban system once activated."
+ ),
source.service->GetQueryCommand("generic/help").c_str());
return true;
}
@@ -345,12 +354,14 @@ public:
{
this->SendSyntax(source);
source.Reply(" ");
- source.Reply(_("Sets the bolds kicker on or off. When enabled, this\n"
- "option tells the bot to kick users who use bolds.\n"
- " \n"
- "\037ttb\037 is the number of times a user can be kicked\n"
- "before it gets banned. Don't give ttb to disable\n"
- "the ban system once activated."));
+ source.Reply(_(
+ "Sets the bolds kicker on or off. When enabled, this "
+ "option tells the bot to kick users who use bolds."
+ "\n\n"
+ "\037ttb\037 is the number of times a user can be kicked "
+ "before it gets banned. Don't give ttb to disable "
+ "the ban system once activated."
+ ));
return true;
}
};
@@ -402,12 +413,23 @@ public:
kd->caps = true;
if (kd->ttb[TTB_CAPS])
- source.Reply(_("Bot will now kick for \002caps\002 (they must constitute at least\n"
- "%d characters and %d%% of the entire message), and will\n"
- "place a ban after %d kicks for the same user."), kd->capsmin, kd->capspercent, kd->ttb[TTB_CAPS]);
+ {
+ source.Reply(_(
+ "Bot will now kick for \002caps\002 (they must constitute at least "
+ "%d characters and %d%% of the entire message), and will "
+ "place a ban after %d kicks for the same user."
+ ),
+ kd->capsmin,
+ kd->capspercent,
+ kd->ttb[TTB_CAPS]);
+ }
else
- source.Reply(_("Bot will now kick for \002caps\002 (they must constitute at least\n"
- "%d characters and %d%% of the entire message)."), kd->capsmin, kd->capspercent);
+ source.Reply(_(
+ "Bot will now kick for \002caps\002 (they must constitute at least "
+ "%d characters and %d%% of the entire message)."
+ ),
+ kd->capsmin,
+ kd->capspercent);
}
else
{
@@ -422,17 +444,20 @@ public:
{
this->SendSyntax(source);
source.Reply(" ");
- source.Reply(_("Sets the caps kicker on or off. When enabled, this\n"
- "option tells the bot to kick users who are talking in\n"
- "CAPS.\n"
- "The bot kicks only if there are at least \002min\002 caps\n"
- "and they constitute at least \002percent\002%% of the total\n"
- "text line (if not given, it defaults to 10 characters\n"
- "and 25%%).\n"
- " \n"
- "\037ttb\037 is the number of times a user can be kicked\n"
- "before it gets banned. Don't give ttb to disable\n"
- "the ban system once activated."));
+ source.Reply(_(
+ "Sets the caps kicker on or off. When enabled, this "
+ "option tells the bot to kick users who are talking in "
+ "CAPS."
+ "\n\n"
+ "The bot kicks only if there are at least \002min\002 caps "
+ "and they constitute at least \002percent\002%% of the total "
+ "text line (if not given, it defaults to 10 characters "
+ "and 25%%)."
+ "\n\n"
+ "\037ttb\037 is the number of times a user can be kicked "
+ "before it gets banned. Don't give ttb to disable "
+ "the ban system once activated."
+ ));
return true;
}
};
@@ -462,12 +487,14 @@ public:
{
this->SendSyntax(source);
source.Reply(" ");
- source.Reply(_("Sets the colors kicker on or off. When enabled, this\n"
- "option tells the bot to kick users who use colors.\n"
- " \n"
- "\037ttb\037 is the number of times a user can be kicked\n"
- "before it gets banned. Don't give ttb to disable\n"
- "the ban system once activated."));
+ source.Reply(_(
+ "Sets the colors kicker on or off. When enabled, this "
+ "option tells the bot to kick users who use colors."
+ "\n\n"
+ "\037ttb\037 is the number of times a user can be kicked "
+ "before it gets banned. Don't give ttb to disable "
+ "the ban system once activated."
+ ));
return true;
}
};
@@ -522,8 +549,15 @@ public:
kd->flood = true;
if (kd->ttb[TTB_FLOOD])
- source.Reply(_("Bot will now kick for \002flood\002 (%d lines in %d seconds\n"
- "and will place a ban after %d kicks for the same user."), kd->floodlines, kd->floodsecs, kd->ttb[TTB_FLOOD]);
+ {
+ source.Reply(_(
+ "Bot will now kick for \002flood\002 (%d lines in %d seconds "
+ "and will place a ban after %d kicks for the same user."
+ ),
+ kd->floodlines,
+ kd->floodsecs,
+ kd->ttb[TTB_FLOOD]);
+ }
else
source.Reply(_("Bot will now kick for \002flood\002 (%d lines in %d seconds)."), kd->floodlines, kd->floodsecs);
}
@@ -542,14 +576,15 @@ public:
{
this->SendSyntax(source);
source.Reply(" ");
- source.Reply(_("Sets the flood kicker on or off. When enabled, this\n"
- "option tells the bot to kick users who are flooding\n"
- "the channel using at least \002ln\002 lines in \002secs\002 seconds\n"
- "(if not given, it defaults to 6 lines in 10 seconds).\n"
- " \n"
- "\037ttb\037 is the number of times a user can be kicked\n"
- "before it gets banned. Don't give ttb to disable\n"
- "the ban system once activated."));
+ source.Reply(_(
+ "Sets the flood kicker on or off. When enabled, this "
+ "option tells the bot to kick users who are flooding "
+ "the channel using at least \002ln\002 lines in \002secs\002 seconds "
+ "(if not given, it defaults to 6 lines in 10 seconds). "
+ "\n\n"
+ "\037ttb\037 is the number of times a user can be kicked "
+ "before it gets banned. Don't give ttb to disable "
+ "the ban system once activated."));
return true;
}
};
@@ -579,12 +614,14 @@ public:
{
this->SendSyntax(source);
source.Reply(" ");
- source.Reply(_("Sets the italics kicker on or off. When enabled, this\n"
- "option tells the bot to kick users who use italics.\n"
- " \n"
- "\037ttb\037 is the number of times a user can be kicked\n"
- "before it gets banned. Don't give ttb to disable\n"
- "the ban system once activated."));
+ source.Reply(_(
+ "Sets the italics kicker on or off. When enabled, this "
+ "option tells the bot to kick users who use italics. "
+ "\n\n"
+ "\037ttb\037 is the number of times a user can be kicked "
+ "before it gets banned. Don't give ttb to disable "
+ "the ban system once activated."
+ ));
return true;
}
};
@@ -633,22 +670,42 @@ public:
if (kd->ttb[TTB_REPEAT])
{
if (kd->repeattimes != 1)
- source.Reply(_("Bot will now kick for \002repeats\002 (users that repeat the\n"
- "same message %d times), and will place a ban after %d\n"
- "kicks for the same user."), kd->repeattimes, kd->ttb[TTB_REPEAT]);
+ {
+ source.Reply(_(
+ "Bot will now kick for \002repeats\002 (users that repeat the "
+ "same message %d times), and will place a ban after %d "
+ "kicks for the same user."
+ ),
+ kd->repeattimes,
+ kd->ttb[TTB_REPEAT]);
+ }
else
- source.Reply(_("Bot will now kick for \002repeats\002 (users that repeat the\n"
- "same message %d time), and will place a ban after %d\n"
- "kicks for the same user."), kd->repeattimes, kd->ttb[TTB_REPEAT]);
+ source.Reply(_(
+ "Bot will now kick for \002repeats\002 (users that repeat the "
+ "same message %d time), and will place a ban after %d "
+ "kicks for the same user."
+ ),
+ kd->repeattimes,
+ kd->ttb[TTB_REPEAT]);
}
else
{
if (kd->repeattimes != 1)
- source.Reply(_("Bot will now kick for \002repeats\002 (users that repeat the\n"
- "same message %d times)."), kd->repeattimes);
+ {
+ source.Reply(_(
+ "Bot will now kick for \002repeats\002 (users that repeat the "
+ "same message %d times)."
+ ),
+ kd->repeattimes);
+ }
else
- source.Reply(_("Bot will now kick for \002repeats\002 (users that repeat the\n"
- "same message %d time)."), kd->repeattimes);
+ {
+ source.Reply(_(
+ "Bot will now kick for \002repeats\002 (users that repeat the "
+ "same message %d time)."
+ ),
+ kd->repeattimes);
+ }
}
}
else if (params[1].equals_ci("OFF"))
@@ -666,14 +723,16 @@ public:
{
this->SendSyntax(source);
source.Reply(" ");
- source.Reply(_("Sets the repeat kicker on or off. When enabled, this\n"
- "option tells the bot to kick users who are repeating\n"
- "themselves \002num\002 times (if num is not given, it\n"
- "defaults to 3).\n"
- " \n"
- "\037ttb\037 is the number of times a user can be kicked\n"
- "before it gets banned. Don't give ttb to disable\n"
- "the ban system once activated."));
+ source.Reply(_(
+ "Sets the repeat kicker on or off. When enabled, this "
+ "option tells the bot to kick users who are repeating "
+ "themselves \002num\002 times (if num is not given, it "
+ "defaults to 3)."
+ "\n\n"
+ "\037ttb\037 is the number of times a user can be kicked "
+ "before it gets banned. Don't give ttb to disable "
+ "the ban system once activated."
+ ));
return true;
}
};
@@ -703,12 +762,14 @@ public:
{
this->SendSyntax(source);
source.Reply(" ");
- source.Reply(_("Sets the reverses kicker on or off. When enabled, this\n"
- "option tells the bot to kick users who use reverses.\n"
- " \n"
- "\037ttb\037 is the number of times a user can be kicked\n"
- "before it gets banned. Don't give ttb to disable\n"
- "the ban system once activated."));
+ source.Reply(_(
+ "Sets the reverses kicker on or off. When enabled, this "
+ "option tells the bot to kick users who use reverses. "
+ "\n\n"
+ "\037ttb\037 is the number of times a user can be kicked "
+ "before it gets banned. Don't give ttb to disable "
+ "the ban system once activated."
+ ));
return true;
}
};
@@ -738,12 +799,14 @@ public:
{
this->SendSyntax(source);
source.Reply(" ");
- source.Reply(_("Sets the underlines kicker on or off. When enabled, this\n"
- "option tells the bot to kick users who use underlines.\n"
- " \n"
- "\037ttb\037 is the number of times a user can be kicked\n"
- "before it gets banned. Don't give ttb to disable\n"
- "the ban system once activated."));
+ source.Reply(_(
+ "Sets the underlines kicker on or off. When enabled, this "
+ "option tells the bot to kick users who use underlines. "
+ "\n\n"
+ "\037ttb\037 is the number of times a user can be kicked "
+ "before it gets banned. Don't give ttb to disable "
+ "the ban system once activated."
+ ));
return true;
}
};
@@ -806,10 +869,12 @@ public:
bool OnHelp(CommandSource &source, const Anope::string &) override
{
this->SendSyntax(source);
- source.Reply(_(" \n"
- "Enables or disables \002ops protection\002 mode on a channel.\n"
- "When it is enabled, ops won't be kicked by the bot\n"
- "even if they don't match the NOKICK level."));
+ source.Reply(" ");
+ source.Reply(_(
+ "Enables or disables \002ops protection\002 mode on a channel. "
+ "When it is enabled, ops won't be kicked by the bot "
+ "even if they don't match the NOKICK level."
+ ));
return true;
}
};
@@ -872,10 +937,12 @@ public:
bool OnHelp(CommandSource &source, const Anope::string &) override
{
this->SendSyntax(source);
- source.Reply(_(" \n"
- "Enables or disables \002voices protection\002 mode on a channel.\n"
- "When it is enabled, voices won't be kicked by the bot\n"
- "even if they don't match the NOKICK level."));
+ source.Reply(" ");
+ source.Reply(_(
+ "Enables or disables \002voices protection\002 mode on a channel. "
+ "When it is enabled, voices won't be kicked by the bot "
+ "even if they don't match the NOKICK level."
+ ));
return true;
}
};
diff --git a/modules/botserv/bs_set.cpp b/modules/botserv/bs_set.cpp
index 7110e123b..4cce07b98 100644
--- a/modules/botserv/bs_set.cpp
+++ b/modules/botserv/bs_set.cpp
@@ -30,9 +30,11 @@ public:
{
this->SendSyntax(source);
source.Reply(" ");
- source.Reply(_("Configures bot options.\n"
- " \n"
- "Available options:"));
+ source.Reply(_(
+ "Configures bot options."
+ "\n\n"
+ "Available options:"
+ ));
bool hide_privileged_commands = Config->GetBlock("options").Get<bool>("hideprivilegedcommands"),
hide_registered_commands = Config->GetBlock("options").Get<bool>("hideregisteredcommands");
Anope::string this_name = source.command;
@@ -58,8 +60,7 @@ public:
}
}
}
- source.Reply(_("Type \002%s \037option\037\002 for more information on a\n"
- "particular option."),
+ source.Reply(_("Type \002%s\032\037option\037\002 for more information on a particular option."),
source.service->GetQueryCommand("generic/help", this_name).c_str());
return true;
@@ -151,11 +152,13 @@ public:
bool OnHelp(CommandSource &source, const Anope::string &) override
{
this->SendSyntax(source);
- source.Reply(_(" \n"
- "Sets the time bot bans expire in. If enabled, any bans placed by\n"
- "bots, such as flood kicker, badwords kicker, etc. will automatically\n"
- "be removed after the given time. Set to 0 to disable bans from\n"
- "automatically expiring."));
+ source.Reply(" ");
+ source.Reply(_(
+ "Sets the time bot bans expire in. If enabled, any bans placed by "
+ "bots, such as flood kicker, badwords kicker, etc. will automatically "
+ "be removed after the given time. Set to 0 to disable bans from "
+ "automatically expiring."
+ ));
return true;
}
};
@@ -204,9 +207,11 @@ public:
bool OnHelp(CommandSource &source, const Anope::string &) override
{
this->SendSyntax(source);
- source.Reply(_(" \n"
- "This option prevents a bot from being assigned to a\n"
- "channel by users that aren't IRC Operators."));
+ source.Reply(" ");
+ source.Reply(_(
+ "This option prevents a bot from being assigned to a "
+ "channel by users that aren't IRC Operators."
+ ));
return true;
}
};
diff --git a/modules/chanserv/chanserv.cpp b/modules/chanserv/chanserv.cpp
index 4fcf3c097..38d2f0ef0 100644
--- a/modules/chanserv/chanserv.cpp
+++ b/modules/chanserv/chanserv.cpp
@@ -260,15 +260,19 @@ public:
{
if (!params.empty() || source.c || source.service != *ChanServ)
return EVENT_CONTINUE;
- source.Reply(_("\002%s\002 allows you to register and control various\n"
- "aspects of channels. %s can often prevent\n"
- "malicious users from \"taking over\" channels by limiting\n"
- "who is allowed channel operator privileges. Available\n"
- "commands are listed below; to use them, type\n"
- "\002%s \037command\037\002. For more information on a\n"
- "specific command, type \002%s \037command\037\002.\n"),
- ChanServ->nick.c_str(), ChanServ->nick.c_str(),
- ChanServ->GetQueryCommand().c_str(), ChanServ->GetQueryCommand("generic/help").c_str());
+ source.Reply(_(
+ "\002%s\002 allows you to register and control various "
+ "aspects of channels. %s can often prevent "
+ "malicious users from \"taking over\" channels by limiting "
+ "who is allowed channel operator privileges. Available "
+ "commands are listed below; to use them, type "
+ "\002%s\032\037command\037\002. For more information on a "
+ "specific command, type \002%s\032\037command\037\002."
+ ),
+ ChanServ->nick.c_str(),
+ ChanServ->nick.c_str(),
+ ChanServ->GetQueryCommand().c_str(),
+ ChanServ->GetQueryCommand("generic/help").c_str());
return EVENT_CONTINUE;
}
@@ -278,15 +282,24 @@ public:
return;
time_t chanserv_expire = Config->GetModule(this).Get<time_t>("expire", "30d");
if (chanserv_expire >= 86400)
- source.Reply(_(" \n"
- "Note that any channel which is not used for %lu days\n"
- "(i.e. which no user on the channel's access list enters\n"
- "for that period of time) will be automatically dropped."), (unsigned long)chanserv_expire / 86400);
+ {
+ source.Reply(" ");
+ source.Reply(_(
+ "Note that any channel which is not used for %lu days "
+ "(i.e. which no user on the channel's access list enters "
+ "for that period of time) will be automatically dropped."
+ ),
+ (unsigned long)chanserv_expire / 86400);
+ }
if (source.IsServicesOper())
- source.Reply(_(" \n"
- "Services Operators can also, depending on their access drop\n"
- "any channel, view (and modify) the access, levels and akick\n"
- "lists and settings for any channel."));
+ {
+ source.Reply(" ");
+ source.Reply(_(
+ "Services Operators can also, depending on their access drop "
+ "any channel, view (and modify) the access, levels and akick "
+ "lists and settings for any channel."
+ ));
+ }
}
void OnCheckModes(Reference<Channel> &c) override
diff --git a/modules/chanserv/cs_access.cpp b/modules/chanserv/cs_access.cpp
index 72dc57450..d3ca6e492 100644
--- a/modules/chanserv/cs_access.cpp
+++ b/modules/chanserv/cs_access.cpp
@@ -582,54 +582,68 @@ public:
{
this->SendSyntax(source);
source.Reply(" ");
- source.Reply(_("Maintains the \002access list\002 for a channel. The access\n"
- "list specifies which users are allowed chanop status or\n"
- "access to %s commands on the channel. Different\n"
- "user levels allow for access to different subsets of\n"
- "privileges. Any registered user not on the access list has\n"
- "a user level of 0, and any unregistered user has a user level\n"
- "of -1."), source.service->nick.c_str());
- source.Reply(" ");
- source.Reply(_("The \002ACCESS ADD\002 command adds the given mask to the\n"
- "access list with the given user level; if the mask is\n"
- "already present on the list, its access level is changed to\n"
- "the level specified in the command. The \037level\037 specified\n"
- "may be a numerical level or the name of a privilege (eg AUTOOP).\n"
- "When a user joins the channel the access they receive is from the\n"
- "highest level entry in the access list."));
+ source.Reply(_(
+ "Maintains the \002access list\002 for a channel. The access "
+ "list specifies which users are allowed chanop status or "
+ "access to %s commands on the channel. Different "
+ "user levels allow for access to different subsets of "
+ "privileges. Any registered user not on the access list has "
+ "a user level of 0, and any unregistered user has a user level "
+ "of -1."
+ "\n\n"
+ "The \002ACCESS\032ADD\002 command adds the given mask to the "
+ "access list with the given user level; if the mask is "
+ "already present on the list, its access level is changed to "
+ "the level specified in the command. The \037level\037 specified "
+ "may be a numerical level or the name of a privilege (eg AUTOOP). "
+ "When a user joins the channel the access they receive is from the "
+ "highest level entry in the access list."
+ ),
+ source.service->nick.c_str());
+
if (!Config->GetModule("chanserv").Get<bool>("disallow_channel_access"))
- source.Reply(_("The given mask may also be a channel, which will use the\n"
- "access list from the other channel up to the given \037level\037."));
- source.Reply(" ");
- source.Reply(_("The \002ACCESS DEL\002 command removes the given nick from the\n"
- "access list. If a list of entry numbers is given, those\n"
- "entries are deleted. (See the example for LIST below.)\n"
- "You may remove yourself from an access list, even if you\n"
- "do not have access to modify that list otherwise."));
- source.Reply(" ");
- source.Reply(_("The \002ACCESS LIST\002 command displays the access list. If\n"
- "a wildcard mask is given, only those entries matching the\n"
- "mask are displayed. If a list of entry numbers is given,\n"
- "only those entries are shown; for example:\n"
- " \002ACCESS #channel LIST 2-5,7-9\002\n"
- " Lists access entries numbered 2 through 5 and\n"
- " 7 through 9.\n"
- " \n"
- "The \002ACCESS VIEW\002 command displays the access list similar\n"
- "to \002ACCESS LIST\002 but shows the creator and last used time.\n"
- " \n"
- "The \002ACCESS CLEAR\002 command clears all entries of the\n"
- "access list."));
+ {
+ source.Reply(_(
+ "The given mask may also be a channel, which will use the "
+ "access list from the other channel up to the given \037level\037."
+ ));
+ }
+
source.Reply(" ");
+ source.Reply(_(
+ "The \002ACCESS\032DEL\002 command removes the given nick from the "
+ "access list. If a list of entry numbers is given, those "
+ "entries are deleted. (See the example for LIST below.) "
+ "You may remove yourself from an access list, even if you "
+ "do not have access to modify that list otherwise."
+ "\n\n"
+ "The \002ACCESS\032LIST\002 command displays the access list. If "
+ "a wildcard mask is given, only those entries matching the "
+ "mask are displayed. If a list of entry numbers is given, "
+ "only those entries are shown; for example:\n"
+ " \002ACCESS\032#channel\032LIST\0322-5,7-9\002\n"
+ " Lists access entries numbered 2 through 5 and\n"
+ " 7 through 9."
+ "\n\n"
+ "The \002ACCESS\032VIEW\002 command displays the access list similar "
+ "to \002ACCESS\032LIST\002 but shows the creator and last used time."
+ "\n\n"
+ "The \002ACCESS\032CLEAR\002 command clears all entries of the "
+ "access list."
+ ));
BotInfo *bi;
Anope::string cmd;
if (Command::FindCommandFromService("chanserv/levels", bi, cmd))
{
- source.Reply(_("\002User access levels\002 can be seen by using the\n"
- "\002%s\002 command; type \002%s LEVELS\002 for\n"
- "information."),
- cmd.c_str(), bi->GetQueryCommand("generic/help").c_str());
+ source.Reply(" ");
+ source.Reply(_(
+ "\002User access levels\002 can be seen by using the "
+ "\002%s\002 command; type \002%s\032LEVELS\002 for "
+ "information."
+ ),
+ cmd.c_str(),
+ bi->GetQueryCommand("generic/help").c_str());
}
return true;
}
@@ -665,7 +679,7 @@ class CommandCSLevels final
Privilege *p = PrivilegeManager::FindPrivilege(what);
if (p == NULL)
{
- source.Reply(_("Setting \002%s\002 not known. Type \002%s LEVELS\002 for a list of valid settings."),
+ source.Reply(_("Setting \002%s\002 not known. Type \002%s\032LEVELS\002 for a list of valid settings."),
what.c_str(), source.service->GetQueryCommand("generic/help").c_str());
}
else
@@ -708,7 +722,7 @@ class CommandCSLevels final
return;
}
- source.Reply(_("Setting \002%s\002 not known. Type \002%s LEVELS\002 for a list of valid settings."),
+ source.Reply(_("Setting \002%s\002 not known. Type \002%s\032LEVELS\002 for a list of valid settings."),
what.c_str(), source.service->GetQueryCommand("generic/help").c_str());
}
@@ -838,25 +852,28 @@ public:
{
this->SendSyntax(source);
source.Reply(" ");
- source.Reply(_("The \002LEVELS\002 command allows fine control over the meaning of\n"
- "the numeric access levels used for channels. With this\n"
- "command, you can define the access level required for most\n"
- "of %s's functions. (The \002SET FOUNDER\002 and this command\n"
- "are always restricted to the channel founder.)\n"
- " \n"
- "\002LEVELS SET\002 allows the access level for a function or group of\n"
- "functions to be changed. \002LEVELS DISABLE\002 (or \002DIS\002 for short)\n"
- "disables an automatic feature or disallows access to a\n"
- "function by anyone, INCLUDING the founder (although, the founder\n"
- "can always re-enable it). Use \002LEVELS SET founder\002 to make a level\n"
- "founder only.\n"
- " \n"
- "\002LEVELS LIST\002 shows the current levels for each function or\n"
- "group of functions. \002LEVELS RESET\002 resets the levels to the\n"
- "default levels of a newly-created channel.\n"
- " \n"
- "For a list of the features and functions whose levels can be\n"
- "set, see \002HELP LEVELS DESC\002."), source.service->nick.c_str());
+ source.Reply(_(
+ "The \002LEVELS\002 command allows fine control over the meaning of "
+ "the numeric access levels used for channels. With this "
+ "command, you can define the access level required for most "
+ "of %s's functions. (The \002SET\032FOUNDER\002 and this command "
+ "are always restricted to the channel founder)."
+ "\n\n"
+ "\002LEVELS\032SET\002 allows the access level for a function or group of "
+ "functions to be changed. \002LEVELS\032DISABLE\002 (or \002DIS\002 for short) "
+ "disables an automatic feature or disallows access to a "
+ "function by anyone, INCLUDING the founder (although, the founder "
+ "can always re-enable it). Use \002LEVELS\032SET founder\002 to make a level "
+ "founder only."
+ "\n\n"
+ "\002LEVELS\032LIST\002 shows the current levels for each function or "
+ "group of functions. \002LEVELS\032RESET\002 resets the levels to the "
+ "default levels of a newly-created channel."
+ "\n\n"
+ "For a list of the features and functions whose levels can be "
+ "set, see \002HELP\032LEVELS\032DESC\002."
+ ),
+ source.service->nick.c_str());
}
return true;
}
diff --git a/modules/chanserv/cs_akick.cpp b/modules/chanserv/cs_akick.cpp
index e6672b965..b242fed4a 100644
--- a/modules/chanserv/cs_akick.cpp
+++ b/modules/chanserv/cs_akick.cpp
@@ -488,40 +488,44 @@ public:
BotInfo *bi = Config->GetClient("NickServ");
this->SendSyntax(source);
source.Reply(" ");
- source.Reply(_("Maintains the \002AutoKick list\002 for a channel. If a user\n"
- "on the AutoKick list attempts to join the channel,\n"
- "%s will ban that user from the channel, then kick\n"
- "the user.\n"
- " \n"
- "The \002AKICK ADD\002 command adds the given nick or usermask\n"
- "to the AutoKick list. If a \037reason\037 is given with\n"
- "the command, that reason will be used when the user is\n"
- "kicked; if not, the default reason is \"User has been\n"
- "banned from the channel\".\n"
- "When akicking a \037registered nick\037 the %s account\n"
- "will be added to the akick list instead of the mask.\n"
- "All users within that nickgroup will then be akicked.\n"),
- source.service->nick.c_str(), bi ? bi->nick.c_str() : "NickServ");
source.Reply(_(
- " \n"
- "The \002AKICK DEL\002 command removes the given nick or mask\n"
- "from the AutoKick list. It does not, however, remove any\n"
- "bans placed by an AutoKick; those must be removed\n"
- "manually.\n"
- " \n"
- "The \002AKICK LIST\002 command displays the AutoKick list, or\n"
- "optionally only those AutoKick entries which match the\n"
- "given mask.\n"
- " \n"
- "The \002AKICK VIEW\002 command is a more verbose version of the\n"
- "\002AKICK LIST\002 command.\n"
- " \n"
- "The \002AKICK ENFORCE\002 command causes %s to enforce the\n"
- "current AKICK list by removing those users who match an\n"
- "AKICK mask.\n"
- " \n"
- "The \002AKICK CLEAR\002 command clears all entries of the\n"
- "akick list."), source.service->nick.c_str());
+ "Maintains the \002AutoKick list\002 for a channel. If a user "
+ "on the AutoKick list attempts to join the channel, "
+ "%s will ban that user from the channel, then kick "
+ "the user."
+ "\n\n"
+ "The \002AKICK\032ADD\002 command adds the given nick or usermask "
+ "to the AutoKick list. If a \037reason\037 is given with "
+ "the command, that reason will be used when the user is "
+ "kicked; if not, the default reason is \"User has been "
+ "banned from the channel\". "
+ "When akicking a \037registered nick\037 the %s account "
+ "will be added to the akick list instead of the mask. "
+ "All users within that nickgroup will then be akicked. "
+ "\n\n"
+ "The \002AKICK\032DEL\002 command removes the given nick or mask "
+ "from the AutoKick list. It does not, however, remove any "
+ "bans placed by an AutoKick; those must be removed "
+ "manually."
+ "\n\n"
+ "The \002AKICK\032LIST\002 command displays the AutoKick list, or "
+ "optionally only those AutoKick entries which match the "
+ "given mask."
+ "\n\n"
+ "The \002AKICK\032VIEW\002 command is a more verbose version of the "
+ "\002AKICK\032LIST\002 command."
+ "\n\n"
+ "The \002AKICK\032ENFORCE\002 command causes %s to enforce the "
+ "current AKICK list by removing those users who match an "
+ "AKICK mask."
+ "\n\n"
+ "The \002AKICK\032CLEAR\002 command clears all entries of the "
+ "akick list."
+ ),
+ source.service->nick.c_str(),
+ source.service->nick.c_str(),
+ bi ? bi->nick.c_str() : "NickServ");
+
return true;
}
};
diff --git a/modules/chanserv/cs_ban.cpp b/modules/chanserv/cs_ban.cpp
index 8560e4eac..dca9e8bbf 100644
--- a/modules/chanserv/cs_ban.cpp
+++ b/modules/chanserv/cs_ban.cpp
@@ -240,12 +240,14 @@ public:
{
this->SendSyntax(source);
source.Reply(" ");
- source.Reply(_("Bans a given nick or mask on a channel. An optional expiry may\n"
- "be given to cause services to remove the ban after a set amount\n"
- "of time.\n"
- " \n"
- "By default, limited to AOPs or those with level 5 access\n"
- "and above on the channel. Channel founders may ban masks."));
+ source.Reply(_(
+ "Bans a given nick or mask on a channel. An optional expiry may "
+ "be given to cause services to remove the ban after a set amount "
+ "of time."
+ "\n\n"
+ "By default, limited to AOPs or those with level 5 access "
+ "and above on the channel. Channel founders may ban masks."
+ ));
return true;
}
};
diff --git a/modules/chanserv/cs_clone.cpp b/modules/chanserv/cs_clone.cpp
index b58635ff0..bad74d304 100644
--- a/modules/chanserv/cs_clone.cpp
+++ b/modules/chanserv/cs_clone.cpp
@@ -239,10 +239,12 @@ public:
{
this->SendSyntax(source);
source.Reply(" ");
- source.Reply(_("Copies all settings, access, akicks, etc from \002channel\002 to the\n"
- "\002target\002 channel. If \037what\037 is \002ACCESS\002, \002AKICK\002, \002BADWORDS\002,\n"
- "or \002LEVELS\002 then only the respective settings are cloned.\n"
- "You must be the founder of \037channel\037 and \037target\037."));
+ source.Reply(_(
+ "Copies all settings, access, akicks, etc from \002channel\002 to the "
+ "\002target\002 channel. If \037what\037 is \002ACCESS\002, \002AKICK\002, \002BADWORDS\002, "
+ "or \002LEVELS\002 then only the respective settings are cloned. "
+ "You must be the founder of \037channel\037 and \037target\037."
+ ));
return true;
}
};
diff --git a/modules/chanserv/cs_drop.cpp b/modules/chanserv/cs_drop.cpp
index 582ede836..7e513b340 100644
--- a/modules/chanserv/cs_drop.cpp
+++ b/modules/chanserv/cs_drop.cpp
@@ -88,16 +88,28 @@ public:
this->SendSyntax(source);
source.Reply(" ");
if (source.IsServicesOper())
- source.Reply(_("Unregisters the specified channel. Only \002Services Operators\002\n"
- "can drop a channel of which they are not the founder of."));
+ {
+ source.Reply(_(
+ "Unregisters the specified channel. Only \002Services Operators\002 "
+ "can drop a channel of which they are not the founder of."
+ ));
+ }
else
- source.Reply(_("Unregisters the named channel. Can only be used by\n"
- "the \002channel founder\002."));
+ {
+ source.Reply(_(
+ "Unregisters the named channel. Can only be used by "
+ "the \002channel founder\002."
+ ));
+ }
source.Reply(" ");
if (source.HasPriv("chanserv/drop/override"))
- source.Reply(_("Additionally, Services Operators with the \037chanserv/drop/override\037 permission can\n"
- "replace \037code\037 with \002OVERRIDE\002 to drop without a confirmation code."));
+ {
+ source.Reply(_(
+ "Additionally, Services Operators with the \037chanserv/drop/override\037 permission can "
+ "replace \037code\037 with \002OVERRIDE\002 to drop without a confirmation code."
+ ));
+ }
return true;
}
};
diff --git a/modules/chanserv/cs_enforce.cpp b/modules/chanserv/cs_enforce.cpp
index 3b38b3a89..d0d2cc03a 100644
--- a/modules/chanserv/cs_enforce.cpp
+++ b/modules/chanserv/cs_enforce.cpp
@@ -240,19 +240,21 @@ public:
{
this->SendSyntax(source);
source.Reply(" ");
- source.Reply(_("Enforce various channel modes and set options. The \037channel\037\n"
- "option indicates what channel to enforce the modes and options\n"
- "on. The \037what\037 option indicates what modes and options to\n"
- "enforce, and can be any of \002SECUREOPS\002, \002RESTRICTED\002, \002REGONLY\002, \002SSLONLY\002,\n"
- "\002BANS\002, or \002LIMIT\002.\n"
- " \n"
- "Use \002SECUREOPS\002 to enforce the SECUREOPS option, even if it is not\n"
- "enabled. Use \002RESTRICTED\002 to enforce the RESTRICTED option, also\n"
- "if it's not enabled. Use \002REGONLY\002 to kick all unregistered users\n"
- "from the channel. Use \002SSLONLY\002 to kick all users not using a secure\n"
- "connection from the channel. \002BANS\002 will enforce bans on the channel by\n"
- "kicking users affected by them, and \002LIMIT\002 will kick users until the\n"
- "user count drops below the channel limit, if one is set."));
+ source.Reply(_(
+ "Enforce various channel modes and set options. The \037channel\037 "
+ "option indicates what channel to enforce the modes and options "
+ "on. The \037what\037 option indicates what modes and options to "
+ "enforce, and can be any of \002SECUREOPS\002, \002RESTRICTED\002, \002REGONLY\002, \002SSLONLY\002, "
+ "\002BANS\002, or \002LIMIT\002."
+ "\n\n"
+ "Use \002SECUREOPS\002 to enforce the SECUREOPS option, even if it is not "
+ "enabled. Use \002RESTRICTED\002 to enforce the RESTRICTED option, also "
+ "if it's not enabled. Use \002REGONLY\002 to kick all unregistered users "
+ "from the channel. Use \002SSLONLY\002 to kick all users not using a secure "
+ "connection from the channel. \002BANS\002 will enforce bans on the channel by "
+ "kicking users affected by them, and \002LIMIT\002 will kick users until the "
+ "user count drops below the channel limit, if one is set."
+ ));
return true;
}
};
diff --git a/modules/chanserv/cs_entrymsg.cpp b/modules/chanserv/cs_entrymsg.cpp
index bbb3f03cb..fa3c59c84 100644
--- a/modules/chanserv/cs_entrymsg.cpp
+++ b/modules/chanserv/cs_entrymsg.cpp
@@ -245,26 +245,28 @@ public:
{
this->SendSyntax(source);
source.Reply(" ");
- source.Reply(_("Controls what messages will be sent to users when they join the channel."));
- source.Reply(" ");
- source.Reply(_("The \002ENTRYMSG ADD\002 command adds the given message to\n"
- "the list of messages shown to users when they join\n"
- "the channel."));
- source.Reply(" ");
- source.Reply(_("The \002ENTRYMSG DEL\002 command removes the specified message from\n"
- "the list of messages shown to users when they join\n"
- "the channel. You can remove a message by specifying its number\n"
- "which you can get by listing the messages as explained below."));
- source.Reply(" ");
- source.Reply(_("The \002ENTRYMSG LIST\002 command displays a listing of messages\n"
- "shown to users when they join the channel."));
- source.Reply(" ");
- source.Reply(_("The \002ENTRYMSG CLEAR\002 command clears all entries from\n"
- "the list of messages shown to users when they join\n"
- "the channel, effectively disabling entry messages."));
- source.Reply(" ");
- source.Reply(_("Adding, deleting, or clearing entry messages requires the\n"
- "SET permission."));
+ source.Reply(_(
+ "Controls what messages will be sent to users when they join the channel."
+ "\n\n"
+ "The \002ENTRYMSG\032ADD\002 command adds the given message to "
+ "the list of messages shown to users when they join "
+ "the channel."
+ "\n\n"
+ "The \002ENTRYMSG\032DEL\002 command removes the specified message from "
+ "the list of messages shown to users when they join "
+ "the channel. You can remove a message by specifying its number "
+ "which you can get by listing the messages as explained below."
+ "\n\n"
+ "The \002ENTRYMSG\032LIST\002 command displays a listing of messages "
+ "shown to users when they join the channel."
+ "\n\n"
+ "The \002ENTRYMSG\032CLEAR\002 command clears all entries from "
+ "the list of messages shown to users when they join "
+ "the channel, effectively disabling entry messages."
+ "\n\n"
+ "Adding, deleting, or clearing entry messages requires the "
+ "SET permission."
+ ));
return true;
}
};
diff --git a/modules/chanserv/cs_flags.cpp b/modules/chanserv/cs_flags.cpp
index 876eb67e4..708978191 100644
--- a/modules/chanserv/cs_flags.cpp
+++ b/modules/chanserv/cs_flags.cpp
@@ -444,24 +444,27 @@ public:
{
this->SendSyntax(source);
source.Reply(" ");
- source.Reply(_("%s is another way to modify the channel access list, similar to\n"
- "the XOP and ACCESS methods."), source.command.c_str());
- source.Reply(" ");
- source.Reply(_("The \002MODIFY\002 command allows you to modify the access list. If the mask is\n"
- "not already on the access list it is added, then the changes are applied.\n"
- "If the mask has no more flags, then the mask is removed from the access list.\n"
- "Additionally, you may use +* or -* to add or remove all flags, respectively. You are\n"
- "only able to modify the access list if you have the proper permission on the channel,\n"
- "and even then you can only give other people access to the equivalent of what your access is."));
- source.Reply(" ");
- source.Reply(_("The \002LIST\002 command allows you to list existing entries on the channel access list.\n"
- "If a mask is given, the mask is wildcard matched against all existing entries on the\n"
- "access list, and only those entries are returned. If a set of flags is given, only those\n"
- "on the access list with the specified flags are returned."));
- source.Reply(" ");
- source.Reply(_("The \002CLEAR\002 command clears the channel access list. This requires channel founder access."));
- source.Reply(" ");
- source.Reply(_("The available flags are:"));
+ source.Reply(_(
+ "%s is another way to modify the channel access list, similar to "
+ "the XOP and ACCESS methods."
+ "\n\n"
+ "The \002MODIFY\002 command allows you to modify the access list. If the mask is "
+ "not already on the access list it is added, then the changes are applied. "
+ "If the mask has no more flags, then the mask is removed from the access list. "
+ "Additionally, you may use +* or -* to add or remove all flags, respectively. You are "
+ "only able to modify the access list if you have the proper permission on the channel, "
+ "and even then you can only give other people access to the equivalent of what your access is."
+ "\n\n"
+ "The \002LIST\002 command allows you to list existing entries on the channel access list. "
+ "If a mask is given, the mask is wildcard matched against all existing entries on the "
+ "access list, and only those entries are returned. If a set of flags is given, only those "
+ "on the access list with the specified flags are returned."
+ "\n\n"
+ "The \002CLEAR\002 command clears the channel access list. This requires channel founder access."
+ "\n\n"
+ "The available flags are:"
+ ),
+ source.command.c_str());
typedef std::multimap<char, Anope::string, ci::less> reverse_map;
reverse_map reverse;
diff --git a/modules/chanserv/cs_info.cpp b/modules/chanserv/cs_info.cpp
index c1200aa3e..8d9b0c04f 100644
--- a/modules/chanserv/cs_info.cpp
+++ b/modules/chanserv/cs_info.cpp
@@ -74,12 +74,14 @@ public:
{
this->SendSyntax(source);
source.Reply(" ");
- source.Reply(_("Lists information about the specified registered channel,\n"
- "including its founder, time of registration, last\n"
- "time used, and description. If the user issuing the\n"
- "command has the appropriate access for it, then the\n"
- "successor, last topic set, settings and expiration\n"
- "time will also be displayed when applicable."));
+ source.Reply(_(
+ "Lists information about the specified registered channel, "
+ "including its founder, time of registration, last "
+ "time used, and description. If the user issuing the "
+ "command has the appropriate access for it, then the "
+ "successor, last topic set, settings and expiration "
+ "time will also be displayed when applicable."
+ ));
return true;
}
};
diff --git a/modules/chanserv/cs_invite.cpp b/modules/chanserv/cs_invite.cpp
index 1d36c0375..df11e45fb 100644
--- a/modules/chanserv/cs_invite.cpp
+++ b/modules/chanserv/cs_invite.cpp
@@ -89,11 +89,14 @@ public:
{
this->SendSyntax(source);
source.Reply(" ");
- source.Reply(_("Tells %s to invite you or an optionally specified\n"
- "nick into the given channel.\n"
- " \n"
- "By default, limited to AOPs or those with level 5 access and above\n"
- "on the channel."), source.service->nick.c_str());
+ source.Reply(_(
+ "Tells %s to invite you or an optionally specified "
+ "nick into the given channel."
+ "\n\n"
+ "By default, limited to AOPs or those with level 5 access and above "
+ "on the channel."
+ ),
+ source.service->nick.c_str());
return true;
}
};
diff --git a/modules/chanserv/cs_kick.cpp b/modules/chanserv/cs_kick.cpp
index 5ba61eaef..e4175d29e 100644
--- a/modules/chanserv/cs_kick.cpp
+++ b/modules/chanserv/cs_kick.cpp
@@ -131,10 +131,12 @@ public:
{
this->SendSyntax(source);
source.Reply(" ");
- source.Reply(_("Kicks a specified nick from a channel.\n"
- " \n"
- "By default, limited to AOPs or those with level 5 access\n"
- "and above on the channel. Channel founders can also specify masks."));
+ source.Reply(_(
+ "Kicks a specified nick from a channel."
+ "\n\n"
+ "By default, limited to AOPs or those with level 5 access "
+ "and above on the channel. Channel founders can also specify masks."
+ ));
return true;
}
};
diff --git a/modules/chanserv/cs_list.cpp b/modules/chanserv/cs_list.cpp
index 1002d10ba..408d4c9a8 100644
--- a/modules/chanserv/cs_list.cpp
+++ b/modules/chanserv/cs_list.cpp
@@ -42,8 +42,10 @@ public:
if (!num1.has_value() || !num2.has_value())
{
source.Reply(LIST_INCORRECT_RANGE);
- source.Reply(_("To search for channels starting with #, search for the channel\n"
- "name without the #-sign prepended (\002anope\002 instead of \002#anope\002)."));
+ source.Reply(_(
+ "To search for channels starting with #, search for the channel "
+ "name without the #-sign prepended (\002anope\002 instead of \002#anope\002)."
+ ));
return;
}
@@ -133,38 +135,43 @@ public:
{
this->SendSyntax(source);
source.Reply(" ");
- source.Reply(_("Lists all registered channels matching the given pattern.\n"
- "Channels with the \002PRIVATE\002 option set will only be\n"
- "displayed to Services Operators with the proper access.\n"
- "Channels with the \002NOEXPIRE\002 option set will have\n"
- "a \002!\002 prefixed to the channel for Services Operators to see.\n"
- " \n"
- "Note that a preceding '#' specifies a range, channel names\n"
- "are to be written without '#'.\n"
- " \n"
- "If the SUSPENDED or NOEXPIRE options are given, only channels\n"
- "which, respectively, are SUSPENDED or have the NOEXPIRE\n"
- "flag set will be displayed. If multiple options are given,\n"
- "all channels matching at least one option will be displayed.\n"
- "Note that these options are limited to \037Services Operators\037.\n"
- " \n"
- "Examples:\n"
- " \n"
- " \002LIST *anope*\002\n"
- " Lists all registered channels with \002anope\002 in their\n"
- " names (case insensitive).\n"
- " \n"
- " \002LIST * NOEXPIRE\002\n"
- " Lists all registered channels which have been set to not expire.\n"
- " \n"
- " \002LIST #51-100\002\n"
- " Lists all registered channels within the given range (51-100)."));
+ source.Reply(_(
+ "Lists all registered channels matching the given pattern. "
+ "Channels with the \002PRIVATE\002 option set will only be "
+ "displayed to Services Operators with the proper access. "
+ "Channels with the \002NOEXPIRE\002 option set will have "
+ "a \002!\002 prefixed to the channel for Services Operators to see."
+ "\n\n"
+ "Note that a preceding '#' specifies a range, channel names "
+ "are to be written without '#'."
+ "\n\n"
+ "If the SUSPENDED or NOEXPIRE options are given, only channels "
+ "which, respectively, are SUSPENDED or have the NOEXPIRE "
+ "flag set will be displayed. If multiple options are given, "
+ "all channels matching at least one option will be displayed. "
+ "Note that these options are limited to \037Services Operators\037."
+ "\n\n"
+ "Examples:"
+ "\n\n"
+ " \002LIST\032*anope*\002\n"
+ " Lists all registered channels with \002anope\002 in their\n"
+ " names (case insensitive)."
+ "\n\n"
+ " \002LIST\032*\032NOEXPIRE\002\n"
+ " Lists all registered channels which have been set to not expire."
+ "\n\n"
+ " \002LIST #51-100\002\n"
+ " Lists all registered channels within the given range (51-100)."
+ ));
if (!Config->GetBlock("options").Get<const Anope::string>("regexengine").empty())
{
source.Reply(" ");
- source.Reply(_("Regex matches are also supported using the %s engine.\n"
- "Enclose your pattern in // if this is desired."), Config->GetBlock("options").Get<const Anope::string>("regexengine").c_str());
+ source.Reply(_(
+ "Regex matches are also supported using the %s engine. "
+ "Enclose your pattern in // if this is desired."
+ ),
+ Config->GetBlock("options").Get<const Anope::string>("regexengine").c_str());
}
return true;
@@ -234,8 +241,10 @@ public:
BotInfo *bi;
Anope::string cmd;
if (Command::FindCommandFromService("chanserv/list", bi, cmd))
- source.Reply(_("When \002private\002 is set, the channel will not appear in\n"
- "%s's %s command."), bi->nick.c_str(), cmd.c_str());
+ {
+ source.Reply(_("When \002private\002 is set, the channel will not appear in %s's %s command."),
+ bi->nick.c_str(), cmd.c_str());
+ }
return true;
}
};
diff --git a/modules/chanserv/cs_log.cpp b/modules/chanserv/cs_log.cpp
index e704b7021..de3bbed2b 100644
--- a/modules/chanserv/cs_log.cpp
+++ b/modules/chanserv/cs_log.cpp
@@ -271,26 +271,30 @@ public:
{
this->SendSyntax(source);
source.Reply(" ");
- source.Reply(_("The %s command allows users to configure logging settings\n"
- "for their channel. If no parameters are given this command\n"
- "lists the current logging methods in place for this channel.\n"
- " \n"
- "Otherwise, \037command\037 must be a command name, and \037method\037\n"
- "is one of the following logging methods:\n"
- " \n"
- " MESSAGE [status], NOTICE [status], MEMO\n"
- " \n"
- "Which are used to message, notice, and memo the channel respectively.\n"
- "With MESSAGE or NOTICE you must have a service bot assigned to and joined\n"
- "to your channel. Status may be a channel status such as @ or +.\n"
- " \n"
- "To remove a logging method use the same syntax as you would to add it.\n"
- " \n"
+ source.Reply(_(
+ "The %s command allows users to configure logging settings "
+ "for their channel. If no parameters are given this command "
+ "lists the current logging methods in place for this channel."
+ "\n\n"
+ "Otherwise, \037command\037 must be a command name, and \037method\037 "
+ "is one of the following logging methods:"
+ "\n\n"
+ " MESSAGE\032[status], NOTICE\032[status], MEMO"
+ "\n\n"
+ "Which are used to message, notice, and memo the channel respectively. "
+ "With MESSAGE or NOTICE you must have a service bot assigned to and joined "
+ "to your channel. Status may be a channel status such as @ or +."
+ "\n\n"
+ "To remove a logging method use the same syntax as you would to add it."
+ "\n\n"
"Example:\n"
- " %s #anope chanserv/access MESSAGE @\n"
- " Would message any channel operators whenever someone used the\n"
- " ACCESS command on ChanServ on the channel."),
- source.command.upper().c_str(), source.command.upper().c_str());
+ " %s\032#anope\032chanserv/access\032MESSAGE\032@\n"
+ " Would message any channel operators whenever someone used the "
+ "ACCESS command on ChanServ on the channel."
+ ),
+ source.command.upper().c_str(),
+ source.command.upper().c_str());
+
return true;
}
};
diff --git a/modules/chanserv/cs_mode.cpp b/modules/chanserv/cs_mode.cpp
index 20638973b..85ebaf5ce 100644
--- a/modules/chanserv/cs_mode.cpp
+++ b/modules/chanserv/cs_mode.cpp
@@ -774,29 +774,35 @@ public:
{
this->SendSyntax(source);
source.Reply(" ");
- source.Reply(_("Mainly controls mode locks and mode access (which is different from channel access)\n"
- "on a channel.\n"
- " \n"
- "The \002%s LOCK\002 command allows you to add, delete, and view mode locks on a channel.\n"
- "If a mode is locked on or off, services will not allow that mode to be changed. The \002SET\002\n"
- "command will clear all existing mode locks and set the new one given, while \002ADD\002 and \002DEL\002\n"
- "modify the existing mode lock.\n"
- "Example:\n"
- " \002MODE #channel LOCK ADD +bmnt *!*@*aol*\002\n"
- " \n"
- "The \002%s SET\002 command allows you to set modes through services. Wildcards * and ? may\n"
- "be given as parameters for list and status modes.\n"
- "Example:\n"
- " \002MODE #channel SET +v *\002\n"
- " Sets voice status to all users in the channel.\n"
- " \n"
- " \002MODE #channel SET -b ~c:*\n"
- " Clears all extended bans that start with ~c:\n"
- " \n"
- "The \002%s CLEAR\002 command is an easy way to clear modes on a channel. \037what\037 may be\n"
- "any mode name. Examples include bans, excepts, inviteoverrides, ops, halfops, and voices. If \037what\037\n"
- "is not given then all basic modes are removed."),
- source.command.upper().c_str(), source.command.upper().c_str(), source.command.upper().c_str());
+ source.Reply(_(
+ "Mainly controls mode locks and mode access (which is different from channel access) "
+ "on a channel."
+ "\n\n"
+ "The \002%s\032LOCK\002 command allows you to add, delete, and view mode locks on a channel. "
+ "If a mode is locked on or off, services will not allow that mode to be changed. The \002SET\002 "
+ "command will clear all existing mode locks and set the new one given, while \002ADD\002 and \002DEL\002 "
+ "modify the existing mode lock."
+ "\n\n"
+ "Example:\n"
+ " \002MODE\032#channel\032LOCK\032ADD\032+bmnt\032*!*@*aol*\002\n"
+ "\n\n"
+ "The \002%s\032SET\002 command allows you to set modes through services. Wildcards * and ? may "
+ "be given as parameters for list and status modes."
+ "\n\n"
+ "Example:\n"
+ " \002MODE\032#channel\032SET\032+v\032*\002\n"
+ " Sets voice status to all users in the channel."
+ "\n\n"
+ " \002MODE\032#channel\032SET\032-b\032~c:*\n"
+ " Clears all extended bans that start with ~c:"
+ "\n\n"
+ "The \002%s\032CLEAR\002 command is an easy way to clear modes on a channel. \037what\037 may be "
+ "any mode name. Examples include bans, excepts, inviteoverrides, ops, halfops, and voices. If \037what\037 "
+ "is not given then all basic modes are removed."
+ ),
+ source.command.upper().c_str(),
+ source.command.upper().c_str(),
+ source.command.upper().c_str());
return true;
}
};
@@ -924,13 +930,15 @@ public:
this->SendSyntax(source);
source.Reply(" ");
if (m.first)
- source.Reply(_("Gives %s status to the selected nicks on a channel. If \037nick\037 is\n"
- "not given, it will %s you."),
- m.second.upper().c_str(), m.second.lower().c_str());
+ {
+ source.Reply(_("Gives %s status to the selected nicks on a channel. If \037nick\037 is not given, it will %s you."),
+ m.second.upper().c_str(), m.second.lower().c_str());
+ }
else
- source.Reply(_("Removes %s status from the selected nicks on a channel. If \037nick\037 is\n"
- "not given, it will de%s you."),
- m.second.upper().c_str(), m.second.lower().c_str());
+ {
+ source.Reply(_("Removes %s status from the selected nicks on a channel. If \037nick\037 is not given, it will de%s you."),
+ m.second.upper().c_str(), m.second.lower().c_str());
+ }
source.Reply(" ");
source.Reply(_("You must have the %s(ME) privilege on the channel to use this command."), m.second.upper().c_str());
diff --git a/modules/chanserv/cs_register.cpp b/modules/chanserv/cs_register.cpp
index e8074ed19..f206aea8b 100644
--- a/modules/chanserv/cs_register.cpp
+++ b/modules/chanserv/cs_register.cpp
@@ -84,29 +84,41 @@ public:
{
this->SendSyntax(source);
source.Reply(" ");
- source.Reply(_("Registers a channel in the %s database. In order\n"
- "to use this command, you must first be a channel operator\n"
- "on the channel you're trying to register.\n"
- "The description, which is optional, is a\n"
- "general description of the channel's purpose.\n"
- " \n"
- "When you register a channel, you are recorded as the\n"
- "\"founder\" of the channel. The channel founder is allowed\n"
- "to change all of the channel settings for the channel;\n"
- "%s will also automatically give the founder\n"
- "channel operator privileges when they enter the channel."),
- source.service->nick.c_str(), source.service->nick.c_str());
+ source.Reply(_(
+ "Registers a channel in the %s database. In order "
+ "to use this command, you must first be a channel operator "
+ "on the channel you're trying to register. "
+ "The description, which is optional, is a "
+ "general description of the channel's purpose. "
+ "\n\n"
+ "When you register a channel, you are recorded as the "
+ "\"founder\" of the channel. The channel founder is allowed "
+ "to change all of the channel settings for the channel; "
+ "%s will also automatically give the founder "
+ "channel operator privileges when they enter the channel."
+ ),
+ source.service->nick.c_str(),
+ source.service->nick.c_str());
+
BotInfo *bi;
Anope::string cmd;
if (Command::FindCommandFromService("chanserv/access", bi, cmd))
- source.Reply(_(" \n"
- "See the \002%s\002 command (\002%s ACCESS\002) for\n"
- "information on giving a subset of these privileges to\n"
- "other channel users.\n"),
- cmd.c_str(), bi->GetQueryCommand("generic/help").c_str());
- source.Reply(_(" \n"
- "NOTICE: In order to register a channel, you must have\n"
+ {
+ source.Reply(" ");
+ source.Reply(_(
+ "See the \002%s\002 command (\002%s\032ACCESS\002) for "
+ "information on giving a subset of these privileges to "
+ "other channel users."
+ ),
+ cmd.c_str(),
+ bi->GetQueryCommand("generic/help").c_str());
+ }
+
+ source.Reply(" ");
+ source.Reply(_(
+ "NOTICE: In order to register a channel, you must have "
"first registered your nickname."));
+
return true;
}
};
diff --git a/modules/chanserv/cs_seen.cpp b/modules/chanserv/cs_seen.cpp
index 835e3b124..31c5e6b88 100644
--- a/modules/chanserv/cs_seen.cpp
+++ b/modules/chanserv/cs_seen.cpp
@@ -181,13 +181,17 @@ public:
{
this->SendSyntax(source);
source.Reply(" ");
- source.Reply(_("The \002STATS\002 command prints out statistics about stored nicks and memory usage."));
- source.Reply(_("The \002CLEAR\002 command lets you clean the database by removing all entries from the\n"
- "database that were added within \037time\037.\n"
- " \n"
+ source.Reply(_(
+ "The \002STATS\002 command prints out statistics about stored nicks and memory usage."
+ "\n\n"
+ "The \002CLEAR\002 command lets you clean the database by removing all entries from the "
+ "database that were added within \037time\037."
+ "\n\n"
"Example:\n"
- " %s CLEAR 30m\n"
- " Will remove all entries that were added within the last 30 minutes."), source.command.c_str());
+ " %s\032CLEAR\03230m\n"
+ " Will remove all entries that were added within the last 30 minutes."
+ ),
+ source.command.c_str());
return true;
}
};
@@ -374,9 +378,11 @@ public:
{
this->SendSyntax(source);
source.Reply(" ");
- source.Reply(_("Checks for the last time \037nick\037 was seen joining, leaving,\n"
- "or changing nick on the network and tells you when and, depending\n"
- "on channel or user settings, where it was."));
+ source.Reply(_(
+ "Checks for the last time \037nick\037 was seen joining, leaving, "
+ "or changing nick on the network and tells you when and, depending "
+ "on channel or user settings, where it was."
+ ));
return true;
}
};
diff --git a/modules/chanserv/cs_set.cpp b/modules/chanserv/cs_set.cpp
index 271746b49..d4325bd8a 100644
--- a/modules/chanserv/cs_set.cpp
+++ b/modules/chanserv/cs_set.cpp
@@ -31,9 +31,10 @@ public:
{
this->SendSyntax(source);
source.Reply(" ");
- source.Reply(_("Allows the channel founder to set various channel options\n"
- "and other information.\n"
- " \n"
+ source.Reply(_(
+ "Allows the channel founder to set various channel options "
+ "and other information."
+ "\n\n"
"Available options:"));
Anope::string this_name = source.command;
bool hide_privileged_commands = Config->GetBlock("options").Get<bool>("hideprivilegedcommands"),
@@ -59,8 +60,7 @@ public:
c->OnServHelp(source);
}
}
- source.Reply(_("Type \002%s \037option\037\002 for more information on a\n"
- "particular option."),
+ source.Reply(_("Type \002%s\032\037option\037\002 for more information on a particular option."),
source.service->GetQueryCommand("generic/help", this_name).c_str());
return true;
}
@@ -122,9 +122,12 @@ public:
{
this->SendSyntax(source);
source.Reply(" ");
- source.Reply(_("Enables or disables %s's autoop feature for a\n"
- "channel. When disabled, users who join the channel will\n"
- "not automatically gain any status from %s."), source.service->nick.c_str(),
+ source.Reply(_(
+ "Enables or disables %s's autoop feature for a "
+ "channel. When disabled, users who join the channel will "
+ "not automatically gain any status from %s."
+ ),
+ source.service->nick.c_str(),
source.service->nick.c_str());
return true;
}
@@ -182,15 +185,17 @@ public:
{
this->SendSyntax(source);
source.Reply(" ");
- source.Reply(_("Sets the ban type that will be used by services whenever\n"
- "they need to ban someone from your channel.\n"
- " \n"
- "Bantype is a number between 0 and 3 that means:\n"
- " \n"
- "0: ban in the form *!user@host\n"
- "1: ban in the form *!*user@host\n"
- "2: ban in the form *!*@host\n"
- "3: ban in the form *!*user@*.domain"));
+ source.Reply(_(
+ "Sets the ban type that will be used by services whenever "
+ "they need to ban someone from your channel."
+ "\n\n"
+ "Bantype is a number between 0 and 3 that means:"
+ "\n\n"
+ "0: ban in the form *!user@host\n"
+ "1: ban in the form *!*user@host\n"
+ "2: ban in the form *!*@host\n"
+ "3: ban in the form *!*user@*.domain"
+ ));
return true;
}
};
@@ -252,8 +257,10 @@ public:
{
this->SendSyntax(source);
source.Reply(" ");
- source.Reply(_("Sets the description for the channel, which shows up with\n"
- "the \002LIST\002 and \002INFO\002 commands."));
+ source.Reply(_(
+ "Sets the description for the channel, which shows up with "
+ "the \002LIST\002 and \002INFO\002 commands."
+ ));
return true;
}
};
@@ -322,8 +329,10 @@ public:
{
this->SendSyntax(source);
source.Reply(" ");
- source.Reply(_("Changes the founder of a channel. The new nickname must\n"
- "be a registered one."));
+ source.Reply(_(
+ "Changes the founder of a channel. The new nickname must "
+ "be a registered one."
+ ));
return true;
}
};
@@ -387,9 +396,11 @@ public:
{
this->SendSyntax(source);
source.Reply(" ");
- source.Reply(_("Enables or disables keepmodes for the given channel. If keep\n"
- "modes is enabled, services will remember modes set on the channel\n"
- "and attempt to re-set them the next time the channel is created."));
+ source.Reply(_(
+ "Enables or disables keepmodes for the given channel. If keep "
+ "modes is enabled, services will remember modes set on the channel "
+ "and attempt to re-set them the next time the channel is created."
+ ));
return true;
}
};
@@ -452,10 +463,13 @@ public:
{
this->SendSyntax(source);
source.Reply(" ");
- source.Reply(_("Enables or disables the \002peace\002 option for a channel.\n"
- "When \002peace\002 is set, a user won't be able to kick,\n"
- "ban or remove a channel status of a user that has\n"
- "a level superior or equal to theirs via %s commands."), source.service->nick.c_str());
+ source.Reply(_(
+ "Enables or disables the \002peace\002 option for a channel. "
+ "When \002peace\002 is set, a user won't be able to kick, "
+ "ban or remove a channel status of a user that has "
+ "a level superior or equal to theirs via %s commands."
+ ),
+ source.service->nick.c_str());
return true;
}
};
@@ -595,26 +609,30 @@ public:
BotInfo *ChanServ = Config->GetClient("ChanServ");
this->SendSyntax(source);
source.Reply(" ");
- source.Reply(_("Enables or disables the persistent channel setting.\n"
- "When persistent is set, the service bot will remain\n"
- "in the channel when it has emptied of users.\n"
- " \n"
- "If your IRCd does not have a permanent (persistent) channel\n"
- "mode you must have a service bot in your channel to\n"
- "set persist on, and it can not be unassigned while persist\n"
- "is on.\n"
- " \n"
- "If this network does not have %s enabled and does\n"
- "not have a permanent channel mode, %s will\n"
- "join your channel when you set persist on (and leave when\n"
- "it has been set off).\n"
- " \n"
- "If your IRCd has a permanent (persistent) channel mode\n"
- "and it is set or unset (for any reason, including MODE LOCK),\n"
- "persist is automatically set and unset for the channel as well.\n"
- "Additionally, services will set or unset this mode when you\n"
- "set persist on or off."), BotServ ? BotServ->nick.c_str() : "BotServ",
- ChanServ ? ChanServ->nick.c_str() : "ChanServ");
+ source.Reply(_(
+ "Enables or disables the persistent channel setting. "
+ "When persistent is set, the service bot will remain "
+ "in the channel when it has emptied of users. "
+ "\n\n"
+ "If your IRCd does not have a permanent (persistent) channel "
+ "mode you must have a service bot in your channel to "
+ "set persist on, and it can not be unassigned while persist "
+ "is on."
+ "\n\n"
+ "If this network does not have %s enabled and does "
+ "not have a permanent channel mode, %s will "
+ "join your channel when you set persist on (and leave when "
+ "it has been set off)."
+ "\n\n"
+ "If your IRCd has a permanent (persistent) channel mode "
+ "and it is set or unset (for any reason, including MODE LOCK), "
+ "persist is automatically set and unset for the channel as well. "
+ "Additionally, services will set or unset this mode when you "
+ "set persist on or off."
+ ),
+ BotServ ? BotServ->nick.c_str() : "BotServ",
+ ChanServ ? ChanServ->nick.c_str() : "ChanServ"
+ );
return true;
}
};
@@ -675,9 +693,11 @@ public:
{
this->SendSyntax(source);
source.Reply(" ");
- source.Reply(_("Enables or disables the \002restricted access\002 option for a\n"
- "channel. When \002restricted access\002 is set, users not on the access list will\n"
- "instead be kicked and banned from the channel."));
+ source.Reply(_(
+ "Enables or disables the \002restricted access\002 option for a "
+ "channel. When \002restricted access\002 is set, users not on the access list will "
+ "instead be kicked and banned from the channel."
+ ));
return true;
}
};
@@ -738,11 +758,13 @@ public:
{
this->SendSyntax(source);
source.Reply(" ");
- source.Reply(_("Enables or disables the \002secure founder\002 option for a channel.\n"
- "When \002secure founder\002 is set, only the real founder will be\n"
- "able to drop the channel, change its founder and its successor,\n"
- "and not those who have founder level access through\n"
- "the access/qop command."));
+ source.Reply(_(
+ "Enables or disables the \002secure founder\002 option for a channel. "
+ "When \002secure founder\002 is set, only the real founder will be "
+ "able to drop the channel, change its founder and its successor, "
+ "and not those who have founder level access through "
+ "the access/qop command."
+ ));
return true;
}
};
@@ -803,9 +825,11 @@ public:
{
this->SendSyntax(source);
source.Reply(" ");
- source.Reply(_("Enables or disables the \002secure ops\002 option for a channel.\n"
- "When \002secure ops\002 is set, users who are not on the access list\n"
- "will not be allowed channel operator status."));
+ source.Reply(_(
+ "Enables or disables the \002secure ops\002 option for a channel. "
+ "When \002secure ops\002 is set, users who are not on the access list "
+ "will not be allowed channel operator status."
+ ));
return true;
}
};
@@ -857,8 +881,8 @@ public:
{
ci->Extend<bool>("SIGNKICK_LEVEL");
ci->Shrink<bool>("SIGNKICK");
- source.Reply(_("Signed kick option for %s is now \002on\002, but depends of the\n"
- "level of the user that is using the command."), ci->name.c_str());
+ source.Reply(_("Signed kick option for %s is now \002on\002, but depends of the level of the user that is using the command."),
+ ci->name.c_str());
Log(source.AccessFor(ci).HasPriv("SET") ? LOG_COMMAND : LOG_OVERRIDE, source, this, ci) << "to enable sign kick level";
}
else if (params[1].equals_ci("OFF"))
@@ -876,14 +900,16 @@ public:
{
this->SendSyntax(source);
source.Reply(" ");
- source.Reply(_("Enables or disables signed kicks for a\n"
- "channel. When \002SIGNKICK\002 is set, kicks issued with\n"
- "the \002KICK\002 command will have the nick that used the\n"
- "command in their reason.\n"
- " \n"
- "If you use \002LEVEL\002, those who have a level that is superior\n"
- "or equal to the SIGNKICK level on the channel won't have their\n"
- "kicks signed."));
+ source.Reply(_(
+ "Enables or disables signed kicks for a "
+ "channel. When \002SIGNKICK\002 is set, kicks issued with "
+ "the \002KICK\002 command will have the nick that used the "
+ "command in their reason."
+ "\n\n"
+ "If you use \002LEVEL\002, those who have a level that is superior "
+ "or equal to the SIGNKICK level on the channel won't have their "
+ "kicks signed."
+ ));
return true;
}
};
@@ -962,22 +988,28 @@ public:
{
this->SendSyntax(source);
source.Reply(" ");
- source.Reply(_("Changes the successor of a channel. If the founder's\n"
- "nickname expires or is dropped while the channel is still\n"
- "registered, the successor will become the new founder of the\n"
- "channel. The successor's nickname must be a registered one.\n"
- "If there's no successor set, then the first nickname on the\n"
- "access list (with the highest access, if applicable) will\n"
- "become the new founder, but if the access list is empty, the\n"
- "channel will be dropped."));
+ source.Reply(_(
+ "Changes the successor of a channel. If the founder's "
+ "nickname expires or is dropped while the channel is still "
+ "registered, the successor will become the new founder of the "
+ "channel. The successor's nickname must be a registered one. "
+ "If there's no successor set, then the first nickname on the "
+ "access list (with the highest access, if applicable) will "
+ "become the new founder, but if the access list is empty, the "
+ "channel will be dropped."
+ ));
+
unsigned max_reg = Config->GetModule("chanserv").Get<unsigned>("maxregistered");
if (max_reg)
{
source.Reply(" ");
- source.Reply(_("Note, however, if the successor already has too many\n"
- "channels registered (%d), they will not be able to\n"
- "become the new founder and it will be as if the\n"
- "channel had no successor set."), max_reg);
+ source.Reply(_(
+ "Note, however, if the successor already has too many "
+ "channels registered (%u), they will not be able to "
+ "become the new founder and it will be as if the "
+ "channel had no successor set."
+ ),
+ max_reg);
}
return true;
}
@@ -1036,8 +1068,10 @@ public:
{
this->SendSyntax(source);
source.Reply(" ");
- source.Reply(_("Sets whether the given channel will expire. Setting this\n"
- "to ON prevents the channel from expiring."));
+ source.Reply(_(
+ "Sets whether the given channel will expire. Setting this "
+ "to ON prevents the channel from expiring."
+ ));
return true;
}
};
diff --git a/modules/chanserv/cs_status.cpp b/modules/chanserv/cs_status.cpp
index 39b54280e..31697e706 100644
--- a/modules/chanserv/cs_status.cpp
+++ b/modules/chanserv/cs_status.cpp
@@ -102,11 +102,13 @@ public:
{
this->SendSyntax(source);
source.Reply(" ");
- source.Reply(_("This command tells you what a users access is on a channel\n"
- "and what access entries, if any, they match. Additionally it\n"
- "will tell you of any auto kick entries they match. Usage of\n"
- "this command is limited to users who have the ability to modify\n"
- "access entries on the channel."));
+ source.Reply(_(
+ "This command tells you what a users access is on a channel "
+ "and what access entries, if any, they match. Additionally it "
+ "will tell you of any auto kick entries they match. Usage of "
+ "this command is limited to users who have the ability to modify "
+ "access entries on the channel."
+ ));
return true;
}
};
diff --git a/modules/chanserv/cs_suspend.cpp b/modules/chanserv/cs_suspend.cpp
index bda608481..9df5cea0b 100644
--- a/modules/chanserv/cs_suspend.cpp
+++ b/modules/chanserv/cs_suspend.cpp
@@ -143,14 +143,16 @@ public:
{
this->SendSyntax(source);
source.Reply(" ");
- source.Reply(_("Disallows anyone from using the given channel.\n"
- "May be cancelled by using the \002UNSUSPEND\002\n"
- "command to preserve all previous channel data/settings.\n"
- "If an expiry is given the channel will be unsuspended after\n"
- "that period of time, else the default expiry from the\n"
- "configuration is used.\n"
- " \n"
- "Reason may be required on certain networks."));
+ source.Reply(_(
+ "Disallows anyone from using the given channel. "
+ "May be cancelled by using the \002UNSUSPEND\002 "
+ "command to preserve all previous channel data/settings. "
+ "If an expiry is given the channel will be unsuspended after "
+ "that period of time, else the default expiry from the "
+ "configuration is used."
+ "\n\n"
+ "Reason may be required on certain networks."
+ ));
return true;
}
};
@@ -201,8 +203,10 @@ public:
{
this->SendSyntax(source);
source.Reply(" ");
- source.Reply(_("Releases a suspended channel. All data and settings\n"
- "are preserved from before the suspension."));
+ source.Reply(_(
+ "Releases a suspended channel. All data and settings "
+ "are preserved from before the suspension."
+ ));
return true;
}
};
diff --git a/modules/chanserv/cs_sync.cpp b/modules/chanserv/cs_sync.cpp
index 46b6bad66..dd03075b9 100644
--- a/modules/chanserv/cs_sync.cpp
+++ b/modules/chanserv/cs_sync.cpp
@@ -47,8 +47,10 @@ public:
{
this->SendSyntax(source);
source.Reply(" ");
- source.Reply(_("Syncs all modes set on users on the channel with the modes\n"
- "they should have based on their access."));
+ source.Reply(_(
+ "Syncs all modes set on users on the channel with the modes "
+ "they should have based on their access."
+ ));
return true;
}
};
diff --git a/modules/chanserv/cs_topic.cpp b/modules/chanserv/cs_topic.cpp
index 59adcd433..e1aa98e99 100644
--- a/modules/chanserv/cs_topic.cpp
+++ b/modules/chanserv/cs_topic.cpp
@@ -68,11 +68,15 @@ public:
{
this->SendSyntax(source);
source.Reply(" ");
- source.Reply(_("Enables or disables the \002topic retention\002 option for a\n"
- "channel. When \002%s\002 is set, the topic for the\n"
- "channel will be remembered by %s even after the\n"
- "last user leaves the channel, and will be restored the\n"
- "next time the channel is created."), source.command.c_str(), source.service->nick.c_str());
+ source.Reply(_(
+ "Enables or disables the \002topic retention\002 option for a "
+ "channel. When \002%s\002 is set, the topic for the "
+ "channel will be remembered by %s even after the "
+ "last user leaves the channel, and will be restored the "
+ "next time the channel is created."
+ ),
+ source.command.c_str(),
+ source.service->nick.c_str());
return true;
}
};
@@ -192,14 +196,16 @@ public:
{
this->SendSyntax(source);
source.Reply(" ");
- source.Reply(_("Allows manipulating the topic of the specified channel.\n"
- "The \002SET\002 command changes the topic of the channel to the given topic\n"
- "or unsets the topic if no topic is given. The \002APPEND\002 command appends\n"
- "the given topic to the existing topic.\n"
- " \n"
- "\002LOCK\002 and \002UNLOCK\002 may be used to enable and disable topic lock. When\n"
- "topic lock is set, the channel topic will be unchangeable by users who do not have\n"
- "the \002TOPIC\002 privilege."));
+ source.Reply(_(
+ "Allows manipulating the topic of the specified channel. "
+ "The \002SET\002 command changes the topic of the channel to the given topic "
+ "or unsets the topic if no topic is given. The \002APPEND\002 command appends "
+ "the given topic to the existing topic. "
+ "\n\n"
+ "\002LOCK\002 and \002UNLOCK\002 may be used to enable and disable topic lock. When "
+ "topic lock is set, the channel topic will be unchangeable by users who do not have "
+ "the \002TOPIC\002 privilege."
+ ));
return true;
}
};
diff --git a/modules/chanserv/cs_unban.cpp b/modules/chanserv/cs_unban.cpp
index 0a1955115..15d8679de 100644
--- a/modules/chanserv/cs_unban.cpp
+++ b/modules/chanserv/cs_unban.cpp
@@ -120,13 +120,16 @@ public:
{
this->SendSyntax(source);
source.Reply(" ");
- source.Reply(_("Tells %s to remove all bans preventing you or the given\n"
- "user from entering the given channel. If no channel is\n"
- "given, all bans affecting you in channels you have access\n"
- "in are removed.\n"
- " \n"
- "By default, limited to AOPs or those with level 5 access and above\n"
- "on the channel."), source.service->nick.c_str());
+ source.Reply(_(
+ "Tells %s to remove all bans preventing you or the given "
+ "user from entering the given channel. If no channel is "
+ "given, all bans affecting you in channels you have access "
+ "in are removed."
+ "\n\n"
+ "By default, limited to AOPs or those with level 5 access and above "
+ "on the channel."
+ ),
+ source.service->nick.c_str());
return true;
}
};
diff --git a/modules/chanserv/cs_updown.cpp b/modules/chanserv/cs_updown.cpp
index 28c35042d..3562daf9c 100644
--- a/modules/chanserv/cs_updown.cpp
+++ b/modules/chanserv/cs_updown.cpp
@@ -123,9 +123,11 @@ public:
{
this->SendSyntax(source);
source.Reply(" ");
- source.Reply(_("Updates a selected nicks status modes on a channel. If \037nick\037 is\n"
- "omitted then your status is updated. If \037channel\037 is omitted then\n"
- "your channel status is updated on every channel you are in."));
+ source.Reply(_(
+ "Updates a selected nicks status modes on a channel. If \037nick\037 is "
+ "omitted then your status is updated. If \037channel\037 is omitted then "
+ "your channel status is updated on every channel you are in."
+ ));
return true;
}
};
@@ -221,9 +223,11 @@ public:
{
this->SendSyntax(source);
source.Reply(" ");
- source.Reply(_("Removes a selected nicks status modes on a channel. If \037nick\037 is\n"
- "omitted then your status is removed. If \037channel\037 is omitted then\n"
- "your channel status is removed on every channel you are in."));
+ source.Reply(_(
+ "Removes a selected nicks status modes on a channel. If \037nick\037 is "
+ "omitted then your status is removed. If \037channel\037 is omitted then "
+ "your channel status is removed on every channel you are in."
+ ));
return true;
}
};
diff --git a/modules/chanserv/cs_xop.cpp b/modules/chanserv/cs_xop.cpp
index e2e326eb8..f808c7622 100644
--- a/modules/chanserv/cs_xop.cpp
+++ b/modules/chanserv/cs_xop.cpp
@@ -542,59 +542,78 @@ public:
this->SendSyntax(source);
source.Reply(" ");
- source.Reply(_("Maintains the \002%s list\002 for a channel. Users who match an access entry\n"
- "on the %s list receive the following privileges:\n"
- " "), cmd.c_str(), cmd.c_str());
+ source.Reply(_(
+ "Maintains the \002%s list\002 for a channel. Users who match an access entry "
+ "on the %s list receive the following privileges:"
+ ),
+ cmd.c_str(),
+ cmd.c_str());
+ source.Reply(" ");
Anope::string buf;
for (const auto &permission : permissions[cmd])
{
buf += ", " + permission;
if (buf.length() > 75)
{
- source.Reply(" %s\n", buf.substr(2).c_str());
+ source.Reply(" %s", buf.substr(2).c_str());
buf.clear();
}
}
if (!buf.empty())
{
- source.Reply(" %s\n", buf.substr(2).c_str());
+ source.Reply(" %s", buf.substr(2).c_str());
buf.clear();
}
- source.Reply(_(" \n"
- "The \002%s ADD\002 command adds the given nickname to the\n"
- "%s list.\n"
- " \n"
- "The \002%s DEL\002 command removes the given nick from the\n"
- "%s list. If a list of entry numbers is given, those\n"
- "entries are deleted. (See the example for LIST below.)\n"
- " \n"
- "The \002%s LIST\002 command displays the %s list. If\n"
- "a wildcard mask is given, only those entries matching the\n"
- "mask are displayed. If a list of entry numbers is given,\n"
+ source.Reply(" ");
+ source.Reply(_(
+ "The \002%s\032ADD\002 command adds the given nickname to the "
+ "%s list."
+ "\n\n"
+ "The \002%s\032DEL\002 command removes the given nick from the "
+ "%s list. If a list of entry numbers is given, those "
+ "entries are deleted. (See the example for LIST below.)"
+ "\n\n"
+ "The \002%s\032LIST\002 command displays the %s list. If "
+ "a wildcard mask is given, only those entries matching the "
+ "mask are displayed. If a list of entry numbers is given, "
"only those entries are shown; for example:\n"
- " \002%s #channel LIST 2-5,7-9\002\n"
+ " \002%s\032#channel\032LIST\0322-5,7-9\002\n"
" Lists %s entries numbered 2 through 5 and\n"
- " 7 through 9.\n"
- " \n"
- "The \002%s CLEAR\002 command clears all entries of the\n"
- "%s list."), cmd.c_str(), cmd.c_str(), cmd.c_str(), cmd.c_str(),
- cmd.c_str(), cmd.c_str(), cmd.c_str(), cmd.c_str(), cmd.c_str(), cmd.c_str());
+ " 7 through 9."
+ "\n\n"
+ "The \002%s\032CLEAR\002 command clears all entries of the "
+ "%s list."
+ ),
+ cmd.c_str(),
+ cmd.c_str(),
+ cmd.c_str(),
+ cmd.c_str(),
+ cmd.c_str(),
+ cmd.c_str(),
+ cmd.c_str(),
+ cmd.c_str(),
+ cmd.c_str(),
+ cmd.c_str());
+
BotInfo *access_bi, *flags_bi;
Anope::string access_cmd, flags_cmd;
Command::FindCommandFromService("chanserv/access", access_bi, access_cmd);
Command::FindCommandFromService("chanserv/flags", flags_bi, flags_cmd);
if (!access_cmd.empty() || !flags_cmd.empty())
{
- source.Reply(_("Alternative methods of modifying channel access lists are\n"
- "available."));
+ source.Reply(_("Alternative methods of modifying channel access lists are available."));
if (!access_cmd.empty())
- source.Reply(_("See \002%s\002 for more information\n"
- "about the access list."), access_bi->GetQueryCommand("generic/help", access_cmd).c_str());
+ {
+ source.Reply(_("See \002%s\002 for more information about the access list."),
+ access_bi->GetQueryCommand("generic/help", access_cmd).c_str());
+ }
if (!flags_cmd.empty())
- source.Reply(_("See \002%s\002 for more information\n"
- "about the flags system."), flags_bi->GetQueryCommand("generic/help", flags_cmd).c_str());
+ {
+ source.Reply(_("See \002%s\002 for more information about the flags system."),
+ flags_bi->GetQueryCommand("generic/help", flags_cmd).c_str());
+ }
}
return true;
}
diff --git a/modules/fantasy.cpp b/modules/fantasy.cpp
index dc4fab4e9..21a5027d5 100644
--- a/modules/fantasy.cpp
+++ b/modules/fantasy.cpp
@@ -67,16 +67,18 @@ public:
bool OnHelp(CommandSource &source, const Anope::string &) override
{
this->SendSyntax(source);
- source.Reply(_(" \n"
- "Enables or disables \002fantasy\002 mode on a channel.\n"
- "When it is enabled, users will be able to use\n"
- "fantasy commands on a channel when prefixed\n"
- "with one of the following fantasy characters: \002%s\002\n"
- " \n"
- "Note that users wanting to use fantasy commands\n"
- "MUST have enough access for both the FANTASY\n"
- "privilege and the command they are executing."),
- Config->GetModule(this->owner).Get<const Anope::string>("fantasycharacter", "!").c_str());
+ source.Reply(" ");
+ source.Reply(_(
+ "Enables or disables \002fantasy\002 mode on a channel. "
+ "When it is enabled, users will be able to use "
+ "fantasy commands on a channel when prefixed "
+ "with one of the following fantasy characters: \002%s\002"
+ "\n\n"
+ "Note that users wanting to use fantasy commands "
+ "MUST have enough access for both the FANTASY "
+ "privilege and the command they are executing."
+ ),
+ Config->GetModule(this->owner).Get<const Anope::string>("fantasycharacter", "!").c_str());
return true;
}
};
diff --git a/modules/global/gl_global.cpp b/modules/global/gl_global.cpp
index a88c8080d..8fbfd180a 100644
--- a/modules/global/gl_global.cpp
+++ b/modules/global/gl_global.cpp
@@ -77,12 +77,13 @@ public:
this->SendSyntax(source);
source.Reply(" ");
source.Reply(_(
- "Allows sending messages to all users on the network. The message will be sent\n"
- "from \002%s\002.\n"
- "\n"
- "You can either send a message by specifying it as a parameter or provide no\n"
- "parameters to send a previously queued message.\n"
- ), GetSender(source)->nick.c_str());
+ "Allows sending messages to all users on the network. The message will be sent "
+ "from \002%s\002."
+ "\n\n"
+ "You can either send a message by specifying it as a parameter or provide no "
+ "parameters to send a previously queued message."
+ ),
+ GetSender(source)->nick.c_str());
return true;
}
};
diff --git a/modules/global/gl_queue.cpp b/modules/global/gl_queue.cpp
index 864176c01..a66fb6b4b 100644
--- a/modules/global/gl_queue.cpp
+++ b/modules/global/gl_queue.cpp
@@ -167,16 +167,16 @@ public:
this->SendSyntax(source);
source.Reply("");
source.Reply(_(
- "Allows queueing messages to send to users on the network.\n"
- "\n"
- "The \002QUEUE ADD\002 command adds the given message to the message queue."
- "\n"
- "The \002QUEUE CLEAR\002 command clears the message queue."
- "\n"
- "The \002QUEUE DEL\002 command removes the specified message from the message queue. The\n"
- "message number can be obtained from the output of the \002QUEUE LIST\002 command."
- "\n"
- "The \002QUEUE LIST\002 command lists all messages that are currently in the message queue."
+ "Allows queueing messages to send to users on the network."
+ "\n\n"
+ "The \002QUEUE\032ADD\002 command adds the given message to the message queue."
+ "\n\n"
+ "The \002QUEUE\032CLEAR\002 command clears the message queue."
+ "\n\n"
+ "The \002QUEUE\032DEL\002 command removes the specified message from the message queue. The "
+ "message number can be obtained from the output of the \002QUEUE\032LIST\002 command."
+ "\n\n"
+ "The \002QUEUE\032LIST\002 command lists all messages that are currently in the message queue."
));
return true;
}
diff --git a/modules/global/gl_server.cpp b/modules/global/gl_server.cpp
index 4b9effdaa..7219c60e7 100644
--- a/modules/global/gl_server.cpp
+++ b/modules/global/gl_server.cpp
@@ -84,12 +84,13 @@ public:
this->SendSyntax(source);
source.Reply(" ");
source.Reply(_(
- "Allows sending messages to all users on a server. The message will be sent\n"
- "from \002%s\002.\n"
- "\n"
- "You can either send a message by specifying it as a parameter or provide no\n"
- "parameters to send a previously queued message.\n"
- ), GetSender(source)->nick.c_str());
+ "Allows sending messages to all users on a server. The message will be sent "
+ "from \002%s\002."
+ "\n\n"
+ "You can either send a message by specifying it as a parameter or provide no "
+ "parameters to send a previously queued message."
+ ),
+ GetSender(source)->nick.c_str());
return true;
}
};
diff --git a/modules/greet.cpp b/modules/greet.cpp
index 9f620d9cb..b76b352fc 100644
--- a/modules/greet.cpp
+++ b/modules/greet.cpp
@@ -67,12 +67,14 @@ public:
bool OnHelp(CommandSource &source, const Anope::string &) override
{
this->SendSyntax(source);
- source.Reply(_(" \n"
- "Enables or disables \002greet\002 mode on a channel.\n"
- "When it is enabled, the bot will display greet\n"
- "messages of users joining the channel, provided\n"
- "they have enough access to the channel."));
- return true;
+ source.Reply(" ");
+ source.Reply(_(
+ "Enables or disables \002greet\002 mode on a channel. "
+ "When it is enabled, the bot will display greet "
+ "messages of users joining the channel, provided "
+ "they have enough access to the channel."
+ ));
+ return true;
}
};
@@ -130,10 +132,12 @@ public:
{
this->SendSyntax(source);
source.Reply(" ");
- source.Reply(_("Makes the given message the greet of your nickname, that\n"
- "will be displayed when joining a channel that has GREET\n"
- "option enabled, provided that you have the necessary\n"
- "access on it."));
+ source.Reply(_(
+ "Makes the given message the greet of your nickname, that "
+ "will be displayed when joining a channel that has GREET "
+ "option enabled, provided that you have the necessary "
+ "access on it."
+ ));
return true;
}
};
@@ -157,10 +161,12 @@ public:
{
this->SendSyntax(source);
source.Reply(" ");
- source.Reply(_("Makes the given message the greet of the nickname, that\n"
- "will be displayed when joining a channel that has GREET\n"
- "option enabled, provided that the user has the necessary\n"
- "access on it."));
+ source.Reply(_(
+ "Makes the given message the greet of the nickname, that "
+ "will be displayed when joining a channel that has GREET "
+ "option enabled, provided that the user has the necessary "
+ "access on it."
+ ));
return true;
}
};
diff --git a/modules/help.cpp b/modules/help.cpp
index ba559ca7f..abf97f7e1 100644
--- a/modules/help.cpp
+++ b/modules/help.cpp
@@ -117,7 +117,7 @@ public:
if (!groups.empty())
{
source.Reply(" ");
- source.Reply(_("Use the \002%s ALL\002 command to list all commands and their descriptions."), source_command.c_str());
+ source.Reply(_("Use the \002%s\032ALL\002 command to list all commands and their descriptions."), source_command.c_str());
}
}
else
diff --git a/modules/hostserv/hs_del.cpp b/modules/hostserv/hs_del.cpp
index 357f4f8e3..7ce67dbbe 100644
--- a/modules/hostserv/hs_del.cpp
+++ b/modules/hostserv/hs_del.cpp
@@ -46,8 +46,7 @@ public:
{
this->SendSyntax(source);
source.Reply(" ");
- source.Reply(_("Deletes the vhost assigned to the given nick from the\n"
- "database."));
+ source.Reply(_("Deletes the vhost assigned to the given nick from the database."));
return true;
}
};
@@ -92,8 +91,7 @@ public:
{
this->SendSyntax(source);
source.Reply(" ");
- source.Reply(_("Deletes the vhost for all nicks in the same group as\n"
- "that of the given nick."));
+ source.Reply(_("Deletes the vhost for all nicks in the same group as that of the given nick."));
return true;
}
};
diff --git a/modules/hostserv/hs_group.cpp b/modules/hostserv/hs_group.cpp
index bf7b5ddca..183956b72 100644
--- a/modules/hostserv/hs_group.cpp
+++ b/modules/hostserv/hs_group.cpp
@@ -67,9 +67,11 @@ public:
{
this->SendSyntax(source);
source.Reply(" ");
- source.Reply(_("This command allows users to set the vhost of their\n"
- "CURRENT nick to be the vhost for all nicks in the same\n"
- "group."));
+ source.Reply(_(
+ "This command allows users to set the vhost of their "
+ "CURRENT nick to be the vhost for all nicks in the same "
+ "group."
+ ));
return true;
}
};
diff --git a/modules/hostserv/hs_list.cpp b/modules/hostserv/hs_list.cpp
index 174f4baf1..3ff6fe39d 100644
--- a/modules/hostserv/hs_list.cpp
+++ b/modules/hostserv/hs_list.cpp
@@ -123,13 +123,15 @@ public:
{
this->SendSyntax(source);
source.Reply(" ");
- source.Reply(_("This command lists registered vhosts to the operator.\n"
- "If a \037key\037 is specified, only entries whose nick or vhost match\n"
- "the pattern given in \037key\037 are displayed e.g. Rob* for all\n"
- "entries beginning with \"Rob\"\n"
- "If a \037#X-Y\037 style is used, only entries between the range of \002X\002\n"
- "and \002Y\002 will be displayed, e.g. \002#1-3\002 will display the first 3\n"
- "nick/vhost entries."));
+ source.Reply(_(
+ "This command lists registered vhosts to the operator. "
+ "If a \037key\037 is specified, only entries whose nick or vhost match "
+ "the pattern given in \037key\037 are displayed e.g. Rob* for all "
+ "entries beginning with \"Rob\". "
+ "If a \037#X-Y\037 style is used, only entries between the range of \002X\002 "
+ "and \002Y\002 will be displayed, e.g. \002#1-3\002 will display the first 3 "
+ "nick/vhost entries."
+ ));
return true;
}
};
diff --git a/modules/hostserv/hs_off.cpp b/modules/hostserv/hs_off.cpp
index 534640ca3..a5528d4c7 100644
--- a/modules/hostserv/hs_off.cpp
+++ b/modules/hostserv/hs_off.cpp
@@ -47,9 +47,11 @@ public:
{
this->SendSyntax(source);
source.Reply(" ");
- source.Reply(_("Deactivates the vhost currently assigned to the nick in use.\n"
- "When you use this command any user who performs a /whois\n"
- "on you will see your real host/IP address."));
+ source.Reply(_(
+ "Deactivates the vhost currently assigned to the nick in use. "
+ "When you use this command any user who performs a /whois "
+ "on you will see your real host/IP address."
+ ));
return true;
}
};
diff --git a/modules/hostserv/hs_on.cpp b/modules/hostserv/hs_on.cpp
index dbd675333..33a077f32 100644
--- a/modules/hostserv/hs_on.cpp
+++ b/modules/hostserv/hs_on.cpp
@@ -50,9 +50,11 @@ public:
{
this->SendSyntax(source);
source.Reply(" ");
- source.Reply(_("Activates the vhost currently assigned to the nick in use.\n"
- "When you use this command any user who performs a /whois\n"
- "on you will see the vhost instead of your real host/IP address."));
+ source.Reply(_(
+ "Activates the vhost currently assigned to the nick in use. "
+ "When you use this command any user who performs a /whois "
+ "on you will see the vhost instead of your real host/IP address."
+ ));
return true;
}
};
diff --git a/modules/hostserv/hs_request.cpp b/modules/hostserv/hs_request.cpp
index 65c92ea9b..12252e62f 100644
--- a/modules/hostserv/hs_request.cpp
+++ b/modules/hostserv/hs_request.cpp
@@ -189,9 +189,11 @@ public:
{
this->SendSyntax(source);
source.Reply(" ");
- source.Reply(_("Request the given vhost to be activated for your nick by the\n"
- "network administrators. Please be patient while your request\n"
- "is being considered."));
+ source.Reply(_(
+ "Request the given vhost to be activated for your nick by the "
+ "network administrators. Please be patient while your request "
+ "is being considered."
+ ));
return true;
}
};
diff --git a/modules/hostserv/hs_set.cpp b/modules/hostserv/hs_set.cpp
index 740646a9c..1de34b5a3 100644
--- a/modules/hostserv/hs_set.cpp
+++ b/modules/hostserv/hs_set.cpp
@@ -94,10 +94,12 @@ public:
{
this->SendSyntax(source);
source.Reply(" ");
- source.Reply(_("Sets the vhost for the given nick to that of the given\n"
- "hostmask. If your IRCD supports vidents, then using\n"
- "SET <nick> <ident>@<hostmask> set idents for users as\n"
- "well as vhosts."));
+ source.Reply(_(
+ "Sets the vhost for the given nick to that of the given "
+ "hostmask. If your IRCD supports vidents, then using "
+ "SET <nick> <ident>@<hostmask> set idents for users as "
+ "well as vhosts."
+ ));
return true;
}
};
@@ -198,12 +200,15 @@ public:
{
this->SendSyntax(source);
source.Reply(" ");
- source.Reply(_("Sets the vhost for all nicks in the same group as that\n"
- "of the given nick. If your IRCD supports vidents, then\n"
- "using SETALL <nick> <ident>@<hostmask> will set idents\n"
- "for users as well as vhosts.\n"
- "* NOTE, this will not update the vhost for any nicks\n"
- "added to the group after this command was used."));
+ source.Reply(_(
+ "Sets the vhost for all nicks in the same group as that "
+ "of the given nick. If your IRCD supports vidents, then "
+ "using SETALL <nick> <ident>@<hostmask> will set idents "
+ "for users as well as vhosts."
+ "\n\n"
+ "* NOTE, this will not update the vhost for any nicks "
+ "added to the group after this command was used."
+ ));
return true;
}
};
diff --git a/modules/memoserv/memoserv.cpp b/modules/memoserv/memoserv.cpp
index b653e8ade..e25497f0d 100644
--- a/modules/memoserv/memoserv.cpp
+++ b/modules/memoserv/memoserv.cpp
@@ -214,12 +214,17 @@ public:
{
if (!params.empty() || source.c || source.service != *MemoServ)
return EVENT_CONTINUE;
- source.Reply(_("\002%s\002 is a utility allowing IRC users to send short\n"
- "messages to other IRC users, whether they are online at\n"
- "the time or not, or to channels(*). Both the sender's\n"
- "nickname and the target nickname or channel must be\n"
- "registered in order to send a memo.\n"
- "%s's commands include:"), MemoServ->nick.c_str(), MemoServ->nick.c_str());
+ source.Reply(_(
+ "\002%s\002 is a utility allowing IRC users to send short "
+ "messages to other IRC users, whether they are online at "
+ "the time or not, or to channels(*). Both the sender's "
+ "nickname and the target nickname or channel must be "
+ "registered in order to send a memo."
+ "\n\n"
+ "%s's commands include:"
+ ),
+ MemoServ->nick.c_str(),
+ MemoServ->nick.c_str());
return EVENT_CONTINUE;
}
@@ -227,9 +232,9 @@ public:
{
if (!params.empty() || source.c || source.service != *MemoServ)
return;
- source.Reply(_(" \n"
- "Type \002%s \037command\037\002 for help on any of the\n"
- "above commands."),
+
+ source.Reply(" ");
+ source.Reply(_("Type \002%s\032\037command\037\002 for help on any of the above commands."),
MemoServ->GetQueryCommand("generic/help").c_str());
}
};
diff --git a/modules/memoserv/ms_cancel.cpp b/modules/memoserv/ms_cancel.cpp
index b423899b0..5a93497fe 100644
--- a/modules/memoserv/ms_cancel.cpp
+++ b/modules/memoserv/ms_cancel.cpp
@@ -82,8 +82,10 @@ public:
{
this->SendSyntax(source);
source.Reply(" ");
- source.Reply(_("Cancels the last memo you sent to the given nick or channel,\n"
- "provided it has not been read at the time you use the command."));
+ source.Reply(_(
+ "Cancels the last memo you sent to the given nick or channel, "
+ "provided it has not been read at the time you use the command."
+ ));
return true;
}
};
diff --git a/modules/memoserv/ms_check.cpp b/modules/memoserv/ms_check.cpp
index 7c478b02b..31efa70c3 100644
--- a/modules/memoserv/ms_check.cpp
+++ b/modules/memoserv/ms_check.cpp
@@ -67,8 +67,10 @@ public:
{
this->SendSyntax(source);
source.Reply(" ");
- source.Reply(_("Checks whether the _last_ memo you sent to \037nick\037 has been read\n"
- "or not. Note that this only works with nicks, not with channels."));
+ source.Reply(_(
+ "Checks whether the _last_ memo you sent to \037nick\037 has been read "
+ "or not. Note that this only works with nicks, not with channels."
+ ));
return true;
}
};
diff --git a/modules/memoserv/ms_del.cpp b/modules/memoserv/ms_del.cpp
index 56700b0bd..d905a2e08 100644
--- a/modules/memoserv/ms_del.cpp
+++ b/modules/memoserv/ms_del.cpp
@@ -128,20 +128,23 @@ public:
{
this->SendSyntax(source);
source.Reply(" ");
- source.Reply(_("Deletes the specified memo or memos. You can supply\n"
- "multiple memo numbers or ranges of numbers instead of a\n"
- "single number, as in the second example below.\n"
- " \n"
- "If \002LAST\002 is given, the last memo will be deleted.\n"
- "If \002ALL\002 is given, deletes all of your memos.\n"
- " \n"
- "Examples:\n"
- " \n"
- " \002DEL 1\002\n"
- " Deletes your first memo.\n"
- " \n"
- " \002DEL 2-5,7-9\002\n"
- " Deletes memos numbered 2 through 5 and 7 through 9."));
+ source.Reply(_(
+ "Deletes the specified memo or memos. You can supply "
+ "multiple memo numbers or ranges of numbers instead of a "
+ "single number, as in the second example below."
+ "\n\n"
+ "If \002LAST\002 is given, the last memo will be deleted."
+ "\n\n"
+ "If \002ALL\002 is given, deletes all of your memos."
+ "\n\n"
+ "Examples:"
+ "\n\n"
+ " \002DEL\0321\002\n"
+ " Deletes your first memo."
+ "\n\n"
+ " \002DEL\0322-5,7-9\002\n"
+ " Deletes memos numbered 2 through 5 and 7 through 9."
+ ));
return true;
}
};
diff --git a/modules/memoserv/ms_ignore.cpp b/modules/memoserv/ms_ignore.cpp
index 6b50d90bc..022a95bc4 100644
--- a/modules/memoserv/ms_ignore.cpp
+++ b/modules/memoserv/ms_ignore.cpp
@@ -103,10 +103,12 @@ public:
{
this->SendSyntax(source);
source.Reply(" ");
- source.Reply(_("Allows you to ignore users by nick or host from memoing\n"
- "you or a channel. If someone on the memo ignore list tries\n"
- "to memo you or a channel, they will not be told that you have\n"
- "them ignored."));
+ source.Reply(_(
+ "Allows you to ignore users by nick or host from memoing "
+ "you or a channel. If someone on the memo ignore list tries "
+ "to memo you or a channel, they will not be told that you have "
+ "them ignored."
+ ));
return true;
}
};
diff --git a/modules/memoserv/ms_info.cpp b/modules/memoserv/ms_info.cpp
index 91acaabde..e325c13e2 100644
--- a/modules/memoserv/ms_info.cpp
+++ b/modules/memoserv/ms_info.cpp
@@ -204,16 +204,18 @@ public:
{
this->SendSyntax(source);
source.Reply(" ");
- source.Reply(_("Without a parameter, displays information on the number of\n"
- "memos you have, how many of them are unread, and how many\n"
- "total memos you can receive.\n"
- " \n"
- "With a channel parameter, displays the same information for\n"
- "the given channel.\n"
- " \n"
- "With a nickname parameter, displays the same information\n"
- "for the given nickname. This is limited to \002Services\002\n"
- "\002Operators\002."));
+ source.Reply(_(
+ "Without a parameter, displays information on the number of "
+ "memos you have, how many of them are unread, and how many "
+ "total memos you can receive."
+ "\n\n"
+ "With a channel parameter, displays the same information for "
+ "the given channel."
+ "\n\n"
+ "With a nickname parameter, displays the same information "
+ "for the given nickname. This is limited to \002Services "
+ "Operators\002."
+ ));
return true;
}
diff --git a/modules/memoserv/ms_list.cpp b/modules/memoserv/ms_list.cpp
index d421efe86..d7926b39f 100644
--- a/modules/memoserv/ms_list.cpp
+++ b/modules/memoserv/ms_list.cpp
@@ -141,12 +141,14 @@ public:
{
this->SendSyntax(source);
source.Reply(" ");
- source.Reply(_("Lists any memos you currently have. With \002NEW\002, lists only\n"
- "new (unread) memos. Unread memos are marked with a \"*\"\n"
- "to the left of the memo number. You can also specify a list\n"
- "of numbers, as in the example below:\n"
- " \002LIST 2-5,7-9\002\n"
- " Lists memos numbered 2 through 5 and 7 through 9."));
+ source.Reply(_(
+ "Lists any memos you currently have. With \002NEW\002, lists only "
+ "new (unread) memos. Unread memos are marked with a \"*\" "
+ "to the left of the memo number. You can also specify a list "
+ "of numbers, as in the example below:\n"
+ " \002LIST 2-5,7-9\002\n"
+ " Lists memos numbered 2 through 5 and 7 through 9."
+ ));
return true;
}
};
diff --git a/modules/memoserv/ms_read.cpp b/modules/memoserv/ms_read.cpp
index 7878027bf..4fec8cdb8 100644
--- a/modules/memoserv/ms_read.cpp
+++ b/modules/memoserv/ms_read.cpp
@@ -39,8 +39,8 @@ static void rsend_notify(CommandSource &source, MemoInfo *mi, Memo *m, const Ano
/* Notify recipient of the memo that a notification has
been sent to the sender */
- source.Reply(_("A notification memo has been sent to %s informing them you have\n"
- "read their memo."), nc->display.c_str());
+ source.Reply(_("A notification memo has been sent to %s informing them you have read their memo."),
+ nc->display.c_str());
}
/* Remove receipt flag from the original memo */
@@ -198,15 +198,17 @@ public:
{
this->SendSyntax(source);
source.Reply(" ");
- source.Reply(_("Sends you the text of the memos specified. If LAST is\n"
- "given, sends you the memo you most recently received. If\n"
- "NEW is given, sends you all of your new memos. If ALL is\n"
- "given, sends you all of your memos. Otherwise, sends you\n"
- "memo number \037num\037. You can also give a list of numbers,\n"
- "as in this example:\n"
- " \n"
- " \002READ 2-5,7-9\002\n"
- " Displays memos numbered 2 through 5 and 7 through 9."));
+ source.Reply(_(
+ "Sends you the text of the memos specified. If LAST is "
+ "given, sends you the memo you most recently received. If "
+ "NEW is given, sends you all of your new memos. If ALL is "
+ "given, sends you all of your memos. Otherwise, sends you "
+ "memo number \037num\037. You can also give a list of numbers, "
+ "as in this example:"
+ "\n\n"
+ " \002READ 2-5,7-9\002\n"
+ " Displays memos numbered 2 through 5 and 7 through 9."
+ ));
return true;
}
};
diff --git a/modules/memoserv/ms_rsend.cpp b/modules/memoserv/ms_rsend.cpp
index 6543e2451..22b27a4f4 100644
--- a/modules/memoserv/ms_rsend.cpp
+++ b/modules/memoserv/ms_rsend.cpp
@@ -82,13 +82,15 @@ public:
{
this->SendSyntax(source);
source.Reply(" ");
- source.Reply(_("Sends the named \037nick\037 or \037channel\037 a memo containing\n"
- "\037memo-text\037. When sending to a nickname, the recipient will\n"
- "receive a notice that they have a new memo. The target\n"
- "nickname/channel must be registered.\n"
- "Once the memo is read by its recipient, an automatic notification\n"
- "memo will be sent to the sender informing them that the memo\n"
- "has been read."));
+ source.Reply(_(
+ "Sends the named \037nick\037 or \037channel\037 a memo containing "
+ "\037memo-text\037. When sending to a nickname, the recipient will "
+ "receive a notice that they have a new memo. The target "
+ "nickname/channel must be registered. "
+ "Once the memo is read by its recipient, an automatic notification "
+ "memo will be sent to the sender informing them that the memo "
+ "has been read."
+ ));
return true;
}
};
diff --git a/modules/memoserv/ms_send.cpp b/modules/memoserv/ms_send.cpp
index ba025a5ca..8e348b949 100644
--- a/modules/memoserv/ms_send.cpp
+++ b/modules/memoserv/ms_send.cpp
@@ -68,10 +68,12 @@ public:
{
this->SendSyntax(source);
source.Reply(" ");
- source.Reply(_("Sends the named \037nick\037 or \037channel\037 a memo containing\n"
- "\037memo-text\037. When sending to a nickname, the recipient will\n"
- "receive a notice that they have a new memo. The target\n"
- "nickname/channel must be registered."));
+ source.Reply(_(
+ "Sends the named \037nick\037 or \037channel\037 a memo containing "
+ "\037memo-text\037. When sending to a nickname, the recipient will "
+ "receive a notice that they have a new memo. The target "
+ "nickname/channel must be registered."
+ ));
return true;
}
};
diff --git a/modules/memoserv/ms_set.cpp b/modules/memoserv/ms_set.cpp
index ac2f066ba..f4158c855 100644
--- a/modules/memoserv/ms_set.cpp
+++ b/modules/memoserv/ms_set.cpp
@@ -225,65 +225,85 @@ public:
{
this->SendSyntax(source);
source.Reply(" ");
- source.Reply(_("Sets various memo options. \037option\037 can be one of:\n"
- " \n"
+ source.Reply(_(
+ "Sets various memo options. \037option\037 can be one of:"
+ "\n\n"
" NOTIFY Changes when you will be notified about\n"
- " new memos (only for nicknames)\n"
+ " new memos (only for nicknames)"
+ "\n\n"
" LIMIT Sets the maximum number of memos you can\n"
- " receive\n"
- " \n"
- "Type \002%s \037option\037\002 for more information\n"
- "on a specific option."),
+ " receive"
+ "\n\n"
+ "Type \002%s\032\037option\037\002 for more information "
+ "on a specific option."
+ ),
source.service->GetQueryCommand("generic/help", source.command).c_str());
}
else if (subcommand.equals_ci("NOTIFY"))
- source.Reply(_("Syntax: \002NOTIFY {ON | LOGON | NEW | MAIL | NOMAIL | OFF}\002\n"
- " \n"
- "Changes when you will be notified about new memos:\n"
- " \n"
- " ON You will be notified of memos when you log on,\n"
- " when you unset /AWAY, and when they are sent\n"
- " to you.\n"
- " LOGON You will only be notified of memos when you log\n"
- " on or when you unset /AWAY.\n"
- " NEW You will only be notified of memos when they\n"
- " are sent to you.\n"
- " MAIL You will be notified of memos by email as well as\n"
- " any other settings you have.\n"
- " NOMAIL You will not be notified of memos by email.\n"
- " OFF You will not receive any notification of memos.\n"
- " \n"
- "\002ON\002 is essentially \002LOGON\002 and \002NEW\002 combined."));
+ {
+ source.Reply(_(
+ "Syntax: \002NOTIFY {ON | LOGON | NEW | MAIL | NOMAIL | OFF}\002"
+ "\n\n"
+ "Changes when you will be notified about new memos:"
+ "\n\n"
+ " ON You will be notified of memos when you log on,\n"
+ " when you unset /AWAY, and when they are sent\n"
+ " to you."
+ "\n\n"
+ " LOGON You will only be notified of memos when you log\n"
+ " on or when you unset /AWAY."
+ "\n\n"
+ " NEW You will only be notified of memos when they\n"
+ " are sent to you."
+ "\n\n"
+ " MAIL You will be notified of memos by email as well as\n"
+ " any other settings you have."
+ "\n\n"
+ " NOMAIL You will not be notified of memos by email."
+ "\n\n"
+ " OFF You will not receive any notification of memos."
+ "\n\n"
+ "\002ON\002 is essentially \002LOGON\002 and \002NEW\002 combined."
+ ));
+ }
else if (subcommand.equals_ci("LIMIT"))
{
int max_memos = Config->GetModule("memoserv").Get<int>("maxmemos");
if (source.IsServicesOper())
- source.Reply(_("Syntax: \002LIMIT [\037user\037 | \037channel\037] {\037limit\037 | NONE} [HARD]\002\n"
- " \n"
- "Sets the maximum number of memos a user or channel is\n"
- "allowed to have. Setting the limit to 0 prevents the user\n"
- "from receiving any memos; setting it to \002NONE\002 allows the\n"
- "user to receive and keep as many memos as they want. If\n"
- "you do not give a nickname or channel, your own limit is\n"
- "set.\n"
- " \n"
- "Adding \002HARD\002 prevents the user from changing the limit. Not\n"
- "adding \002HARD\002 has the opposite effect, allowing the user to\n"
- "change the limit (even if a previous limit was set with\n"
- "\002HARD\002).\n"
- " \n"
- "This use of the \002SET LIMIT\002 command is limited to \002Services\002\n"
- "\002Operators\002. Other users may only enter a limit for themselves\n"
- "or a channel on which they have such privileges, may not\n"
- "remove their limit, may not set a limit above %d, and may\n"
- "not set a hard limit."), max_memos);
+ {
+ source.Reply(_(
+ "Syntax: \002LIMIT [\037user\037 | \037channel\037] {\037limit\037 | NONE} [HARD]\002"
+ "\n\n"
+ "Sets the maximum number of memos a user or channel is "
+ "allowed to have. Setting the limit to 0 prevents the user "
+ "from receiving any memos; setting it to \002NONE\002 allows the "
+ "user to receive and keep as many memos as they want. If "
+ "you do not give a nickname or channel, your own limit is "
+ "set."
+ "\n\n"
+ "Adding \002HARD\002 prevents the user from changing the limit. Not "
+ "adding \002HARD\002 has the opposite effect, allowing the user to "
+ "change the limit (even if a previous limit was set with "
+ "\002HARD\002)."
+ "\n\n"
+ "This use of the \002SET\032LIMIT\002 command is limited to \002Services "
+ "Operators\002. Other users may only enter a limit for themselves "
+ "or a channel on which they have such privileges, may not "
+ "remove their limit, may not set a limit above %d, and may "
+ "not set a hard limit."
+ ),
+ max_memos);
+ }
else
- source.Reply(_("Syntax: \002LIMIT [\037channel\037] \037limit\037\002\n"
- " \n"
- "Sets the maximum number of memos you (or the given channel)\n"
- "are allowed to have. If you set this to 0, no one will be\n"
- "able to send any memos to you. However, you cannot set\n"
- "this any higher than %d."), max_memos);
+ source.Reply(_(
+ "Syntax: \002LIMIT [\037channel\037] \037limit\037\002"
+ "\n\n"
+ "Sets the maximum number of memos you (or the given channel) "
+ "are allowed to have. If you set this to 0, no one will be "
+ "able to send any memos to you. However, you cannot set "
+ "this any higher than %d."
+ ),
+ max_memos);
}
else
return false;
diff --git a/modules/nickserv/nickserv.cpp b/modules/nickserv/nickserv.cpp
index 3358dcbef..36d32d236 100644
--- a/modules/nickserv/nickserv.cpp
+++ b/modules/nickserv/nickserv.cpp
@@ -390,10 +390,12 @@ public:
if (block.Get<bool>("forceemail", "yes") && u->Account()->email.empty())
{
- u->SendMessage(NickServ, _("You must now supply an email for your nick.\n"
- "This email will allow you to retrieve your password in\n"
- "case you forget it."));
- u->SendMessage(NickServ, _("Type \002%s \037email\037\002 in order to set your email."),
+ u->SendMessage(NickServ, _(
+ "You must now supply an email for your nick. "
+ "This email will allow you to retrieve your password in "
+ "case you forget it. "
+ "Type \002%s\032\037email\037\002 in order to set your email."
+ ),
NickServ->GetQueryCommand("nickserv/set/email").c_str());
}
@@ -497,20 +499,34 @@ public:
{
if (!params.empty() || source.c || source.service != *NickServ)
return EVENT_CONTINUE;
+
if (!Config->GetModule("nickserv").Get<bool>("nonicknameownership"))
- source.Reply(_("\002%s\002 allows you to register a nickname and\n"
- "prevent others from using it. The following\n"
- "commands allow for registration and maintenance of\n"
- "nicknames; to use them, type \002%s \037command\037\002.\n"
- "For more information on a specific command, type\n"
- "\002%s \037command\037\002.\n"), NickServ->nick.c_str(), NickServ->GetQueryCommand().c_str(), NickServ->GetQueryCommand({}, source.command).c_str());
+ {
+ source.Reply(_(
+ "\002%s\002 allows you to register a nickname and "
+ "prevent others from using it. The following "
+ "commands allow for registration and maintenance of "
+ "nicknames; to use them, type \002%s\032\037command\037\002. "
+ "For more information on a specific command, type "
+ "\002%s\032\037command\037\002."
+ ),
+ NickServ->nick.c_str(),
+ NickServ->GetQueryCommand().c_str(),
+ NickServ->GetQueryCommand({}, source.command).c_str());
+ }
else
- source.Reply(_("\002%s\002 allows you to register an account.\n"
- "The following commands allow for registration and maintenance of\n"
- "accounts; to use them, type \002%s \037command\037\002.\n"
- "For more information on a specific command, type\n"
- "\002%s \037command\037\002.\n"),
- NickServ->nick.c_str(), NickServ->GetQueryCommand().c_str(), NickServ->GetQueryCommand({}, source.command.c_str()).c_str());
+ {
+ source.Reply(_(
+ "\002%s\002 allows you to register an account. "
+ "The following commands allow for registration and maintenance of "
+ "accounts; to use them, type \002%s\032\037command\037\002. "
+ "For more information on a specific command, type "
+ "\002%s\032\037command\037\002."
+ ),
+ NickServ->nick.c_str(),
+ NickServ->GetQueryCommand().c_str(),
+ NickServ->GetQueryCommand({}, source.command.c_str()).c_str());
+ }
return EVENT_CONTINUE;
}
@@ -518,17 +534,28 @@ public:
{
if (!params.empty() || source.c || source.service != *NickServ)
return;
+
if (source.IsServicesOper())
- source.Reply(_(" \n"
- "Services Operators can also drop any nickname without needing\n"
- "to identify for the nick, and may view the access list for\n"
- "any nickname."));
+ {
+ source.Reply(" ");
+ source.Reply(_(
+ "Services Operators can also drop any nickname without needing "
+ "to identify for the nick, and may view the access list for "
+ "any nickname."
+ ));
+ }
+
time_t nickserv_expire = Config->GetModule(this).Get<time_t>("expire", "1y");
if (nickserv_expire >= 86400)
- source.Reply(_(" \n"
- "Accounts that are not used anymore are subject to\n"
- "the automatic expiration, i.e. they will be deleted\n"
- "after %lu days if not used."), (unsigned long)nickserv_expire / 86400);
+ {
+ source.Reply(" ");
+ source.Reply(_(
+ "Accounts that are not used anymore are subject to "
+ "the automatic expiration, i.e. they will be deleted "
+ "after %lu days if not used."
+ ),
+ (unsigned long)nickserv_expire / 86400);
+ }
}
void OnNickCoreCreate(NickCore *nc) override
diff --git a/modules/nickserv/ns_ajoin.cpp b/modules/nickserv/ns_ajoin.cpp
index c2e432f2e..7404db93e 100644
--- a/modules/nickserv/ns_ajoin.cpp
+++ b/modules/nickserv/ns_ajoin.cpp
@@ -304,10 +304,12 @@ public:
{
this->SendSyntax(source);
source.Reply(" ");
- source.Reply(_("This command manages your auto join list. When you identify\n"
- "you will automatically join the channels on your auto join list.\n"
- "Services Operators may provide a nick to modify other users'\n"
- "auto join lists."));
+ source.Reply(_(
+ "This command manages your auto join list. When you identify "
+ "you will automatically join the channels on your auto join list. "
+ "Services Operators may provide a nick to modify other users' "
+ "auto join lists."
+ ));
return true;
}
};
diff --git a/modules/nickserv/ns_alist.cpp b/modules/nickserv/ns_alist.cpp
index 4b246f54f..aeb817155 100644
--- a/modules/nickserv/ns_alist.cpp
+++ b/modules/nickserv/ns_alist.cpp
@@ -119,11 +119,13 @@ public:
{
this->SendSyntax(source);
source.Reply(" ");
- source.Reply(_("Lists all channels you have access on.\n"
- " \n"
- "Channels that have the \037NOEXPIRE\037 option set will be\n"
- "prefixed by an exclamation mark. The nickname parameter is\n"
- "limited to Services Operators"));
+ source.Reply(_(
+ "Lists all channels you have access on."
+ "\n\n"
+ "Channels that have the \037NOEXPIRE\037 option set will be "
+ "prefixed by an exclamation mark. The nickname parameter is "
+ "limited to Services Operators."
+ ));
return true;
}
diff --git a/modules/nickserv/ns_cert.cpp b/modules/nickserv/ns_cert.cpp
index f89199565..869f236fa 100644
--- a/modules/nickserv/ns_cert.cpp
+++ b/modules/nickserv/ns_cert.cpp
@@ -354,24 +354,26 @@ public:
{
this->SendSyntax(source);
source.Reply(" ");
- source.Reply(_("Modifies or displays the certificate list for your nick.\n"
- "If you connect to IRC and provide a client certificate with a\n"
- "matching fingerprint in the cert list, you will be\n"
- "automatically identified to services. Services Operators\n"
- "may provide a nick to modify other users' certificate lists.\n"
- " \n"));
- source.Reply(_("Examples:\n"
- " \n"
- " \002CERT ADD\002\n"
- " Adds your current fingerprint to the certificate list and\n"
- " automatically identifies you when you connect to IRC\n"
- " using this fingerprint.\n"
- " \n"
- " \002CERT DEL <fingerprint>\002\n"
- " Removes the fingerprint <fingerprint> from your certificate list.\n"
- " \n"
- " \002CERT LIST\002\n"
- " Displays the current certificate list."));
+ source.Reply(_(
+ "Modifies or displays the certificate list for your nick. "
+ "If you connect to IRC and provide a client certificate with a "
+ "matching fingerprint in the cert list, you will be "
+ "automatically identified to services. Services Operators "
+ "may provide a nick to modify other users' certificate lists."
+ "\n\n"
+ "Examples:"
+ "\n\n"
+ " \002CERT\032ADD\002\n"
+ " Adds your current fingerprint to the certificate list and\n"
+ " automatically identifies you when you connect to IRC\n"
+ " using this fingerprint."
+ "\n\n"
+ " \002CERT\032DEL\032<fingerprint>\002\n"
+ " Removes the fingerprint <fingerprint> from your certificate list."
+ "\n\n"
+ " \002CERT\032LIST\002\n"
+ " Displays the current certificate list."
+ ));
return true;
}
};
diff --git a/modules/nickserv/ns_drop.cpp b/modules/nickserv/ns_drop.cpp
index a51f5ce58..69f998395 100644
--- a/modules/nickserv/ns_drop.cpp
+++ b/modules/nickserv/ns_drop.cpp
@@ -89,10 +89,12 @@ public:
{
this->SendSyntax(source);
source.Reply(" ");
- source.Reply(_("Drops the given nick from the database. Once your nickname\n"
- "is dropped you may lose all of your access and channels that\n"
- "you may own. Any other user will be able to gain control of\n"
- "this nick."));
+ source.Reply(_(
+ "Drops the given nick from the database. Once your nickname "
+ "is dropped you may lose all of your access and channels that "
+ "you may own. Any other user will be able to gain control of "
+ "this nick."
+ ));
source.Reply(" ");
if (!source.HasPriv("nickserv/drop"))
@@ -102,8 +104,12 @@ public:
source.Reply(" ");
if (source.HasPriv("nickserv/drop/override"))
- source.Reply(_("Additionally, Services Operators with the \037nickserv/drop/override\037 permission can\n"
- "replace \037code\037 with \002OVERRIDE\002 to drop without a confirmation code."));
+ {
+ source.Reply(_(
+ "Additionally, Services Operators with the \037nickserv/drop/override\037 permission can "
+ "replace \037code\037 with \002OVERRIDE\002 to drop without a confirmation code."
+ ));
+ }
return true;
}
};
diff --git a/modules/nickserv/ns_group.cpp b/modules/nickserv/ns_group.cpp
index 18521bf0c..e1cd7e46f 100644
--- a/modules/nickserv/ns_group.cpp
+++ b/modules/nickserv/ns_group.cpp
@@ -207,32 +207,34 @@ public:
{
this->SendSyntax(source);
source.Reply(" ");
- source.Reply(_("This command makes your nickname join the \037target\037 nickname's\n"
- "group. \037password\037 is the password of the target nickname.\n"
- " \n"
- "Joining a group will allow you to share your configuration,\n"
- "memos, and channel privileges with all the nicknames in the\n"
- "group, and much more!\n"
- " \n"
- "A group exists as long as it is useful. This means that even\n"
- "if a nick of the group is dropped, you won't lose the\n"
- "shared things described above, as long as there is at\n"
- "least one nick remaining in the group.\n"
- " \n"
- "You may be able to use this command even if you have not registered\n"
- "your nick yet. If your nick is already registered, you'll\n"
- "need to identify yourself before using this command.\n"
- " \n"
- "It is recommended to use this command with a non-registered\n"
- "nick because it will be registered automatically when\n"
- "using this command. You may use it with a registered nick (to\n"
- "change your group) only if your network administrators allowed\n"
- "it.\n"
- " \n"
- "You can only be in one group at a time. Group merging is\n"
- "not possible.\n"
- " \n"
- "\037Note\037: all the nicknames of a group have the same password."));
+ source.Reply(_(
+ "This command makes your nickname join the \037target\037 nickname's "
+ "group. \037password\037 is the password of the target nickname. "
+ "\n\n"
+ "Joining a group will allow you to share your configuration, "
+ "memos, and channel privileges with all the nicknames in the "
+ "group, and much more!"
+ "\n\n"
+ "A group exists as long as it is useful. This means that even "
+ "if a nick of the group is dropped, you won't lose the "
+ "shared things described above, as long as there is at "
+ "least one nick remaining in the group."
+ "\n\n"
+ "You may be able to use this command even if you have not registered "
+ "your nick yet. If your nick is already registered, you'll "
+ "need to identify yourself before using this command. "
+ "\n\n"
+ "It is recommended to use this command with a non-registered "
+ "nick because it will be registered automatically when "
+ "using this command. You may use it with a registered nick (to "
+ "change your group) only if your network administrators allowed "
+ "it."
+ "\n\n"
+ "You can only be in one group at a time. Group merging is "
+ "not possible. "
+ "\n\n"
+ "\037Note\037: all the nicknames of a group have the same password."
+ ));
return true;
}
};
@@ -292,11 +294,13 @@ public:
{
this->SendSyntax(source);
source.Reply(" ");
- source.Reply(_("This command ungroups your nick, or if given, the specified nick,\n"
- "from the group it is in. The ungrouped nick keeps its registration\n"
- "time, password, email, greet, language, and url. Everything else\n"
- "is reset. You may not ungroup yourself if there is only one nick in\n"
- "your group."));
+ source.Reply(_(
+ "This command ungroups your nick, or if given, the specified nick, "
+ "from the group it is in. The ungrouped nick keeps its registration "
+ "time, password, email, greet, language, and url. Everything else "
+ "is reset. You may not ungroup yourself if there is only one nick in "
+ "your group."
+ ));
return true;
}
};
@@ -369,19 +373,29 @@ public:
bool OnHelp(CommandSource &source, const Anope::string &subcommand) override
{
if (source.IsServicesOper())
- source.Reply(_("Syntax: \002%s [\037nickname\037]\002\n"
- " \n"
- "Without a parameter, lists all nicknames that are in\n"
- "your group.\n"
- " \n"
- "With a parameter, lists all nicknames that are in the\n"
- "group of the given nick.\n"
- "Specifying a nick is limited to \002Services Operators\002."),
- source.command.c_str());
+ {
+ source.Reply(_(
+ "Syntax: \002%s [\037nickname\037]\002"
+ "\n\n"
+ "Without a parameter, lists all nicknames that are in "
+ "your group."
+ "\n\n"
+ "With a parameter, lists all nicknames that are in the "
+ "group of the given nick."
+ "\n\n"
+ "Specifying a nick is limited to \002Services Operators\002."
+ ),
+ source.command.c_str());
+ }
else
- source.Reply(_("Syntax: \002%s\002\n"
- " \n"
- "Lists all nicks in your group."), source.command.c_str());
+ {
+ source.Reply(_(
+ "Syntax: \002%s\002"
+ "\n\n"
+ "Lists all nicks in your group."
+ ),
+ source.command.c_str());
+ }
return true;
}
diff --git a/modules/nickserv/ns_identify.cpp b/modules/nickserv/ns_identify.cpp
index 44e6bb840..94ca476ae 100644
--- a/modules/nickserv/ns_identify.cpp
+++ b/modules/nickserv/ns_identify.cpp
@@ -111,11 +111,14 @@ public:
{
this->SendSyntax(source);
source.Reply(" ");
- source.Reply(_("Tells %s that you are really the owner of this\n"
- "nick. Many commands require you to authenticate yourself\n"
- "with this command before you use them. The password\n"
- "should be the same one you sent with the \002REGISTER\002\n"
- "command."), source.service->nick.c_str());
+ source.Reply(_(
+ "Tells %s that you are really the owner of this "
+ "nick. Many commands require you to authenticate yourself "
+ "with this command before you use them. The password "
+ "should be the same one you sent with the \002REGISTER\002 "
+ "command."
+ ),
+ source.service->nick.c_str());
return true;
}
};
diff --git a/modules/nickserv/ns_info.cpp b/modules/nickserv/ns_info.cpp
index d67fe0a18..4637bb06e 100644
--- a/modules/nickserv/ns_info.cpp
+++ b/modules/nickserv/ns_info.cpp
@@ -148,12 +148,13 @@ public:
{
this->SendSyntax(source);
source.Reply(" ");
- source.Reply(_("Displays information about the given nickname, such as\n"
- "the nick's owner, last seen address and time, and nick\n"
- "options. If no nick is given, and you are identified,\n"
- "your account name is used, else your current nickname is\n"
- "used."));
-
+ source.Reply(_(
+ "Displays information about the given nickname, such as "
+ "the nick's owner, last seen address and time, and nick "
+ "options. If no nick is given, and you are identified, "
+ "your account name is used, else your current nickname is "
+ "used."
+ ));
return true;
}
};
@@ -247,13 +248,16 @@ public:
{
this->SendSyntax(source);
source.Reply(" ");
- source.Reply(_("Allows you to prevent certain pieces of information from\n"
- "being displayed when someone does a %s \002INFO\002 on your\n"
- "nick. You can hide your email address (\002EMAIL\002), last seen\n"
- "user@host mask (\002USERMASK\002), your services access status\n"
- "(\002STATUS\002) and last quit message (\002QUIT\002).\n"
- "The second parameter specifies whether the information should\n"
- "be displayed (\002OFF\002) or hidden (\002ON\002)."), source.service->nick.c_str());
+ source.Reply(_(
+ "Allows you to prevent certain pieces of information from "
+ "being displayed when someone does a %s\032\002INFO\002 on your "
+ "nick. You can hide your email address\032(\002EMAIL\002), last seen "
+ "user@host mask (\002USERMASK\002), your services access status "
+ "(\002STATUS\002) and last quit message (\002QUIT\002). "
+ "The second parameter specifies whether the information should "
+ "be displayed (\002OFF\002) or hidden (\002ON\002)."
+ ),
+ source.service->nick.c_str());
return true;
}
};
@@ -277,13 +281,16 @@ public:
{
this->SendSyntax(source);
source.Reply(" ");
- source.Reply(_("Allows you to prevent certain pieces of information from\n"
- "being displayed when someone does a %s \002INFO\002 on the\n"
- "nick. You can hide the email address (\002EMAIL\002), last seen\n"
- "user@host mask (\002USERMASK\002), the services access status\n"
- "(\002STATUS\002) and last quit message (\002QUIT\002).\n"
- "The second parameter specifies whether the information should\n"
- "be displayed (\002OFF\002) or hidden (\002ON\002)."), source.service->nick.c_str());
+ source.Reply(_(
+ "Allows you to prevent certain pieces of information from "
+ "being displayed when someone does a %s\032\002INFO\002 on the "
+ "nick. You can hide the email address (\002EMAIL\002), last seen "
+ "user@host mask (\002USERMASK\002), the services access status "
+ "(\002STATUS\002) and last quit message (\002QUIT\002). "
+ "The second parameter specifies whether the information should "
+ "be displayed (\002OFF\002) or hidden (\002ON\002)."
+ ),
+ source.service->nick.c_str());
return true;
}
};
diff --git a/modules/nickserv/ns_list.cpp b/modules/nickserv/ns_list.cpp
index 5a5beacbd..61f05171f 100644
--- a/modules/nickserv/ns_list.cpp
+++ b/modules/nickserv/ns_list.cpp
@@ -135,41 +135,46 @@ public:
{
this->SendSyntax(source);
source.Reply(" ");
- source.Reply(_("Lists all registered nicknames which match the given\n"
- "pattern, in \037nick!user@host\037 format. Nicks with the \002PRIVATE\002\n"
- "option set will only be displayed to Services Operators with the\n"
- "proper access. Nicks with the \002NOEXPIRE\002 option set will have\n"
- "a \002!\002 prefixed to the nickname for Services Operators to see.\n"
- " \n"
- "Note that a preceding '#' specifies a range.\n"
- " \n"
- "If the SUSPENDED, UNCONFIRMED or NOEXPIRE options are given, only\n"
- "nicks which, respectively, are SUSPENDED, UNCONFIRMED or have the\n"
- "NOEXPIRE flag set will be displayed. If multiple options are\n"
- "given, all nicks matching at least one option will be displayed.\n"
- "Note that these options are limited to \037Services Operators\037.\n"
- " \n"
- "Examples:\n"
- " \n"
- " \002LIST *!joeuser@foo.com\002\n"
- " Lists all registered nicks owned by joeuser@foo.com.\n"
- " \n"
- " \002LIST *Bot*!*@*\002\n"
- " Lists all registered nicks with \002Bot\002 in their\n"
- " names (case insensitive).\n"
- " \n"
- " \002LIST * NOEXPIRE\002\n"
- " Lists all registered nicks which have been set to not expire.\n"
- " \n"
- " \002LIST #51-100\002\n"
- " Lists all registered nicks within the given range (51-100)."));
+ source.Reply(_(
+ "Lists all registered nicknames which match the given "
+ "pattern, in \037nick!user@host\037 format. Nicks with the \002PRIVATE\002 "
+ "option set will only be displayed to Services Operators with the "
+ "proper access. Nicks with the \002NOEXPIRE\002 option set will have "
+ "a \002!\002 prefixed to the nickname for Services Operators to see."
+ "\n\n"
+ "Note that a preceding '#' specifies a range."
+ "\n\n"
+ "If the SUSPENDED, UNCONFIRMED or NOEXPIRE options are given, only "
+ "nicks which, respectively, are SUSPENDED, UNCONFIRMED or have the "
+ "NOEXPIRE flag set will be displayed. If multiple options are "
+ "given, all nicks matching at least one option will be displayed. "
+ "Note that these options are limited to \037Services Operators\037."
+ "\n\n"
+ "Examples:"
+ "\n\n"
+ " \002LIST *!joeuser@foo.com\002\n"
+ " Lists all registered nicks owned by joeuser@foo.com."
+ "\n\n"
+ " \002LIST *Bot*!*@*\002\n"
+ " Lists all registered nicks with \002Bot\002 in their\n"
+ " names (case insensitive)."
+ "\n\n"
+ " \002LIST * NOEXPIRE\002\n"
+ " Lists all registered nicks which have been set to not expire."
+ "\n\n"
+ " \002LIST #51-100\002\n"
+ " Lists all registered nicks within the given range (51-100)."
+ ));
const Anope::string &regexengine = Config->GetBlock("options").Get<const Anope::string>("regexengine");
if (!regexengine.empty())
{
source.Reply(" ");
- source.Reply(_("Regex matches are also supported using the %s engine.\n"
- "Enclose your pattern in // if this is desired."), regexengine.c_str());
+ source.Reply(_(
+ "Regex matches are also supported using the %s engine. "
+ "Enclose your pattern in // if this is desired."
+ ),
+ regexengine.c_str());
}
return true;
@@ -233,12 +238,15 @@ public:
{
this->SendSyntax(source);
source.Reply(" ");
- source.Reply(_("Turns %s's privacy option on or off for your nick.\n"
- "With \002PRIVATE\002 set, your nickname will not appear in\n"
- "nickname lists generated with %s's \002LIST\002 command.\n"
- "(However, anyone who knows your nickname can still get\n"
- "information on it using the \002INFO\002 command.)"),
- source.service->nick.c_str(), source.service->nick.c_str());
+ source.Reply(_(
+ "Turns %s's privacy option on or off for your nick. "
+ "With \002PRIVATE\002 set, your nickname will not appear in "
+ "nickname lists generated with %s's \002LIST\002 command. "
+ "(However, anyone who knows your nickname can still get "
+ "information on it using the \002INFO\002 command.)"
+ ),
+ source.service->nick.c_str(),
+ source.service->nick.c_str());
return true;
}
};
@@ -262,12 +270,15 @@ public:
{
this->SendSyntax(source);
source.Reply(" ");
- source.Reply(_("Turns %s's privacy option on or off for the nick.\n"
- "With \002PRIVATE\002 set, the nickname will not appear in\n"
- "nickname lists generated with %s's \002LIST\002 command.\n"
- "(However, anyone who knows the nickname can still get\n"
- "information on it using the \002INFO\002 command.)"),
- source.service->nick.c_str(), source.service->nick.c_str());
+ source.Reply(_(
+ "Turns %s's privacy option on or off for the nick. "
+ "With \002PRIVATE\002 set, the nickname will not appear in "
+ "nickname lists generated with %s's \002LIST\002 command. "
+ "(However, anyone who knows the nickname can still get "
+ "information on it using the \002INFO\002 command.)"
+ ),
+ source.service->nick.c_str(),
+ source.service->nick.c_str());
return true;
}
};
diff --git a/modules/nickserv/ns_logout.cpp b/modules/nickserv/ns_logout.cpp
index 90f9f295a..c0095e95d 100644
--- a/modules/nickserv/ns_logout.cpp
+++ b/modules/nickserv/ns_logout.cpp
@@ -64,14 +64,16 @@ public:
{
this->SendSyntax(source);
source.Reply(" ");
- source.Reply(_("Without a parameter, reverses the effect of the \002IDENTIFY\002\n"
- "command, i.e. make you not recognized as the real owner of the nick\n"
- "anymore. Note, however, that you won't be asked to reidentify\n"
- "yourself.\n"
- " \n"
- "With a parameter, does the same for the given nick. If you\n"
- "specify \002REVALIDATE\002 as well, services will ask the given nick\n"
- "to re-identify. This is limited to \002Services Operators\002."));
+ source.Reply(_(
+ "Without a parameter, reverses the effect of the \002IDENTIFY\002 "
+ "command, i.e. make you not recognized as the real owner of the nick "
+ "anymore. Note, however, that you won't be asked to reidentify "
+ "yourself."
+ "\n\n"
+ "With a parameter, does the same for the given nick. If you "
+ "specify \002REVALIDATE\002 as well, services will ask the given nick "
+ "to re-identify. This is limited to \002Services Operators\002."
+ ));
return true;
}
diff --git a/modules/nickserv/ns_recover.cpp b/modules/nickserv/ns_recover.cpp
index ef0d009ec..1c14a2cad 100644
--- a/modules/nickserv/ns_recover.cpp
+++ b/modules/nickserv/ns_recover.cpp
@@ -81,9 +81,12 @@ public:
}
}
- u->SendMessage(source.service, _("This nickname has been recovered by %s. If you did not do\n"
- "this then %s may have your password, and you should change it."),
- source.GetNick().c_str(), source.GetNick().c_str());
+ u->SendMessage(source.service, _(
+ "This nickname has been recovered by %s. If you did not do "
+ "this then %s may have your password, and you should change it."
+ ),
+ source.GetNick().c_str(),
+ source.GetNick().c_str());
Anope::string buf = source.command.upper() + " command used by " + source.GetNick();
u->Kill(*source.service, buf);
@@ -125,8 +128,7 @@ public:
}
else
{
- source.Reply(_("The user with your nick has been removed. Use this command again\n"
- "to release services's hold on your nick."));
+ source.Reply(_("The user with your nick has been removed. Use this command again to release services's hold on your nick."));
}
}
}
@@ -217,12 +219,14 @@ public:
{
this->SendSyntax(source);
source.Reply(" ");
- source.Reply(_("Recovers your nick from another user or from services.\n"
- "If services are currently holding your nick, the hold\n"
- "will be released. If another user is holding your nick\n"
- "and is identified they will be killed (similar to the old\n"
- "GHOST command). If they are not identified they will be\n"
- "forced off of the nick."));
+ source.Reply(_(
+ "Recovers your nick from another user or from services. "
+ "If services are currently holding your nick, the hold "
+ "will be released. If another user is holding your nick "
+ "and is identified they will be killed (similar to the old "
+ "GHOST command). If they are not identified they will be "
+ "forced off of the nick."
+ ));
return true;
}
};
diff --git a/modules/nickserv/ns_register.cpp b/modules/nickserv/ns_register.cpp
index 2bcb8eac1..bfa528bd5 100644
--- a/modules/nickserv/ns_register.cpp
+++ b/modules/nickserv/ns_register.cpp
@@ -97,17 +97,24 @@ public:
{
this->SendSyntax(source);
source.Reply(" ");
- source.Reply(_("This command is used by several commands as a way to confirm\n"
- "changes made to your account.\n"
- " \n"
- "This is most commonly used to confirm your email address once\n"
- "you register or change it.\n"
- " \n"
- "This is also used after the RESETPASS command has been used to\n"
- "force identify you to your nick so you may change your password."));
+ source.Reply(_(
+ "This command is used by several commands as a way to confirm "
+ "changes made to your account."
+ "\n\n"
+ "This is most commonly used to confirm your email address once "
+ "you register or change it."
+ "\n\n"
+ "This is also used after the RESETPASS command has been used to "
+ "force identify you to your nick so you may change your password."
+ ));
+
if (source.HasPriv("nickserv/confirm"))
- source.Reply(_("Additionally, Services Operators with the \037nickserv/confirm\037 permission can\n"
- "replace \037passcode\037 with a users nick to force validate them."));
+ {
+ source.Reply(_(
+ "Additionally, Services Operators with the \037nickserv/confirm\037 permission can "
+ "replace \037passcode\037 with a users nick to force validate them."
+ ));
+ }
return true;
}
@@ -274,39 +281,46 @@ public:
unsigned int minpasslen = Config->GetModule("nickserv").Get<unsigned>("minpasslen", "10");
this->SendSyntax(source);
source.Reply(" ");
- source.Reply(_("Registers your nickname in the %s database. Once\n"
- "your nick is registered, you can use the \002SET\002 and \002ACCESS\002\n"
- "commands to configure your nick's settings as you like\n"
- "them. Make sure you remember the password you use when\n"
- "registering - you'll need it to make changes to your nick\n"
- "later. (Note that \002case matters!\002 \037ANOPE\037, \037Anope\037, and\n"
- "\037anope\037 are all different passwords!)\n"
- " \n"
- "Guidelines on choosing passwords:\n"
- " \n"
- "Passwords should not be easily guessable. For example,\n"
- "using your real name as a password is a bad idea. Using\n"
- "your nickname as a password is a much worse idea ;) and,\n"
- "in fact, %s will not allow it. Also, short\n"
- "passwords are vulnerable to trial-and-error searches, so\n"
- "you should choose a password at least %u characters long.\n"
- "Finally, the space character cannot be used in passwords."),
- source.service->nick.c_str(), source.service->nick.c_str(),
- minpasslen);
+ source.Reply(_(
+ "Registers your nickname in the %s database. Once "
+ "your nick is registered, you can use the \002SET\002 and \002ACCESS\002 "
+ "commands to configure your nick's settings as you like "
+ "them. Make sure you remember the password you use when "
+ "registering - you'll need it to make changes to your nick "
+ "later. (Note that \002case matters!\002 \037ANOPE\037, \037Anope\037, and "
+ "\037anope\037 are all different passwords!) "
+ "\n\n"
+ "Guidelines on choosing passwords:"
+ "\n\n"
+ "Passwords should not be easily guessable. For example, "
+ "using your real name as a password is a bad idea. Using "
+ "your nickname as a password is a much worse idea ;) and, "
+ "in fact, %s will not allow it. Also, short "
+ "passwords are vulnerable to trial-and-error searches, so "
+ "you should choose a password at least %u characters long. "
+ "Finally, the space character cannot be used in passwords."
+ ),
+ source.service->nick.c_str(),
+ source.service->nick.c_str(),
+ minpasslen);
if (!Config->GetModule("nickserv").Get<bool>("forceemail", "yes"))
{
source.Reply(" ");
- source.Reply(_("The \037email\037 parameter is optional and will set the email\n"
- "for your nick immediately. You may also wish to \002SET HIDE\002 it\n"
- "after registering if it isn't the default setting already."));
+ source.Reply(_(
+ "The \037email\037 parameter is optional and will set the email "
+ "for your nick immediately. You may also wish to \002SET\032HIDE\002 it "
+ "after registering if it isn't the default setting already."
+ ));
}
source.Reply(" ");
- source.Reply(_("This command also creates a new group for your nickname,\n"
- "that will allow you to register other nicks later sharing\n"
- "the same configuration, the same set of memos and the\n"
- "same channel privileges."));
+ source.Reply(_(
+ "This command also creates a new group for your nickname, "
+ "that will allow you to register other nicks later sharing "
+ "the same configuration, the same set of memos and the "
+ "same channel privileges."
+ ));
return true;
}
};
diff --git a/modules/nickserv/ns_resetpass.cpp b/modules/nickserv/ns_resetpass.cpp
index 7425ade66..94e1c89b2 100644
--- a/modules/nickserv/ns_resetpass.cpp
+++ b/modules/nickserv/ns_resetpass.cpp
@@ -50,9 +50,11 @@ public:
{
this->SendSyntax(source);
source.Reply(" ");
- source.Reply(_("Sends a passcode to the nickname with instructions on how to\n"
- "reset their password. Email must be the email address associated\n"
- "to the nickname."));
+ source.Reply(_(
+ "Sends a passcode to the nickname with instructions on how to "
+ "reset their password. Email must be the email address associated "
+ "to the nickname."
+ ));
return true;
}
};
diff --git a/modules/nickserv/ns_set.cpp b/modules/nickserv/ns_set.cpp
index b8f6c257b..d1fefecab 100644
--- a/modules/nickserv/ns_set.cpp
+++ b/modules/nickserv/ns_set.cpp
@@ -57,8 +57,7 @@ public:
}
}
- source.Reply(_("Type \002%s \037option\037\002 for more information\n"
- "on a specific option."),
+ source.Reply(_("Type \002%s\032\037option\037\002 for more information on a specific option."),
source.service->GetQueryCommand("generic/help", this_name).c_str());
return true;
@@ -101,9 +100,11 @@ public:
}
}
- source.Reply(_("Type \002%s \037option\037\002 for more information\n"
- "on a specific option. The options will be set on the given\n"
- "\037nickname\037."),
+ source.Reply(_(
+ "Type \002%s\032\037option\037\002 for more information "
+ "on a specific option. The options will be set on the given "
+ "\037nickname\037."
+ ),
source.service->GetQueryCommand("generic/help", this_name).c_str());
return true;
}
@@ -164,8 +165,7 @@ public:
{
this->SendSyntax(source);
source.Reply(" ");
- source.Reply(_("Changes the password used to identify you as the nick's\n"
- "owner."));
+ source.Reply(_("Changes the password used to identify you as the nick's owner."));
return true;
}
};
@@ -300,10 +300,13 @@ public:
BotInfo *bi = Config->GetClient("ChanServ");
this->SendSyntax(source);
source.Reply(" ");
- source.Reply(_("Sets whether you will be given your channel status modes automatically.\n"
- "Set to \002ON\002 to allow %s to set status modes on you automatically\n"
- "when entering channels. Note that depending on channel settings some modes\n"
- "may not get set automatically."), bi ? bi->nick.c_str() : "ChanServ");
+ source.Reply(_(
+ "Sets whether you will be given your channel status modes automatically. "
+ "Set to \002ON\002 to allow %s to set status modes on you automatically "
+ "when entering channels. Note that depending on channel settings some modes "
+ "may not get set automatically."
+ ),
+ bi ? bi->nick.c_str() : "ChanServ");
return true;
}
};
@@ -328,11 +331,14 @@ public:
BotInfo *bi = Config->GetClient("ChanServ");
this->SendSyntax(source);
source.Reply(" ");
- source.Reply(_("Sets whether the given nickname will be given its status modes\n"
- "in channels automatically. Set to \002ON\002 to allow %s\n"
- "to set status modes on the given nickname automatically when it\n"
- "is entering channels. Note that depending on channel settings\n"
- "some modes may not get set automatically."), bi ? bi->nick.c_str() : "ChanServ");
+ source.Reply(_(
+ "Sets whether the given nickname will be given its status modes "
+ "in channels automatically. Set to \002ON\002 to allow %s "
+ "to set status modes on the given nickname automatically when it "
+ "is entering channels. Note that depending on channel settings "
+ "some modes may not get set automatically."
+ ),
+ bi ? bi->nick.c_str() : "ChanServ");
return true;
}
};
@@ -486,8 +492,10 @@ public:
{
this->SendSyntax(source);
source.Reply(" ");
- source.Reply(_("Changes the display used to refer to your nickname group in\n"
- "services. The new display MUST be a nick of your group."));
+ source.Reply(_(
+ "Changes the display used to refer to your nickname group in "
+ "services. The new display MUST be a nick of your group."
+ ));
return true;
}
};
@@ -511,8 +519,10 @@ public:
{
this->SendSyntax(source);
source.Reply(" ");
- source.Reply(_("Changes the display used to refer to the nickname group in\n"
- "services. The new display MUST be a nick of the group."));
+ source.Reply(_(
+ "Changes the display used to refer to the nickname group in "
+ "services. The new display MUST be a nick of the group."
+ ));
return true;
}
};
@@ -631,9 +641,11 @@ public:
{
this->SendSyntax(source);
source.Reply(" ");
- source.Reply(_("Associates the given email address with your nickname.\n"
- "This address will be displayed whenever someone requests\n"
- "information on the nickname with the \002INFO\002 command."));
+ source.Reply(_(
+ "Associates the given email address with your nickname. "
+ "This address will be displayed whenever someone requests "
+ "information on the nickname with the \002INFO\002 command."
+ ));
return true;
}
};
@@ -709,8 +721,10 @@ public:
{
this->SendSyntax(source);
source.Reply(" ");
- source.Reply(_("Sets whether the given nickname will expire. Setting this\n"
- "to \002ON\002 prevents the nickname from expiring."));
+ source.Reply(_(
+ "Sets whether the given nickname will expire. Setting this "
+ "to \002ON\002 prevents the nickname from expiring."
+ ));
return true;
}
};
diff --git a/modules/nickserv/ns_set_keepmodes.cpp b/modules/nickserv/ns_set_keepmodes.cpp
index 03fec7d1f..faa44b9d3 100644
--- a/modules/nickserv/ns_set_keepmodes.cpp
+++ b/modules/nickserv/ns_set_keepmodes.cpp
@@ -68,9 +68,11 @@ public:
{
this->SendSyntax(source);
source.Reply(" ");
- source.Reply(_("Enables or disables keepmodes for your nick. If keep\n"
- "modes is enabled, services will remember your usermodes\n"
- "and attempt to re-set them the next time you authenticate."));
+ source.Reply(_(
+ "Enables or disables keepmodes for your nick. If keep "
+ "modes is enabled, services will remember your usermodes "
+ "and attempt to re-set them the next time you authenticate."
+ ));
return true;
}
};
@@ -95,9 +97,11 @@ public:
{
this->SendSyntax(source);
source.Reply(" ");
- source.Reply(_("Enables or disables keepmodes for the given nick. If keep\n"
- "modes is enabled, services will remember users' usermodes\n"
- "and attempt to re-set them the next time they authenticate."));
+ source.Reply(_(
+ "Enables or disables keepmodes for the given nick. If keep "
+ "modes is enabled, services will remember users' usermodes "
+ "and attempt to re-set them the next time they authenticate."
+ ));
return true;
}
};
diff --git a/modules/nickserv/ns_set_language.cpp b/modules/nickserv/ns_set_language.cpp
index 07f31d8b0..7ac553bef 100644
--- a/modules/nickserv/ns_set_language.cpp
+++ b/modules/nickserv/ns_set_language.cpp
@@ -87,10 +87,12 @@ public:
{
this->SendSyntax(source);
source.Reply(" ");
- source.Reply(_("Changes the language services uses when sending messages to\n"
- "you (for example, when responding to a command you send).\n"
- "\037language\037 should be chosen from the following list of\n"
- "supported languages:"));
+ source.Reply(_(
+ "Changes the language services uses when sending messages to "
+ "you (for example, when responding to a command you send). "
+ "\037language\037 should be chosen from the following list of "
+ "supported languages:"
+ ));
for (const auto &[langcode, langname] : languages)
source.Reply(" %s (%s)", langcode.c_str(), langname.c_str());
@@ -119,10 +121,12 @@ public:
{
this->SendSyntax(source);
source.Reply(" ");
- source.Reply(_("Changes the language services uses when sending messages to\n"
- "the given user (for example, when responding to a command they send).\n"
- "\037language\037 should be chosen from the following list of\n"
- "supported languages:"));
+ source.Reply(_(
+ "Changes the language services uses when sending messages to "
+ "the given user (for example, when responding to a command they send). "
+ "\037language\037 should be chosen from the following list of "
+ "supported languages:"
+ ));
for (const auto &[langcode, langname] : languages)
source.Reply(" %s (%s)", langcode.c_str(), langname.c_str());
diff --git a/modules/nickserv/ns_set_message.cpp b/modules/nickserv/ns_set_message.cpp
index 99f5d6782..6027d1d0a 100644
--- a/modules/nickserv/ns_set_message.cpp
+++ b/modules/nickserv/ns_set_message.cpp
@@ -74,9 +74,12 @@ public:
this->SendSyntax(source);
source.Reply(" ");
- source.Reply(_("Allows you to choose the way services are communicating with\n"
- "you. With \002%s\002 set, services will use messages, else they'll\n"
- "use notices."), cmd.upper().c_str());
+ source.Reply(_(
+ "Allows you to choose the way services are communicating with "
+ "you. With \002%s\002 set, services will use messages, else they'll "
+ "use notices."
+ ),
+ cmd.upper().c_str());
return true;
}
};
@@ -95,9 +98,11 @@ public:
{
this->SendSyntax(source);
source.Reply(" ");
- source.Reply(_("Allows you to choose the way services are communicating with\n"
- "the given user. With \002MSG\002 set, services will use messages,\n"
- "else they'll use notices."));
+ source.Reply(_(
+ "Allows you to choose the way services are communicating with "
+ "the given user. With \002MSG\002 set, services will use messages, "
+ "else they'll use notices."
+ ));
return true;
}
diff --git a/modules/nickserv/ns_set_protect.cpp b/modules/nickserv/ns_set_protect.cpp
index af4f37e0a..5d3bd8c5b 100644
--- a/modules/nickserv/ns_set_protect.cpp
+++ b/modules/nickserv/ns_set_protect.cpp
@@ -99,10 +99,13 @@ public:
{
this->SendSyntax(source);
source.Reply(" ");
- source.Reply(_("Turns automatic protection for your account on or off. With\n"
- "protection on if another user tries to use a nickname from\n"
- "your group they will be given some time to change their nick\n"
- "after which %s will forcibly change their nick."), source.service->nick.c_str());
+ source.Reply(_(
+ "Turns automatic protection for your account on or off. With "
+ "protection on if another user tries to use a nickname from "
+ "your group they will be given some time to change their nick "
+ "after which %s will forcibly change their nick."
+ ),
+ source.service->nick.c_str());
return true;
}
};
@@ -127,10 +130,13 @@ public:
{
this->SendSyntax(source);
source.Reply(" ");
- source.Reply(_("Turns automatic protection for the nick on or off. With\n"
- "protection on if a user tries to use a nickname from the\n"
- "nick's group they will be given some time to change their\n"
- "nick after which %s will forcibly change their nick."), source.service->nick.c_str());
+ source.Reply(_(
+ "Turns automatic protection for the nick on or off. With "
+ "protection on if a user tries to use a nickname from the "
+ "nick's group they will be given some time to change their "
+ "nick after which %s will forcibly change their nick."
+ ),
+ source.service->nick.c_str());
return true;
}
};
diff --git a/modules/nickserv/ns_suspend.cpp b/modules/nickserv/ns_suspend.cpp
index 04af0797d..c5d284e0a 100644
--- a/modules/nickserv/ns_suspend.cpp
+++ b/modules/nickserv/ns_suspend.cpp
@@ -157,10 +157,12 @@ public:
{
this->SendSyntax(source);
source.Reply(" ");
- source.Reply(_("Suspends a registered nickname, which prevents it from being used\n"
- "while keeping all the data for that nick. If an expiry is given\n"
- "the nick will be unsuspended after that period of time, else the\n"
- "default expiry from the configuration is used."));
+ source.Reply(_(
+ "Suspends a registered nickname, which prevents it from being used "
+ "while keeping all the data for that nick. If an expiry is given "
+ "the nick will be unsuspended after that period of time, else the "
+ "default expiry from the configuration is used."
+ ));
return true;
}
};
diff --git a/modules/nickserv/ns_update.cpp b/modules/nickserv/ns_update.cpp
index 0ce6a5c95..9a182bc6a 100644
--- a/modules/nickserv/ns_update.cpp
+++ b/modules/nickserv/ns_update.cpp
@@ -41,9 +41,11 @@ public:
{
this->SendSyntax(source);
source.Reply(" ");
- source.Reply(_("Updates your current status, i.e. it checks for new memos,\n"
- "sets needed channel modes and updates your vhost and\n"
- "your userflags (lastseentime, etc)."));
+ source.Reply(_(
+ "Updates your current status, i.e. it checks for new memos, "
+ "sets needed channel modes and updates your vhost and "
+ "your userflags (lastseentime, etc)."
+ ));
return true;
}
};
diff --git a/modules/operserv/os_akill.cpp b/modules/operserv/os_akill.cpp
index e2be2ed7a..0cb2f51d3 100644
--- a/modules/operserv/os_akill.cpp
+++ b/modules/operserv/os_akill.cpp
@@ -421,53 +421,61 @@ public:
{
this->SendSyntax(source);
source.Reply(" ");
- source.Reply(_("Allows Services Operators to manipulate the AKILL list. If\n"
- "a user matching an AKILL mask attempts to connect, services\n"
- "will issue a KILL for that user and, on supported server\n"
- "types, will instruct all servers to add a ban for the mask\n"
- "which the user matched.\n"
- " \n"
- "\002AKILL ADD\002 adds the given mask to the AKILL\n"
- "list for the given reason, which \002must\002 be given.\n"
- "Mask should be in the format of nick!user@host#real name,\n"
- "though all that is required is user@host. If a real name is specified,\n"
- "the reason must be prepended with a :.\n"
- "\037expiry\037 is specified as an integer followed by one of \037d\037\n"
- "(days), \037h\037 (hours), or \037m\037 (minutes). Combinations (such as\n"
- "\0371h30m\037) are not permitted. If a unit specifier is not\n"
- "included, the default is days (so \037+30\037 by itself means 30\n"
- "days). To add an AKILL which does not expire, use \037+0\037. If the\n"
- "usermask to be added starts with a \037+\037, an expiry time must\n"
- "be given, even if it is the same as the default. The\n"
- "current AKILL default expiry time can be found with the\n"
- "\002STATS AKILL\002 command."));
+ source.Reply(_(
+ "Allows Services Operators to manipulate the AKILL list. If "
+ "a user matching an AKILL mask attempts to connect, services "
+ "will issue a KILL for that user and, on supported server "
+ "types, will instruct all servers to add a ban for the mask "
+ "which the user matched."
+ "\n\n"
+ "\002AKILL\032ADD\002 adds the given mask to the AKILL "
+ "list for the given reason, which \002must\002 be given. "
+ "Mask should be in the format of nick!user@host#real\032name, "
+ "though all that is required is user@host. If a real name is specified, "
+ "the reason must be prepended with a :. "
+ "\037expiry\037 is specified as an integer followed by one of \037d\037 "
+ "(days), \037h\037 (hours), or \037m\037 (minutes). Combinations (such as "
+ "\0371h30m\037) are not permitted. If a unit specifier is not "
+ "included, the default is days (so \037+30\037 by itself means 30 "
+ "days). To add an AKILL which does not expire, use \037+0\037. If the "
+ "usermask to be added starts with a \037+\037, an expiry time must "
+ "be given, even if it is the same as the default. The "
+ "current AKILL default expiry time can be found with the "
+ "\002STATS\032AKILL\002 command."
+ ));
+
const Anope::string &regexengine = Config->GetBlock("options").Get<const Anope::string>("regexengine");
if (!regexengine.empty())
{
source.Reply(" ");
- source.Reply(_("Regex matches are also supported using the %s engine.\n"
- "Enclose your mask in // if this is desired."), regexengine.c_str());
+ source.Reply(_(
+ "Regex matches are also supported using the %s engine. "
+ "Enclose your mask in // if this is desired."
+ ),
+ regexengine.c_str());
}
+
+ source.Reply(" ");
source.Reply(_(
- " \n"
- "The \002AKILL DEL\002 command removes the given mask from the\n"
- "AKILL list if it is present. If a list of entry numbers is\n"
- "given, those entries are deleted. (See the example for LIST\n"
- "below.)\n"
- " \n"
- "The \002AKILL LIST\002 command displays the AKILL list.\n"
- "If a wildcard mask is given, only those entries matching the\n"
- "mask are displayed. If a list of entry numbers is given,\n"
- "only those entries are shown; for example:\n"
- " \002AKILL LIST 2-5,7-9\002\n"
- " Lists AKILL entries numbered 2 through 5 and 7\n"
- " through 9.\n"
- " \n"
- "\002AKILL VIEW\002 is a more verbose version of \002AKILL LIST\002, and\n"
- "will show who added an AKILL, the date it was added, and when\n"
- "it expires, as well as the user@host/ip mask and reason.\n"
- " \n"
- "\002AKILL CLEAR\002 clears all entries of the AKILL list."));
+ "The \002AKILL\032DEL\002 command removes the given mask from the "
+ "AKILL list if it is present. If a list of entry numbers is "
+ "given, those entries are deleted. (See the example for LIST "
+ "below.)"
+ "\n\n"
+ "The \002AKILL\032LIST\002 command displays the AKILL list. "
+ "If a wildcard mask is given, only those entries matching the "
+ "mask are displayed. If a list of entry numbers is given, "
+ "only those entries are shown; for example:\n"
+ " \002AKILL\032LIST\0322-5,7-9\002\n"
+ " Lists AKILL entries numbered 2 through 5 and 7\n"
+ " through 9."
+ "\n\n"
+ "\002AKILL\032VIEW\002 is a more verbose version of \002AKILL\032LIST\002, and "
+ "will show who added an AKILL, the date it was added, and when "
+ "it expires, as well as the user@host/ip mask and reason."
+ "\n\n"
+ "\002AKILL\032CLEAR\002 clears all entries of the AKILL list."
+ ));
return true;
}
};
diff --git a/modules/operserv/os_chankill.cpp b/modules/operserv/os_chankill.cpp
index e66123a62..bed10c505 100644
--- a/modules/operserv/os_chankill.cpp
+++ b/modules/operserv/os_chankill.cpp
@@ -96,9 +96,11 @@ public:
{
this->SendSyntax(source);
source.Reply(" ");
- source.Reply(_("Puts an AKILL for every nick on the specified channel. It\n"
- "uses the entire real ident@host for every nick, and\n"
- "then enforces the AKILL."));
+ source.Reply(_(
+ "Puts an AKILL for every nick on the specified channel. It "
+ "uses the entire real ident@host for every nick, and "
+ "then enforces the AKILL."
+ ));
return true;
}
};
diff --git a/modules/operserv/os_config.cpp b/modules/operserv/os_config.cpp
index b10c59e4d..d889df31e 100644
--- a/modules/operserv/os_config.cpp
+++ b/modules/operserv/os_config.cpp
@@ -122,13 +122,15 @@ public:
{
this->SendSyntax(source);
source.Reply(" ");
- source.Reply(_("Allows you to change and view configuration settings.\n"
- "Settings changed by this command are temporary and will not be reflected\n"
- "back into the configuration file, and will be lost if Anope is shut down,\n"
- "restarted, or the configuration is reloaded.\n"
- " \n"
- "Example:\n"
- " \002MODIFY nickserv regdelay 15m\002"));
+ source.Reply(_(
+ "Allows you to change and view configuration settings. "
+ "Settings changed by this command are temporary and will not be reflected "
+ "back into the configuration file, and will be lost if Anope is shut down, "
+ "restarted, or the configuration is reloaded."
+ "\n\n"
+ "Example:\n"
+ " \002MODIFY\032nickserv\032regdelay\03215m\002"
+ ));
return true;
}
};
diff --git a/modules/operserv/os_defcon.cpp b/modules/operserv/os_defcon.cpp
index 53ceef8a3..0965b0961 100644
--- a/modules/operserv/os_defcon.cpp
+++ b/modules/operserv/os_defcon.cpp
@@ -235,9 +235,11 @@ public:
{
this->SendSyntax(source);
source.Reply(" ");
- source.Reply(_("The defcon system can be used to implement a pre-defined\n"
- "set of restrictions to services useful during an attempted\n"
- "attack on the network."));
+ source.Reply(_(
+ "The defcon system can be used to implement a pre-defined "
+ "set of restrictions to services useful during an attempted "
+ "attack on the network."
+ ));
return true;
}
};
diff --git a/modules/operserv/os_dns.cpp b/modules/operserv/os_dns.cpp
index a045b9ce2..9e8a6ac4e 100644
--- a/modules/operserv/os_dns.cpp
+++ b/modules/operserv/os_dns.cpp
@@ -722,20 +722,22 @@ public:
{
this->SendSyntax(source);
source.Reply(" ");
- source.Reply(_("This command allows managing DNS zones used for controlling what servers users\n"
- "are directed to when connecting. Omitting all parameters prints out the status of\n"
- "the DNS zone.\n"
- " \n"
- "\002ADDZONE\002 adds a zone, eg us.yournetwork.tld. Servers can then be added to this\n"
- "zone with the \002ADDSERVER\002 command.\n"
- " \n"
- "The \002ADDSERVER\002 command adds a server to the given zone. When a query is done, the\n"
- "zone in question is served if it exists, else all servers in all zones are served.\n"
- "A server may be in more than one zone.\n"
- " \n"
- "The \002ADDIP\002 command associates an IP with a server.\n"
- " \n"
- "The \002POOL\002 and \002DEPOOL\002 commands actually add and remove servers to their given zones."));
+ source.Reply(_(
+ "This command allows managing DNS zones used for controlling what servers users "
+ "are directed to when connecting. Omitting all parameters prints out the status of "
+ "the DNS zone."
+ "\n\n"
+ "\002ADDZONE\002 adds a zone, eg us.yournetwork.tld. Servers can then be added to this "
+ "zone with the \002ADDSERVER\002 command."
+ "\n\n"
+ "The \002ADDSERVER\002 command adds a server to the given zone. When a query is done, the "
+ "zone in question is served if it exists, else all servers in all zones are served. "
+ "A server may be in more than one zone."
+ "\n\n"
+ "The \002ADDIP\002 command associates an IP with a server."
+ "\n\n"
+ "The \002POOL\002 and \002DEPOOL\002 commands actually add and remove servers to their given zones."
+ ));
return true;
}
};
diff --git a/modules/operserv/os_forbid.cpp b/modules/operserv/os_forbid.cpp
index 6c34cb0e7..ed836817f 100644
--- a/modules/operserv/os_forbid.cpp
+++ b/modules/operserv/os_forbid.cpp
@@ -457,15 +457,20 @@ public:
{
this->SendSyntax(source);
source.Reply(" ");
- source.Reply(_("Forbid allows you to forbid usage of certain nicknames, channels,\n"
- "and email addresses. Wildcards are accepted for all entries."));
+ source.Reply(_(
+ "Forbid allows you to forbid usage of certain nicknames, channels, "
+ "and email addresses. Wildcards are accepted for all entries."
+ ));
const Anope::string &regexengine = Config->GetBlock("options").Get<const Anope::string>("regexengine");
if (!regexengine.empty())
{
source.Reply(" ");
- source.Reply(_("Regex matches are also supported using the %s engine.\n"
- "Enclose your pattern in // if this is desired."), regexengine.c_str());
+ source.Reply(_(
+ "Regex matches are also supported using the %s engine. "
+ "Enclose your pattern in // if this is desired."
+ ),
+ regexengine.c_str());
}
return true;
diff --git a/modules/operserv/os_ignore.cpp b/modules/operserv/os_ignore.cpp
index 41b7ae858..c30cfe8b2 100644
--- a/modules/operserv/os_ignore.cpp
+++ b/modules/operserv/os_ignore.cpp
@@ -381,24 +381,29 @@ public:
{
this->SendSyntax(source);
source.Reply(" ");
- source.Reply(_("Allows Services Operators to make services ignore a nick or mask\n"
- "for a certain time or until the next restart. The default\n"
- "time format is seconds. You can specify it by using units.\n"
- "Valid units are: \037s\037 for seconds, \037m\037 for minutes,\n"
- "\037h\037 for hours and \037d\037 for days.\n"
- "Combinations of these units are not permitted.\n"
- "To make services permanently ignore the user, type 0 as time.\n"
- "When adding a \037mask\037, it should be in the format nick!user@host,\n"
- "everything else will be considered a nick. Wildcards are permitted.\n"
- " \n"
- "Ignores will not be enforced on IRC Operators."));
+ source.Reply(_(
+ "Allows Services Operators to make services ignore a nick or mask "
+ "for a certain time or until the next restart. The default "
+ "time format is seconds. You can specify it by using units. "
+ "Valid units are: \037s\037 for seconds, \037m\037 for minutes, "
+ "\037h\037 for hours and \037d\037 for days. "
+ "Combinations of these units are not permitted. "
+ "To make services permanently ignore the user, type 0 as time. "
+ "When adding a \037mask\037, it should be in the format nick!user@host, "
+ "everything else will be considered a nick. Wildcards are permitted."
+ "\n\n"
+ "Ignores will not be enforced on IRC Operators."
+ ));
const Anope::string &regexengine = Config->GetBlock("options").Get<const Anope::string>("regexengine");
if (!regexengine.empty())
{
source.Reply(" ");
- source.Reply(_("Regex matches are also supported using the %s engine.\n"
- "Enclose your pattern in // if this is desired."), regexengine.c_str());
+ source.Reply(_(
+ "Regex matches are also supported using the %s engine. "
+ "Enclose your pattern in // if this is desired."
+ ),
+ regexengine.c_str());
}
return true;
diff --git a/modules/operserv/os_info.cpp b/modules/operserv/os_info.cpp
index 05ff6af07..62ccef2f0 100644
--- a/modules/operserv/os_info.cpp
+++ b/modules/operserv/os_info.cpp
@@ -254,9 +254,11 @@ public:
{
this->SendSyntax(source);
source.Reply(" ");
- source.Reply(_("Add or delete oper information for a given nick or channel.\n"
- "This will show to opers in the respective info command for\n"
- "the nick or channel."));
+ source.Reply(_(
+ "Add or delete oper information for a given nick or channel. "
+ "This will show to opers in the respective info command for "
+ "the nick or channel."
+ ));
return true;
}
};
diff --git a/modules/operserv/os_jupe.cpp b/modules/operserv/os_jupe.cpp
index c6823449d..acd5e5112 100644
--- a/modules/operserv/os_jupe.cpp
+++ b/modules/operserv/os_jupe.cpp
@@ -54,14 +54,16 @@ public:
{
this->SendSyntax(source);
source.Reply(" ");
- source.Reply(_("Tells services to jupiter a server -- that is, to create\n"
- "a fake \"server\" connected to services which prevents\n"
- "the real server of that name from connecting. The jupe\n"
- "may be removed using a standard \002SQUIT\002. If a reason is\n"
- "given, it is placed in the server information field;\n"
- "otherwise, the server information field will contain the\n"
- "text \"Juped by <nick>\", showing the nickname of the\n"
- "person who jupitered the server."));
+ source.Reply(_(
+ "Tells services to jupiter a server -- that is, to create "
+ "a fake \"server\" connected to services which prevents "
+ "the real server of that name from connecting. The jupe "
+ "may be removed using a standard \002SQUIT\002. If a reason is "
+ "given, it is placed in the server information field; "
+ "otherwise, the server information field will contain the "
+ "text \"Juped by <nick>\", showing the nickname of the "
+ "person who jupitered the server."
+ ));
return true;
}
};
diff --git a/modules/operserv/os_kick.cpp b/modules/operserv/os_kick.cpp
index 667b8aa50..d9df7feec 100644
--- a/modules/operserv/os_kick.cpp
+++ b/modules/operserv/os_kick.cpp
@@ -60,12 +60,15 @@ public:
{
this->SendSyntax(source);
source.Reply(" ");
- source.Reply(_("Allows staff to kick a user from any channel.\n"
- "Parameters are the same as for the standard /KICK\n"
- "command. The kick message will have the nickname of the\n"
- "IRCop sending the KICK command prepended; for example:\n"
- " \n"
- "*** SpamMan has been kicked off channel #my_channel by %s (Alcan (Flood))"), source.service->nick.c_str());
+ source.Reply(_(
+ "Allows staff to kick a user from any channel. "
+ "Parameters are the same as for the standard /KICK "
+ "command. The kick message will have the nickname of the "
+ "IRCop sending the KICK command prepended; for example:"
+ "\n\n"
+ "*** SpamMan has been kicked off channel #my_channel by %s (Alcan (Flood))"
+ ),
+ source.service->nick.c_str());
return true;
}
};
diff --git a/modules/operserv/os_kill.cpp b/modules/operserv/os_kill.cpp
index 7ad58d062..b0ae2ce59 100644
--- a/modules/operserv/os_kill.cpp
+++ b/modules/operserv/os_kill.cpp
@@ -46,9 +46,11 @@ public:
{
this->SendSyntax(source);
source.Reply(" ");
- source.Reply(_("Allows you to kill a user from the network.\n"
- "Parameters are the same as for the standard /KILL\n"
- "command."));
+ source.Reply(_(
+ "Allows you to kill a user from the network. "
+ "Parameters are the same as for the standard /KILL "
+ "command."
+ ));
return true;
}
};
diff --git a/modules/operserv/os_list.cpp b/modules/operserv/os_list.cpp
index 46c4c89bb..83069ec2e 100644
--- a/modules/operserv/os_list.cpp
+++ b/modules/operserv/os_list.cpp
@@ -109,20 +109,25 @@ public:
{
this->SendSyntax(source);
source.Reply(" ");
- source.Reply(_("Lists all channels currently in use on the IRC network, whether they\n"
- "are registered or not.\n"
- " \n"
- "If \002pattern\002 is given, lists only channels that match it. If a nickname\n"
- "is given, lists only the channels the user using it is on. If SECRET is\n"
- "specified, lists only channels matching \002pattern\002 that have the +s or\n"
- "+p mode."));
+ source.Reply(_(
+ "Lists all channels currently in use on the IRC network, whether they "
+ "are registered or not."
+ "\n\n"
+ "If \002pattern\002 is given, lists only channels that match it. If a nickname "
+ "is given, lists only the channels the user using it is on. If SECRET is "
+ "specified, lists only channels matching \002pattern\002 that have the +s or "
+ "+p mode."
+ ));
const Anope::string &regexengine = Config->GetBlock("options").Get<const Anope::string>("regexengine");
if (!regexengine.empty())
{
source.Reply(" ");
- source.Reply(_("Regex matches are also supported using the %s engine.\n"
- "Enclose your pattern in // if this is desired."), regexengine.c_str());
+ source.Reply(_(
+ "Regex matches are also supported using the %s engine. "
+ "Enclose your pattern in // if this is desired."
+ ),
+ regexengine.c_str());
}
return true;
@@ -252,20 +257,25 @@ public:
{
this->SendSyntax(source);
source.Reply(" ");
- source.Reply(_("Lists all users currently online on the IRC network, whether their\n"
- "nick is registered or not.\n"
- " \n"
- "If \002pattern\002 is given, lists only users that match it (it must be in\n"
- "the format nick!user@host[#realname]). If \002channel\002 is given, lists\n"
- "only users that are on the given channel. If INVISIBLE is specified, only users\n"
- "with the +i flag will be listed."));
+ source.Reply(_(
+ "Lists all users currently online on the IRC network, whether their "
+ "nick is registered or not."
+ "\n\n"
+ "If \002pattern\002 is given, lists only users that match it (it must be in "
+ "the format nick!user@host[#realname]). If \002channel\002 is given, lists "
+ "only users that are on the given channel. If INVISIBLE is specified, only users "
+ "with the +i flag will be listed."
+ ));
const Anope::string &regexengine = Config->GetBlock("options").Get<const Anope::string>("regexengine");
if (!regexengine.empty())
{
source.Reply(" ");
- source.Reply(_("Regex matches are also supported using the %s engine.\n"
- "Enclose your pattern in // if this is desired."), regexengine.c_str());
+ source.Reply(_(
+ "Regex matches are also supported using the %s engine. "
+ "Enclose your pattern in // if this is desired."
+ ),
+ regexengine.c_str());
}
return true;
diff --git a/modules/operserv/os_login.cpp b/modules/operserv/os_login.cpp
index 9cf62e947..f453bd8f0 100644
--- a/modules/operserv/os_login.cpp
+++ b/modules/operserv/os_login.cpp
@@ -48,9 +48,12 @@ public:
{
this->SendSyntax(source);
source.Reply(" ");
- source.Reply(_("Logs you in to %s so you gain Services Operator privileges.\n"
- "This command may be unnecessary if your oper block is\n"
- "configured without a password."), source.service->nick.c_str());
+ source.Reply(_(
+ "Logs you in to %s so you gain Services Operator privileges. "
+ "This command may be unnecessary if your oper block is "
+ "configured without a password."
+ ),
+ source.service->nick.c_str());
return true;
}
@@ -91,9 +94,12 @@ public:
{
this->SendSyntax(source);
source.Reply(" ");
- source.Reply(_("Logs you out from %s so you lose Services Operator privileges.\n"
- "This command is only useful if your oper block is configured\n"
- "with a password."), source.service->nick.c_str());
+ source.Reply(_(
+ "Logs you out from %s so you lose Services Operator privileges. "
+ "This command is only useful if your oper block is configured "
+ "with a password."
+ ),
+ source.service->nick.c_str());
return true;
}
diff --git a/modules/operserv/os_logsearch.cpp b/modules/operserv/os_logsearch.cpp
index cd3781ae1..d969cf74f 100644
--- a/modules/operserv/os_logsearch.cpp
+++ b/modules/operserv/os_logsearch.cpp
@@ -147,17 +147,19 @@ public:
{
this->SendSyntax(source);
source.Reply(" ");
- source.Reply(_("This command searches the services logfiles for messages\n"
- "that match the given pattern. The day and limit argument\n"
- "may be used to specify how many days of logs to search\n"
- "and the number of replies to limit to. By default this\n"
- "command searches one week of logs, and limits replies\n"
- "to 50.\n"
- " \n"
- "For example:\n"
- " \002LOGSEARCH +21d +500l Anope\002\n"
- " Searches the last 21 days worth of logs for messages\n"
- " containing Anope and lists the most recent 500 of them."));
+ source.Reply(_(
+ "This command searches the services logfiles for messages "
+ "that match the given pattern. The day and limit argument "
+ "may be used to specify how many days of logs to search "
+ "and the number of replies to limit to. By default this "
+ "command searches one week of logs, and limits replies "
+ "to 50."
+ "\n\n"
+ "For example:\n"
+ " \002LOGSEARCH\032+21d\032+500l\032Anope\002\n"
+ " Searches the last 21 days worth of logs for messages\n"
+ " containing Anope and lists the most recent 500 of them."
+ ));
return true;
}
};
diff --git a/modules/operserv/os_mode.cpp b/modules/operserv/os_mode.cpp
index 3a6b2159e..0ac9b48d4 100644
--- a/modules/operserv/os_mode.cpp
+++ b/modules/operserv/os_mode.cpp
@@ -128,10 +128,12 @@ public:
{
this->SendSyntax(source);
source.Reply(" ");
- source.Reply(_("Allows Services Operators to change modes for any channel.\n"
- "Parameters are the same as for the standard /MODE command.\n"
- "Alternatively, CLEAR may be given to clear all modes on the channel.\n"
- "If CLEAR ALL is given then all modes, including user status, is removed."));
+ source.Reply(_(
+ "Allows Services Operators to change modes for any channel. "
+ "Parameters are the same as for the standard /MODE command. "
+ "Alternatively, CLEAR may be given to clear all modes on the channel. "
+ "If CLEAR\032ALL is given then all modes, including user status, is removed."
+ ));
return true;
}
};
@@ -169,8 +171,10 @@ public:
{
this->SendSyntax(source);
source.Reply(" ");
- source.Reply(_("Allows Services Operators to change modes for any user.\n"
- "Parameters are the same as for the standard /MODE command."));
+ source.Reply(_(
+ "Allows Services Operators to change modes for any user. "
+ "Parameters are the same as for the standard /MODE command."
+ ));
return true;
}
};
diff --git a/modules/operserv/os_module.cpp b/modules/operserv/os_module.cpp
index 2a54d9a67..2055f3cd9 100644
--- a/modules/operserv/os_module.cpp
+++ b/modules/operserv/os_module.cpp
@@ -43,8 +43,7 @@ public:
{
this->SendSyntax(source);
source.Reply(" ");
- source.Reply(_("This command loads the module named \037modname\037 from the modules\n"
- "directory."));
+ source.Reply(_("This command loads the module named \037modname\037 from the modules directory."));
return true;
}
};
diff --git a/modules/operserv/os_news.cpp b/modules/operserv/os_news.cpp
index e5b6b057c..37eeef1c1 100644
--- a/modules/operserv/os_news.cpp
+++ b/modules/operserv/os_news.cpp
@@ -319,12 +319,14 @@ public:
{
this->SendSyntax(source);
source.Reply(" ");
- source.Reply(_("Edits or displays the list of logon news messages. When a\n"
- "user connects to the network, these messages will be sent\n"
- "to them. However, no more than \002%d\002 messages will be\n"
- "sent in order to avoid flooding the user. If there are\n"
- "more news messages, only the most recent will be sent."),
- Config->GetModule(this->owner).Get<unsigned>("newscount", "3"));
+ source.Reply(_(
+ "Edits or displays the list of logon news messages. When a "
+ "user connects to the network, these messages will be sent "
+ "to them. However, no more than \002%d\002 messages will be "
+ "sent in order to avoid flooding the user. If there are "
+ "more news messages, only the most recent will be sent."
+ ),
+ Config->GetModule(this->owner).Get<unsigned>("newscount", "3"));
return true;
}
};
@@ -347,12 +349,14 @@ public:
{
this->SendSyntax(source);
source.Reply(" ");
- source.Reply(_("Edits or displays the list of oper news messages. When a\n"
- "user opers up (with the /OPER command), these messages will\n"
- "be sent to them. However, no more than \002%d\002 messages will\n"
- "be sent in order to avoid flooding the user. If there are\n"
- "more news messages, only the most recent will be sent."),
- Config->GetModule(this->owner).Get<unsigned>("newscount", "3"));
+ source.Reply(_(
+ "Edits or displays the list of oper news messages. When a "
+ "user opers up (with the /OPER command), these messages will "
+ "be sent to them. However, no more than \002%d\002 messages will "
+ "be sent in order to avoid flooding the user. If there are "
+ "more news messages, only the most recent will be sent."
+ ),
+ Config->GetModule(this->owner).Get<unsigned>("newscount", "3"));
return true;
}
};
@@ -375,9 +379,11 @@ public:
{
this->SendSyntax(source);
source.Reply(" ");
- source.Reply(_("Edits or displays the list of random news messages. When a\n"
- "user connects to the network, one (and only one) of the\n"
- "random news will be randomly chosen and sent to them."));
+ source.Reply(_(
+ "Edits or displays the list of random news messages. When a "
+ "user connects to the network, one (and only one) of the "
+ "random news will be randomly chosen and sent to them."
+ ));
return true;
}
};
diff --git a/modules/operserv/os_noop.cpp b/modules/operserv/os_noop.cpp
index 6e4b412fd..23bb6636e 100644
--- a/modules/operserv/os_noop.cpp
+++ b/modules/operserv/os_noop.cpp
@@ -64,10 +64,12 @@ public:
{
this->SendSyntax(source);
source.Reply(" ");
- source.Reply(_("\002SET\002 kills all operators from the given\n"
- "\002server\002 and prevents operators from opering\n"
- "up on the given server. \002REVOKE\002 removes this\n"
- "restriction."));
+ source.Reply(_(
+ "\002SET\002 kills all operators from the given "
+ "\002server\002 and prevents operators from opering "
+ "up on the given server. \002REVOKE\002 removes this "
+ "restriction."
+ ));
return true;
}
};
diff --git a/modules/operserv/os_oper.cpp b/modules/operserv/os_oper.cpp
index 5a87cd6ba..d19567f9a 100644
--- a/modules/operserv/os_oper.cpp
+++ b/modules/operserv/os_oper.cpp
@@ -253,9 +253,11 @@ public:
{
this->SendSyntax(source);
source.Reply(" ");
- source.Reply(_("Allows you to change and view Services Operators.\n"
- "Note that operators removed by this command but are still set in\n"
- "the configuration file are not permanently affected by this."));
+ source.Reply(_(
+ "Allows you to change and view Services Operators. "
+ "Note that operators removed by this command but are still set in "
+ "the configuration file are not permanently affected by this."
+ ));
return true;
}
};
diff --git a/modules/operserv/os_reload.cpp b/modules/operserv/os_reload.cpp
index 88bcead7c..4330b5175 100644
--- a/modules/operserv/os_reload.cpp
+++ b/modules/operserv/os_reload.cpp
@@ -45,10 +45,12 @@ public:
{
this->SendSyntax(source);
source.Reply(" ");
- source.Reply(_("Causes services to reload the configuration file. Note that\n"
- "some directives still need the restart of the services to\n"
- "take effect (such as services' nicknames, activation of the\n"
- "session limitation, etc.)."));
+ source.Reply(_(
+ "Causes services to reload the configuration file. Note that "
+ "some directives still need the restart of the services to "
+ "take effect (such as services' nicknames, activation of the "
+ "session limitation, etc.)."
+ ));
return true;
}
};
diff --git a/modules/operserv/os_session.cpp b/modules/operserv/os_session.cpp
index 858b1b2a9..4920e478e 100644
--- a/modules/operserv/os_session.cpp
+++ b/modules/operserv/os_session.cpp
@@ -299,20 +299,22 @@ public:
{
this->SendSyntax(source);
source.Reply(" ");
- source.Reply(_("Allows Services Operators to view the session list.\n"
- " \n"
- "\002SESSION LIST\002 lists hosts with at least \037threshold\037 sessions.\n"
- "The threshold must be a number greater than 1. This is to\n"
- "prevent accidental listing of the large number of single\n"
- "session hosts.\n"
- " \n"
- "\002SESSION VIEW\002 displays detailed information about a specific\n"
- "host - including the current session count and session limit.\n"
- "The \037host\037 value may not include wildcards.\n"
- " \n"
- "See the \002EXCEPTION\002 help for more information about session\n"
- "limiting and how to set session limits specific to certain\n"
- "hosts and groups thereof."));
+ source.Reply(_(
+ "Allows Services Operators to view the session list."
+ "\n\n"
+ "\002SESSION\032LIST\002 lists hosts with at least \037threshold\037 sessions. "
+ "The threshold must be a number greater than 1. This is to "
+ "prevent accidental listing of the large number of single "
+ "session hosts."
+ "\n\n"
+ "\002SESSION\032VIEW\002 displays detailed information about a specific "
+ "host - including the current session count and session limit. "
+ "The \037host\037 value may not include wildcards. "
+ "\n\n"
+ "See the \002EXCEPTION\002 help for more information about session "
+ "limiting and how to set session limits specific to certain "
+ "hosts and groups thereof."
+ ));
return true;
}
};
@@ -575,36 +577,38 @@ public:
{
this->SendSyntax(source);
source.Reply(" ");
- source.Reply(_("Allows Services Operators to manipulate the list of hosts that\n"
- "have specific session limits - allowing certain machines,\n"
- "such as shell servers, to carry more than the default number\n"
- "of clients at a time. Once a host reaches its session limit,\n"
- "all clients attempting to connect from that host will be\n"
- "killed. Before the user is killed, they are notified, of a\n"
- "source of help regarding session limiting. The content of\n"
- "this notice is a config setting."));
- source.Reply(" ");
- source.Reply(_("\002EXCEPTION ADD\002 adds the given host mask to the exception list.\n"
- "Note that \002nick!user@host\002 and \002user@host\002 masks are invalid!\n"
- "Only real host masks, such as \002box.host.dom\002 and \002*.host.dom\002,\n"
- "are allowed because sessions limiting does not take nick or\n"
- "user names into account. \037limit\037 must be a number greater than\n"
- "or equal to zero. This determines how many sessions this host\n"
- "may carry at a time. A value of zero means the host has an\n"
- "unlimited session limit. See the \002AKILL\002 help for details about\n"
- "the format of the optional \037expiry\037 parameter.\n"
- " \n"
- "\002EXCEPTION DEL\002 removes the given mask from the exception list.\n"
- " \n"
- "\002EXCEPTION LIST\002 and \002EXCEPTION VIEW\002 show all current\n"
- "sessions if the optional mask is given, the list is limited\n"
- "to those sessions matching the mask. The difference is that\n"
- "\002EXCEPTION VIEW\002 is more verbose, displaying the name of the\n"
- "person who added the exception, its session limit, reason,\n"
- "host mask and the expiry date and time.\n"
- " \n"
- "Note that a connecting client will \"use\" the first exception\n"
- "their host matches."));
+ source.Reply(_(
+ "Allows Services Operators to manipulate the list of hosts that "
+ "have specific session limits - allowing certain machines, "
+ "such as shell servers, to carry more than the default number "
+ "of clients at a time. Once a host reaches its session limit, "
+ "all clients attempting to connect from that host will be "
+ "killed. Before the user is killed, they are notified, of a "
+ "source of help regarding session limiting. The content of "
+ "this notice is a config setting."
+ "\n\n"
+ "\002EXCEPTION\032ADD\002 adds the given host mask to the exception list. "
+ "Note that \002nick!user@host\002 and \002user@host\002 masks are invalid! "
+ "Only real host masks, such as \002box.host.dom\002 and \002*.host.dom\002, "
+ "are allowed because sessions limiting does not take nick or "
+ "user names into account. \037limit\037 must be a number greater than "
+ "or equal to zero. This determines how many sessions this host "
+ "may carry at a time. A value of zero means the host has an "
+ "unlimited session limit. See the \002AKILL\002 help for details about "
+ "the format of the optional \037expiry\037 parameter. "
+ "\n\n"
+ "\002EXCEPTION\032DEL\002 removes the given mask from the exception list."
+ "\n\n"
+ "\002EXCEPTION\032LIST\002 and \002EXCEPTION\032VIEW\002 show all current "
+ "sessions if the optional mask is given, the list is limited "
+ "to those sessions matching the mask. The difference is that "
+ "\002EXCEPTION\032VIEW\002 is more verbose, displaying the name of the "
+ "person who added the exception, its session limit, reason, "
+ "host mask and the expiry date and time. "
+ "\n\n"
+ "Note that a connecting client will \"use\" the first exception "
+ "their host matches."
+ ));
return true;
}
};
diff --git a/modules/operserv/os_set.cpp b/modules/operserv/os_set.cpp
index 50451d53a..ced5a9d97 100644
--- a/modules/operserv/os_set.cpp
+++ b/modules/operserv/os_set.cpp
@@ -197,57 +197,79 @@ public:
{
this->SendSyntax(source);
source.Reply(" ");
- source.Reply(_("Sets various global services options. Option names\n"
- "currently defined are:\n"
- " READONLY Set read-only or read-write mode\n"
- " DEBUG Activate or deactivate debug mode\n"
- " NOEXPIRE Activate or deactivate no expire mode\n"
- " SUPERADMIN Activate or deactivate super admin mode\n"
- " LIST List the options"));
+ source.Reply(_(
+ "Sets various global services options. Option names "
+ "currently defined are:"
+ "\n\n"
+ " READONLY Set read-only or read-write mode\n"
+ " DEBUG Activate or deactivate debug mode\n"
+ " NOEXPIRE Activate or deactivate no expire mode\n"
+ " SUPERADMIN Activate or deactivate super admin mode\n"
+ " LIST List the options"
+ ));
}
else if (subcommand.equals_ci("LIST"))
- source.Reply(_("Syntax: \002LIST\002\n"
- " \n"
- "Display the various %s settings."), source.service->nick.c_str());
+ {
+ source.Reply(_(
+ "Syntax: \002LIST\002"
+ "\n\n"
+ "Display the various %s settings."
+ ),
+ source.service->nick.c_str());
+ }
else if (subcommand.equals_ci("READONLY"))
- source.Reply(_("Syntax: \002READONLY {ON | OFF}\002\n"
- " \n"
- "Sets read-only mode on or off. In read-only mode, normal\n"
- "users will not be allowed to modify any services data,\n"
- "including channel access lists, etc. Server operators\n"
- "with sufficient services privileges will be able to modify\n"
- "Services' AKILL, SQLINE, SNLINE and ignore lists, drop,\n"
- "suspend or forbid nicknames and channels, and manage news,\n"
- "oper info and DNS, but any such changes will not be saved\n"
- "unless read-only mode is deactivated before services are\n"
- "terminated or restarted.\n"
- " \n"
- "This option is equivalent to the command-line option\n"
- "\002--readonly\002."));
+ {
+ source.Reply(_(
+ "Syntax: \002READONLY {ON | OFF}\002"
+ "\n\n"
+ "Sets read-only mode on or off. In read-only mode, normal "
+ "users will not be allowed to modify any services data, "
+ "including channel access lists, etc. Server operators "
+ "with sufficient services privileges will be able to modify "
+ "Services' AKILL, SQLINE, SNLINE and ignore lists, drop, "
+ "suspend or forbid nicknames and channels, and manage news, "
+ "oper info and DNS, but any such changes will not be saved "
+ "unless read-only mode is deactivated before services are "
+ "terminated or restarted."
+ "\n\n"
+ "This option is equivalent to the command-line option "
+ "\002--readonly\002."
+ ));
+ }
else if (subcommand.equals_ci("DEBUG"))
- source.Reply(_("Syntax: \002DEBUG {ON | OFF}\002\n"
- " \n"
- "Sets debug mode on or off.\n"
- " \n"
- "This option is equivalent to the command-line option\n"
- "\002--debug\002."));
+ {
+ source.Reply(_(
+ "Syntax: \002DEBUG {ON | OFF}\002"
+ "\n\n"
+ "Sets debug mode on or off."
+ "\n\n"
+ "This option is equivalent to the command-line option "
+ "\002--debug\002."
+ ));
+ }
else if (subcommand.equals_ci("NOEXPIRE"))
- source.Reply(_("Syntax: \002NOEXPIRE {ON | OFF}\002\n"
- " \n"
- "Sets no expire mode on or off. In no expire mode, nicks,\n"
- "channels, akills and exceptions won't expire until the\n"
- "option is unset.\n"
- " \n"
- "This option is equivalent to the command-line option\n"
- "\002--noexpire\002."));
+ source.Reply(_(
+ "Syntax: \002NOEXPIRE {ON | OFF}\002"
+ "\n\n"
+ "Sets no expire mode on or off. In no expire mode, nicks, "
+ "channels, akills and exceptions won't expire until the "
+ "option is unset."
+ "\n\n"
+ "This option is equivalent to the command-line option "
+ "\002--noexpire\002."
+ ));
else if (subcommand.equals_ci("SUPERADMIN"))
- source.Reply(_("Syntax: \002SUPERADMIN {ON | OFF}\002\n"
- " \n"
- "Setting this will grant you extra privileges such as the\n"
- "ability to be \"founder\" on all channel's etc...\n"
- " \n"
- "This option is \002not\002 persistent, and should only be used when\n"
- "needed, and set back to OFF when no longer needed."));
+ {
+ source.Reply(_(
+ "Syntax: \002SUPERADMIN {ON | OFF}\002"
+ "\n\n"
+ "Setting this will grant you extra privileges such as the "
+ "ability to be \"founder\" on all channels, etc..."
+ "\n\n"
+ "This option is \002not\002 persistent, and should only be used when "
+ "needed, and set back to OFF when no longer needed."
+ ));
+ }
else
return false;
return true;
diff --git a/modules/operserv/os_shutdown.cpp b/modules/operserv/os_shutdown.cpp
index 96002439b..971c0525f 100644
--- a/modules/operserv/os_shutdown.cpp
+++ b/modules/operserv/os_shutdown.cpp
@@ -54,10 +54,12 @@ public:
{
this->SendSyntax(source);
source.Reply(" ");
- source.Reply(_("Causes services to do an immediate shutdown; databases are\n"
- "\002not\002 saved. This command should not be used unless\n"
- "damage to the in-memory copies of the databases is feared\n"
- "and they should not be saved."));
+ source.Reply(_(
+ "Causes services to do an immediate shutdown; databases are "
+ "\002not\002 saved. This command should not be used unless "
+ "damage to the in-memory copies of the databases is feared "
+ "and they should not be saved."
+ ));
return true;
}
};
@@ -88,8 +90,10 @@ public:
bool OnHelp(CommandSource &source, const Anope::string &subcommand) override
{
this->SendSyntax(source);
- source.Reply(_("Causes services to save all databases and then restart\n"
- "(i.e. exit and immediately re-run the executable)."));
+ source.Reply(_(
+ "Causes services to save all databases and then restart "
+ "(i.e. exit and immediately re-run the executable)."
+ ));
return true;
}
};
diff --git a/modules/operserv/os_stats.cpp b/modules/operserv/os_stats.cpp
index 4b94a8f46..15287bffa 100644
--- a/modules/operserv/os_stats.cpp
+++ b/modules/operserv/os_stats.cpp
@@ -298,25 +298,27 @@ public:
{
this->SendSyntax(source);
source.Reply(" ");
- source.Reply(_("Without any option, shows the current number of users online,\n"
- "and the highest number of users online since services was\n"
- "started, and the length of time services has been running.\n"
- " \n"
- "With the \002AKILL\002 option, displays the current size of the\n"
- "AKILL list and the current default expiry time.\n"
- " \n"
- "The \002RESET\002 option currently resets the maximum user count\n"
- "to the number of users currently present on the network.\n"
- " \n"
- "The \002PASSWORD\002 option displays the encryption algorithms used\n"
- "for user passwords.\n"
- " \n"
- "The \002UPLINK\002 option displays information about the current\n"
- "server Anope uses as an uplink to the network.\n"
- " \n"
- "The \002HASH\002 option displays information about the hash maps.\n"
- " \n"
- "The \002ALL\002 option displays all of the above statistics."));
+ source.Reply(_(
+ "Without any option, shows the current number of users online, "
+ "and the highest number of users online since services was "
+ "started, and the length of time services has been running."
+ "\n\n"
+ "With the \002AKILL\002 option, displays the current size of the "
+ "AKILL list and the current default expiry time."
+ "\n\n"
+ "The \002RESET\002 option currently resets the maximum user count "
+ "to the number of users currently present on the network."
+ "\n\n"
+ "The \002PASSWORD\002 option displays the encryption algorithms used "
+ "for user passwords. "
+ "\n\n"
+ "The \002UPLINK\002 option displays information about the current "
+ "server Anope uses as an uplink to the network."
+ "\n\n"
+ "The \002HASH\002 option displays information about the hash maps."
+ "\n\n"
+ "The \002ALL\002 option displays all of the above statistics."
+ ));
return true;
}
};
diff --git a/modules/operserv/os_sxline.cpp b/modules/operserv/os_sxline.cpp
index ebb935c33..0b85d9d16 100644
--- a/modules/operserv/os_sxline.cpp
+++ b/modules/operserv/os_sxline.cpp
@@ -436,51 +436,60 @@ public:
{
this->SendSyntax(source);
source.Reply(" ");
- source.Reply(_("Allows Services Operators to manipulate the SNLINE list. If\n"
- "a user with a realname matching an SNLINE mask attempts to\n"
- "connect, services will not allow them to pursue their IRC\n"
- "session."));
- source.Reply(_(" \n"
- "\002SNLINE ADD\002 adds the given realname mask to the SNLINE\n"
- "list for the given reason (which \002must\002 be given).\n"
- "\037expiry\037 is specified as an integer followed by one of \037d\037\n"
- "(days), \037h\037 (hours), or \037m\037 (minutes). Combinations (such as\n"
- "\0371h30m\037) are not permitted. If a unit specifier is not\n"
- "included, the default is days (so \037+30\037 by itself means 30\n"
- "days). To add an SNLINE which does not expire, use \037+0\037. If the\n"
- "realname mask to be added starts with a \037+\037, an expiry time must\n"
- "be given, even if it is the same as the default. The\n"
- "current SNLINE default expiry time can be found with the\n"
- "\002STATS AKILL\002 command.\n"
- " \n"
- "\002Note\002: because the realname mask may contain spaces, the\n"
- "separator between it and the reason is a colon."));
+ source.Reply(_(
+ "Allows Services Operators to manipulate the SNLINE list. If "
+ "a user with a realname matching an SNLINE mask attempts to "
+ "connect, services will not allow them to pursue their IRC "
+ "session."
+ "\n\n"
+ "\002SNLINE\032ADD\002 adds the given realname mask to the SNLINE "
+ "list for the given reason (which \002must\002 be given). "
+ "\037expiry\037 is specified as an integer followed by one of \037d\037 "
+ "(days), \037h\037 (hours), or \037m\037 (minutes). Combinations (such as "
+ "\0371h30m\037) are not permitted. If a unit specifier is not "
+ "included, the default is days (so \037+30\037 by itself means 30 "
+ "days). To add an SNLINE which does not expire, use \037+0\037. If the "
+ "realname mask to be added starts with a \037+\037, an expiry time must "
+ "be given, even if it is the same as the default. The "
+ "current SNLINE default expiry time can be found with the "
+ "\002STATS\032AKILL\002 command. "
+ "\n\n"
+ "\002Note\002: because the realname mask may contain spaces, the "
+ "separator between it and the reason is a colon."
+ ));
+
const Anope::string &regexengine = Config->GetBlock("options").Get<const Anope::string>("regexengine");
if (!regexengine.empty())
{
source.Reply(" ");
- source.Reply(_("Regex matches are also supported using the %s engine.\n"
- "Enclose your mask in // if this is desired."), regexengine.c_str());
+ source.Reply(_(
+ "Regex matches are also supported using the %s engine. "
+ "Enclose your mask in // if this is desired."
+ ),
+ regexengine.c_str());
}
- source.Reply(_(" \n"
- "The \002SNLINE DEL\002 command removes the given mask from the\n"
- "SNLINE list if it is present. If a list of entry numbers is\n"
- "given, those entries are deleted. (See the example for LIST\n"
- "below.)\n"
- " \n"
- "The \002SNLINE LIST\002 command displays the SNLINE list.\n"
- "If a wildcard mask is given, only those entries matching the\n"
- "mask are displayed. If a list of entry numbers is given,\n"
- "only those entries are shown; for example:\n"
- " \002SNLINE LIST 2-5,7-9\002\n"
- " Lists SNLINE entries numbered 2 through 5 and 7\n"
- " through 9.\n"
- " \n"
- "\002SNLINE VIEW\002 is a more verbose version of \002SNLINE LIST\002, and\n"
- "will show who added an SNLINE, the date it was added, and when\n"
- "it expires, as well as the realname mask and reason.\n"
- " \n"
- "\002SNLINE CLEAR\002 clears all entries of the SNLINE list."));
+
+ source.Reply(" ");
+ source.Reply(_(
+ "The \002SNLINE\032DEL\002 command removes the given mask from the "
+ "SNLINE list if it is present. If a list of entry numbers is "
+ "given, those entries are deleted. (See the example for LIST "
+ "below.)"
+ "\n\n"
+ "The \002SNLINE\032LIST\002 command displays the SNLINE list. "
+ "If a wildcard mask is given, only those entries matching the "
+ "mask are displayed. If a list of entry numbers is given, "
+ "only those entries are shown; for example:\n"
+ " \002SNLINE\032LIST\0322-5,7-9\002\n"
+ " Lists SNLINE entries numbered 2 through 5 and 7\n"
+ " through 9."
+ "\n\n"
+ "\002SNLINE\032VIEW\002 is a more verbose version of \002SNLINE\032LIST\002, and "
+ "will show who added an SNLINE, the date it was added, and when "
+ "it expires, as well as the realname mask and reason."
+ "\n\n"
+ "\002SNLINE\032CLEAR\002 clears all entries of the SNLINE list."
+ ));
return true;
}
};
@@ -666,52 +675,61 @@ public:
{
this->SendSyntax(source);
source.Reply(" ");
- source.Reply(_("Allows Services Operators to manipulate the SQLINE list. If\n"
- "a user with a nick matching an SQLINE mask attempts to\n"
- "connect, services will not allow them to pursue their IRC\n"
- "session.\n"
- "If the first character of the mask is #, services will\n"
- "prevent the use of matching channels. If the mask is a\n"
- "regular expression, the expression will be matched against\n"
- "channels too."));
- source.Reply(_(" \n"
- "\002SQLINE ADD\002 adds the given (nick/channel) mask to the SQLINE\n"
- "list for the given reason (which \002must\002 be given).\n"
- "\037expiry\037 is specified as an integer followed by one of \037d\037\n"
- "(days), \037h\037 (hours), or \037m\037 (minutes). Combinations (such as\n"
- "\0371h30m\037) are not permitted. If a unit specifier is not\n"
- "included, the default is days (so \037+30\037 by itself means 30\n"
- "days). To add an SQLINE which does not expire, use \037+0\037.\n"
- "If the mask to be added starts with a \037+\037, an expiry time\n"
- "must be given, even if it is the same as the default. The\n"
- "current SQLINE default expiry time can be found with the\n"
- "\002STATS AKILL\002 command."));
+ source.Reply(_(
+ "Allows Services Operators to manipulate the SQLINE list. If "
+ "a user with a nick matching an SQLINE mask attempts to "
+ "connect, services will not allow them to pursue their IRC "
+ "session. "
+ "If the first character of the mask is #, services will "
+ "prevent the use of matching channels. If the mask is a "
+ "regular expression, the expression will be matched against "
+ "channels too."
+ "\n\n"
+ "\002SQLINE\032ADD\002 adds the given (nick/channel) mask to the SQLINE "
+ "list for the given reason (which \002must\002 be given). "
+ "\037expiry\037 is specified as an integer followed by one of \037d\037 "
+ "(days), \037h\037 (hours), or \037m\037 (minutes). Combinations (such as "
+ "\0371h30m\037) are not permitted. If a unit specifier is not "
+ "included, the default is days (so \037+30\037 by itself means 30 "
+ "days). To add an SQLINE which does not expire, use \037+0\037. "
+ "If the mask to be added starts with a \037+\037, an expiry time "
+ "must be given, even if it is the same as the default. The "
+ "current SQLINE default expiry time can be found with the "
+ "\002STATS\032AKILL\002 command."
+ ));
+
const Anope::string &regexengine = Config->GetBlock("options").Get<const Anope::string>("regexengine");
if (!regexengine.empty())
{
source.Reply(" ");
- source.Reply(_("Regex matches are also supported using the %s engine.\n"
- "Enclose your mask in // if this is desired."), regexengine.c_str());
+ source.Reply(_(
+ "Regex matches are also supported using the %s engine. "
+ "Enclose your mask in // if this is desired."
+ ),
+ regexengine.c_str());
}
- source.Reply(_(" \n"
- "The \002SQLINE DEL\002 command removes the given mask from the\n"
- "SQLINE list if it is present. If a list of entry numbers is\n"
- "given, those entries are deleted. (See the example for LIST\n"
- "below.)\n"
- " \n"
- "The \002SQLINE LIST\002 command displays the SQLINE list.\n"
- "If a wildcard mask is given, only those entries matching the\n"
- "mask are displayed. If a list of entry numbers is given,\n"
- "only those entries are shown; for example:\n"
- " \002SQLINE LIST 2-5,7-9\002\n"
- " Lists SQLINE entries numbered 2 through 5 and 7\n"
- " through 9.\n"
- " \n"
- "\002SQLINE VIEW\002 is a more verbose version of \002SQLINE LIST\002, and\n"
- "will show who added an SQLINE, the date it was added, and when\n"
- "it expires, as well as the mask and reason.\n"
- " \n"
- "\002SQLINE CLEAR\002 clears all entries of the SQLINE list."));
+
+ source.Reply(" ");
+ source.Reply(_(
+ "The \002SQLINE\032DEL\002 command removes the given mask from the "
+ "SQLINE list if it is present. If a list of entry numbers is "
+ "given, those entries are deleted. (See the example for LIST "
+ "below.)"
+ "\n\n"
+ "The \002SQLINE\032LIST\002 command displays the SQLINE list. "
+ "If a wildcard mask is given, only those entries matching the "
+ "mask are displayed. If a list of entry numbers is given, "
+ "only those entries are shown; for example:\n"
+ " \002SQLINE\032LIST\0322-5,7-9\002\n"
+ " Lists SQLINE entries numbered 2 through 5 and 7\n"
+ " through 9."
+ "\n\n"
+ "\002SQLINE\032VIEW\002 is a more verbose version of \002SQLINE\032LIST\002, and "
+ "will show who added an SQLINE, the date it was added, and when "
+ "it expires, as well as the mask and reason."
+ "\n\n"
+ "\002SQLINE\032CLEAR\002 clears all entries of the SQLINE list."
+ ));
return true;
}
};
diff --git a/modules/operserv/os_update.cpp b/modules/operserv/os_update.cpp
index e1c25a1be..0be8e2675 100644
--- a/modules/operserv/os_update.cpp
+++ b/modules/operserv/os_update.cpp
@@ -32,8 +32,7 @@ public:
{
this->SendSyntax(source);
source.Reply(" ");
- source.Reply(_("Causes services to update all database files as soon as you\n"
- "send the command."));
+ source.Reply(_("Causes services to update all database files as soon as you send the command."));
return true;
}
};