bot is done, file transfer is next
This commit is contained in:
39
Server.cpp
39
Server.cpp
@@ -21,6 +21,12 @@ std::string Server::getPassowrd() const {
|
|||||||
return _password;
|
return _password;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
std::string intToString(int number) {
|
||||||
|
std::stringstream ss;
|
||||||
|
ss << number;
|
||||||
|
return ss.str();
|
||||||
|
}
|
||||||
|
|
||||||
void Server::parseArgs(int ac, char **av) {
|
void Server::parseArgs(int ac, char **av) {
|
||||||
if (ac != 3)
|
if (ac != 3)
|
||||||
throw std::runtime_error("Usage: ./ircserv <port> <password>");
|
throw std::runtime_error("Usage: ./ircserv <port> <password>");
|
||||||
@@ -866,30 +872,43 @@ void Server::handleClientData(int fd)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
else if (startsWith(command, "BOT "))
|
else if (startsWith(command, "BOT ") || startsWith(command, "bot "))
|
||||||
{
|
{
|
||||||
std::string channelName, botname, start, end, guessed;
|
std::cout << "HHHDFGFGD " << std::endl;
|
||||||
|
std::string start, end, guessed;
|
||||||
std::istringstream iss(command.substr(4));
|
std::istringstream iss(command.substr(4));
|
||||||
iss >> channelName >> botname >> start >> end >> guessed;
|
iss >> start >> end >> guessed;
|
||||||
channelName = trim(channelName);
|
|
||||||
botname = trim(botname);
|
|
||||||
start = trim(start);
|
start = trim(start);
|
||||||
end = trim(end);
|
end = trim(end);
|
||||||
guessed = trim(guessed);
|
guessed = trim(guessed);
|
||||||
if (channels.find(channelName) != channels.end() && channels[channelName].isOperator(fd))
|
// std::string channelName, botname, start, end, guessed;
|
||||||
|
// std::istringstream iss(command.substr(4));
|
||||||
|
// iss >> channelName >> botname >> start >> end >> guessed;
|
||||||
|
// channelName = trim(channelName);
|
||||||
|
// botname = trim(botname);
|
||||||
|
// start = trim(start);
|
||||||
|
// end = trim(end);
|
||||||
|
// guessed = trim(guessed);
|
||||||
|
if (stringToInt(start) < stringToInt(end) && stringToInt(guessed) >= stringToInt(start) && stringToInt(guessed) <= stringToInt(end))
|
||||||
{
|
{
|
||||||
int random = randomInRange(stringToInt(start), stringToInt(end));
|
int r = randomInRange(stringToInt(start), stringToInt(end));
|
||||||
if (random == stringToInt(guessed))
|
std::string random = intToString(r);
|
||||||
|
if (random == guessed)
|
||||||
{
|
{
|
||||||
std::string modeChangeMessage = ":server.host PRIVMSG #" + channelName + " :Congratulations " + botname + " you have guessed the number " + guessed + " correctly\n";
|
std::string modeChangeMessage = ":server.host PRIVMSG #:Congratulations ,you have guessed the number : " + guessed + " correctly\n";
|
||||||
send(fd, modeChangeMessage.c_str(), modeChangeMessage.size(), 0);
|
send(fd, modeChangeMessage.c_str(), modeChangeMessage.size(), 0);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
std::string modeChangeMessage = ":server.host PRIVMSG #" + channelName + " :Sorry " + botname + " you have guessed the number " + guessed + " incorrectly\n";
|
std::string modeChangeMessage = ":server.host PRIVMSG #:Sorry ,the correct one is : " + random + "\n";
|
||||||
send(fd, modeChangeMessage.c_str(), modeChangeMessage.size(), 0);
|
send(fd, modeChangeMessage.c_str(), modeChangeMessage.size(), 0);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
std::string errorMessage = ":server.host PRIVMSG # :Error: Invalid range or guess\n";
|
||||||
|
send(fd, errorMessage.c_str(), errorMessage.size(), 0);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else if (startsWith(command, "MODE ") || startsWith(command, "mode "))
|
else if (startsWith(command, "MODE ") || startsWith(command, "mode "))
|
||||||
{
|
{
|
||||||
|
@@ -93,5 +93,6 @@ class Server {
|
|||||||
};
|
};
|
||||||
|
|
||||||
int randomInRange(int min, int max);
|
int randomInRange(int min, int max);
|
||||||
|
std::string intToString(int number);
|
||||||
|
|
||||||
#endif
|
#endif
|
Reference in New Issue
Block a user