html/chanfull_duden.pl


   1 # by Uwe 'duden' Dudenhoeffer
   2 #
   3 # chansync.pl
   4 
   5 
   6 use strict;
   7 
   8 use vars qw($VERSION %IRSSI);
   9 $VERSION = '0.1';
  10 %IRSSI = (
  11     authors     => 'Uwe \'duden\' Dudenhoeffer',
  12     contact     => 'script@duden.eu.org',
  13     name        => 'chanfull',
  14     description => 'Notify if Channellimit is reached',
  15     license     => 'GPLv2',
  16     url         => '',
  17     changed     => 'Sat Feb  8 18:08:54 CET 2003',
  18 );
  19 
  20 # Changelog
  21 #
  22 # 0.1
  23 #   - first working version
  24 
  25 use Irssi;
  26 
  27 sub event_message_join ($$$$) {
  28 	my ($server, $channel, $nick, $address) = @_;
  29 	my $c=Irssi::channel_find($channel);
  30 	my $users=scalar @{[$c->nicks]};
  31 	return if($c->{limit} == 0);
  32 	my $left = $c->{limit} - $users;
  33 	if($left < 3) {
  34 		if($left<=0) {
  35 			Irssi::printformat(MSGLEVEL_CRAP, 'chanfull_full', $channel);
  36 		} else {
  37 			Irssi::printformat(MSGLEVEL_CRAP, 'chanfull_left', $left, $channel);
  38 		}
  39 	}
  40 }
  41 
  42 Irssi::signal_add('message join', 'event_message_join');
  43 
  44 Irssi::theme_register([
  45 	'chanfull_left' => 'Only $0 client(s) left in {channel $1} till limit is reached',
  46 	'chanfull_full' => '{channel $0} is full'
  47 ]);