diff options
author | David Phillips <david@sighup.nz> | 2018-09-14 23:24:21 +1200 |
---|---|---|
committer | David Phillips <david@sighup.nz> | 2018-09-14 23:29:35 +1200 |
commit | 09f1ca71c2652a029577d23b615c1ebfb8d27f71 (patch) | |
tree | ff5a64fe789e3953bcdc345ca8db29cace126280 /Plugin/Random.pm | |
parent | f3f894f685292bfc427f93df2eb9a71fda8ae669 (diff) | |
download | idalius-09f1ca71c2652a029577d23b615c1ebfb8d27f71.tar.xz |
Rename Shuffle to Random, add choose command
Diffstat (limited to 'Plugin/Random.pm')
-rw-r--r-- | Plugin/Random.pm | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/Plugin/Random.pm b/Plugin/Random.pm new file mode 100644 index 0000000..bd1c4d2 --- /dev/null +++ b/Plugin/Random.pm @@ -0,0 +1,32 @@ +package Plugin::Random; + +use strict; +use warnings; + +use List::Util; + +my %config; + +sub configure { + my $self = shift; + my $cmdref = shift; + my $cref = shift; + %config = %$cref; + + $cmdref->("shuffle", sub { $self->shuffle(@_); } ); + $cmdref->("choose", sub { $self->choose(@_); } ); + + return $self; +} + +sub shuffle { + my ($self, $irc, $logger, $who, $where, $rest, @arguments) = @_; + + return join " ", List::Util::shuffle(@arguments); +} + +sub choose { + my ($self, $irc, $logger, $who, $where, $rest, @arguments) = @_; + return (List::Util::shuffle(@arguments))[0]; +} +1; |