1# warnkick.pl v0.0.2 by Svante Kvarnstrom <svarre@undernet.org>
2#
3# This script will warn you if you get kicked out of a channel which
4# isn't your current "active" channel, and also hilight the refnum
5# to the channel you got kicked from, eg.:
6#
7# [03:42.50] >> zaei (~zaei@zaei.users.undernet.org) kicked you
8# from #gentoo: GRUB GRUB GRUB GRUB GRUB GRUB GRUB GRUB GRUB
9#
10# This program is free software, you can redistribute it and/or modify
11# it under the terms of the GNU General Public License as published by
12# the Free Software Foundation; either version 2 of the License, or
13# (at your option) any later version.
14#
15# This program is distributed in the hope that it will be useful,
16# but WITHOUT ANY WARRANTY; without even the implied warranty of
17# MERCHANTABILITY or FITNESS FOR A PERTICULAR PURPOSE. See the
18# GNU General Public License for more details.
19#
20# You should have received a copy of the GNU General License
21# along with this program; if not, write to the Free Software
22# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
23
24# ----------------------------------------------------------------------
25
26use Irssi qw(printformat signal_add theme_register);
27use Irssi::Irc;
28
29use strict;
30use vars qw($VERSION %IRSSI);
31
32# ----------------------------------------------------------------------
33
34$VERSION = "0.0.3";
35%IRSSI = (
36    authors     =>  'Svante Kvarnstr�m',
37#    contact     =>  'svarre@undernet.org',
38	contact		=>	'sjk@ankeborg.nu',
39    name        =>  'warnkick',
40    description =>  'warns you if someone kicks you out of a channel',
41    license     =>  'GPL',
42	url			=>  'http://ankeborg.nu',
43    changed     =>  'Tue Sep 28 03:51 CEST 2004',
44);
45
46# ----------------------------------------------------------------------
47
48sub event_kick {
49    my ($server, $chan, $nick, $knick, $address, $reason) = @_;
50    my $win = Irssi::active_win();
51    my $kchan = $server->window_find_item($chan);
52
53    return if $win->{refnum} == $kchan->{refnum} || $server->{nick} ne $nick;
54
55    Irssi::active_win()->printformat(MSGLEVEL_CLIENTCRAP, 'warnkick', $knick, $address, $chan, $reason);
56    $kchan->activity(4);
57}
58
59# ----------------------------------------------------------------------
60
61theme_register([
62    'warnkick_loaded', '%R>>%n %_Scriptinfo:%_ Loaded $0 version $1 by $2.',
63    'warnkick', '%R>>%n $0 ($1) kicked you from $2: $3'
64]);
65
66# ----------------------------------------------------------------------
67
68signal_add("message kick", "event_kick");
69
70printformat(MSGLEVEL_CLIENTCRAP, 'warnkick_loaded', $IRSSI{name}, $VERSION, $IRSSI{authors});
71
72