X-Git-Url: https://ruin.nu/git/?a=blobdiff_plain;f=Dispatcher.pm;h=a11ae53cda91800f387dcd4fae40c874a2a9b045;hb=c9c9e83da024d15fc1245bf456c197c119f23cf4;hp=7dce09838c4f28e954babec1e81ac32c6796f960;hpb=17aabe51d5b62ae4bcae5ec3b02757ab5aa65b77;p=NDIRC.git diff --git a/Dispatcher.pm b/Dispatcher.pm index 7dce098..a11ae53 100644 --- a/Dispatcher.pm +++ b/Dispatcher.pm @@ -46,11 +46,6 @@ has channels => ( default => sub{ {} }, ); -has targets => ( - is => 'ro', - isa => 'HashRef[Str]', - default => sub{ {} }, -); my $DISP; @@ -92,6 +87,7 @@ sub add_channel { my ($self,$channel,$types) = @_; $types = Set::Object->new(@{$types}); + $types->insert('universal'); $self->channels->{lc $channel} = $types; } @@ -99,18 +95,15 @@ sub has_command { my ($self,$command,$channel) = @_; $channel = lc $channel; + return 0 unless defined $command && defined $channel; return 0 unless exists $self->commands->{$command}; + $command = $self->commands->{$command}; + return 1 if $command->type eq 'universal'; return 0 unless exists $self->channels->{$channel}; - $command = $self->commands->{$command}; return $self->channels->{$channel}->has($command->type); } -sub set_target { - my ($self,$label,$target) = @_; - $self->targets->{$label} = $target; -} - sub run_command { my ($self,$c,$command,$args) = @_;