summaryrefslogtreecommitdiff
path: root/modules/protocol/inspircd.cpp
diff options
context:
space:
mode:
authorSadie Powell <sadie@witchery.services>2024-10-02 11:11:16 +0100
committerSadie Powell <sadie@witchery.services>2024-10-02 11:12:24 +0100
commit8232759a924e5bd8f7fa5a425dcb930bba4ef3fb (patch)
treeb112914c4a945e04bb35e4de0e05deaca33a6b4d /modules/protocol/inspircd.cpp
parentb006966d25888857f777892fd3412d8c6da6af5d (diff)
Change Channel::SetModesInternal to take a split mode change.
Diffstat (limited to 'modules/protocol/inspircd.cpp')
-rw-r--r--modules/protocol/inspircd.cpp26
1 files changed, 4 insertions, 22 deletions
diff --git a/modules/protocol/inspircd.cpp b/modules/protocol/inspircd.cpp
index 893aca1da..334d9609e 100644
--- a/modules/protocol/inspircd.cpp
+++ b/modules/protocol/inspircd.cpp
@@ -2056,15 +2056,6 @@ struct IRCDMessageFJoin final
void Run(MessageSource &source, const std::vector<Anope::string> &params, const Anope::map<Anope::string> &tags) override
{
- Anope::string modes;
- if (params.size() >= 3)
- {
- for (unsigned i = 2; i < params.size() - 1; ++i)
- modes += " " + params[i];
- if (!modes.empty())
- modes.erase(modes.begin());
- }
-
std::list<Message::Join::SJoinUser> users;
spacesepstream sep(params[params.size() - 1]);
@@ -2102,7 +2093,7 @@ struct IRCDMessageFJoin final
}
auto ts = IRCD->ExtractTimestamp(params[1]);
- Message::Join::SJoin(source, params[0], ts, modes, users);
+ Message::Join::SJoin(source, params[0], ts, params[2], { params.begin() + 3, params.end() - 1 }, users);
}
};
@@ -2114,15 +2105,10 @@ struct IRCDMessageFMode final
void Run(MessageSource &source, const std::vector<Anope::string> &params, const Anope::map<Anope::string> &tags) override
{
/* :source FMODE #test 12345678 +nto foo */
-
- Anope::string modes = params[2];
- for (unsigned n = 3; n < params.size(); ++n)
- modes += " " + params[n];
-
Channel *c = Channel::Find(params[0]);
auto ts = IRCD->ExtractTimestamp(params[1]);
if (c)
- c->SetModesInternal(source, modes, ts);
+ c->SetModesInternal(source, params[2], { params.begin() + 3, params.end() }, ts);
}
};
@@ -2198,7 +2184,7 @@ struct IRCDMessageIJoin final
std::list<Message::Join::SJoinUser> users;
users.push_back(user);
- Message::Join::SJoin(source, params[0], chants, "", users);
+ Message::Join::SJoin(source, params[0], chants, "", {}, users);
}
};
@@ -2250,12 +2236,8 @@ struct IRCDMessageMode final
{
Channel *c = Channel::Find(params[0]);
- Anope::string modes = params[1];
- for (unsigned n = 2; n < params.size(); ++n)
- modes += " " + params[n];
-
if (c)
- c->SetModesInternal(source, modes);
+ c->SetModesInternal(source, params[2], { params.begin() + 3, params.end() });
}
else
{