From ce362854a39c35249f8d2c7bcf27e3d5f9aa9980 Mon Sep 17 00:00:00 2001 From: Sadie Powell Date: Wed, 16 Apr 2025 00:04:30 +0100 Subject: Update as many messages as possible for automatic line wrapping. --- modules/botserv/botserv.cpp | 64 +++++--- modules/botserv/bs_assign.cpp | 30 ++-- modules/botserv/bs_badwords.cpp | 57 +++---- modules/botserv/bs_bot.cpp | 36 +++-- modules/botserv/bs_botlist.cpp | 28 ++-- modules/botserv/bs_control.cpp | 6 +- modules/botserv/bs_info.cpp | 12 +- modules/botserv/bs_kick.cpp | 281 +++++++++++++++++++++------------- modules/botserv/bs_set.cpp | 31 ++-- modules/chanserv/chanserv.cpp | 47 ++++-- modules/chanserv/cs_access.cpp | 141 +++++++++-------- modules/chanserv/cs_akick.cpp | 70 +++++---- modules/chanserv/cs_ban.cpp | 14 +- modules/chanserv/cs_clone.cpp | 10 +- modules/chanserv/cs_drop.cpp | 24 ++- modules/chanserv/cs_enforce.cpp | 28 ++-- modules/chanserv/cs_entrymsg.cpp | 42 ++--- modules/chanserv/cs_flags.cpp | 39 ++--- modules/chanserv/cs_info.cpp | 14 +- modules/chanserv/cs_invite.cpp | 13 +- modules/chanserv/cs_kick.cpp | 10 +- modules/chanserv/cs_list.cpp | 73 +++++---- modules/chanserv/cs_log.cpp | 42 ++--- modules/chanserv/cs_mode.cpp | 66 ++++---- modules/chanserv/cs_register.cpp | 50 +++--- modules/chanserv/cs_seen.cpp | 24 +-- modules/chanserv/cs_set.cpp | 200 ++++++++++++++---------- modules/chanserv/cs_status.cpp | 12 +- modules/chanserv/cs_suspend.cpp | 24 +-- modules/chanserv/cs_sync.cpp | 6 +- modules/chanserv/cs_topic.cpp | 32 ++-- modules/chanserv/cs_unban.cpp | 17 +- modules/chanserv/cs_updown.cpp | 16 +- modules/chanserv/cs_xop.cpp | 75 +++++---- modules/fantasy.cpp | 22 +-- modules/global/gl_global.cpp | 13 +- modules/global/gl_queue.cpp | 20 +-- modules/global/gl_server.cpp | 13 +- modules/greet.cpp | 34 ++-- modules/help.cpp | 2 +- modules/hostserv/hs_del.cpp | 6 +- modules/hostserv/hs_group.cpp | 8 +- modules/hostserv/hs_list.cpp | 16 +- modules/hostserv/hs_off.cpp | 8 +- modules/hostserv/hs_on.cpp | 8 +- modules/hostserv/hs_request.cpp | 8 +- modules/hostserv/hs_set.cpp | 25 +-- modules/memoserv/memoserv.cpp | 23 +-- modules/memoserv/ms_cancel.cpp | 6 +- modules/memoserv/ms_check.cpp | 6 +- modules/memoserv/ms_del.cpp | 31 ++-- modules/memoserv/ms_ignore.cpp | 10 +- modules/memoserv/ms_info.cpp | 22 +-- modules/memoserv/ms_list.cpp | 14 +- modules/memoserv/ms_read.cpp | 24 +-- modules/memoserv/ms_rsend.cpp | 16 +- modules/memoserv/ms_send.cpp | 10 +- modules/memoserv/ms_set.cpp | 118 ++++++++------ modules/nickserv/nickserv.cpp | 75 ++++++--- modules/nickserv/ns_ajoin.cpp | 10 +- modules/nickserv/ns_alist.cpp | 12 +- modules/nickserv/ns_cert.cpp | 38 ++--- modules/nickserv/ns_drop.cpp | 18 ++- modules/nickserv/ns_group.cpp | 100 ++++++------ modules/nickserv/ns_identify.cpp | 13 +- modules/nickserv/ns_info.cpp | 47 +++--- modules/nickserv/ns_list.cpp | 95 +++++++----- modules/nickserv/ns_logout.cpp | 18 ++- modules/nickserv/ns_recover.cpp | 26 ++-- modules/nickserv/ns_register.cpp | 86 ++++++----- modules/nickserv/ns_resetpass.cpp | 8 +- modules/nickserv/ns_set.cpp | 64 +++++--- modules/nickserv/ns_set_keepmodes.cpp | 16 +- modules/nickserv/ns_set_language.cpp | 20 ++- modules/nickserv/ns_set_message.cpp | 17 +- modules/nickserv/ns_set_protect.cpp | 22 ++- modules/nickserv/ns_suspend.cpp | 10 +- modules/nickserv/ns_update.cpp | 8 +- modules/operserv/os_akill.cpp | 90 ++++++----- modules/operserv/os_chankill.cpp | 8 +- modules/operserv/os_config.cpp | 16 +- modules/operserv/os_defcon.cpp | 8 +- modules/operserv/os_dns.cpp | 30 ++-- modules/operserv/os_forbid.cpp | 13 +- modules/operserv/os_ignore.cpp | 31 ++-- modules/operserv/os_info.cpp | 8 +- modules/operserv/os_jupe.cpp | 18 ++- modules/operserv/os_kick.cpp | 15 +- modules/operserv/os_kill.cpp | 8 +- modules/operserv/os_list.cpp | 46 +++--- modules/operserv/os_login.cpp | 18 ++- modules/operserv/os_logsearch.cpp | 24 +-- modules/operserv/os_mode.cpp | 16 +- modules/operserv/os_module.cpp | 3 +- modules/operserv/os_news.cpp | 36 +++-- modules/operserv/os_noop.cpp | 10 +- modules/operserv/os_oper.cpp | 8 +- modules/operserv/os_reload.cpp | 10 +- modules/operserv/os_session.cpp | 92 +++++------ modules/operserv/os_set.cpp | 112 ++++++++------ modules/operserv/os_shutdown.cpp | 16 +- modules/operserv/os_stats.cpp | 40 ++--- modules/operserv/os_sxline.cpp | 180 ++++++++++++---------- modules/operserv/os_update.cpp | 3 +- 104 files changed, 2132 insertions(+), 1527 deletions(-) (limited to 'modules') 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("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("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("minusers")); + const Anope::string &fantasycharacters = Config->GetModule("fantasy").Get("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 ¶m) 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("hideprivilegedcommands"), hide_registered_commands = Config->GetBlock("options").Get("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("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 &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("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 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.