X-Git-Url: https://ruin.nu/git/?a=blobdiff_plain;f=Dispatcher.pm;h=a11ae53cda91800f387dcd4fae40c874a2a9b045;hb=refs%2Fheads%2Fdiscord;hp=107ed7eaa778fc962f44281a667317c984cd32ac;hpb=52aa24ac076b97096ff29e7a59331654620f230c;p=NDIRC.git diff --git a/Dispatcher.pm b/Dispatcher.pm index 107ed7e..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; @@ -68,6 +63,7 @@ sub load { warn "couldn't run $file" unless $return; } } + $DISP = undef; } sub command ($$$) { @@ -91,6 +87,7 @@ sub add_channel { my ($self,$channel,$types) = @_; $types = Set::Object->new(@{$types}); + $types->insert('universal'); $self->channels->{lc $channel} = $types; } @@ -98,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) = @_;