diff options
Diffstat (limited to 'src/servers.cpp')
-rw-r--r-- | src/servers.cpp | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/src/servers.cpp b/src/servers.cpp index 1435ee743..ca418aec0 100644 --- a/src/servers.cpp +++ b/src/servers.cpp @@ -50,9 +50,15 @@ Server::Server(Server *up, const Anope::string &sname, unsigned shops, const Ano /* Now do mode related stuff as we know what modes exist .. */ for (auto &[_, bi] : *BotListByNick) { - Anope::string modes = !bi->botmodes.empty() ? ("+" + bi->botmodes) : IRCD->DefaultPseudoclientModes; + spacesepstream modesep(bi->botmodes.empty() ? IRCD->DefaultPseudoclientModes : "+" + bi->botmodes); - bi->SetModesInternal(bi, modes); + Anope::string modechars; + modesep.GetToken(modechars); + + std::vector<Anope::string> modeparams; + modesep.GetTokens(modeparams); + + bi->SetModesInternal(bi, modechars, modeparams); for (const auto &botchannel : bi->botchannels) { size_t h = botchannel.find('#'); |