Explorar o código

KeepNick feature. Fixed floodprot wraparound that caused the bot to stop
receiving commands.

Mihawk %!s(int64=12) %!d(string=hai) anos
pai
achega
1f76e81164
Modificáronse 2 ficheiros con 10 adicións e 0 borrados
  1. 9 0
      Client.cpp
  2. 1 0
      Client.h

+ 9 - 0
Client.cpp

@@ -17,12 +17,14 @@ Client::Client(App *app, ActiveClient* ac):
   mySpamMutedFlag(false),
   myQWMutedFlag(false),
   myJoinMessageTimer(new QTimer()),
+  myKeepNickTimer(new QTimer()),
   myJoinMessagePrinted(false),
   myJoinMessageScheduled(false)
 {
   myQWBroadcastFloodTime = myEndFloodTime;
   mySpamBroadcastFloodTime = myEndFloodTime;
   myJoinMessageTimer->setSingleShot(true);
+  myKeepNickTimer->setSingleShot(true);
 }
 
 Client::~Client()
@@ -323,6 +325,13 @@ void Client::run()
     myJoinMessagePrinted = true;
   }
 
+  /* Keep nick... Simply set name again after 10 secs */
+  if(!myKeepNickTimer->isActive())
+  {
+    setName(Settings::globalInstance()->botName().toAscii().data());
+    myKeepNickTimer->start(30000);
+  }
+
   /* Avoid wrap around */
   if(QTime::currentTime().secsTo(myEndFloodTime) < -16000)
     myEndFloodTime = QTime::currentTime();

+ 1 - 0
Client.h

@@ -58,6 +58,7 @@ private:
   bool              mySpamMutedFlag;
   bool              myQWMutedFlag;
   QTimer*           myJoinMessageTimer;
+  QTimer*           myKeepNickTimer;
   QTime             myQWBroadcastFloodTime;
   QTime             mySpamBroadcastFloodTime;
   bool              myJoinMessagePrinted;