* Fixed cmd_add syntax. Correct format: name, level, short help, full help, callback.

* Added core command HELP.
This commit is contained in:
Elijah Perrault committed 2011-02-04 14:21:57 -07:00
1 parent e071cd1b8b
commit 3e83a47e12
4 files changed
+71 -1

No files matched your search

+1
View File
@@ -298,6 +298,7 @@ API::Std::cmd_add("MODUNLOAD", 1, \%Core::IRC::SHELP_MODUNLOAD, \%Core::IRC::FHE
API::Std::cmd_add("MODRELOAD", 1, \%Core::IRC::SHELP_MODRELOAD, \%Core::IRC::FHELP_MODRELOAD, \&Core::IRC::cmd_modreload);
API::Std::cmd_add("SHUTDOWN", 2, \%Core::IRC::SHELP_SHUTDOWN, \%Core::IRC::FHELP_SHUTDOWN, \&Core::IRC::cmd_shutdown);
API::Std::cmd_add("RESTART", 2, \%Core::IRC::SHELP_RESTART, \%Core::IRC::FHELP_RESTART, \&Core::IRC::cmd_restart);
API::Std::cmd_add("HELP", 2, \%Core::IRC::SHELP_HELP, \%Core::IRC::FHELP_HELP, \&Core::IRC::cmd_help);
# Infinite while loop.
while (1) {
+3
View File
@@ -3,6 +3,9 @@ Auto IRC Bot 3.0: Change Log
3.0 Indev
==================================================================
* Fixed cmd_add syntax. Correct format: name, level, short help,
full help, callback.
* Added core command HELP.
* Added core command RESTART.
* Added config option server:autorejoin for rejoining on kick.
* Added event on_kick.
+1 -1
View File
@@ -102,7 +102,7 @@ sub mod_void
# Add a command to Auto.
sub cmd_add
{
my ($cmd, $lvl, $fhelp, $shelp, $sub) = @_;
my ($cmd, $lvl, $shelp, $fhelp, $sub) = @_;
$cmd = uc($cmd);
return 0 if (defined $API::Std::CMDS{$cmd});
+66
View File
@@ -237,5 +237,71 @@ sub cmd_restart
return 1;
}
# Help hashes for HELP. Spanish, French and German needed.
our %SHELP_HELP = (
'en' => 'Displays help for commands.',
);
our %FHELP_HELP = (
'en' => 'Displays help for commands.',
);
# HELP callback.
sub cmd_help
{
my (%data) = @_;
my @argv = @{ $data{args} }; delete $data{args};
# Check for arguments and reply accordingly.
if (!defined $argv[0]) {
# No command specified. List commands.
my $cmdlist = '';
foreach (sort keys %API::Std::CMDS) {
$cmdlist .= ", \002".uc($_)."\002";
}
$cmdlist = substr($cmdlist, 2);
notice($data{svr}, $data{nick}, "Command List: ".$cmdlist);
}
else {
# Help for a specific command was requested. Lets get it.
my $rcm = uc($argv[0]);
if (defined $API::Std::CMDS{$rcm}{fhelp}) {
# If there is help for this command.
if ($API::Std::CMDS{$rcm}{fhelp}) {
# If there is valid help for this command.
# Get the language.
my ($lang, undef) = split('_', $Auto::LOCALE);
if (defined ${ $API::Std::CMDS{$rcm}{fhelp} }{$lang}) {
# If help for this command is available in the configured language.
notice($data{svr}, $data{nick}, "Help for \002".$rcm."\002: ".${ $API::Std::CMDS{$rcm}{fhelp} }{$lang});
}
else {
# If it isn't, default to English.
if (defined ${ $API::Std::CMDS{$rcm}{fhelp} }{en}) {
# If help for this command is available in English.
notice($data{svr}, $data{nick}, "Help for \002".$rcm."\002: ".${ $API::Std::CMDS{$rcm}{fhelp} }{en});
}
else {
# If it isn't, no help.
notice($data{svr}, $data{nick}, "No help for \002".$rcm."\002 available.");
}
}
}
else {
# If it isn't valid, no help.
notice($data{svr}, $data{nick}, "No help for \002".$rcm."\002 available.");
}
}
else {
# If there is no help, don't give any.
notice($data{svr}, $data{nick}, "No help for \002".$rcm."\002 available.");
}
}
return 1;
}
1;