From 0a8d46b538e14d358c80501c317ed9610f1fa508 Mon Sep 17 00:00:00 2001 From: Adam Date: Mon, 14 May 2012 22:30:03 -0400 Subject: Fixed parsing FMODE on inspircd 1.1 --- modules/protocol/inspircd11.cpp | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) (limited to 'modules/protocol') 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 & return true; /* TS's are equal now, so we can proceed with parsing */ - std::vector 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 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); } -- cgit