aboutsummaryrefslogtreecommitdiffstats
path: root/src/channels.cpp
diff options
context:
space:
mode:
authorGravatar Daniel De Graaf2010-02-20 15:53:41 -0600
committerGravatar Daniel De Graaf2010-08-03 17:32:36 -0400
commit34f5572364754af2d9287564df4277fb3dd691f2 (patch)
treead482c5940988f2c527d56efa13bb686a0d17463 /src/channels.cpp
parentRemove dead code (diff)
Force granted prefixes like +o to be specified in <options:defaultmodes>
Diffstat (limited to 'src/channels.cpp')
-rw-r--r--src/channels.cpp6
1 files changed, 4 insertions, 2 deletions
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);