/***********************************************************************
X3 ChangeLog
+2005-05-18 Alex Schumann <rubin@afternet.org>
+
+ * src/modcmd.c: reed pointed out that modcmd non-command help wasnt
+ working, and pointed me to the opserv helpfiles command, which shows
+ what services search what help files. This fixes the help command to
+ search that list as it should. Still need to modify the 'default'
+ helpfile search bindigs because I dont think chanserv should respond
+ to help from opserv's db, etc. See opserv's 'helpfiles' command.
+
+ * src/modcmd.help: clarified 'helpfiles' help.
+
2005-05-18 Alex Schumann <rubin@afternet.org>
* src/helpfile.c: make send_help() return true/false and not send
errors so svccmd_send_help can 'take control' of things.
* src/modcmd.c: Fixed up the help system (again) / find aliased
- commands help if none exists.
+ commands help if none exists. / Display no help for that command on
+ commands (instead of topic)
* src/modcmd.h: Fixed up the help system (again)
{ "MCMSG_COMMAND_ALIASES", "%s is an alias for: %s" },
{ "MCMSG_HELP_COMMAND_ALIAS", "$uAlias for:$u %s" },
{ "MCMSG_HELP_COMMAND_HEADER", "Command help for: $b%s$b" },
+ { "MCMSG_HELP_COMMAND_UNKNOWN", "No help available for that command." },
{ "MCMSG_HELP_TOPIC_HEADER", "Help topic: $b%s$b" },
{ "MCMSG_HELP_DIVIDER", "=---------------------------------------=" },
{ "MCMSG_HELP_FOOTER", "=------------- End of Help -------------=" },
struct module *module;
struct svccmd *cmd;
char cmdname[MAXLEN];
- unsigned int nn;
+ unsigned int nn, ii;
int helpsent = 0;
/* If there is no topic show the index */
}
/* If send_help still couldnt find it, tell them sorry */
if(!helpsent)
- send_message(user, service->bot, "MSG_TOPIC_UNKNOWN");
+ send_message(user, service->bot, "MCMSG_HELP_COMMAND_UNKNOWN");
send_message(user, service->bot, "MCMSG_HELP_FOOTER");
return true;
}
else /* look for topic in the help files loaded to this nick/service */
{
- /* Check for non command help in first primary help file, then
- * check for help for this on another service and provide a tip */
- module = service->modules.list[0];
- if (module->helpfile && dict_find(module->helpfile->db, topic, NULL))
+ /* Check for non command help in first primary help file, then next and so on */
+ /* Note - we need to think about default bindings. see opserv.helpfiles */
+ for(ii = 0; ii < service->modules.used; ii++)
{
-
- send_message(user, service->bot, "MCMSG_HELP_TOPIC_HEADER", cmdname);
- send_message(user, service->bot, "MCMSG_HELP_DIVIDER");
- if(!send_help(user, service->bot, module->helpfile, topic))
- send_message(user, service->bot, "MSG_TOPIC_UNKNOWN");
- send_message(user, service->bot, "MCMSG_HELP_FOOTER");
- return true;
+ module = service->modules.list[ii];
+ if(!module->helpfile)
+ continue;
+ if(dict_find(module->helpfile->db, topic, NULL))
+ {
+ if (module->helpfile && dict_find(module->helpfile->db, topic, NULL))
+ {
+
+ send_message(user, service->bot, "MCMSG_HELP_TOPIC_HEADER", cmdname);
+ send_message(user, service->bot, "MCMSG_HELP_DIVIDER");
+ /* This should never fail but maybe if something is odd? */
+ if(!send_help(user, service->bot, module->helpfile, topic))
+ send_message(user, service->bot, "MSG_TOPIC_UNKNOWN");
+ send_message(user, service->bot, "MCMSG_HELP_FOOTER");
+ return true;
+ }
+ }
}
}
/* Otherwise say we cant find it */