Esempio n. 1
0
void IGPServerConnection::dataReceived(VoidBuffer data)
{
    IGPDatagram message(data);
    switch (message.getMsgIdent()) {
    case IGPDatagram::ClientMsgAutoAssignID:
        igpID = pool->getUniqueIGPId();
        printf("Auto-assign ID:%d\n", igpID);
        valid=true;
        sendIGPIdent();
        break;
    case IGPDatagram::ClientMsgAssignID: {
        IGPDatagram::ClientMsgAssignIDDatagram msgReceived(message);
        printf("Assign ID\n");
        if (pool->igpIdValidAndUnique(msgReceived.getIgpIdent())) {
            valid=true;
            igpID = msgReceived.getIgpIdent();
            sendIGPIdent();
        }
        else {
            printf("Adresse igp invalide:%d\n", msgReceived.getIgpIdent());
        }
        break;
    }
    case IGPDatagram::ClientMsgGetID:
        sendIGPIdent();
        break;
    case IGPDatagram::ClientMsgToClient: {
        IGPDatagram::ClientMsgToClientDatagram msgReceived(message);
        IGPDatagram::ServerMsgToClientDatagram msgToSend(igpID, msgReceived.getIgpIdent(), msgReceived.getMessage());
        IGPServerConnection *destConnection = pool->getConnection(msgReceived.getIgpIdent());
        if (destConnection != NULL) {
            destConnection->clientSocket->getOutputStream()->streamWrite(msgToSend.serialize());
        }
        else {
            printf("DEST not found!!!\n");
        }
        //Buffer<char> str(msgToSend.getMessage());
        //str.grow(1);
        //str[str.size() - 1] = 0;
        //printf("Message to %d: %s\n", msgToSend.getIgpIdent(), (const char *)str);
        break;
    }
    default:
        break;
    }
    //Buffer<char> str(data);
    //str.grow(1);
    //str[str.size() - 1] = 0;
    //printf("Donnees recues: %s\n", (const char *)str);
}
Esempio n. 2
0
bool
JabberPlugin::connectPlugin( bool startup )
{
    qDebug() << "JabberPlugin::connect";
    if ( startup && !TomahawkSettings::instance()->jabberAutoConnect() )
        return false;

    QString jid       = TomahawkSettings::instance()->jabberUsername();
    QString server    = TomahawkSettings::instance()->jabberServer();
    QString password  = TomahawkSettings::instance()->jabberPassword();
    unsigned int port = TomahawkSettings::instance()->jabberPort();

    QStringList splitJid = jid.split( '@', QString::SkipEmptyParts );
    if ( splitJid.size() < 2 )
    {
        qDebug() << "JID did not have an @ in it, could not find a server part";
        return false;
    }

    if ( server.isEmpty() )
        server = splitJid[1];

    if ( port < 1 || port > 65535 || jid.isEmpty() || password.isEmpty() )
    {
        qDebug() << "Jabber credentials look wrong, not connecting";
        return false;
    }

    delete p;
    p = new Jabber_p( jid, password, server, port );

    QObject::connect( p, SIGNAL( peerOnline( QString ) ), SIGNAL( peerOnline( QString ) ) );
    QObject::connect( p, SIGNAL( peerOffline( QString ) ), SIGNAL( peerOffline( QString ) ) );
    QObject::connect( p, SIGNAL( msgReceived( QString, QString ) ), SIGNAL( msgReceived( QString, QString ) ) );

    QObject::connect( p, SIGNAL( connected() ), SIGNAL( connected() ) );
    QObject::connect( p, SIGNAL( disconnected() ), SIGNAL( disconnected() ) );
    QObject::connect( p, SIGNAL( authError( int, QString ) ), SLOT( onAuthError( int, QString ) ) );

    p->resolveHostSRV();
    
    return true;
}
Esempio n. 3
0
void NetworkDeviceHandler::newConnection()
{
    emit log("New Connection !");

    QTcpSocket *client = server->nextPendingConnection();
    clients << client;

    connect(client, SIGNAL(readyRead()),this, SLOT(msgReceived()));
    connect(client, SIGNAL(disconnected()),this, SLOT(disconnected()));

}
Esempio n. 4
0
void
SipHandler::hookUpPlugin( SipPlugin* sip )
{
    QObject::connect( sip, SIGNAL( peerOnline( QString ) ), SLOT( onPeerOnline( QString ) ) );
    QObject::connect( sip, SIGNAL( peerOffline( QString ) ), SLOT( onPeerOffline( QString ) ) );
    QObject::connect( sip, SIGNAL( msgReceived( QString, QString ) ), SLOT( onMessage( QString, QString ) ) );
    QObject::connect( sip, SIGNAL( sipInfoReceived( QString, SipInfo ) ), SLOT( onSipInfo( QString, SipInfo ) ) );
    QObject::connect( sip, SIGNAL( softwareVersionReceived( QString, QString ) ), SLOT( onSoftwareVersion( QString, QString ) ) );

    QObject::connect( sip, SIGNAL( avatarReceived( QString, QPixmap ) ), SLOT( onAvatarReceived( QString, QPixmap ) ) );
    QObject::connect( sip, SIGNAL( avatarReceived( QPixmap ) ), SLOT( onAvatarReceived( QPixmap ) ) );

    QObject::connect( sip->account(), SIGNAL( configurationChanged() ), sip, SLOT( configurationChanged() ) );
}
Esempio n. 5
0
void EQPlayer::increaseSkill(const skillIncreaseStruct* skilli)
{
  // save the new skill value
  m_playerSkills[skilli->skillId] = skilli->value;
  m_thePlayer.skills[skilli->skillId] = skilli->value;

  // notify others of the new value
  emit changeSkill (skilli->skillId, skilli->value);

  QString tempStr;
  tempStr.sprintf("Skill: %s has increased (%d)",
		  (const char*)skill_name(skilli->skillId),
		  skilli->value);

  emit msgReceived(tempStr);
  emit stsMessage(tempStr);
}
Esempio n. 6
0
void NetworkDeviceHandler::connectTo(QString addr, bool server)
{

    QTcpSocket* socket = sockVerifier;
    if(server) socket = sockServer;
    socket = new QTcpSocket(this);

    connect(socket, SIGNAL(readyRead()), this, SLOT(msgReceived()));
    connect(socket, SIGNAL(connected()), this, SLOT(connected()));
    connect(socket, SIGNAL(disconnected()), this, SLOT(disconnected()));
    //connect(socket, SIGNAL(error(QAbstractSocket::SocketError)), this, SLOT(erreurSocket(QAbstractSocket::SocketError)));

    socket->connectToHost(addr, port);

    if(server) sockServer = socket;
    else sockVerifier = socket;

    sizeMsg = 0;
}
Esempio n. 7
0
void FLJasperEngine::msgHandler(AQReportsMsgType type, const QString &msg)
{
  emit msgReceived(type, msg);

  switch (type) {
    case AQErrorMsg:
#ifdef FL_DEBUG
      qWarning("FLJasperEngine::AQErrorMsg : " + msg);
#endif
      if (d->showErrorDialog_) {
        QApplication::restoreOverrideCursor();
        QMessageBox::warning(0, QApplication::tr("Error"), msg, QMessageBox::Ok, 0, 0);
      }
      break;
    case AQLogMsg:
#ifdef FL_DEBUG
      qWarning("FLJasperEngine::AQLogMsg : " + msg);
#endif
      break;
    case AQSysMsg:
      break;
  }
}
Esempio n. 8
0
void SpawnShell::consMessage(const considerStruct * con, uint32_t, uint8_t dir) 
{
  Item* item;
  Spawn* spawn;

  if (dir == DIR_CLIENT)
  {
    if (con->playerid != con->targetid) 
    {
      item = m_spawns.find(con->targetid);
      if (item != NULL)
      {
	spawn = (Spawn*)item;

	// note that this spawn has been considered
	spawn->setConsidered(true);
	
	emit spawnConsidered(item);
      }
    }
    return;
  }

  QString lvl("");
  QString hps("");
  QString cn("");

  QString msg("Faction: Your faction standing with ");

  //printf("%i, %i, %i, %i\n", con->unknown1[0], con->unknown1[1], con->unknown2[0], con->unknown2[1]);

  // is it you that you've conned?
  if (con->playerid == con->targetid) 
  {
    // print it's deity
    printf("Diety: %s\n", (const char*)m_player->deityName());
    
    // well, this is You
    msg += "YOU";
  }
  else 
  {
    // find the spawn if it exists
    item = m_spawns.find(con->targetid);
    
    // has the spawn been seen before?
    if (item != NULL)
    {
      Spawn* spawn = (Spawn*)item;
      // yes
      printf("Diety: %s\n", (const char*)spawn->deityName());

      int changed = tSpawnChangedNone;

      /* maxhp and curhp are available when considering players, */
      /* but not when considering mobs. */
      if (con->maxHp || con->curHp)
      {
         if (spawn->NPC() == SPAWN_NPC_UNKNOWN)
         {
	   spawn->setNPC(SPAWN_PLAYER);        // player
	   changed |= tSpawnChangedNPC;
         }
         spawn->setMaxHP(con->maxHp);
         spawn->setHP(con->curHp);
         changed |= tSpawnChangedHP;
      }
      else if (item->NPC() == SPAWN_NPC_UNKNOWN)
      {
         spawn->setNPC(SPAWN_NPC);
         changed |= tSpawnChangedNPC;
      }

      // note the updates if any
      if (changed != tSpawnChangedNone)
      {
        if (updateFilterFlags(item))
           changed |= tSpawnChangedFilter;
        if (updateRuntimeFilterFlags(item))
           changed |= tSpawnChangedRuntimeFilter;

	item->updateLastChanged();
        emit changeItem(item, changed);
      }

      // note that this spawn has been considered
      spawn->setConsidered(true);

      emit spawnConsidered(item);

      msg += item->name();
    } // end if spawn found
    else
      msg += "Spawn:" + QString::number(con->targetid, 16);
  } // else not yourself
  
  switch (con->level) 
  {
     case 0:
     {
        cn.sprintf(" (even)");
        break;
     }
     case 2:
     {
        cn.sprintf(" (green)");
        break;
     }
     case 4:
     {
        cn.sprintf(" (blue)");
        break;
     }
     case 13:
     {
        cn.sprintf(" (red)");
        break;
     }
     case 15:
     {
        cn.sprintf(" (yellow)");
        break;
     }
     case 18:
     {
        cn.sprintf(" (cyan)");
        break;
     }
     default:
     {
        cn.sprintf(" (unknown: %d)", con->level);
        break;
     }
  }

  msg += cn;

  if (con->maxHp || con->curHp)
  {
    lvl.sprintf(" (%i/%i HP)", con->curHp, con->maxHp);
    msg += lvl;
  }
  
  msg += QString(" is: ") + print_faction(con->faction) + " (" 
    + QString::number(con->faction) + ")!";
  
  emit msgReceived(msg);
} // end consMessage()
Esempio n. 9
0
void WebQQNet::httpPollFinished(QNetworkReply* reply){

    QByteArray replyData=reply->readAll();
    reply->deleteLater();
    QString replystr=QString::fromUtf8(replyData);
    QJsonDocument jsonDoc;
    QJsonObject jsonObj;
    QJsonArray jsonArray;
    int retcode=0;
    jsonDoc=QJsonDocument::fromJson(replyData);
    qDebug()<<"httpPollFinished jsonDoc="<<jsonDoc<<endl<<"replystr="<<replystr<<replystr.length()<<endl;
    if(jsonDoc.isObject()){
        jsonObj=jsonDoc.object();
        retcode=jsonObj.value("retcode").toDouble();
        if(retcode==0){
            WebQQ::mutex.lock();
            jsonArray=jsonObj.value("result").toArray();
            for(int i=0;i<jsonArray.size();i++){
                jsonObj=jsonArray.at(i).toObject();
                QQmsg* msg=new QQmsg();
                if(jsonObj.value("poll_type").toString()==QString("group_message")){
                    jsonObj=jsonObj.value("value").toObject();
                    msg->type=1;//群信息
                    //send_uin群内发言者TXUIN(通迅号)
                    msg->send_uin=QString::number(jsonObj.value("send_uin").toDouble(),'f',0);
                    //from_uin群TXUIN(群消息)或者好友TXUIN(私聊时)
                    msg->from_uin=QString::number(jsonObj.value("from_uin").toDouble(),'f',0);
                }else if(jsonObj.value("poll_type").toString()==QString("message")){
                    jsonObj=jsonObj.value("value").toObject();
                    msg->type=0;//好友信息
                    //from_uin群TXUIN(群消息)或者好友TXUIN(私聊时)
                    msg->from_uin=QString::number(jsonObj.value("from_uin").toDouble(),'f',0);
                }else{
                    delete msg;
                    break;
                }
                msg->time=jsonObj.value("time").toDouble();
                jsonArray=jsonObj.value("content").toArray();
                for(int i=1;i<jsonArray.size();i++){
                    if(jsonArray.at(i).isString()){
                        msg->content+=jsonArray.at(i).toString();
                    }else if(jsonArray.at(i).isArray()){
                        msg->content+="[图片]";
                    }
                }
                WebQQ::qqmsgs.append(msg);
                qDebug()<<msg->type<<msg->from_uin<<msg->time<<QDateTime::fromTime_t(msg->time)<<endl<<msg->content<<endl;
            }
            WebQQ::mutex.unlock();
            emit msgReceived();

        }else if(retcode==116){
            ptwebqq=jsonObj.value("p").toString();
            qDebug()<<"httpPollFinished retcode="<<retcode<<endl;
        }
    }
    if(retcode==0||retcode==102||retcode==116){
        this->pollMsg();
    }else{
        WebQQ::status=QQstatus::offline;
        emit sysMsg("掉线了,请重新登录。");
    }
}
Esempio n. 10
0
void EQPlayer::updateExp(const expUpdateStruct* exp)
{
  QString totalExp;
  QString gainedExp;
  QString leftExp;
  QString needKills;
  QString tempStr;

  if (m_currentExp > 0)
  {
    totalExp  = Commanate(exp->exp);
    gainedExp = Commanate((uint32_t) (exp->exp - m_currentExp));

    needKills = Commanate((( calc_exp( getPlayerLevel (),
				       getPlayerRace  (),
				       getPlayerClass ()
				       )  - exp->exp
			     )           /   ( exp->exp > m_currentExp    ?
					       exp->exp - m_currentExp :
					       1
					       )
			   )            + 1
			  );
    
    leftExp = Commanate((( calc_exp( getPlayerLevel (),
				     getPlayerRace  (),
				     getPlayerClass ()
				     )
			   ) - ( calc_exp(
					  getPlayerLevel ()              - 1,
					  getPlayerRace  (),
					  getPlayerClass ()
					  )
				 )
			 )  - ( exp->exp - ( calc_exp( getPlayerLevel () - 1,
						       getPlayerRace  (),
						       getPlayerClass ()
						       )
					     )
				)
			);
    
    tempStr = QString("Exp: %1 (%2) [%3]").arg(totalExp).arg(gainedExp).arg(needKills);
    emit expChangedStr (tempStr);
    
    tempStr = QString("Exp: %1 (%2)(%3) left %4").arg(totalExp).arg(gainedExp).arg(needKills).arg(leftExp);
    
    emit msgReceived(tempStr);

    if (m_freshKill)
    {
      emit expGained( m_lastSpawnPlayerKilled.name,
		      m_lastSpawnPlayerKilled.level,
		      exp->exp - m_currentExp,
		      m_longZoneName);
      
      // have gained experience for the kill, it's no longer fresh
      m_freshKill = false;
    }
    else if ((m_lastSpellOnId == 0x0184) || // Resuscitate
	     (m_lastSpellOnId == 0x0187) || // Revive (does it or don't it?)
	     (m_lastSpellOnId == 0x0188) || // Resurrection
	     (m_lastSpellOnId == 0x02f4) || // Resurrection Effects
	     (m_lastSpellOnId == 0x02f5) || // Resurrection Effect
	     (m_lastSpellOnId == 0x03e2) || // Customer Service Resurrection
	     (m_lastSpellOnId == 0x05f4)) // Reviviscence
      {
	emit expGained( spell_name(m_lastSpellOnId),
			0, // level of caster would only confuse things further
			exp->exp - m_currentExp,
			m_longZoneName);
      }
    else
      emit expGained( "Unknown", // Randomly blessed with xp?
		      0, // don't know what gave it so, level 0
		      exp->exp - m_currentExp,
		      m_longZoneName
		      );
    
    emit stsMessage(tempStr);
  }
  
  emit expChangedInt ( exp->exp,
		       calc_exp( getPlayerLevel () - 1,
				 getPlayerRace  (),
				 getPlayerClass ()
				 ),
		       calc_exp( getPlayerLevel (),
				 getPlayerRace  (),
				 getPlayerClass ()
				 )
		       );
  
  m_currentExp = exp->exp;

  m_validExp = true;
}
Esempio n. 11
0
void EQPlayer::backfill(const playerProfileStruct* player)
{
  QString messag;
  
  printf("EQPlayer::backfill():\n");
  
  messag.sprintf("Zone: Name='%s' Last='%s'\n", 
		 player->name, player->lastName);
  emit msgReceived(messag);
  
  messag.sprintf("Zone: Level: %d\n", player->level);
  emit msgReceived(messag);
  
  messag.sprintf("Zone: PlayerMoney: P=%d G=%d S=%d C=%d\n",
		 player->platinum, player->gold, 
		 player->silver, player->copper);
  emit msgReceived(messag);
  
  messag.sprintf("Zone: BankMoney: P=%d G=%d S=%d C=%d\n",
		 player->platinumBank, player->goldBank, 
		 player->silverBank, player->copperBank);
  emit msgReceived(messag);
  
  memcpy(&m_thePlayer, player, sizeof(playerProfileStruct));
  
  m_playerLevel = player->level;
  m_playerRace = player->race;
  m_playerClass = player->class_;
  
  setUseDefaults(false);
  setPlayerName(player->name);
  setPlayerLastName(player->lastName);
  setPlayerLevel(player->level);
  setPlayerRace(player->race);
  setPlayerClass(player->class_);
  
  messag = "Exp: " + Commanate(player->exp);
  
  // Due to the delayed decode, we must reset
  // maxplayer on zone and accumulate all totals.
  m_maxSTR += player->STR;
  m_maxSTA += player->STA;
  m_maxCHA += player->CHA;
  m_maxDEX += player->DEX;
  m_maxINT += player->INT;
  m_maxAGI += player->AGI;
  m_maxWIS += player->WIS;
  
  emit statChanged (LIST_STR, m_maxSTR, m_maxSTR);
  emit statChanged (LIST_STA, m_maxSTA, m_maxSTA);
  emit statChanged (LIST_CHA, m_maxCHA, m_maxCHA);
  emit statChanged (LIST_DEX, m_maxDEX, m_maxDEX);
  emit statChanged (LIST_INT, m_maxINT, m_maxINT);
  emit statChanged (LIST_AGI, m_maxAGI, m_maxAGI);
  emit statChanged (LIST_WIS, m_maxWIS, m_maxWIS);
  
  m_maxMana = calcMaxMana( m_maxINT,
			   m_maxWIS,
			   m_playerClass,
			   m_playerLevel
			   ) + m_plusMana;
  
  emit manaChanged(m_thePlayer.MANA, m_maxMana);  // need max mana

  uint32_t playerExp = player->exp;

  if (playerExp > m_currentExp)
    m_currentExp = playerExp;
  else
    playerExp = m_currentExp;
  
  m_maxExp = calc_exp(m_playerLevel,m_playerRace,m_playerClass);

  emit expChangedStr (messag);
  emit expChangedInt ( playerExp,
                       calc_exp(m_playerLevel-1, m_playerRace, m_playerClass),
                       calc_exp(m_playerLevel,   m_playerRace, m_playerClass)
		       );
  
  // Merge in our new skills...
  for (int a = 0; a < MAX_KNOWN_SKILLS; a++)
  {
    if ((m_playerSkills[a] == 255) || // not valid
	(player->skills[a] > m_playerSkills[a])) // or a higher value
      m_playerSkills[a] = player->skills[a];

    emit addSkill (a, m_playerSkills[a]);
  }

  // Merge in our new languages...
  for (int a = 0; a < MAX_KNOWN_LANGS; a++)
  {
    if ((m_playerLanguages[a] == 255) ||
	(player->languages[a] > m_playerLanguages[a]))
      m_playerLanguages[a] = player->languages[a];
    
    emit addLanguage (a, m_playerLanguages[a]);
  }

  m_validAttributes = true;
  m_validMana = true;
  m_validExp = true;

  // update the con table
  fillConTable();
}