diff options
Diffstat (limited to 'modules')
60 files changed, 636 insertions, 322 deletions
diff --git a/modules/botserv/assign.cpp b/modules/botserv/assign.cpp index a26b869fe..95691b6a9 100644 --- a/modules/botserv/assign.cpp +++ b/modules/botserv/assign.cpp @@ -207,7 +207,9 @@ class CommandBSSetNoBot : public Command source.Reply(_("No-bot mode is now \002off\002 for \002{0}\002."), ci->GetName()); } else + { this->OnSyntaxError(source, source.command); + } } bool OnHelp(CommandSource &source, const Anope::string &) override diff --git a/modules/botserv/bot.cpp b/modules/botserv/bot.cpp index 2e33b7ccb..30550df56 100644 --- a/modules/botserv/bot.cpp +++ b/modules/botserv/bot.cpp @@ -216,6 +216,7 @@ class CommandBSBot : public Command return; } +#warning "xline on the stack" /* The new nick is really different, so we remove the Q line for the old nick. */ //XLine x_del(bi->nick); //IRCD->SendSQLineDel(&x_del); @@ -373,7 +374,9 @@ class CommandBSBot : public Command this->DoDel(source, params); } else + { this->OnSyntaxError(source, ""); + } } bool OnHelp(CommandSource &source, const Anope::string &subcommand) override diff --git a/modules/botserv/info.cpp b/modules/botserv/info.cpp index 4de86643f..bc4db8b0f 100644 --- a/modules/botserv/info.cpp +++ b/modules/botserv/info.cpp @@ -76,9 +76,6 @@ class CommandBSInfo : public Command source.Reply(_("Information for channel \002{0}\002:"), ci->GetName()); info[_("Bot nick")] = ci->GetBot() ? ci->GetBot()->nick : _("not assigned yet"); - Anope::string enabled = Language::Translate(source.nc, _("Enabled")); - Anope::string disabled = Language::Translate(source.nc, _("Disabled")); - EventManager::Get()->Dispatch(&Event::ServiceBotEvent::OnServiceBot, source, bi, ci, info); std::vector<Anope::string> replies; @@ -88,7 +85,9 @@ class CommandBSInfo : public Command source.Reply(replies[i]); } else + { source.Reply(_("\002{0}\002 is not a valid bot or registered channel."), query); + } } bool OnHelp(CommandSource &source, const Anope::string &subcommand) override diff --git a/modules/botserv/kick.cpp b/modules/botserv/kick.cpp index 1b9d67fc7..4411ee4ed 100644 --- a/modules/botserv/kick.cpp +++ b/modules/botserv/kick.cpp @@ -898,7 +898,9 @@ class CommandBSKickFlood : public CommandBSKickBase source.Reply(_("Bot won't kick for \002flood\002 anymore.")); } else + { this->OnSyntaxError(source, params[1]); + } } bool OnHelp(CommandSource &source, const Anope::string &subcommand) override @@ -998,7 +1000,9 @@ class CommandBSKickRepeat : public CommandBSKickBase source.Reply(_("Bot won't kick for \002repeats\002 anymore.")); } else + { this->OnSyntaxError(source, params[1]); + } } bool OnHelp(CommandSource &source, const Anope::string &subcommand) override @@ -1110,7 +1114,9 @@ class CommandBSSetDontKickOps : public Command source.Reply(_("Bot \002will kick ops\002 on channel \002{0}\002."), ci->GetName()); } else + { this->OnSyntaxError(source, source.command); + } } bool OnHelp(CommandSource &source, const Anope::string &) override @@ -1174,7 +1180,9 @@ class CommandBSSetDontKickVoices : public Command source.Reply(_("Bot \002will kick voices\002 on channel %s."), ci->GetName().c_str()); } else + { this->OnSyntaxError(source, source.command); + } } bool OnHelp(CommandSource &source, const Anope::string &) override @@ -1402,7 +1410,9 @@ class BSKick : public Module info[_("Bad words kicker")] = enabled; } else + { info[_("Bad words kicker")] = disabled; + } if (kd && kd->GetBolds()) { @@ -1412,7 +1422,9 @@ class BSKick : public Module info[_("Bolds kicker")] = enabled; } else + { info[_("Bolds kicker")] = disabled; + } if (kd && kd->GetCaps()) { @@ -1422,7 +1434,9 @@ class BSKick : public Module info[_("Caps kicker")] = Anope::printf(_("%s (minimum %d/%d%%)"), enabled.c_str(), kd->GetCapsMin(), kd->GetCapsPercent()); } else + { info[_("Caps kicker")] = disabled; + } if (kd && kd->GetColors()) { @@ -1432,7 +1446,9 @@ class BSKick : public Module info[_("Colors kicker")] = enabled; } else + { info[_("Colors kicker")] = disabled; + } if (kd && kd->GetFlood()) { @@ -1442,7 +1458,9 @@ class BSKick : public Module info[_("Flood kicker")] = Anope::printf(_("%s (%d lines in %ds)"), enabled.c_str(), kd->GetFloodLines(), kd->GetFloodSecs()); } else + { info[_("Flood kicker")] = disabled; + } if (kd && kd->GetRepeat()) { @@ -1452,7 +1470,9 @@ class BSKick : public Module info[_("Repeat kicker")] = Anope::printf(_("%s (%d times)"), enabled.c_str(), kd->GetRepeatTimes()); } else + { info[_("Repeat kicker")] = disabled; + } if (kd && kd->GetReverses()) { @@ -1462,7 +1482,9 @@ class BSKick : public Module info[_("Reverses kicker")] = enabled; } else + { info[_("Reverses kicker")] = disabled; + } if (kd && kd->GetUnderlines()) { @@ -1472,7 +1494,9 @@ class BSKick : public Module info[_("Underlines kicker")] = enabled; } else + { info[_("Underlines kicker")] = disabled; + } if (kd && kd->GetItalics()) { @@ -1482,7 +1506,9 @@ class BSKick : public Module info[_("Italics kicker")] = enabled; } else + { info[_("Italics kicker")] = disabled; + } if (kd && kd->GetAmsgs()) { @@ -1492,7 +1518,9 @@ class BSKick : public Module info[_("AMSG kicker")] = enabled; } else + { info[_("AMSG kicker")] = disabled; + } if (kd && kd->GetDontKickOps()) info.AddOption(_("Ops protection")); diff --git a/modules/botserv/set.cpp b/modules/botserv/set.cpp index bb432e3f0..6ab429d97 100644 --- a/modules/botserv/set.cpp +++ b/modules/botserv/set.cpp @@ -191,7 +191,9 @@ class CommandBSSetPrivate : public Command source.Reply(_("Private mode of bot \002{0}\002 is now \002off\002."), bi->nick); } else + { this->OnSyntaxError(source, source.command); + } } bool OnHelp(CommandSource &source, const Anope::string &) override diff --git a/modules/chanserv/access.cpp b/modules/chanserv/access.cpp index ba9f2b5fb..82a11831f 100644 --- a/modules/chanserv/access.cpp +++ b/modules/chanserv/access.cpp @@ -656,30 +656,31 @@ class CommandCSLevels : public Command } if (level <= ChanServ::ACCESS_INVALID || level > ChanServ::ACCESS_FOUNDER) + { source.Reply(_("Level must be between \002{0}\002 and \002{1}\002 inclusive."), ChanServ::ACCESS_INVALID + 1, ChanServ::ACCESS_FOUNDER - 1); + return; + } + + ChanServ::Privilege *p = ChanServ::service ? ChanServ::service->FindPrivilege(what) : nullptr; + if (p == NULL) + { + CommandInfo *help = source.service->FindCommand("generic/help"); + if (help) + source.Reply(_("There is no such privilege \002{0}\002. See \002{0}{1} {2} {3}\002 for a list of valid settings."), + what, Config->StrictPrivmsg, source.service->nick, help->cname, source.command); + } else { - ChanServ::Privilege *p = ChanServ::service ? ChanServ::service->FindPrivilege(what) : nullptr; - if (p == NULL) - { - CommandInfo *help = source.service->FindCommand("generic/help"); - if (help) - source.Reply(_("There is no such privilege \002{0}\002. See \002{0}{1} {2} {3}\002 for a list of valid settings."), - what, Config->StrictPrivmsg, source.service->nick, help->cname, source.command); - } - else - { - bool override = !source.AccessFor(ci).HasPriv("FOUNDER"); - Log(override ? LOG_OVERRIDE : LOG_COMMAND, source, this, ci) << "to set " << p->name << " to level " << level; + bool override = !source.AccessFor(ci).HasPriv("FOUNDER"); + Log(override ? LOG_OVERRIDE : LOG_COMMAND, source, this, ci) << "to set " << p->name << " to level " << level; - ci->SetLevel(p->name, level); - EventManager::Get()->Dispatch(&Event::LevelChange::OnLevelChange, source, ci, p->name, level); + ci->SetLevel(p->name, level); + EventManager::Get()->Dispatch(&Event::LevelChange::OnLevelChange, source, ci, p->name, level); - if (level == ChanServ::ACCESS_FOUNDER) - source.Reply(_("Level for privilege \002{0}\002 on channel \002{1}\002 changed to \002founder only\002."), p->name, ci->GetName()); - else - source.Reply(_("Level for privilege \002{0}\002 on channel \002{1}\002 changed to \002{3}\002."), p->name, ci->GetName(), level); - } + if (level == ChanServ::ACCESS_FOUNDER) + source.Reply(_("Level for privilege \002{0}\002 on channel \002{1}\002 changed to \002founder only\002."), p->name, ci->GetName()); + else + source.Reply(_("Level for privilege \002{0}\002 on channel \002{1}\002 changed to \002{3}\002."), p->name, ci->GetName(), level); } } diff --git a/modules/chanserv/akick.cpp b/modules/chanserv/akick.cpp index ff7fb5b69..d253d6fb5 100644 --- a/modules/chanserv/akick.cpp +++ b/modules/chanserv/akick.cpp @@ -205,7 +205,9 @@ class CommandCSAKick : public Command mask += "#" + e.real; } else + { nc = na->GetAccount(); + } /* Check excepts BEFORE we get this far */ if (ci->c) diff --git a/modules/chanserv/clone.cpp b/modules/chanserv/clone.cpp index 96aa89bf4..8d0c1ce3a 100644 --- a/modules/chanserv/clone.cpp +++ b/modules/chanserv/clone.cpp @@ -90,7 +90,9 @@ public: return; } else + { override = true; + } } if (what.equals_ci("ALL")) diff --git a/modules/chanserv/entrymsg.cpp b/modules/chanserv/entrymsg.cpp index b607ba399..4f74834bd 100644 --- a/modules/chanserv/entrymsg.cpp +++ b/modules/chanserv/entrymsg.cpp @@ -161,27 +161,32 @@ class CommandEntryMessage : public Command std::vector<EntryMsg *> messages = ci->GetRefs<EntryMsg *>(); if (!message.is_pos_number_only()) + { source.Reply(("Entry message \002{0}\002 not found on channel \002{1}\002."), message, ci->GetName()); - else if (messages.empty()) + return; + } + + if (messages.empty()) + { source.Reply(_("Entry message list for \002{0}\002 is empty."), ci->GetName()); - else + return; + } + + try { - try + unsigned i = convertTo<unsigned>(message); + if (i > 0 && i <= messages.size()) { - unsigned i = convertTo<unsigned>(message); - if (i > 0 && i <= messages.size()) - { - messages[i - 1]->Delete(); - Log(source.AccessFor(ci).HasPriv("SET") ? LOG_COMMAND : LOG_OVERRIDE, source, this, ci) << "to remove a message"; - source.Reply(_("Entry message \002{0}\002 for \002{1]\002 deleted."), i, ci->GetName()); - } - else - throw ConvertException(); - } - catch (const ConvertException &) - { - source.Reply(_("Entry message \002{0}\002 not found on channel \002{1}\002."), message, ci->GetName()); + messages[i - 1]->Delete(); + Log(source.AccessFor(ci).HasPriv("SET") ? LOG_COMMAND : LOG_OVERRIDE, source, this, ci) << "to remove a message"; + source.Reply(_("Entry message \002{0}\002 for \002{1]\002 deleted."), i, ci->GetName()); } + else + throw ConvertException(); + } + catch (const ConvertException &) + { + source.Reply(_("Entry message \002{0}\002 not found on channel \002{1}\002."), message, ci->GetName()); } } diff --git a/modules/chanserv/flags.cpp b/modules/chanserv/flags.cpp index 732e3aa8a..446eeddd0 100644 --- a/modules/chanserv/flags.cpp +++ b/modules/chanserv/flags.cpp @@ -431,9 +431,13 @@ class CommandCSFlags : public Command } if (is_list) + { this->DoList(source, ci, params); + } else if (cmd.equals_ci("CLEAR")) + { this->DoClear(source, ci); + } else { Anope::string mask, flags; diff --git a/modules/chanserv/kick.cpp b/modules/chanserv/kick.cpp index 0fd8979d4..4752d5940 100644 --- a/modules/chanserv/kick.cpp +++ b/modules/chanserv/kick.cpp @@ -132,7 +132,9 @@ class CommandCSKick : public Command source.Reply(_("No users on\002{0}\002 match \002{1}\002."), c->name, mask); } else + { source.Reply(_("\002{0}\002 isn't currently in use."), target); + } } bool OnHelp(CommandSource &source, const Anope::string &subcommand) override diff --git a/modules/chanserv/list.cpp b/modules/chanserv/list.cpp index 75ffdb67c..c76d8661c 100644 --- a/modules/chanserv/list.cpp +++ b/modules/chanserv/list.cpp @@ -227,7 +227,9 @@ class CommandCSSetPrivate : public Command source.Reply(_("Private option for \002{0}\002 is now \002off\002."), ci->GetName()); } else + { this->OnSyntaxError(source, "PRIVATE"); + } } bool OnHelp(CommandSource &source, const Anope::string &) override diff --git a/modules/chanserv/log.cpp b/modules/chanserv/log.cpp index b20427bc0..32025e6b0 100644 --- a/modules/chanserv/log.cpp +++ b/modules/chanserv/log.cpp @@ -316,7 +316,9 @@ public: source.Reply(_("Logging is now active for command \002{0}\002 on \002{1}\002, using log method \002{2}{3}{4}\002."), !command_name.empty() ? command_name : service_name, bi ? bi->nick : "any service", method, extra.empty() ? "" : " ", extra); } else + { this->OnSyntaxError(source, ""); + } } bool OnHelp(CommandSource &source, const Anope::string &subcommand) override @@ -406,7 +408,9 @@ class CSLog : public Module log->SetCommandName(d.command); } else + { log->SetServiceName(d.command); + } spacesepstream sep(d.method); Anope::string method, extra; diff --git a/modules/chanserv/main/chanserv.cpp b/modules/chanserv/main/chanserv.cpp index dc44173a0..59181e806 100644 --- a/modules/chanserv/main/chanserv.cpp +++ b/modules/chanserv/main/chanserv.cpp @@ -256,7 +256,9 @@ class ChanServCore : public Module defaults.push_back("SIGNKICK"); } else if (defaults[0].equals_ci("none")) + { defaults.clear(); + } always_lower = conf->GetModule(this)->Get<bool>("always_lower_ts"); } diff --git a/modules/chanserv/mode.cpp b/modules/chanserv/mode.cpp index 4ff1ce1d3..7a9fd38d6 100644 --- a/modules/chanserv/mode.cpp +++ b/modules/chanserv/mode.cpp @@ -323,7 +323,8 @@ class CommandCSMode : public Command source.Reply(_("Unknown mode character \002{0}\002 ignored."), modes[i]); break; } - else if (u && !cm->CanSet(u)) + + if (u && !cm->CanSet(u)) { source.Reply(_("You may not (un)lock mode \002{0}\002."), modes[i]); break; @@ -331,27 +332,36 @@ class CommandCSMode : public Command Anope::string mode_param; if (((cm->type == MODE_STATUS || cm->type == MODE_LIST) && !sep.GetToken(mode_param)) || (cm->type == MODE_PARAM && adding && !sep.GetToken(mode_param))) + { source.Reply(_("Missing parameter for mode \002{0}\002."), cm->mchar); - else if (cm->type == MODE_LIST && ci->c && IRCD->GetMaxListFor(ci->c) && ci->c->HasMode(cm->name) >= IRCD->GetMaxListFor(ci->c)) + break; + } + + if (cm->type == MODE_LIST && ci->c && IRCD->GetMaxListFor(ci->c) && ci->c->HasMode(cm->name) >= IRCD->GetMaxListFor(ci->c)) + { source.Reply(_("List for mode \002{0}\002 is full."), cm->mchar); - else if (ci->GetRefs<ModeLock *>().size() >= Config->GetModule(this->GetOwner())->Get<unsigned>("max", "32")) + break; + } + + if (ci->GetRefs<ModeLock *>().size() >= Config->GetModule(this->GetOwner())->Get<unsigned>("max", "32")) + { source.Reply(_("The mode lock list of \002{0}\002 is full."), ci->GetName()); + break; + } + + mlocks->SetMLock(ci, cm, adding, mode_param, source.GetNick()); + + if (adding) + { + pos += cm->mchar; + if (!mode_param.empty()) + pos_params += " " + mode_param; + } else { - mlocks->SetMLock(ci, cm, adding, mode_param, source.GetNick()); - - if (adding) - { - pos += cm->mchar; - if (!mode_param.empty()) - pos_params += " " + mode_param; - } - else - { - neg += cm->mchar; - if (!mode_param.empty()) - neg_params += " " + mode_param; - } + neg += cm->mchar; + if (!mode_param.empty()) + neg_params += " " + mode_param; } } } @@ -368,7 +378,9 @@ class CommandCSMode : public Command Log(override ? LOG_OVERRIDE : LOG_COMMAND, source, this, ci) << "to lock " << reply; } else if (needreply) + { source.Reply(_("Nothing to do.")); + } if (ci->c) ci->c->CheckModes(); @@ -400,7 +412,8 @@ class CommandCSMode : public Command source.Reply(_("Unknown mode character \002{0}\002 ignored."), modes[i]); break; } - else if (u && !cm->CanSet(u)) + + if (u && !cm->CanSet(u)) { source.Reply(_("You may not (un)lock mode \002{0}\002."), modes[i]); break; @@ -408,18 +421,21 @@ class CommandCSMode : public Command Anope::string mode_param; if (cm->type != MODE_REGULAR && !sep.GetToken(mode_param)) + { source.Reply(_("Missing parameter for mode \002{0}\002."), cm->mchar); + break; + } + + if (mlocks->RemoveMLock(ci, cm, adding, mode_param)) + { + if (!mode_param.empty()) + mode_param = " " + mode_param; + source.Reply(_("\002{0}{1}{2}\002 has been unlocked from \002{3}\002."), adding == 1 ? '+' : '-', cm->mchar, mode_param, ci->GetName()); + Log(override ? LOG_OVERRIDE : LOG_COMMAND, source, this, ci) << "to unlock " << (adding ? '+' : '-') << cm->mchar << mode_param; + } else { - if (mlocks->RemoveMLock(ci, cm, adding, mode_param)) - { - if (!mode_param.empty()) - mode_param = " " + mode_param; - source.Reply(_("\002{0}{1}{2}\002 has been unlocked from \002{3}\002."), adding == 1 ? '+' : '-', cm->mchar, mode_param, ci->GetName()); - Log(override ? LOG_OVERRIDE : LOG_COMMAND, source, this, ci) << "to unlock " << (adding ? '+' : '-') << cm->mchar << mode_param; - } - else - source.Reply(_("\002{0}{1}\002 is not locked on \002{2}\002."), adding == 1 ? '+' : '-', cm->mchar, ci->GetName()); + source.Reply(_("\002{0}{1}\002 is not locked on \002{2}\002."), adding == 1 ? '+' : '-', cm->mchar, ci->GetName()); } } } @@ -462,7 +478,9 @@ class CommandCSMode : public Command source.Reply(replies[i]); } else + { this->OnSyntaxError(source, subcommand); + } } void DoSet(CommandSource &source, ChanServ::Channel *ci, const std::vector<Anope::string> ¶ms) @@ -646,7 +664,9 @@ class CommandCSMode : public Command ChannelMode *cm; if (param.length() == 1) + { cm = ModeManager::FindChannelModeByChar(param[0]); + } else { cm = ModeManager::FindChannelModeByName(param.upper()); @@ -703,9 +723,13 @@ class CommandCSMode : public Command this->DoLock(source, ci, params); } else if (!ci->c) + { source.Reply(_("Channel \002{0}\002 doesn't exist."), ci->GetName()); + } else if (subcommand.equals_ci("SET") & |
