gg
This commit is contained in:
@@ -6,7 +6,7 @@
|
|||||||
/* By: vvaas <vvaas@student.42angouleme.fr> +#+ +:+ +#+ */
|
/* By: vvaas <vvaas@student.42angouleme.fr> +#+ +:+ +#+ */
|
||||||
/* +#+#+#+#+#+ +#+ */
|
/* +#+#+#+#+#+ +#+ */
|
||||||
/* Created: 2024/01/30 01:54:36 by vvaas #+# #+# */
|
/* Created: 2024/01/30 01:54:36 by vvaas #+# #+# */
|
||||||
/* Updated: 2024/01/30 16:56:57 by vvaas ### ########.fr */
|
/* Updated: 2024/01/30 17:24:08 by vvaas ### ########.fr */
|
||||||
/* */
|
/* */
|
||||||
/******************************************************************************/
|
/******************************************************************************/
|
||||||
|
|
||||||
@@ -27,6 +27,8 @@ class bot
|
|||||||
void handle_response(std::string buffer);
|
void handle_response(std::string buffer);
|
||||||
~bot();
|
~bot();
|
||||||
private :
|
private :
|
||||||
|
bool _channel_created;
|
||||||
|
bool _logged;
|
||||||
struct sockaddr_in _serv_addr;
|
struct sockaddr_in _serv_addr;
|
||||||
int _fd;
|
int _fd;
|
||||||
std::vector<std::string> _connect_commands;
|
std::vector<std::string> _connect_commands;
|
||||||
|
|||||||
@@ -6,7 +6,7 @@
|
|||||||
/* By: vvaas <vvaas@student.42angouleme.fr> +#+ +:+ +#+ */
|
/* By: vvaas <vvaas@student.42angouleme.fr> +#+ +:+ +#+ */
|
||||||
/* +#+#+#+#+#+ +#+ */
|
/* +#+#+#+#+#+ +#+ */
|
||||||
/* Created: 2024/01/30 01:54:56 by vvaas #+# #+# */
|
/* Created: 2024/01/30 01:54:56 by vvaas #+# #+# */
|
||||||
/* Updated: 2024/01/30 17:07:02 by vvaas ### ########.fr */
|
/* Updated: 2024/01/30 17:26:11 by vvaas ### ########.fr */
|
||||||
/* */
|
/* */
|
||||||
/******************************************************************************/
|
/******************************************************************************/
|
||||||
|
|
||||||
@@ -18,7 +18,8 @@
|
|||||||
#include <fcntl.h>
|
#include <fcntl.h>
|
||||||
#include <cstring>
|
#include <cstring>
|
||||||
|
|
||||||
bot::bot() {}
|
bot::bot() : _channel_created(false), _logged(false)
|
||||||
|
{}
|
||||||
|
|
||||||
bot::~bot() {}
|
bot::~bot() {}
|
||||||
|
|
||||||
@@ -27,6 +28,7 @@ void bot::init()
|
|||||||
_connect_commands.push_back("PASS " PASSWORD "\r\n");
|
_connect_commands.push_back("PASS " PASSWORD "\r\n");
|
||||||
_connect_commands.push_back("NICK greg\r\n");
|
_connect_commands.push_back("NICK greg\r\n");
|
||||||
_connect_commands.push_back("USER greg_bot 0 * :botrealname\r\n");
|
_connect_commands.push_back("USER greg_bot 0 * :botrealname\r\n");
|
||||||
|
_connect_commands.push_back("JOIN #greg\r\n");
|
||||||
_fd = socket(AF_INET, SOCK_STREAM, 0);
|
_fd = socket(AF_INET, SOCK_STREAM, 0);
|
||||||
if (_fd == -1)
|
if (_fd == -1)
|
||||||
irc::logs::report(irc::log_fatal_error, "FD error");
|
irc::logs::report(irc::log_fatal_error, "FD error");
|
||||||
@@ -41,7 +43,20 @@ void bot::init()
|
|||||||
|
|
||||||
void bot::handle_response(std::string buffer)
|
void bot::handle_response(std::string buffer)
|
||||||
{
|
{
|
||||||
if (buffer == ":yipirc 001 greg :Welcome to yipirc :), greg\r\n")
|
std::cout << buffer << std::flush;
|
||||||
|
if (!_logged && buffer == ":yipirc 001 greg :Welcome to yipirc :), greg\r\n")
|
||||||
|
{
|
||||||
|
_logged = true;
|
||||||
|
irc::logs::report(irc::log_message, "Logged in succesfully");
|
||||||
|
}
|
||||||
|
else if (!_logged)
|
||||||
|
return ;
|
||||||
|
if (!_channel_created && buffer == ":yipirc 353 greg @ #greg :@greg\r\n")
|
||||||
|
{
|
||||||
|
_channel_created = true;
|
||||||
|
irc::logs::report(irc::log_message, "Created the channel succesfully");
|
||||||
|
}
|
||||||
|
else if (!_channel_created)
|
||||||
return ;
|
return ;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -52,6 +67,8 @@ void bot::connect_to_server()
|
|||||||
{
|
{
|
||||||
if (send(_fd, (*it).c_str(), (*it).size(), 0) < 0)
|
if (send(_fd, (*it).c_str(), (*it).size(), 0) < 0)
|
||||||
irc::logs::report(irc::log_fatal_error, "send error");
|
irc::logs::report(irc::log_fatal_error, "send error");
|
||||||
|
if (recv(_fd, buffer, 1024, 0) > 0)
|
||||||
|
handle_response(buffer);
|
||||||
}
|
}
|
||||||
while (true)
|
while (true)
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user