/usr/share/irssi/scripts/nickban.pl is in irssi-scripts 20131030.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 | $VERSION = "1.1";
%IRSSI = (
authors => "Roeland 'Trancer' Nieuwenhuis",
contact => "irssi\@trancer.nl",
name => "nickban",
description => "A simple nick banner. If it encounters a nick it bans its host",
license => "Public Domain"
);
use strict;
use Irssi;
# The channels the nicks are banned on (on which this script is active)
my @channels = qw(#worldchat #chat-world #php);
# The banned nicks
my @nicks = qw(evildude evilgirl);
# Your kickreason
my $kickreason = "Not welcome here.";
sub nick_banner {
my($server, $channel, $nick, $address) = @_;
# Are we opped?
return unless $server->channel_find($channel)->{chanop};
# If the nick is a server, stop it.
return if $nick eq $server->{nick};
# Is the user a banned nick?
my $nono = 0;
foreach (@nicks) { $nono = 1 if lc($nick) eq lc($_) }
return unless $nono;
# Is the user on one of the banned channels?
my $react = 0;
foreach (@channels) { $react = 1 if lc($channel) eq lc($_) }
return unless $react;
# User voiced or op'd?
# Pretty useless, but ok
return if $server->channel_find($channel)->nick_find($nick)->{op} || $server->channel_find($channel)->nick_find($nick)->{voice};
$server->command("kickban $channel $nick $kickreason");
Irssi::print("Nick banning $nick on $channel. Banned.");
}
Irssi::signal_add_last('message join', 'nick_banner');
|