mode -o done
This commit is contained in:
32
Server.cpp
32
Server.cpp
@@ -802,6 +802,38 @@ void Server::handleClientData(int fd) {
|
||||
send(fd, errorMessage.c_str(), errorMessage.size(), 0);
|
||||
}
|
||||
}
|
||||
else if (startsWith(command, "MODE "))
|
||||
{
|
||||
std::string channelName, mode , nick;
|
||||
std::istringstream iss(command.substr(6));
|
||||
iss >> channelName >> mode >> nick;
|
||||
channelName = trim(channelName);
|
||||
mode = trim(mode);
|
||||
nick = trim(nick);
|
||||
|
||||
|
||||
std::cout << "this is the mode : " << mode << std::endl;
|
||||
if (mode == "+o")
|
||||
{
|
||||
if (channels.find(channelName) != channels.end() && channels[channelName].isOperator(fd)) {
|
||||
channels[channelName].addOperator(nick, channels[channelName].getUserFd(nick));
|
||||
std::string modeMessage = ":" + nick + " MODE #" + channelName + " +o " + nick + "\n";
|
||||
send(fd, modeMessage.c_str(), modeMessage.length(), 0);
|
||||
}
|
||||
}
|
||||
else if (mode == "-o")
|
||||
{
|
||||
if (channels.find(channelName) != channels.end() && channels[channelName].isOperator(fd)) {
|
||||
channels[channelName].removeOperator(nick);
|
||||
std::string modeMessage = ":" + nick + " MODE #" + channelName + " -o " + nick + "\n";
|
||||
send(fd, modeMessage.c_str(), modeMessage.length(), 0);
|
||||
}
|
||||
}
|
||||
// else if (mode == "-i")
|
||||
// {
|
||||
|
||||
// }
|
||||
}
|
||||
|
||||
//**************** STOOOOOOP HERE TOP G ...
|
||||
break;
|
||||
|
Reference in New Issue
Block a user