summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--modules/protocol/inspircd11.cpp17
1 files changed, 8 insertions, 9 deletions
diff --git a/modules/protocol/inspircd11.cpp b/modules/protocol/inspircd11.cpp
index 1fc278284..356bbf146 100644
--- a/modules/protocol/inspircd11.cpp
+++ b/modules/protocol/inspircd11.cpp
@@ -811,15 +811,14 @@ bool event_fmode(const Anope::string &source, const std::vector<Anope::string> &
return true;
/* TS's are equal now, so we can proceed with parsing */
- std::vector<Anope::string> newparams;
- for (unsigned n = 0; n < params.size(); ++n)
- {
- if (n != 1)
- {
- newparams.push_back(params[n]);
- Log(LOG_DEBUG) << "Param: " << params[n];
- }
- }
+ std::vector<Anope::string> newparams; // channel, modes, ts
+ newparams.push_back(params[0]);
+ // For fun, modes sometimes get sent without a mode prefix
+ Anope::string modes = "+" + params[2];
+ for (unsigned n = 3; n < params.size(); ++n)
+ modes += " " + params[n];
+ newparams.push_back(modes);
+ newparams.push_back(params[1]);
return ircdmessage->OnMode(source, newparams);
}