3
0
mirror of https://github.com/pragma-/pbot.git synced 2024-11-26 22:09:26 +01:00

EventDispatcher: dispatch_event() now returns proper value

This commit is contained in:
Pragmatic Software 2021-07-06 18:43:52 -07:00
parent dcfe07d7c9
commit 5212c6538f

View File

@ -73,7 +73,7 @@ sub dispatch_event {
my $debug = $self->{pbot}->{registry}->get_value('eventdispatcher', 'debug') // 0; my $debug = $self->{pbot}->{registry}->get_value('eventdispatcher', 'debug') // 0;
# event handler return value # event handler return value
my $ret = undef; my $dispatch_result= undef;
# if the event-name has handlers # if the event-name has handlers
if (exists $self->{handlers}->{$event_name}) { if (exists $self->{handlers}->{$event_name}) {
@ -88,7 +88,10 @@ sub dispatch_event {
} }
# invoke event handler # invoke event handler
eval { $ret = $subref->($event_name, $event_data) }; my $handler_result = eval { $subref->($event_name, $event_data) };
# update $dispatch_result only to a true handler result
$dispatch_result = $handler_result if not $dispatch_result;
# check for error # check for error
if (my $error = $@) { if (my $error = $@) {
@ -99,7 +102,7 @@ sub dispatch_event {
} }
# return event handler result # return event handler result
return $ret; return $dispatch_result;
} }
1; 1;