+ std::string Result;
+ if (Data.wanted.size() > 0)
+ Result = irc::stringjoiner(" ", Data.wanted, 0, Data.wanted.size() - 1).GetJoined();
+ else
+ Result = "";
+
+ user->WriteServ("CAP * %s :%s", subcommand.c_str(), Result.c_str());
+ }
+ else if (subcommand == "CLEAR")
+ {
+ CapData Data;
+
+ Data.type = subcommand;
+ Data.user = user;
+ Data.creator = this->Creator;
+
+ user->Extend("CAP_REGHOLD");
+ Event event((char*) &Data, (Module*)this->Creator, "cap_clear");
+ event.Send(this->ServerInstance);
+
+ std::string Result = irc::stringjoiner(" ", Data.ack, 0, Data.ack.size() - 1).GetJoined();
+ user->WriteServ("CAP * ACK :%s", Result.c_str());