|
@@ -12,20 +12,20 @@ Client::Client(App *app, ActiveClient* ac):
|
|
|
QWClient(),
|
|
|
myActiveClient(ac),
|
|
|
myApp(app),
|
|
|
- myEndFloodTime(new QTime()),
|
|
|
myConnectionRetries(0),
|
|
|
myOnServerFlag(false),
|
|
|
myMutedFlag(false),
|
|
|
myJoinMessageTimer(new QTimer()),
|
|
|
myJoinMessagePrinted(false)
|
|
|
{
|
|
|
- *myEndFloodTime = QTime::currentTime();
|
|
|
+ myEndFloodTime = QTime::currentTime();
|
|
|
+ myQWBroadcastFloodTime = myEndFloodTime;
|
|
|
+ mySpamBroadcastFloodTime = myEndFloodTime;
|
|
|
myJoinMessageTimer->setSingleShot(true);
|
|
|
}
|
|
|
|
|
|
Client::~Client()
|
|
|
{
|
|
|
- delete myEndFloodTime;
|
|
|
delete myJoinMessageTimer;
|
|
|
}
|
|
|
|
|
@@ -122,22 +122,25 @@ void Client::parsePrintedLine()
|
|
|
|
|
|
QString nick(myPrintLine.left(lastMatchSize));
|
|
|
QString message(myPrintLine.right(myPrintLine.size() - lastMatchSize));
|
|
|
- QRegExp regex("^:\\s+\\.([A-Za-z]+)\\s*(.+)$");
|
|
|
+
|
|
|
+ QRegExp regex("^:\\s+\\.(spam|qw|help|mute|unmute)\\s*(.+)$");
|
|
|
if(regex.indexIn(message) == -1)
|
|
|
return;
|
|
|
|
|
|
/* Flood prot */
|
|
|
- int timeLeft = QTime::currentTime().secsTo(*myEndFloodTime);
|
|
|
+ QTime currentTime = QTime::currentTime();
|
|
|
+
|
|
|
+ int timeLeft = currentTime.secsTo(myEndFloodTime);
|
|
|
if(timeLeft > 0)
|
|
|
{
|
|
|
if(!myFloodMsgPrinted)
|
|
|
{
|
|
|
- say("> Wait " + QString::number(timeLeft) + " second(s) before issuing a new command.");
|
|
|
+ say("> FloodProt: Not so fast, wait " + QString::number(timeLeft) + " sec(s).");
|
|
|
myFloodMsgPrinted = true;
|
|
|
}
|
|
|
return;
|
|
|
}
|
|
|
- *myEndFloodTime = QTime::currentTime().addSecs(Settings::globalInstance()->floodProtTime());
|
|
|
+ myEndFloodTime = QTime::currentTime().addSecs(Settings::globalInstance()->floodProtTime());
|
|
|
myFloodMsgPrinted = false;
|
|
|
|
|
|
QString command = regex.capturedTexts().at(1);
|
|
@@ -160,17 +163,38 @@ void Client::parsePrintedLine()
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
+ if(command == "qw")
|
|
|
+ {
|
|
|
+ timeLeft = currentTime.secsTo(myQWBroadcastFloodTime);
|
|
|
+ if(timeLeft > 0)
|
|
|
+ {
|
|
|
+ say("> FloodProt: Wait " + QString::number(timeLeft) + " sec(s) before broadcasting a new .qw message.");
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ myQWBroadcastFloodTime = currentTime.addSecs(Settings::globalInstance()->qwFloodProtTime());
|
|
|
+ }
|
|
|
+ else if(command == "spam")
|
|
|
+ {
|
|
|
+ timeLeft = currentTime.secsTo(mySpamBroadcastFloodTime);
|
|
|
+ if(timeLeft > 0)
|
|
|
+ {
|
|
|
+ say("> FloodProt: Wait " + QString::number(timeLeft) + " sec(s) before broadcasting a new .spam message.");
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ mySpamBroadcastFloodTime = currentTime.addSecs(Settings::globalInstance()->spamFloodProtTime());
|
|
|
+ }
|
|
|
+
|
|
|
QString server(QString(host()) + ":" + QString::number(port()));
|
|
|
QString message("-" + command + "- " + nick + " - " + server + " : " + args.trimmed());
|
|
|
|
|
|
- //-qw- Skillah - #crazy88 : 4on4 MIX qw.foppa.dk:27503 7/8
|
|
|
+ /* Broadcast within QW servers */
|
|
|
myApp->broadcast(message, myActiveClient);
|
|
|
|
|
|
- //myApp->requestBroadcast(command, nick, server, args.trimmed());
|
|
|
-
|
|
|
+ /* Broadcast outside QW */
|
|
|
nick = parseNameFun(nick); //for the irc message namefun must be removed.
|
|
|
QString parsedMsg = parseNameFun(args.trimmed());
|
|
|
myApp->requestBroadcast("dev", nick, server, parsedMsg);
|
|
|
+ //myApp->requestBroadcast(command, nick, server, args.trimmed());
|
|
|
|
|
|
return;
|
|
|
}
|
|
@@ -277,7 +301,7 @@ void Client::onStuffedCmd(const char *cmd)
|
|
|
{
|
|
|
myConnectionRetries = 0;
|
|
|
myOnServerFlag = true;
|
|
|
- myJoinMessageTimer->start(10000);
|
|
|
+ myJoinMessageTimer->start(Settings::globalInstance()->timeToSayHiAfterConnected()*1000);
|
|
|
myJoinMessagePrinted = false;
|
|
|
}
|
|
|
}
|