Merge branch 'master' of github.com:Namonay/42_irc

This commit is contained in:
2024-01-24 21:57:12 +01:00
3 changed files with 36 additions and 7 deletions

View File

@@ -6,7 +6,7 @@
/* By: vvaas <vvaas@student.42angouleme.fr> +#+ +:+ +#+ */ /* By: vvaas <vvaas@student.42angouleme.fr> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */ /* +#+#+#+#+#+ +#+ */
/* Created: 2024/01/21 09:12:28 by maldavid #+# #+# */ /* Created: 2024/01/21 09:12:28 by maldavid #+# #+# */
/* Updated: 2024/01/24 15:14:05 by maldavid ### ########.fr */ /* Updated: 2024/01/24 19:57:00 by maldavid ### ########.fr */
/* */ /* */
/******************************************************************************/ /******************************************************************************/
@@ -54,6 +54,7 @@ namespace irc
void handleQuit(unstd::SharedPtr<class Client> client, const class Message& msg); void handleQuit(unstd::SharedPtr<class Client> client, const class Message& msg);
void handlePart(unstd::SharedPtr<class Client> client, const class Message& msg); void handlePart(unstd::SharedPtr<class Client> client, const class Message& msg);
void handleJoin(unstd::SharedPtr<class Client> client, const class Message& msg); void handleJoin(unstd::SharedPtr<class Client> client, const class Message& msg);
void handleInvite(unstd::SharedPtr<class Client> client, const class Message& msg);
void handlePrivMsg(unstd::SharedPtr<class Client> client, const class Message& msg); void handlePrivMsg(unstd::SharedPtr<class Client> client, const class Message& msg);
void handleNotice(unstd::SharedPtr<class Client> client, const class Message& msg); void handleNotice(unstd::SharedPtr<class Client> client, const class Message& msg);
void handleKick(unstd::SharedPtr<class Client> client, const class Message& msg); void handleKick(unstd::SharedPtr<class Client> client, const class Message& msg);

View File

@@ -6,7 +6,7 @@
/* By: vvaas <vvaas@student.42angouleme.fr> +#+ +:+ +#+ */ /* By: vvaas <vvaas@student.42angouleme.fr> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */ /* +#+#+#+#+#+ +#+ */
/* Created: 2024/01/21 09:31:17 by maldavid #+# #+# */ /* Created: 2024/01/21 09:31:17 by maldavid #+# #+# */
/* Updated: 2024/01/24 19:06:59 by vvaas ### ########.fr */ /* Updated: 2024/01/24 19:56:43 by maldavid ### ########.fr */
/* */ /* */
/******************************************************************************/ /******************************************************************************/
@@ -141,6 +141,8 @@ namespace irc
handlePart(client, msg); handlePart(client, msg);
else if(msg.getCmd() == "JOIN") else if(msg.getCmd() == "JOIN")
handleJoin(client, msg); handleJoin(client, msg);
else if(msg.getCmd() == "INVITE")
handlePrivMsg(client, msg);
else if(msg.getCmd() == "PRIVMSG") else if(msg.getCmd() == "PRIVMSG")
handlePrivMsg(client, msg); handlePrivMsg(client, msg);
else if(msg.getCmd() == "NOTICE") else if(msg.getCmd() == "NOTICE")

View File

@@ -6,7 +6,7 @@
/* By: vvaas <vvaas@student.42angouleme.fr> +#+ +:+ +#+ */ /* By: vvaas <vvaas@student.42angouleme.fr> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */ /* +#+#+#+#+#+ +#+ */
/* Created: 2024/01/22 17:31:06 by maldavid #+# #+# */ /* Created: 2024/01/22 17:31:06 by maldavid #+# #+# */
/* Updated: 2024/01/24 21:28:29 by vvaas ### ########.fr */ /* Updated: 2024/01/24 21:57:04 by vvaas ### ########.fr */
/* */ /* */
/******************************************************************************/ /******************************************************************************/
@@ -182,7 +182,6 @@ namespace irc
client->sendCode(ERR_NOTEXTTOSEND, "No text to send\n"); client->sendCode(ERR_NOTEXTTOSEND, "No text to send\n");
return; return;
} }
channel_it it;
if (msg.getTokens()[1][0] != '&' && msg.getTokens()[1][0] != '#') if (msg.getTokens()[1][0] != '&' && msg.getTokens()[1][0] != '#')
{ {
for (client_it itc = _client.begin(); itc != _client.end(); ++itc) for (client_it itc = _client.begin(); itc != _client.end(); ++itc)
@@ -205,7 +204,7 @@ namespace irc
} }
return ; return ;
} }
for(it = _channels.begin(); it != _channels.end(); ++it) for(channel_it it = _channels.begin(); it != _channels.end(); ++it)
{ {
if(msg.getTokens()[1] == it->getName()) if(msg.getTokens()[1] == it->getName())
{ {
@@ -232,8 +231,29 @@ namespace irc
logs::report(log_error, "NOTICE, invalid command '%s'", msg.getRawMsg().c_str()); logs::report(log_error, "NOTICE, invalid command '%s'", msg.getRawMsg().c_str());
return; return;
} }
channel_it it; if (msg.getTokens()[1][0] != '&' && msg.getTokens()[1][0] != '#')
for(it = _channels.begin(); it != _channels.end(); ++it) {
for (client_it itc = _client.begin(); itc != _client.end(); ++itc)
{
if ((*itc)->getNickName() == msg.getTokens()[1] && (*itc)->getNickName() != client->getNickName())
{
std::string complete_msg;
if(msg.getTokens().size() > 2)
{
for(std::vector<std::string>::const_iterator tit = msg.getTokens().begin() + 2; tit < msg.getTokens().end(); ++tit)
{
complete_msg.append(*tit);
complete_msg.append(" ");
}
complete_msg.erase(complete_msg.begin());
}
(*itc)->sendMsg(client->getNickName(), "NOTICE " + (*itc)->getNickName(), complete_msg);
break;
}
}
return ;
}
for(channel_it it = _channels.begin(); it != _channels.end(); ++it)
{ {
if(msg.getTokens()[1] == it->getName()) if(msg.getTokens()[1] == it->getName())
{ {
@@ -253,6 +273,12 @@ namespace irc
} }
} }
void Server::handleInvite(unstd::SharedPtr<class Client> client, const Message& msg)
{
(void)client;
(void)msg;
}
void Server::handleKick(unstd::SharedPtr<class Client> client, const Message& msg) void Server::handleKick(unstd::SharedPtr<class Client> client, const Message& msg)
{ {
(void)client; (void)client;