void OnUserPostNick(User* user, const std::string& oldnick) override { // Detect and ignore nickname case change if (ServerInstance->FindNickOnly(oldnick) == user) return; SendAlert(RPL_MONOFFLINE, oldnick); SendAlert(RPL_MONONLINE, user->nick); }
bool CMailMgr::InsertMail( const int iType, const char *szSender, const char *szReceiver, char *szTitle, char *szBody ) { char szMailQuerry[3072] = {0,}; char szMailBody[2048] = {0,}; ::ConvertQueryString(szBody,szMailBody,1000); switch(iType) { case GUILD_MAIL: { int iGuildCode = 0; if(!::GetGuildCode(szSender, iGuildCode)){return false;} ::sprintf(szMailQuerry, "EXEC MailInsertGuild %d, %d, %d, '%s', '%s', '%s'", MVT_RECV_LIST, iType, iGuildCode, szSender, szTitle, szMailBody ); }break; default: { ::sprintf(szMailQuerry, "EXEC MailInsert %d, %d, '%s', '%s', '%s', '%s'", MVT_RECV_LIST, iType, szSender, szReceiver, szTitle, szMailBody ); }break; } if( 1 == ::Querry_SQL( szMailQuerry )) { SendAlert(szReceiver);//메일 왔음을 알린다. return true; } return false; }
void OnUserQuit(User* user, const std::string& message, const std::string& oper_message) override { LocalUser* localuser = IS_LOCAL(user); if (localuser) manager.UnwatchAll(localuser); SendAlert(RPL_MONOFFLINE, user->nick); }
void MainObject::SetAudioStatus(bool status) { if(main_monitor->audioStatus(Am::This)!=status) { if(status) { SendAlert("Audio replication has RESUMED between servers \""+ main_config->hostname(Am::This)+"\" and \""+ main_config->hostname(Am::That)+"\"."); } else { SendAlert("Audio replication has STOPPED between servers \""+ main_config->hostname(Am::This)+"\" and \""+ main_config->hostname(Am::That)+"\"."); } main_monitor->setThisAudioStatus(status); main_cmd_server->sendCommand(Am::StateCommand,StateUpdateArgs()); } }
bool CMailMgr::IsExistNotRead(const int cn,t_packet *p)//안읽은 메일이 있는가? { char szQuerry[MAX_PATH] = {0,}; k_start_game_mail *pSGM = &p->u.kein.start_game_mail; ::sprintf(szQuerry, "EXEC MailGetNotReadCount '%s'", pSGM->name); HSTMT hStmt = NULL; RETCODE retCode; SDWORD cbValue; ::SQLAllocStmt(hDBC, &hStmt); retCode = SQLExecDirect(hStmt, (UCHAR *)szQuerry, SQL_NTS); int iCount = 0; if(retCode == SQL_SUCCESS || retCode == SQL_SUCCESS_WITH_INFO) { retCode = SQLFetch(hStmt); int column = 0; retCode = ::SQLGetData(hStmt, ++column, SQL_C_LONG, &iCount, 0, &cbValue); ::SQLFreeStmt(hStmt, SQL_DROP); if(iCount) { SendAlert(pSGM->name);//얼럿을 때린다 } return ((iCount)?true:false); } else { ::SQLFreeStmt(hStmt, SQL_DROP); return false; } return false; }
void OnUserBack(User* user) override { SendAlert(user, user->nick, RPL_NOTAWAY, "is no longer away", ServerInstance->Time()); }
void OnUserAway(User* user) override { SendAlert(user, user->nick, RPL_GONEAWAY, user->awaymsg.c_str(), user->awaytime); }
void Offline(User* user, const std::string& nick) { SendAlert(user, nick, RPL_LOGOFF, "went offline", user->age); }
void Online(User* user) { SendAlert(user, user->nick, RPL_LOGON, "arrived online", user->age); }
void OnPostConnect(User* user) override { SendAlert(RPL_MONONLINE, user->nick); }