|  | @@ -12,20 +12,20 @@ Client::Client(App *app, ActiveClient* ac):
 | 
											
												
													
														|  |    QWClient(),
 |  |    QWClient(),
 | 
											
												
													
														|  |    myActiveClient(ac),
 |  |    myActiveClient(ac),
 | 
											
												
													
														|  |    myApp(app),
 |  |    myApp(app),
 | 
											
												
													
														|  | -  myEndFloodTime(new QTime()),
 |  | 
 | 
											
												
													
														|  |    myConnectionRetries(0),
 |  |    myConnectionRetries(0),
 | 
											
												
													
														|  |    myOnServerFlag(false),
 |  |    myOnServerFlag(false),
 | 
											
												
													
														|  |    myMutedFlag(false),
 |  |    myMutedFlag(false),
 | 
											
												
													
														|  |    myJoinMessageTimer(new QTimer()),
 |  |    myJoinMessageTimer(new QTimer()),
 | 
											
												
													
														|  |    myJoinMessagePrinted(false)
 |  |    myJoinMessagePrinted(false)
 | 
											
												
													
														|  |  {
 |  |  {
 | 
											
												
													
														|  | -  *myEndFloodTime = QTime::currentTime();
 |  | 
 | 
											
												
													
														|  | 
 |  | +  myEndFloodTime = QTime::currentTime();
 | 
											
												
													
														|  | 
 |  | +  myQWBroadcastFloodTime = myEndFloodTime;
 | 
											
												
													
														|  | 
 |  | +  mySpamBroadcastFloodTime = myEndFloodTime;
 | 
											
												
													
														|  |    myJoinMessageTimer->setSingleShot(true);
 |  |    myJoinMessageTimer->setSingleShot(true);
 | 
											
												
													
														|  |  }
 |  |  }
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  |  Client::~Client()
 |  |  Client::~Client()
 | 
											
												
													
														|  |  {
 |  |  {
 | 
											
												
													
														|  | -  delete myEndFloodTime;
 |  | 
 | 
											
												
													
														|  |    delete myJoinMessageTimer;
 |  |    delete myJoinMessageTimer;
 | 
											
												
													
														|  |  }
 |  |  }
 | 
											
												
													
														|  |  
 |  |  
 | 
											
										
											
												
													
														|  | @@ -122,22 +122,25 @@ void Client::parsePrintedLine()
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  |    QString nick(myPrintLine.left(lastMatchSize));
 |  |    QString nick(myPrintLine.left(lastMatchSize));
 | 
											
												
													
														|  |    QString message(myPrintLine.right(myPrintLine.size() - 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)
 |  |    if(regex.indexIn(message) == -1)
 | 
											
												
													
														|  |      return;
 |  |      return;
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  |  	/* Flood prot */
 |  |  	/* Flood prot */
 | 
											
												
													
														|  | -  int timeLeft = QTime::currentTime().secsTo(*myEndFloodTime);
 |  | 
 | 
											
												
													
														|  | 
 |  | +  QTime currentTime = QTime::currentTime();
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +  int timeLeft = currentTime.secsTo(myEndFloodTime);
 | 
											
												
													
														|  |    if(timeLeft > 0)
 |  |    if(timeLeft > 0)
 | 
											
												
													
														|  |  	{
 |  |  	{
 | 
											
												
													
														|  |  		if(!myFloodMsgPrinted)
 |  |  		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;
 |  |  			myFloodMsgPrinted = true;
 | 
											
												
													
														|  |  		}
 |  |  		}
 | 
											
												
													
														|  |  		return;
 |  |  		return;
 | 
											
												
													
														|  |  	}
 |  |  	}
 | 
											
												
													
														|  | -  *myEndFloodTime = QTime::currentTime().addSecs(Settings::globalInstance()->floodProtTime());
 |  | 
 | 
											
												
													
														|  | 
 |  | +  myEndFloodTime = QTime::currentTime().addSecs(Settings::globalInstance()->floodProtTime());
 | 
											
												
													
														|  |    myFloodMsgPrinted = false;
 |  |    myFloodMsgPrinted = false;
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  |    QString command = regex.capturedTexts().at(1);
 |  |    QString command = regex.capturedTexts().at(1);
 | 
											
										
											
												
													
														|  | @@ -160,17 +163,38 @@ void Client::parsePrintedLine()
 | 
											
												
													
														|  |        return;
 |  |        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 server(QString(host()) + ":" + QString::number(port()));
 | 
											
												
													
														|  |      QString message("-" + command + "- " + nick + " - " + server + " : " + args.trimmed());
 |  |      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->broadcast(message, myActiveClient);
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  | -    //myApp->requestBroadcast(command, nick, server, args.trimmed());
 |  | 
 | 
											
												
													
														|  | -
 |  | 
 | 
											
												
													
														|  | 
 |  | +    /* Broadcast outside QW */
 | 
											
												
													
														|  |      nick = parseNameFun(nick); //for the irc message namefun must be removed.
 |  |      nick = parseNameFun(nick); //for the irc message namefun must be removed.
 | 
											
												
													
														|  |      QString parsedMsg = parseNameFun(args.trimmed());
 |  |      QString parsedMsg = parseNameFun(args.trimmed());
 | 
											
												
													
														|  |      myApp->requestBroadcast("dev", nick, server, parsedMsg);
 |  |      myApp->requestBroadcast("dev", nick, server, parsedMsg);
 | 
											
												
													
														|  | 
 |  | +    //myApp->requestBroadcast(command, nick, server, args.trimmed());
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  |  		return;
 |  |  		return;
 | 
											
												
													
														|  |  	}
 |  |  	}
 | 
											
										
											
												
													
														|  | @@ -277,7 +301,7 @@ void Client::onStuffedCmd(const char *cmd)
 | 
											
												
													
														|  |  	{
 |  |  	{
 | 
											
												
													
														|  |  		myConnectionRetries = 0;
 |  |  		myConnectionRetries = 0;
 | 
											
												
													
														|  |      myOnServerFlag = true;
 |  |      myOnServerFlag = true;
 | 
											
												
													
														|  | -    myJoinMessageTimer->start(10000);
 |  | 
 | 
											
												
													
														|  | 
 |  | +    myJoinMessageTimer->start(Settings::globalInstance()->timeToSayHiAfterConnected()*1000);
 | 
											
												
													
														|  |      myJoinMessagePrinted = false;
 |  |      myJoinMessagePrinted = false;
 | 
											
												
													
														|  |  	}
 |  |  	}
 | 
											
												
													
														|  |  }
 |  |  }
 |