diff options
author | DukePyrolator <DukePyrolator@anope.org> | 2010-12-30 06:44:18 +0100 |
---|---|---|
committer | DukePyrolator <DukePyrolator@anope.org> | 2010-12-30 06:44:18 +0100 |
commit | 3019ba6f434c3578a9bde6c941eb98828db3c221 (patch) | |
tree | 82de678563a4fb1a3602a70001cfad87fc67f70d /src | |
parent | 2784cd17fc5e0ee4ad0571a6b9e131fa38a93a65 (diff) |
restoring topic for permchans on burst
Diffstat (limited to 'src')
-rw-r--r-- | src/chanserv.cpp | 4 | ||||
-rw-r--r-- | src/regchannel.cpp | 3 |
2 files changed, 4 insertions, 3 deletions
diff --git a/src/chanserv.cpp b/src/chanserv.cpp index 43d4d3b61..761f6cfbb 100644 --- a/src/chanserv.cpp +++ b/src/chanserv.cpp @@ -115,7 +115,7 @@ Anope::string get_mlock_modes(ChannelInfo *ci, int complete) { const ModeLock &ml = it->second; ChannelMode *cm = ModeManager::FindChannelModeByName(ml.name); - if (!cm) + if (!cm || cm->Type == MODE_LIST || cm->Type == MODE_STATUS) continue; if (ml.set) @@ -123,7 +123,7 @@ Anope::string get_mlock_modes(ChannelInfo *ci, int complete) else neg += cm->ModeChar; - if (complete && !ml.param.empty() && (cm->Type == MODE_PARAM || cm->Type == MODE_LIST)) + if (complete && !ml.param.empty() && cm->Type == MODE_PARAM) params += " " + ml.param; } diff --git a/src/regchannel.cpp b/src/regchannel.cpp index 7ff3e753a..2ad4f8b12 100644 --- a/src/regchannel.cpp +++ b/src/regchannel.cpp @@ -567,6 +567,7 @@ void ChannelInfo::LoadMLock() { /* At this point, CMODE_PERM *must* be locked on the channel, so this is fine */ ircdproto->SendChannel(this->c, get_mlock_modes(this, true)); + this->c->SetModesInternal(NULL, get_mlock_modes(this, true)); } else { @@ -577,7 +578,7 @@ void ChannelInfo::LoadMLock() } check_modes(this->c); - this->CheckTopic(); + this->RestoreTopic(); } } |