diff --git a/server/imserver/player.cc b/server/imserver/player.cc index 1a095f7..2658820 100644 --- a/server/imserver/player.cc +++ b/server/imserver/player.cc @@ -1,6 +1,7 @@ #include "precompile.h" #include +#include #include "player.h" #include "playermgr.h" @@ -205,6 +206,29 @@ void Player::ForwardGroupCMMsg(f8::MsgHdr& hdr, long long hash_code) MSConnMgr::Instance()->SendMsg(msg, hash_code); } +void Player::MarkDirty() +{ + if (!dirty_) { + dirty_ = true; + dirty_timer_ = a8::Timer::Instance()-> + AddDeadLineTimerAndAttach(1000 * 60, + a8::XParams() + .SetSender((void*)this), + [] (const a8::XParams& param) + { + Player* hum = (Player*)param.sender.GetUserData(); + hum->SaveToDB(); + }, + &timer_attacher.timer_list_, + [] (const a8::XParams& param) + { + Player* hum = (Player*)param.sender.GetUserData(); + hum->dirty_timer_ = nullptr; + } + ); + } +} + void Player::FillFriendDB(cs::MFFriendDB& friend_db) {