refactoring, and managing being kicked
This commit is contained in:
parent
30e4e979c0
commit
a61b2ba603
@ -19,13 +19,13 @@ void SparrowBot::receiveMsg(QString str)
|
|||||||
if(str.contains("PING"))
|
if(str.contains("PING"))
|
||||||
{
|
{
|
||||||
status = ON_CHAN;
|
status = ON_CHAN;
|
||||||
emit sendMsg(QString("PONG :%1").arg(msg.nick));
|
emit sendMsg(pong(msg.nick));
|
||||||
emit sendMsg(QString("JOIN #%1").arg(chan));
|
emit sendMsg(join(chan));
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case ON_CHAN :
|
case ON_CHAN :
|
||||||
if(str.contains("PING"))
|
if(str.contains("PING"))
|
||||||
emit sendMsg(QString("PONG :%1").arg(msg.nick));
|
emit sendMsg(pong(msg.nick));
|
||||||
handleMessage(msg);
|
handleMessage(msg);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@ -38,7 +38,7 @@ void SparrowBot::handleMessage(Message msg)
|
|||||||
{
|
{
|
||||||
// mise à jour du bot
|
// mise à jour du bot
|
||||||
if(msg.args.compare("!update") == 0 && msg.src != NULL && msg.src->isOp())
|
if(msg.args.compare("!update") == 0 && msg.src != NULL && msg.src->isOp())
|
||||||
disconnect("Rebooting for update...");
|
emit sendMsg(quit("Rebooting for update..."));
|
||||||
|
|
||||||
// affiche les gens connectés
|
// affiche les gens connectés
|
||||||
if(msg.args.compare("!list") == 0)
|
if(msg.args.compare("!list") == 0)
|
||||||
@ -51,16 +51,7 @@ void SparrowBot::handleMessage(Message msg)
|
|||||||
str.append(u->getNick());
|
str.append(u->getNick());
|
||||||
str.append(" ");
|
str.append(" ");
|
||||||
}
|
}
|
||||||
say(str);
|
emit sendMsg(say(str));
|
||||||
}
|
|
||||||
|
|
||||||
if(msg.args.compare("plop ?") == 0)
|
|
||||||
action("est content");
|
|
||||||
|
|
||||||
if(msg.args.compare("!attack") == 0)
|
|
||||||
{
|
|
||||||
joinGame();
|
|
||||||
action(QString(" hit Lendemor"));
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -72,12 +63,17 @@ void SparrowBot::handleMessage(Message msg)
|
|||||||
else if(msg.command.compare("PART", Qt::CaseInsensitive) == 0)
|
else if(msg.command.compare("PART", Qt::CaseInsensitive) == 0)
|
||||||
users.remove(msg.src);
|
users.remove(msg.src);
|
||||||
else if(msg.command.compare("KICK", Qt::CaseInsensitive) == 0)
|
else if(msg.command.compare("KICK", Qt::CaseInsensitive) == 0)
|
||||||
users.remove(users.getFromNick(msg.target2));
|
|
||||||
else if(msg.command.compare("JOIN", Qt::CaseInsensitive) == 0
|
|
||||||
&& msg.args.contains(chan))
|
|
||||||
{
|
{
|
||||||
users.getOrAdd(msg.nick);
|
if(nick.compare(msg.target2) == 0)
|
||||||
whois(msg.nick);
|
emit sendMsg(quit("i've been kicked :("));
|
||||||
|
users.remove(users.getFromNick(msg.target2));
|
||||||
|
}
|
||||||
|
else if(msg.command.compare("JOIN", Qt::CaseInsensitive) == 0
|
||||||
|
&& msg.args.contains(chan)
|
||||||
|
&& nick.compare(msg.nick) != 0)
|
||||||
|
{
|
||||||
|
users.getOrAdd(msg.nick);
|
||||||
|
emit sendMsg(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
|
||||||
@ -89,7 +85,7 @@ void SparrowBot::handleMessage(Message msg)
|
|||||||
for(QString s : names)
|
for(QString s : names)
|
||||||
{
|
{
|
||||||
users.getOrAdd(s);
|
users.getOrAdd(s);
|
||||||
whois(s);
|
emit sendMsg(whois(s));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -109,36 +105,42 @@ void SparrowBot::handleMessage(Message msg)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void SparrowBot::whois(QString nick)
|
QString SparrowBot::pong(QString target)
|
||||||
{
|
{
|
||||||
emit sendMsg(QString("WHOIS %1").arg(nick));
|
return QString("PONG :%1").arg(target);
|
||||||
}
|
}
|
||||||
|
|
||||||
void SparrowBot::say(QString str)
|
QString SparrowBot::join(QString theChan)
|
||||||
{
|
{
|
||||||
emit sendMsg(QString("PRIVMSG #%1 :%2").arg(chan).arg(str));
|
return QString("JOIN #%1").arg(theChan);
|
||||||
}
|
}
|
||||||
|
|
||||||
void SparrowBot::action(QString str)
|
QString SparrowBot::whois(QString nick)
|
||||||
{
|
{
|
||||||
emit sendMsg(QString("PRIVMSG #%1 :\001ACTION %2\001").arg(chan).arg(str));
|
return QString("WHOIS %1").arg(nick);
|
||||||
|
}
|
||||||
|
|
||||||
|
QString SparrowBot::say(QString str)
|
||||||
|
{
|
||||||
|
return QString("PRIVMSG #%1 :%2").arg(chan).arg(str);
|
||||||
|
}
|
||||||
|
|
||||||
|
QString SparrowBot::privateSay(QString str, QString target)
|
||||||
|
{
|
||||||
|
return QString("PRIVMSG %1 :%2").arg(target).arg(str);
|
||||||
|
}
|
||||||
|
|
||||||
|
QString SparrowBot::action(QString str)
|
||||||
|
{
|
||||||
|
return QString("PRIVMSG #%1 :\001ACTION %2\001").arg(chan).arg(str);
|
||||||
|
}
|
||||||
|
|
||||||
|
QString SparrowBot::quit(QString str)
|
||||||
|
{
|
||||||
|
return QString("QUIT :%1").arg(str);
|
||||||
}
|
}
|
||||||
|
|
||||||
void SparrowBot::disconnect()
|
void SparrowBot::disconnect()
|
||||||
{
|
{
|
||||||
disconnect("I'll be back");
|
emit sendMsg(quit("I'll be back"));
|
||||||
}
|
|
||||||
|
|
||||||
void SparrowBot::disconnect(QString str)
|
|
||||||
{
|
|
||||||
emit sendMsg(QString("QUIT :%1").arg(str));
|
|
||||||
}
|
|
||||||
|
|
||||||
void SparrowBot::joinGame()
|
|
||||||
{
|
|
||||||
if(!isInGame)
|
|
||||||
{
|
|
||||||
emit sendMsg(QString("PRIVMSG SparrowMJ :!join patate"));
|
|
||||||
isInGame = true;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
23
sparrowbot.h
23
sparrowbot.h
@ -16,30 +16,27 @@ class SparrowBot : public QObject
|
|||||||
int status;
|
int status;
|
||||||
UserList users;
|
UserList users;
|
||||||
|
|
||||||
// custom variables
|
|
||||||
bool isInGame;
|
|
||||||
public:
|
public:
|
||||||
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 whois(QString nick);
|
// IRC commands
|
||||||
void action(QString str);
|
QString pong(QString target);
|
||||||
|
QString join(QString theChan);
|
||||||
|
QString privateSay(QString str, QString target);
|
||||||
|
QString whois(QString nick);
|
||||||
|
QString say(QString str);
|
||||||
|
QString action(QString str);
|
||||||
|
QString quit(QString str);
|
||||||
|
|
||||||
public slots:
|
public slots:
|
||||||
void receiveMsg(QString msg);
|
void receiveMsg(QString msg);
|
||||||
void disconnect();
|
void disconnect();
|
||||||
void disconnect(QString str);
|
|
||||||
|
|
||||||
signals:
|
signals:
|
||||||
void sendMsg(QString msg);
|
void sendMsg(QString msg);
|
||||||
void changeSocketStatus(int newStatus);
|
|
||||||
|
|
||||||
private:
|
|
||||||
// custom methods
|
|
||||||
void joinGame();
|
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // SPARROWBOT_H
|
#endif // SPARROWBOT_H
|
||||||
|
Loading…
x
Reference in New Issue
Block a user