From 46b3dd50105d17a8acc0a7b9e47618306640b5f4 Mon Sep 17 00:00:00 2001 From: Pragmatic Software Date: Fri, 31 Jan 2020 18:42:16 -0800 Subject: [PATCH] Plugins/RestrictedMod: fix `kb` command --- Plugins/RestrictedMod.pm | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/Plugins/RestrictedMod.pm b/Plugins/RestrictedMod.pm index a083d0bb..c04823e5 100644 --- a/Plugins/RestrictedMod.pm +++ b/Plugins/RestrictedMod.pm @@ -16,6 +16,8 @@ use strict; use feature 'unicode_strings'; use Carp (); +use Storable qw/dclone/; + sub new { Carp::croak("Options to " . __FILE__ . " should be key/value pairs, not hash reference") if ref $_[1] eq 'HASH'; my ($class, %conf) = @_; @@ -95,7 +97,7 @@ sub generic_command { my $target_user = $self->{pbot}->{users}->find_user($channel, $target_nicklist->{hostmask}); - if ($target_user->{level} > 0 or $target_user->{autoop} or $target_user->{autovoice} + if ((defined $target_user and $target_user->{level} > 0) or $target_user->{autoop} or $target_user->{autovoice} or $target_nicklist->{'+v'} or $target_nicklist->{'+o'} or $self->{pbot}->{antiflood}->whitelisted($channel, $target_nicklist->{hostmask})) { return "I don't think so." @@ -126,9 +128,9 @@ sub ban { sub kb { my ($self, $stuff) = @_; - my $result = $self->kick({%$stuff}); # note: using copy of $stuff + my $result = $self->ban(dclone $stuff); # note: using copy of $stuff return $result if length $result; - return $self->ban($stuff); + return $self->kick($stuff); } sub mute {