/* ************************************************************************** */ /* */ /* ::: :::::::: */ /* invclient_ite.cpp :+: :+: :+: */ /* +:+ +:+ +:+ */ /* By: iherman- > target >> channel; if (!client.isRegistered()) return (client.send(":" SERVER_NAME " 451 * :You have not registered\r\n")); if (target.empty() || channel.empty()) { return client.send(":" SERVER_NAME " 461 * INVITE :Not enough parameters\r\n"); } // verify target exists std::map::iterator client_it = clients_.begin(); for (; client_it != clients_.end(); ++client_it) { if (client_it->second.getNick() == target) break; } if (client_it == clients_.end()) { client.send(":" SERVER_NAME " 401 " + target + " :No such nick\r\n"); return ; } // verify channel exist & user is on channel std::map::iterator channel_it = channels_.find(channel); if (channel_it == channels_.end()) { client.send(":" SERVER_NAME " 401 " + target + " :No such channel\r\n"); return ; } if (!channel_it->second.hasMember(client.getFd())) { client.send(":" SERVER_NAME " 442 " + channel + " :You are not on that channel\r\n"); return ; } if (channel_it->second.hasMember(client_it->second.getFd())) { client.send(":" SERVER_NAME " 443 " + channel + " :is already on channel\r\n"); return ; } if (channel_it->second.isInviteOnly() && !channel_it->second.hasOperator(client.getFd())) { client.send(":" SERVER_NAME " 482 " + channel + ":You're not channel operator\r\n"); return ; } client_it->second.send("YOUVE BEEN INVITED YAAAAAAAYYYYY!!!!!!"); channel_it->second.inviteMember(client_it->second); }