mode response ban list
This commit is contained in:
parent
33e2faea4f
commit
ad04ac5c7e
@ -6,7 +6,7 @@
|
|||||||
/* By: apommier <apommier@student.42.fr> +#+ +:+ +#+ */
|
/* By: apommier <apommier@student.42.fr> +#+ +:+ +#+ */
|
||||||
/* +#+#+#+#+#+ +#+ */
|
/* +#+#+#+#+#+ +#+ */
|
||||||
/* Created: 2022/12/01 17:27:37 by apommier #+# #+# */
|
/* Created: 2022/12/01 17:27:37 by apommier #+# #+# */
|
||||||
/* Updated: 2023/03/09 01:11:57 by apommier ### ########.fr */
|
/* Updated: 2023/03/09 03:07:21 by apommier ### ########.fr */
|
||||||
/* */
|
/* */
|
||||||
/* ************************************************************************** */
|
/* ************************************************************************** */
|
||||||
|
|
||||||
@ -142,7 +142,7 @@ struct channelData //each chan have one
|
|||||||
std::string password;
|
std::string password;
|
||||||
int maxUser;
|
int maxUser;
|
||||||
//int banMask ???
|
//int banMask ???
|
||||||
|
|
||||||
int nbrUser;
|
int nbrUser;
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -241,7 +241,8 @@ void parse_commands(std::string buffer, fdList &allFds, int userNbr);
|
|||||||
/* ******************************MODE UTILS********************************** */
|
/* ******************************MODE UTILS********************************** */
|
||||||
/* ************************************************************************** */
|
/* ************************************************************************** */
|
||||||
|
|
||||||
std::string chan_reply(channelData &chan, clientData &user);
|
void ban_reply(channelData &chan, clientData &user);
|
||||||
std::string user_reply(clientData &user);
|
void chan_reply(channelData &chan, clientData &user);
|
||||||
int search_and_erase(std::string &str, std::string toFind);
|
void user_reply(clientData &user);
|
||||||
bool str_to_int(int &i, const std::string s);
|
int search_and_erase(std::string &str, std::string toFind);
|
||||||
|
bool str_to_int(int &i, const std::string s);
|
||||||
|
|||||||
@ -6,7 +6,7 @@
|
|||||||
/* By: apommier <apommier@student.42.fr> +#+ +:+ +#+ */
|
/* By: apommier <apommier@student.42.fr> +#+ +:+ +#+ */
|
||||||
/* +#+#+#+#+#+ +#+ */
|
/* +#+#+#+#+#+ +#+ */
|
||||||
/* Created: 2023/02/19 22:10:07 by apommier #+# #+# */
|
/* Created: 2023/02/19 22:10:07 by apommier #+# #+# */
|
||||||
/* Updated: 2023/03/09 01:48:54 by apommier ### ########.fr */
|
/* Updated: 2023/03/09 03:11:17 by apommier ### ########.fr */
|
||||||
/* */
|
/* */
|
||||||
/* ************************************************************************** */
|
/* ************************************************************************** */
|
||||||
|
|
||||||
@ -30,6 +30,7 @@ void leave_chan(fdList &allFds, std::string chan, int userNbr, std::string msg)
|
|||||||
//del_user_in_chan(&allFds.userData[userNbr], &allFds.channelList[chanPos]);
|
//del_user_in_chan(&allFds.userData[userNbr], &allFds.channelList[chanPos]);
|
||||||
int pos = find_client_list(allFds.channelList[chanPos].userList, &allFds.userData[userNbr]);
|
int pos = find_client_list(allFds.channelList[chanPos].userList, &allFds.userData[userNbr]);
|
||||||
allFds.channelList[chanPos].userList.erase(allFds.channelList[chanPos].userList.begin() + pos);
|
allFds.channelList[chanPos].userList.erase(allFds.channelList[chanPos].userList.begin() + pos);
|
||||||
|
allFds.channelList[chanPos].nbrUser--;
|
||||||
del_chan_in_user(&allFds.userData[userNbr], &allFds.channelList[chanPos]);
|
del_chan_in_user(&allFds.userData[userNbr], &allFds.channelList[chanPos]);
|
||||||
//:WiZ!jto@tolsun.oulu.fi PART #playzone :I lost
|
//:WiZ!jto@tolsun.oulu.fi PART #playzone :I lost
|
||||||
//:awd!kinou@kinou PART #test
|
//:awd!kinou@kinou PART #test
|
||||||
@ -51,6 +52,7 @@ void leave_chan(fdList &allFds, std::string chan, int userNbr, std::string msg)
|
|||||||
// reply += "\n";
|
// reply += "\n";
|
||||||
std::cout << "leave msg=" << reply << std::endl;
|
std::cout << "leave msg=" << reply << std::endl;
|
||||||
send(allFds.userData[userNbr].fd, reply.c_str(), reply.size(), 0);
|
send(allFds.userData[userNbr].fd, reply.c_str(), reply.size(), 0);
|
||||||
|
//allFds.channelList[chanPos].nbrUser--;
|
||||||
for (int i = 0; i < allFds.channelList[chanPos].nbrUser; i++)
|
for (int i = 0; i < allFds.channelList[chanPos].nbrUser; i++)
|
||||||
{
|
{
|
||||||
if (allFds.channelList[chanPos].userList[i]->mode.s)
|
if (allFds.channelList[chanPos].userList[i]->mode.s)
|
||||||
|
|||||||
@ -6,15 +6,27 @@
|
|||||||
/* By: apommier <apommier@student.42.fr> +#+ +:+ +#+ */
|
/* By: apommier <apommier@student.42.fr> +#+ +:+ +#+ */
|
||||||
/* +#+#+#+#+#+ +#+ */
|
/* +#+#+#+#+#+ +#+ */
|
||||||
/* Created: 2023/03/09 00:13:32 by apommier #+# #+# */
|
/* Created: 2023/03/09 00:13:32 by apommier #+# #+# */
|
||||||
/* Updated: 2023/03/09 01:47:02 by apommier ### ########.fr */
|
/* Updated: 2023/03/09 02:30:14 by apommier ### ########.fr */
|
||||||
/* */
|
/* */
|
||||||
/* ************************************************************************** */
|
/* ************************************************************************** */
|
||||||
|
|
||||||
#include "../../../includes/ft_irc.hpp"
|
#include "../../../includes/ft_irc.hpp"
|
||||||
|
|
||||||
// std::string ban_reply
|
void ban_reply(channelData &chan, clientData &user)
|
||||||
|
{
|
||||||
|
std::string endReply;
|
||||||
|
std::string fullReply;
|
||||||
|
std::string reply = ":irc.local 367 " + user.nickname + " " + chan.name + " ";
|
||||||
|
for (size_t i = 0; i < chan.banList.size(); i++)
|
||||||
|
{
|
||||||
|
fullReply = reply + chan.banList[i]->nickname + "!" + chan.banList[i]->userName + "@" + chan.banList[i]->hostName + "\n";
|
||||||
|
send(user.fd, fullReply.c_str(), fullReply.size(), 0);
|
||||||
|
}
|
||||||
|
endReply = ":irc.local 367 " + user.nickname + " " + chan.name + " :End of channel ban list\n";
|
||||||
|
send(user.fd, endReply.c_str(), endReply.size(), 0);
|
||||||
|
}
|
||||||
|
|
||||||
std::string chan_reply(channelData &chan, clientData &user)
|
void chan_reply(channelData &chan, clientData &user)
|
||||||
{
|
{
|
||||||
//:irc.server.com 324 ClientName #channel +tnkLs 10 operator1 operator2
|
//:irc.server.com 324 ClientName #channel +tnkLs 10 operator1 operator2
|
||||||
(void) chan;
|
(void) chan;
|
||||||
@ -41,12 +53,13 @@ std::string chan_reply(channelData &chan, clientData &user)
|
|||||||
reply += chan.maxUser;
|
reply += chan.maxUser;
|
||||||
for (size_t i = 0; i < chan.opList.size(); i++)
|
for (size_t i = 0; i < chan.opList.size(); i++)
|
||||||
reply += " " + chan.opList[i]->nickname;
|
reply += " " + chan.opList[i]->nickname;
|
||||||
|
send(user.fd, reply.c_str(), reply.size(), 0);
|
||||||
//if (reply.size() > 2)
|
//if (reply.size() > 2)
|
||||||
// reply_begin += reply;
|
// reply_begin += reply;
|
||||||
return (reply);
|
//return (reply);
|
||||||
}
|
}
|
||||||
|
|
||||||
std::string user_reply(clientData &user)
|
void user_reply(clientData &user)
|
||||||
{
|
{
|
||||||
//:irc.server.com 221 ClientName +ix
|
//:irc.server.com 221 ClientName +ix
|
||||||
|
|
||||||
@ -61,7 +74,7 @@ std::string user_reply(clientData &user)
|
|||||||
reply += 'w';
|
reply += 'w';
|
||||||
if (user.mode.o)
|
if (user.mode.o)
|
||||||
reply += 'o';
|
reply += 'o';
|
||||||
return (reply);
|
send(user.fd, reply.c_str(), reply.size(), 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
int search_and_erase(std::string &str, std::string toFind)
|
int search_and_erase(std::string &str, std::string toFind)
|
||||||
|
|||||||
@ -6,7 +6,7 @@
|
|||||||
/* By: apommier <apommier@student.42.fr> +#+ +:+ +#+ */
|
/* By: apommier <apommier@student.42.fr> +#+ +:+ +#+ */
|
||||||
/* +#+#+#+#+#+ +#+ */
|
/* +#+#+#+#+#+ +#+ */
|
||||||
/* Created: 2023/02/12 20:38:50 by apommier #+# #+# */
|
/* Created: 2023/02/12 20:38:50 by apommier #+# #+# */
|
||||||
/* Updated: 2023/03/09 02:10:41 by apommier ### ########.fr */
|
/* Updated: 2023/03/09 02:17:28 by apommier ### ########.fr */
|
||||||
/* */
|
/* */
|
||||||
/* ************************************************************************** */
|
/* ************************************************************************** */
|
||||||
|
|
||||||
@ -53,7 +53,7 @@ void delete_user(fdList &allFds, int userNbr)
|
|||||||
|
|
||||||
for (size_t i = 0; i < allFds.channelList.size(); i++)//all joined chan
|
for (size_t i = 0; i < allFds.channelList.size(); i++)//all joined chan
|
||||||
{
|
{
|
||||||
del_user_in_chan(&allFds.userData[userNbr], allFds.channelList[i]);
|
del_user_in_chan(&allFds.userData[userNbr], &allFds.channelList[i]);
|
||||||
//allFds.userData[userNbr].joinedChan[i].erase(find_user_in_chan(allFds.userData[userNbr].joinedChan[i])/*find user in chan*/)
|
//allFds.userData[userNbr].joinedChan[i].erase(find_user_in_chan(allFds.userData[userNbr].joinedChan[i])/*find user in chan*/)
|
||||||
}
|
}
|
||||||
close(allFds.userData[userNbr].fd);
|
close(allFds.userData[userNbr].fd);
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user