# This is called whenever a public message is received, from any source. In the future,
# this should check for hooks stored on the heap. TODO.
sub on_public {
- my( $kernel, $heap, $who, $what, $src, $dest, $replypath, $trusted ) = @_[ KERNEL, HEAP, ARG0, ARG1, ARG2, ARG3, ARG4, ARG5 ];
+ my( $kernel, $heap, $who, $what, $src, $dest, $replypath, $trusted, $trap ) = @_[ KERNEL, HEAP, ARG0, ARG1, ARG2, ARG3, ARG4, ARG5, ARG6 ];
my $cmd = ( split( / /, $what, 2 ) )[0];
# Check for the presence of a command
if( $cmd =~ /^~.*/ ) {
} else {
# Handle URLs
# TODO: Find a new place to put trap config
- if( $what =~ m!(https?://[^[:space:]]+)!i ) {
+ if( $trap && $what =~ m!(https?://[^[:space:]]+)!i ) {
print( "IRC : URL Trapped: '$1' from $who\n" );
my $url = $1;
$kernel->yield( "cmd", $who, "TITLE $url", $src, $dest, $replypath, $trusted );