#!/usr/bin/perl use strict; use warnings; use vars qw($VERSION %IRSSI); use Irssi; use Irssi::TextUI; use Time::HiRes qw( usleep ); $VERSION = '0.02'; %IRSSI = ( authors => 'Jack Aviado', contact => 'jack@jack.is', name => 'Show Last User That Spoke', description => 'Statusbar item that shows the nick who most recently posted in any of your channels', license => 'GNU GPLv2 or later', ); Irssi::print(" ===== sluts.pl ===== This script only draws the statusbar item. It doesn't add or position it. For that, see /help statusbar The item name is \"sluts\". Here are the commands for the way I do it. If you like it and want to keep it, do /save If it sucks and you want to get out, do /reload /statusbar window remove window /statusbar chaninfo enable /statusbar chaninfo type window /statusbar chaninfo position 2 /statusbar window position 1 /statusbar chaninfo add -priority 0 -alignment left window /statusbar window add -after user -priority 0 -alignment left sluts /statusbar padding enable /statusbar padding type window ===== Show Last User That Spoke ====="); my $ho_be_knocked_up = 0; sub by_sluts { my ($sluts, $be_bangin) = @_; my $moan = '$;'; # $; is the Irssi Special Variable for # last person to send a public message # to a channel you are on. $sluts->default_handler($be_bangin, "{sb $moan}", '', 0); return ("$sluts", "$be_bangin", "$moan"); } my ($sluts, $be_bangin, $moan) = @_; sub get_a_new_ho { if ($ho_be_knocked_up > 0) { Irssi::timeout_remove($ho_be_knocked_up); $ho_be_knocked_up = 0; } Irssi::statusbar_items_redraw('sluts'); } sub dat_bitch_betta_not_be_knocked_up { Irssi::timeout_remove($ho_be_knocked_up) if ($ho_be_knocked_up > 0); $ho_be_knocked_up = Irssi::timeout_add(10, 'get_a_new_ho', undef); #100 } Irssi::statusbar_item_register ('sluts', 0, 'by_sluts'); Irssi::statusbars_recreate_items(); Irssi::signal_add_last ('message public', 'dat_bitch_betta_not_be_knocked_up');