diff --git a/doc/CHANGELOG b/doc/CHANGELOG index cbddcd3..357b693 100644 --- a/doc/CHANGELOG +++ b/doc/CHANGELOG @@ -3,6 +3,7 @@ Auto IRC Bot 3.0: Change Log 3.0 Indev ================================================================== + * Added rchook_add() and rchook_del() to API::Std. * Parse NOTICE and added hook on_notice. * Added hooks on_uprivmsg and on_cprivmsg. * Module names are now case sensitive. diff --git a/src/API/Std.pm b/src/API/Std.pm index 68e8491..ca1a419 100644 --- a/src/API/Std.pm +++ b/src/API/Std.pm @@ -10,7 +10,8 @@ use Exporter; our (%LANGE, %MODULE, %EVENTS, %HOOKS, %CMDS); our @ISA = qw(Exporter); -our @EXPORT_OK = qw(conf_get trans err awarn timer_add timer_del cmd_add cmd_del hook_add hook_del); +our @EXPORT_OK = qw(conf_get trans err awarn timer_add timer_del cmd_add + cmd_del hook_add hook_del rchook_add rchook_del); # Initialize a module. @@ -240,6 +241,32 @@ sub timer_del return 0; } +# Hook onto a raw command. +sub rchook_add +{ + my ($cmd, $sub) = @_; + $cmd = uc($cmd); + + return 0 if defined $Parser::IRC::RAWC{$cmd}; + + $Parser::IRC::RAWC{$cmd} = $sub; + + return 1; +} + +# Delete a raw command hook. +sub rchook_del +{ + my ($cmd) = @_; + $cmd = uc($cmd); + + return 0 if !defined $Parser::IRC::RAWC{$cmd}; + + delete $Parser::IRC::RAWC{$cmd}; + + return 1; +} + # Configuration value getter. sub conf_get {