- // Force send to all +h users
- sendtohelpop(user, pcnt, parameters);
- } else if (parameters[0][0] == '?') {
- // Force to the helpop system with no forward if not found.
- if (do_helpop(parameters, pcnt, user) == false) {
- // Not handled by the Database, Tell the user, and forward.
- for (int i = 1; output != ""; i++)
- {
- snprintf(a,MAXBUF,"line%d",i);
- output = helpop->ReadValue("nohelp", std::string(a), 0);
- if(output != "") {
- Srv->SendTo(NULL,user,"290 "+std::string(user->nick)+" :"+output);
- }
- }
- }
- } else {
- // Check with the helpop database, if not found send to +h
- if (do_helpop(parameters, pcnt, user) == false) {
- // Not handled by the Database, Tell the user, and forward.
- for (int i = 1; output != ""; i++)
- {
- snprintf(a,MAXBUF,"line%d",i);
- output = helpop->ReadValue("nohelpo", std::string(a), 0);
- if (output != "") {
- Srv->SendTo(NULL,user,"290 "+std::string(user->nick)+" :"+output);
- }
- }
- // Forward.
- sendtohelpop(user, pcnt, parameters);
+ if (adding)
+ {
+ if (!dest->IsModeSet('h'))
+ {
+ dest->SetMode('h',true);
+ return MODEACTION_ALLOW;
+ }
+ }
+ else
+ {
+ if (dest->IsModeSet('h'))
+ {
+ dest->SetMode('h',false);
+ return MODEACTION_ALLOW;
+ }