+ bool RemoveStatus(std::string prefix, std::deque<std::string> ¶ms)
+ {
+ if (params.size() < 1)
+ return true;
+
+ chanrec* c = Instance->FindChan(params[0]);
+
+ if (c)
+ {
+ CUList *ulist = c->GetUsers();
+ for (CUList::iterator i = ulist->begin(); i != ulist->end(); i++)
+ {
+ std::string modesequence = Instance->Modes->ModeString(i->second, c);
+ if (modesequence.length())
+ {
+ modesequence = "-" + modesequence;
+
+ std::deque<std::string> items;
+ const char* y[127];
+ unsigned int z = 0;
+ std::string x = "*";
+ irc::spacesepstream sep(modesequence);
+
+ while ((x = sep.GetToken()) != "")
+ {
+ if (!z)
+ {
+ y[z++] = c->name;
+ items.push_back(c->name);
+ items.push_back(ConvToStr(c->age));
+ }
+ items.push_back(x);
+ y[z++] = (items.end() - 1)->c_str();
+ }
+
+ DoOneToMany(Instance->Config->ServerName, "FMODE", items);
+ userrec* n = new userrec(Instance);
+ n->SetFd(FD_MAGIC_NUMBER);
+ Instance->SendMode(y,z,n);
+ delete n;
+ }
+ }
+ }
+ return true;
+ }
+