SparrowBot/app/fourasmodule.cpp
2016-03-10 13:07:06 +01:00

80 lines
2.2 KiB
C++

#include "fourasmodule.h"
#include "message.h"
#include "riddles.h"
#include <time.h>
FourasModule::FourasModule() : current(-1)
{
riddles = new Riddles("../../res/fouras.txt", "../../res/fourasAnswers.txt");
std::srand(time(NULL));
}
bool FourasModule::messageHandler(Message msg)
{
if(msg.command.compare(QString("PRIVMSG"), Qt::CaseInsensitive) != 0 || !msg.target.contains(getChan()))
return false;
if(msg.args.compare("!fouras") == 0 && riddles->getNbRiddles() != 0)
{
current = rand() % riddles->getNbRiddles();
QStringList riddle = riddles->getRiddle(current);
answer = "";
for(QString line : riddle)
answer.append(say(line));
return true;
}
else if(msg.args.compare("!help fouras") == 0)
{
answer = privateSay("fouras commands : !fouras, !answer", msg.nick);
return true;
}
else if(msg.args.compare("!answer") == 0)
{
answer = say(QString("%1 - Perdu ! La réponse était : %2").arg(current).arg(riddles->getAnswer(current)));
current = -1;
return true;
}
else if(msg.args.compare("!repeat") == 0)
{
if(current != -1)
{
QStringList riddle = riddles->getRiddle(current);
answer = "";
for(QString line : riddle)
answer.append(say(line));
return true;
}
}
else if(msg.args.compare("!clue") == 0)
{
if(current != -1)
{
QString str = riddles->getAnswer(current);
QString answerStr = "Indice : ";
bool first = true;
for(QChar c : str)
{
answerStr.append(first ? QString(c) : QString(" _"));
first = false;
}
answer = say(answerStr);
return true;
}
}
if(current != -1 && msg.args.contains(riddles->getAnswer(current), Qt::CaseInsensitive))
{
answer = say(QString("Bravo %1 ! la réponse était bien : %2").arg(msg.nick).arg(riddles->getAnswer(current)));
current = -1;
return true;
}
return false;
}
QString FourasModule::getName()
{
return "fouras";
}