-"bind" ("/msg $S BIND <service> <bindname> <command> [additional args..]",
- "Binds (adds) a command to an existing service. $bbindname$b is the name of the new command for the service. $bcommand$b may be one of:",
- " CommandName To refer to a command on the same service.",
- " ServiceNick.CommandName To refer to a command bound on a different service such as $O, $C, $N, etc.",
- " *ModuleName.CommandName To bind a command directly from a module (note the asterisk before the module name).",
- " *ModuleName.* To bind all commands from the named module, where ModuleName is one of OpServ, NickServ, ChanServ, modcmd, or others.",
- "For simplicity, you cannot bind to a command that is itself an alias. Certain commands will not bound with the last form; you must bind them by name.",
- "(A command binding is very similar to an alias, but only pays the speed penalty for alias expansion when there are additional arguments in the binding.)",
- "If you want to be able to bind $bfoo bar$b as a command, you need to bind $bfoo$b to modcmd.joiner first.",
- "$uSee also:$u unbind, joiner");
-
-"commands" "${index}";
+"bind" ("/msg $S BIND <ServiceNick> <BindName> [Nick|*Module.]<Command> [Arg [Arg[..]]]",
+ "Bind creates a command. ",
+ " $bServiceNick$b is which service the new command will work on.",
+ " $bBindName$b is the name of the new command you are making.",
+ " $bCommand$b To refer to a command on the same service.",
+ " $bNick$b To refer to a command on a different ",
+ " service such as $O, $C, $N, etc.",
+ " $b*Module$b To bind a command directly from a module such as",
+ " ChanServ, OpServ, NickServ, modcmd, etc",
+ " (note the asterisk before the module name).",
+ " $barg(s)$b Can be anything, or you can use $$1 $$2 $$3 etc",
+ " which will be replaced with the arguments passed",
+ " to the command. Use a - after ($$2-) to indicate",
+ " that argument and all arguments after it.",
+ "$b$b",
+ "There is a special case to load ALL commands from a module:",
+ "/msg $S bind <serviceNick> * *<Module>.* ",
+ " You may need to run this after installing previously",
+ " missing modules, or making changes such as enabling",
+ " the email features, so all the commands are bound.",
+ " Note: Certain(alias) commands will not bind this way; ",
+ " you must bind them by name. ",
+ " See $bREBINDALL$b to rebind everything.",
+ "$b$b",
+ "For simplicity, you cannot bind to a command that is an alias.",
+ "$b$b",
+ "If you want to bind $bfoo bar$b as a command, bind $bfoo$b to $b*modcmd.joiner$b first, unless foo is a builtin command such as uset, in which case use '\\' to escape the space (example: $bbind x3 uset\ autoop x3.uset\ autoop$b)",
+ "$b$b",
+ "$uExamples$u",
+ " bind X3 autoop *chanserv.uset\\ autoop",
+ " bind O3 murder o3.trace gline nick $$1 duration 1m reason $$2-",
+ " bind X3 * *chanserv.*",
+ "$b$b",
+ "$uSee also:$u unbind, joiner, modcmd, rebindall");
+
+"commands" ("The following commands are available:",
+ "${index}",
+ "$uSee Also$u: modcmd, command");
+
+"rebindall" ("/msg $S REBINDALL",
+ "Rebinds all available delault commands and aliases for each service and module currently loaded.",
+ "Note: this does NOT remove any additional aliases or bindings you may have made, but will replace any you have deleted.",
+ "Good to use after upgrades or after enabling 'email' support to ensure you have all commands bound to a service bot.",
+ "$uSee also:$u bind (esp 'bind nick * *mod.*'), unbind, modcmd");