#!/usr/bin/perl

use Irssi;
use Irssi::Irc;

sub mode_check {
	my ($server, $args, $nick, $address) = @_;

	$nick =~ s/\s*//g;
	@mode = split(' ', $args);
	$channel = shift @mode;

	my @modech = ();
	my $kick = 0;

	foreach(@mode) {
		if (m/^[-+]/) {
			my $nextmode = '';
			while ($_ ne '') {
				my $c = substr($_, 0, 1);
				if ($c eq '+' or $c eq '-') {
					$nextmode = $c;
				} elsif ($c eq 'o' or $c eq 'O' or $c eq 'v' or $c eq 'b' or $c eq 'v') {
					push @modech, "$nextmode$c";
				}
				substr $_, 0, 1, '';
			}
		} elsif ($modech[0] eq '-o' && lc($nick) eq lc($_)) {
			$kick = 1;
			last;
		} else {
			shift @modech;
		}
	}

	$server->command("KICK $channel $nick Nie ruszaj moich znajomych ! :PPP") if $kick;
}

Irssi::signal_add('event mode', 'mode_check');
