From 34f5572364754af2d9287564df4277fb3dd691f2 Mon Sep 17 00:00:00 2001 From: Daniel De Graaf Date: Sat, 20 Feb 2010 15:53:41 -0600 Subject: Force granted prefixes like +o to be specified in --- src/channels.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'src/channels.cpp') diff --git a/src/channels.cpp b/src/channels.cpp index 439d609f6..ac54b1aed 100644 --- a/src/channels.cpp +++ b/src/channels.cpp @@ -194,6 +194,8 @@ void Channel::SetDefaultModes() ModeHandler* mode = ServerInstance->Modes->FindMode(*n, MODETYPE_CHANNEL); if (mode) { + if (mode->GetPrefixRank()) + continue; if (mode->GetNumParams(true)) list.GetToken(parameter); else @@ -263,7 +265,7 @@ Channel* Channel::JoinUser(User *user, const char* cn, bool override, const char } else { - privs = "o"; + privs = ServerInstance->Config->DefaultModes.substr(0, ServerInstance->Config->DefaultModes.find(' ')); created_by_local = true; } @@ -371,7 +373,7 @@ Channel* Channel::ForceChan(Channel* Ptr, User* user, const std::string &privs, { const char status = *x; ModeHandler* mh = ServerInstance->Modes->FindMode(status, MODETYPE_CHANNEL); - if (mh) + if (mh && mh->GetPrefixRank()) { /* Set, and make sure that the mode handler knows this mode was now set */ Ptr->SetPrefix(user, mh->GetModeChar(), true); -- cgit v1.3.1-10-gc9f91