+ virtual ModResult OnSetAway(User *user, const std::string &awaymsg)
+ {
+ std::string numeric;
+ int inum;
+
+ if (awaymsg.empty())
+ {
+ numeric = std::string(user->nick) + " " + user->ident + " " + user->dhost + " " + ConvToStr(ServerInstance->Time()) + " :is no longer away";
+ inum = 599;
+ }
+ else
+ {
+ numeric = std::string(user->nick) + " " + user->ident + " " + user->dhost + " " + ConvToStr(ServerInstance->Time()) + " :" + awaymsg;
+ inum = 598;
+ }
+
+ watchentries::iterator x = whos_watching_me->find(user->nick.c_str());
+ if (x != whos_watching_me->end())
+ {
+ for (std::deque<User*>::iterator n = x->second.begin(); n != x->second.end(); n++)
+ {
+ (*n)->WriteNumeric(inum, numeric);
+ }
+ }
+
+ return MOD_RES_PASSTHRU;
+ }