- char a[MAXBUF];
- std::string output = " ";
-
- if (!helpop)
- return;
-
- if (pcnt < 1)
- {
- do_helpop(NULL,pcnt,user);
- return;
- }
-
- if (parameters[0][0] == '!')
- {
- // 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 bail.
- 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);
- /* "nohelpo" for opers "nohelp" for users */
- 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);
- }
- }