aboutsummaryrefslogtreecommitdiff
path: root/Plugin/Random.pm
diff options
context:
space:
mode:
authorDavid Phillips <david@sighup.nz>2018-09-14 23:24:21 +1200
committerDavid Phillips <david@sighup.nz>2018-09-14 23:29:35 +1200
commit09f1ca71c2652a029577d23b615c1ebfb8d27f71 (patch)
treeff5a64fe789e3953bcdc345ca8db29cace126280 /Plugin/Random.pm
parentf3f894f685292bfc427f93df2eb9a71fda8ae669 (diff)
downloadidalius-09f1ca71c2652a029577d23b615c1ebfb8d27f71.tar.xz
Rename Shuffle to Random, add choose command
Diffstat (limited to 'Plugin/Random.pm')
-rw-r--r--Plugin/Random.pm32
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;