diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/config.cpp | 4 | ||||
-rw-r--r-- | src/servers.cpp | 4 |
2 files changed, 6 insertions, 2 deletions
diff --git a/src/config.cpp b/src/config.cpp index bbfb6890d..b6fd37b57 100644 --- a/src/config.cpp +++ b/src/config.cpp @@ -972,7 +972,9 @@ static bool DoServices(ServerConfig *config, const Anope::string &, const Anope: /* Set the new modes */ for (unsigned j = 0; j < want_modes.length(); ++j) { - ChannelMode *cm = ModeManager::FindChannelModeByChar(ModeManager::GetStatusChar(want_modes[j])); + ChannelMode *cm = ModeManager::FindChannelModeByChar(want_modes[j]); + if (cm == NULL) + cm = ModeManager::FindChannelModeByChar(ModeManager::GetStatusChar(want_modes[j])); if (cm && cm->Type == MODE_STATUS) c->SetMode(bi, cm, bi->nick); } diff --git a/src/servers.cpp b/src/servers.cpp index 835d1595b..582fb6908 100644 --- a/src/servers.cpp +++ b/src/servers.cpp @@ -70,7 +70,9 @@ Server::Server(Server *uplink, const Anope::string &name, unsigned hops, const A Anope::string want_modes = bi->botchannels[i].substr(0, h); for (unsigned j = 0; j < want_modes.length(); ++j) { - ChannelMode *cm = ModeManager::FindChannelModeByChar(ModeManager::GetStatusChar(want_modes[j])); + ChannelMode *cm = ModeManager::FindChannelModeByChar(want_modes[j]); + if (cm == NULL) + cm = ModeManager::FindChannelModeByChar(ModeManager::GetStatusChar(want_modes[j])); if (cm && cm->Type == MODE_STATUS) c->SetModeInternal(cm, bi->nick); } |