X-Git-Url: https://ruin.nu/git/?a=blobdiff_plain;f=Misc.pm;h=96483e10f5e9aa951cd5ac3ffe940805d6496ec6;hb=ca08e0e929a1e51db68f756c2ad637f6b4b610b3;hp=37501f20d3944b5ef244e66ff24c1a0ca25dae15;hpb=b232bb5a3520c656ac825a33328ecca76f1dd0f6;p=NDIRC.git diff --git a/Misc.pm b/Misc.pm index 37501f2..96483e1 100644 --- a/Misc.pm +++ b/Misc.pm @@ -23,7 +23,7 @@ require Exporter; our @ISA = qw/Exporter/; -our @EXPORT = qw/valuecolor addCommand parseCommand/; +our @EXPORT = qw/valuecolor addCommand parseCommand commands/; our %channels; our %commands; @@ -64,7 +64,7 @@ sub addCommand { sub parseCommand { my ($msg,$channel) = @_; - if ($msg =~ /^(\w+)(?: (.+))?$/){ + if ($msg =~ /^(\S+)(?: (.+))?$/){ my $c = $1; my $args = $2; my @k = keys %commands; @@ -80,6 +80,19 @@ sub parseCommand { return 0; } +sub commands { + my ($channel) = @_; + my @commands; + my $b = (exists $channels{lc $channel} ? $channels{lc $channel} : ['all']); + for my $c (sort keys %commands){ + my $a = $commands{$c}->{acc}; + if (intersect($a,$b) > 0){ + push @commands, $c; + } + } + return join ', ', @commands; +} + sub intersect { my ($a, $b) = @_; my %union;