Files
irc/commands/privmsg.cpp
2026-04-19 11:39:19 +02:00

41 lines
1.5 KiB
C++

/* ************************************************************************** */
/* */
/* ::: :::::::: */
/* privmsg.cpp :+: :+: :+: */
/* +:+ +:+ +:+ */
/* By: aortigos <aortigos@student.42malaga.com +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2026/04/17 19:02:55 by aortigos #+# #+# */
/* Updated: 2026/04/19 11:39:04 by aortigos ### ########.fr */
/* */
/* ************************************************************************** */
#include "../Server/Server.hpp"
void Server::cmd_privmsg(int fd, std::istringstream &ss)
{
std::string channel;
std::string message;
ss >> channel;
std::getline(ss, message);
message += "\r\n";
if(channels.find(channel) == channels.end()
|| !channels[channel].isMember(fd))
{
std::string msg = "No perteneces a ese canal\r\n";
send(fd, msg.c_str(), msg.size(), 0);
return ;
}
std::vector<int> members = channels[channel].getMembers();
// iterador para recorrer los miembros e ir enviandoles el mensaje
for (size_t i = 0; i < members.size(); i++)
{
if (members[i] != fd)
send(members[i], message.c_str(), message.size(), 0);
}
}