CmdResult Handle (const std::vector<std::string> ¶meters, User *user)
{
- irc::string subcommand = parameters[0].c_str();
+ std::string subcommand(parameters[0].length(), ' ');
+ std::transform(parameters[0].begin(), parameters[0].end(), subcommand.begin(), ::toupper);
if (subcommand == "REQ")
{
while (cap_stream.GetToken(cap_))
{
+ std::transform(cap_.begin(), cap_.end(), cap_.begin(), ::tolower);
Data.wanted.push_back(cap_);
}
if (Data.ack.size() > 0)
{
- std::string AckResult = irc::stringjoiner(Data.ack).GetJoined();
- user->WriteServ("CAP %s ACK :%s", user->nick.c_str(), AckResult.c_str());
+ std::string AckResult = irc::stringjoiner(Data.ack);
+ user->WriteCommand("CAP", "ACK :" + AckResult);
}
if (Data.wanted.size() > 0)
{
- std::string NakResult = irc::stringjoiner(Data.wanted).GetJoined();
- user->WriteServ("CAP %s NAK :%s", user->nick.c_str(), NakResult.c_str());
+ std::string NakResult = irc::stringjoiner(Data.wanted);
+ user->WriteCommand("CAP", "NAK :" + NakResult);
}
}
else if (subcommand == "END")
reghold.set(user, 1);
Data.Send();
- std::string Result = irc::stringjoiner(Data.wanted).GetJoined();
- user->WriteServ("CAP %s %s :%s", user->nick.c_str(), subcommand.c_str(), Result.c_str());
+ std::string Result = irc::stringjoiner(Data.wanted);
+ user->WriteCommand("CAP", subcommand + " :" + Result);
}
else if (subcommand == "CLEAR")
{
reghold.set(user, 1);
Data.Send();
- std::string Result = irc::stringjoiner(Data.ack).GetJoined();
- user->WriteServ("CAP %s ACK :%s", user->nick.c_str(), Result.c_str());
+ std::string Result = irc::stringjoiner(Data.ack);
+ user->WriteCommand("CAP", "ACK :" + Result);
}
else
{