diff options
author | Adam <Adam@anope.org> | 2012-05-14 22:30:03 -0400 |
---|---|---|
committer | Adam <Adam@anope.org> | 2012-05-14 22:30:03 -0400 |
commit | 0a8d46b538e14d358c80501c317ed9610f1fa508 (patch) | |
tree | d58333a4c7b2c48152ccb9291aca1d09bb656548 | |
parent | a84226edf0368aab581fcd1365a0cbff6e0c5a4a (diff) |
Fixed parsing FMODE on inspircd 1.1
-rw-r--r-- | modules/protocol/inspircd11.cpp | 17 |
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); } |