- if (user && IS_OPER(user))
- {
- if (user->IsModeSet('H'))
- {
- /* we respect your wish to be invisible */
- return;
- }
- PushChanMode(channel, user);
- }
- }
-
- // XXX: is there a better way to do this?
- virtual int OnRawMode(User* user, Channel* chan, const char mode, const std::string ¶m, bool adding, int pcnt, bool servermode)
- {
- /* force event propagation to its ModeHandler */
- if (!servermode && chan && (mode == 'y'))
- return ACR_ALLOW;
- return 0;
- }
-
- virtual void OnOper(User *user, const std::string&)
- {
- if (user && IS_LOCAL(user) && !user->IsModeSet('H'))
- {
- for (UCListIter v = user->chans.begin(); v != user->chans.end(); v++)
- {
- PushChanMode(v->first, user);
- }
- }
- }
-
- virtual ~ModuleOperPrefixMode()
- {
- ServerInstance->Modes->DelMode(opm);
- delete opm;
- }
-
- virtual void CleanUser(User* user, bool quitting=false)
- {
- if (!IS_LOCAL(user))