ModeHandler::~ModeHandler()
{
if (ServerInstance && ServerInstance->Modes && ServerInstance->Modes->FindMode(mode, m_type) == this)
- ServerInstance->Logs->Log("MODE", DEBUG, "ERROR: Destructor for mode %c called while not culled", mode);
+ ServerInstance->Logs->Log("MODE", ERROR, "ERROR: Destructor for mode %c called while still registered", mode);
}
bool ModeHandler::IsListMode()
return MODEACTION_DENY;
}
-ModePair ModeHandler::ModeSet(User*, User* dest, Channel* channel, const std::string&)
-{
- if (dest)
- {
- return std::make_pair(dest->IsModeSet(this->mode), "");
- }
- else
- {
- return std::make_pair(channel->IsModeSet(this->mode), "");
- }
-}
-
void ModeHandler::DisplayList(User*, Channel*)
{
}
if (IS_OPER(user))
{
user->WriteNumeric(ERR_NOPRIVILEGES, "%s :Permission Denied - Oper type %s does not have access to set %s mode %c",
- user->nick.c_str(), irc::Spacify(user->oper.c_str()), type == MODETYPE_CHANNEL ? "channel" : "user", modechar);
+ user->nick.c_str(), user->oper->NameStr(), type == MODETYPE_CHANNEL ? "channel" : "user", modechar);
}
else
{
return NULL;
}
-std::string ModeParser::ModeString(User* user, Channel* channel, bool nick_suffix)
-{
- std::string types;
- std::string pars;
-
- if (!channel || !user)
- return "";
-
- for (unsigned char mode = 'A'; mode <= 'z'; mode++)
- {
- unsigned char pos = (mode-65) | MASK_CHANNEL;
- ModeHandler* mh = modehandlers[pos];
- if ((mh) && (mh->GetNumParams(true)) && (mh->GetNumParams(false)))
- {
- ModePair ret;
- ret = mh->ModeSet(NULL, user, channel, user->nick);
- if ((ret.first) && (ret.second == user->nick))
- {
- if (nick_suffix)
- {
- pars.append(" ");
- pars.append(user->nick);
- }
- types.push_back(mh->GetModeChar());
- }
- }
- }
-
- if (nick_suffix)
- return types+pars;
- else
- return types;
-}
-
std::string ModeParser::GiveModeList(ModeMasks m)
{
std::string type1; /* Listmodes EXCEPT those with a prefix */
return type1 + "," + type2 + "," + type3 + "," + type4;
}
-std::string ModeParser::BuildPrefixes()
+std::string ModeParser::BuildPrefixes(bool lettersAndModes)
{
std::string mletters;
std::string mprefixes;
mprefixes = mprefixes + n->second.second;
}
- return "(" + mprefixes + ")" + mletters;
+ return lettersAndModes ? "(" + mprefixes + ")" + mletters : mletters;
}
bool ModeParser::AddModeWatcher(ModeWatcher* mw)