* Fixed cmd_add syntax. Correct format: name, level, short help, full help, callback.
* Added core command HELP.
This commit is contained in:
1 parent
e071cd1b8b
commit
3e83a47e12
4 files changed
+71
-1
No files matched your search
@@ -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,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
@@ -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});
|
||||
|
||||
@@ -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;
|
||||
Reference in new issue
Block a user