diff options
| -rw-r--r-- | Plugin/Men.pm | 19 | 
1 files changed, 15 insertions, 4 deletions
diff --git a/Plugin/Men.pm b/Plugin/Men.pm index 38af3ea..7a53a71 100644 --- a/Plugin/Men.pm +++ b/Plugin/Men.pm @@ -2,6 +2,9 @@ package Plugin::Men;  use strict;  use warnings; +use Encode qw/decode/; + +use IdaliusConfig qw/assert_scalar/;  my $config;  my $root_config; @@ -10,24 +13,32 @@ sub configure {  	my $self = shift;  	shift; # cmdref  	shift; # run_command -	shift; # module config +	$config = shift;  	$root_config = shift; +	IdaliusConfig::assert_scalar($config, $self, "chance"); +	die "chance must be from 0 to 100" +		unless $config->{chance} >= 0 && $config->{chance} <= 100; +  	return $self;  }  sub on_message {  	my ($self, $logger, $me, $who, $where, $raw_what, $what, $irc) = @_; +	return unless rand(100) < $config->{chance}; +  	if (ref($where) eq "ARRAY") {  		$where = $where->[0];  	} -	if ($what =~ /(\w*men\w*)/) { +	$what = Encode::decode('utf8', $what); + +	if ($what =~ /(\w*men\w*)/i) {  		my ($w, $c, $target);  		$w = $c = $target = $1; -		$w =~ s/men/women/; -		$c =~ s/men/children/; +		$w =~ s/men/women/i; +		$c =~ s/men/children/i;  		return "not just the $target, but the $w and $c too";  	}  	return;  | 
