commands PART and KICK are now handled, and attack action has been added
This commit is contained in:
		
							parent
							
								
									d86feee482
								
							
						
					
					
						commit
						9c440b9760
					
				
							
								
								
									
										2
									
								
								main.cpp
									
									
									
									
									
								
							
							
						
						
									
										2
									
								
								main.cpp
									
									
									
									
									
								
							@ -11,7 +11,7 @@ int main(int argc, char *argv[])
 | 
				
			|||||||
    sock.setPort(6667);
 | 
					    sock.setPort(6667);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    // create the bot
 | 
					    // create the bot
 | 
				
			||||||
    SparrowBot* bot = new SparrowBot("SparrowBot", "epicsparrow");
 | 
					    SparrowBot* bot = new SparrowBot("SparrowBotDebug", "epicsparrow");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    // connect the bot to the socket
 | 
					    // connect the bot to the socket
 | 
				
			||||||
    QObject::connect(&sock, SIGNAL(receivedMsg(QString)), bot, SLOT(receiveMsg(QString)));
 | 
					    QObject::connect(&sock, SIGNAL(receivedMsg(QString)), bot, SLOT(receiveMsg(QString)));
 | 
				
			||||||
 | 
				
			|||||||
@ -13,19 +13,19 @@ void SparrowBot::receiveMsg(QString str)
 | 
				
			|||||||
    {
 | 
					    {
 | 
				
			||||||
    case OFFLINE :
 | 
					    case OFFLINE :
 | 
				
			||||||
        status = ONLINE;
 | 
					        status = ONLINE;
 | 
				
			||||||
        emit sendMsg(QString("NICK %1\r\nUSER %2 0 * %3\r\n").arg(nick).arg(nick).arg(nick));
 | 
					        emit sendMsg(QString("NICK %1\r\nUSER %2 0 * %3").arg(nick).arg(nick).arg(nick));
 | 
				
			||||||
        break;
 | 
					        break;
 | 
				
			||||||
    case ONLINE :
 | 
					    case ONLINE :
 | 
				
			||||||
        if(str.contains("PING"))
 | 
					        if(str.contains("PING"))
 | 
				
			||||||
        {
 | 
					        {
 | 
				
			||||||
            status = ON_CHAN;
 | 
					            status = ON_CHAN;
 | 
				
			||||||
            emit sendMsg(QString("PONG :%1\r\n").arg(msg.nick));
 | 
					            emit sendMsg(QString("PONG :%1").arg(msg.nick));
 | 
				
			||||||
            emit sendMsg("JOIN #" + chan + "\r\n");
 | 
					            emit sendMsg(QString("JOIN #%1").arg(chan));
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
        break;
 | 
					        break;
 | 
				
			||||||
    case ON_CHAN :
 | 
					    case ON_CHAN :
 | 
				
			||||||
        if(str.contains("PING"))
 | 
					        if(str.contains("PING"))
 | 
				
			||||||
            emit sendMsg(QString("PONG :%1\r\n").arg(msg.nick));
 | 
					            emit sendMsg(QString("PONG :%1").arg(msg.nick));
 | 
				
			||||||
        handleMessage(msg);
 | 
					        handleMessage(msg);
 | 
				
			||||||
        break;
 | 
					        break;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
@ -53,8 +53,15 @@ void SparrowBot::handleMessage(Message msg)
 | 
				
			|||||||
            }
 | 
					            }
 | 
				
			||||||
            say(str);
 | 
					            say(str);
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        if(msg.args.compare("plop ?") == 0)
 | 
					        if(msg.args.compare("plop ?") == 0)
 | 
				
			||||||
            action("est content");
 | 
					            action("est content");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        if(msg.args.compare("!attack") == 0)
 | 
				
			||||||
 | 
					        {
 | 
				
			||||||
 | 
					            joinGame();
 | 
				
			||||||
 | 
					            action(QString(" hit Lendemor"));
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    // renommage
 | 
					    // renommage
 | 
				
			||||||
@ -62,11 +69,15 @@ void SparrowBot::handleMessage(Message msg)
 | 
				
			|||||||
        msg.src->rename(msg.args);
 | 
					        msg.src->rename(msg.args);
 | 
				
			||||||
    else if(msg.command.compare("QUIT", Qt::CaseInsensitive) == 0)
 | 
					    else if(msg.command.compare("QUIT", Qt::CaseInsensitive) == 0)
 | 
				
			||||||
        users.remove(msg.src);
 | 
					        users.remove(msg.src);
 | 
				
			||||||
 | 
					    else if(msg.command.compare("PART", Qt::CaseInsensitive) == 0)
 | 
				
			||||||
 | 
					        users.remove(msg.src);
 | 
				
			||||||
 | 
					    else if(msg.command.compare("KICK", Qt::CaseInsensitive) == 0)
 | 
				
			||||||
 | 
					        users.remove(users.getFromNick(msg.target2));
 | 
				
			||||||
    else if(msg.command.compare("JOIN", Qt::CaseInsensitive) == 0
 | 
					    else if(msg.command.compare("JOIN", Qt::CaseInsensitive) == 0
 | 
				
			||||||
            && msg.args.contains(chan))
 | 
					            && msg.args.contains(chan))
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
        users.getOrAdd(msg.nick);
 | 
					        users.getOrAdd(msg.nick);
 | 
				
			||||||
        emit sendMsg(QString("WHOIS %1\r\n").arg(msg.nick));
 | 
					        whois(msg.nick);
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    // 353 = code de la ligne qui liste les nicks connectés
 | 
					    // 353 = code de la ligne qui liste les nicks connectés
 | 
				
			||||||
@ -78,7 +89,7 @@ void SparrowBot::handleMessage(Message msg)
 | 
				
			|||||||
        for(QString s : names)
 | 
					        for(QString s : names)
 | 
				
			||||||
        {
 | 
					        {
 | 
				
			||||||
            users.getOrAdd(s);
 | 
					            users.getOrAdd(s);
 | 
				
			||||||
            emit sendMsg(QString("WHOIS %1").arg(s));
 | 
					            whois(s);
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -98,6 +109,11 @@ void SparrowBot::handleMessage(Message msg)
 | 
				
			|||||||
    }
 | 
					    }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void SparrowBot::whois(QString nick)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    emit sendMsg(QString("WHOIS %1").arg(nick));
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
void SparrowBot::say(QString str)
 | 
					void SparrowBot::say(QString str)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
    emit sendMsg(QString("PRIVMSG #%1 :%2").arg(chan).arg(str));
 | 
					    emit sendMsg(QString("PRIVMSG #%1 :%2").arg(chan).arg(str));
 | 
				
			||||||
@ -105,7 +121,7 @@ void SparrowBot::say(QString str)
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
void SparrowBot::action(QString str)
 | 
					void SparrowBot::action(QString str)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
    emit sendMsg(QString("PRIVMSG #%1 :ACTION %2 ").arg(chan).arg(str));
 | 
					    emit sendMsg(QString("PRIVMSG #%1 :\001ACTION %2\001").arg(chan).arg(str));
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
void SparrowBot::disconnect()
 | 
					void SparrowBot::disconnect()
 | 
				
			||||||
@ -116,5 +132,14 @@ void SparrowBot::disconnect()
 | 
				
			|||||||
void SparrowBot::disconnect(QString str)
 | 
					void SparrowBot::disconnect(QString str)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
    emit sendMsg(QString("QUIT :%1").arg(str));
 | 
					    emit sendMsg(QString("QUIT :%1").arg(str));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void SparrowBot::joinGame()
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    if(!isInGame)
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        emit sendMsg(QString("PRIVMSG SparrowMJ :!join patate"));
 | 
				
			||||||
 | 
					        isInGame = true;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										13
									
								
								sparrowbot.h
									
									
									
									
									
								
							
							
						
						
									
										13
									
								
								sparrowbot.h
									
									
									
									
									
								
							@ -14,15 +14,18 @@ class SparrowBot : public QObject
 | 
				
			|||||||
    QString nick;
 | 
					    QString nick;
 | 
				
			||||||
    QString chan;
 | 
					    QString chan;
 | 
				
			||||||
    int status;
 | 
					    int status;
 | 
				
			||||||
 | 
					 | 
				
			||||||
    UserList users;
 | 
					    UserList users;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    // custom variables
 | 
				
			||||||
 | 
					    bool isInGame;
 | 
				
			||||||
public:
 | 
					public:
 | 
				
			||||||
    SparrowBot() : nick("SparrowBot"), chan("epicsparrow"), status(OFFLINE) {}
 | 
					    SparrowBot() : nick("SparrowBot"), chan("epicsparrow"), status(OFFLINE), isInGame(false) {}
 | 
				
			||||||
    SparrowBot(QString nick_, QString chan_) : nick(nick_), chan(chan_), status(OFFLINE) {}
 | 
					    SparrowBot(QString nick_, QString chan_) : nick(nick_), chan(chan_), status(OFFLINE), isInGame(false) {}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
private:
 | 
					private:
 | 
				
			||||||
    void handleMessage(Message msg);
 | 
					    void handleMessage(Message msg);
 | 
				
			||||||
    void say(QString str);
 | 
					    void say(QString str);
 | 
				
			||||||
 | 
					    void whois(QString nick);
 | 
				
			||||||
    void action(QString str);
 | 
					    void action(QString str);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
public slots:
 | 
					public slots:
 | 
				
			||||||
@ -33,6 +36,10 @@ public slots:
 | 
				
			|||||||
signals:
 | 
					signals:
 | 
				
			||||||
    void sendMsg(QString msg);
 | 
					    void sendMsg(QString msg);
 | 
				
			||||||
    void changeSocketStatus(int newStatus);
 | 
					    void changeSocketStatus(int newStatus);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					private:
 | 
				
			||||||
 | 
					    // custom methods
 | 
				
			||||||
 | 
					    void joinGame();
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#endif // SPARROWBOT_H
 | 
					#endif // SPARROWBOT_H
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user