- void CleanUser(User* user, bool quitting)
- {
-
- std::set<std::string>* ext;
- if (user->GetExt("m_operprefix",ext))
- {
- // Don't want to announce -mode when they're quitting anyway..
- if (!quitting)
- {
- for (UCListIter v = user->chans.begin(); v != user->chans.end(); v++)
- {
- ModePair ms = opm->ModeSet(NULL, NULL , v->first, user->nick);
- if (ms.first)
- {
- PushChanMode(v->first, user, true);
- }
- }
- }
- ext->clear();
- delete ext;
- user->Shrink("m_operprefix");
- }
- }
-
- virtual void OnCleanup(int target_type, void* item)
- {
- if (target_type == TYPE_USER)
- {
- User* user = (User*)item;
- CleanUser(user, false);
- }
- }
-
- virtual void OnUserQuit(User* user, const std::string &reason, const std::string &oper_message)
- {
- CleanUser(user,true);
- }
-
- virtual void OnUserKick(User* source, User* user, Channel* chan, const std::string &reason, bool &silent)
- {
- DelPrefixChan(user, chan);
- }
-
- virtual void OnUserPart(User* user, Channel* channel, std::string &partreason, bool &silent)
- {
- DelPrefixChan(user, channel);
- }
-
- virtual Version GetVersion()