diff options
| -rw-r--r-- | Plugin/Admin.pm | 12 | 
1 files changed, 11 insertions, 1 deletions
| diff --git a/Plugin/Admin.pm b/Plugin/Admin.pm index b1245d6..b4c4768 100644 --- a/Plugin/Admin.pm +++ b/Plugin/Admin.pm @@ -44,6 +44,10 @@ sub configure {  	return $self;  } +sub is_channel { +	return @_[0] =~ m/^#+/; +} +  sub is_admin {  	my ($logger, $who, $ided) = @_;  	if ($config->{must_id} and not $ided) { @@ -103,7 +107,13 @@ sub part {  	my ($self, $irc, $logger, $who, $where, $ided, $rest, @arguments) = @_;  	return unless is_admin($logger, $who, $ided); -	return "Syntax: part <channel1> [channel2 ...] [partmsg]" unless @arguments >= 1; +	return "Syntax: part <channel1> [channel2 ...] [partmsg]" unless +		is_channel($where->[0]) or +		(@arguments >= 1 and is_channel($arguments[0])); + +	if ((@arguments == 0 and is_channel($where->[0])) or @arguments >= 1 and not is_channel($arguments[0])) { +		$rest = "$where->[0] $rest"; +	}  	my $nick = (split /!/, $who)[0];  	my ($chan_str, $reason) = split /\s+(?!#)/, $rest, 2; | 
