summaryrefslogtreecommitdiff
path: root/src/servers.cpp
diff options
context:
space:
mode:
authorSadie Powell <sadie@witchery.services>2024-10-02 15:00:58 +0100
committerSadie Powell <sadie@witchery.services>2024-10-02 23:54:36 +0100
commit2f745132461080b4773e878d0cafb68de99a7e67 (patch)
tree01aba256ac36c6404241370de1bb67d8b9d1cd94 /src/servers.cpp
parent94dbb1959308116c4edf411eb5e88d7ad871286d (diff)
Change User::SetModesInternal to take a split mode change.
Diffstat (limited to 'src/servers.cpp')
-rw-r--r--src/servers.cpp10
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('#');