void ModeHandler::OnParameterMissing(User* user, User* dest, Channel* channel)
{
- const std::string message = InspIRCd::Format("You must specify a parameter for the %s mode", name.c_str());
+ std::string message = InspIRCd::Format("You must specify a parameter for the %s mode.", name.c_str());
+ if (!syntax.empty())
+ message.append(InspIRCd::Format(" Syntax: %s.", syntax.c_str()));
+
if (channel)
user->WriteNumeric(Numerics::InvalidModeParameter(channel, this, "*", message));
else
, selfremove(true)
{
list = true;
+ syntax = "<nick>";
}
ModResult PrefixMode::AccessCheck(User* src, Channel*, std::string& value, bool adding)
const bool needs_param = mh->NeedsParam(adding);
std::string& parameter = mcitem.param;
- // crop mode parameter size to 250 characters
- if (parameter.length() > 250 && adding)
- parameter.erase(250);
+ // crop mode parameter size to MODE_PARAM_MAX characters
+ if (parameter.length() > MODE_PARAM_MAX && adding)
+ parameter.erase(MODE_PARAM_MAX);
ModResult MOD_RESULT;
FIRST_MOD_RESULT(OnRawMode, MOD_RESULT, (user, chan, mh, parameter, adding));
if (!mh)
{
/* No mode handler? Unknown mode character then. */
- user->WriteNumeric(type == MODETYPE_CHANNEL ? ERR_UNKNOWNMODE : ERR_UNKNOWNSNOMASK, modechar, "is unknown mode char to me");
+ user->WriteNumeric(type == MODETYPE_CHANNEL ? ERR_UNKNOWNMODE : ERR_UNKNOWNSNOMASK, modechar, "is an unknown mode character");
continue;
}