1# Swap between green and white format for public messages. I think this
2# helps readability. Assumes you haven't changed message formats.
3# for irssi 0.7.98 by Timo Sirainen
4
5use Irssi;
6use strict;
7use vars qw($VERSION %IRSSI);
8$VERSION = "0.1";
9%IRSSI = (
10    authors	=> "Timo \'cras\' Sirainen",
11    contact	=> "tss\@iki.fi",
12    name	=> "colorswap",
13    description	=> "Swap between green and white format for public messages. I think this helps readability. Assumes you haven't changed message formats.",
14    license	=> "Public Domain",
15    url		=> "http://irssi.org/",
16    changed	=> "2002-03-04T22:47+0100"
17);
18
19my %setnext = {};
20
21sub change_formats {
22	my $target = lc shift;
23
24	if ($setnext{$target}) {
25		Irssi::command('^format own_msg {ownmsgnick %G$2 {ownnick %G$0}}%g$1');
26		Irssi::command('^format pubmsg {pubmsgnick %g$2 {pubnick %g$0}}%g$1');
27	} else {
28		Irssi::command('^format -reset own_msg');
29		Irssi::command('^format -reset pubmsg');
30	}
31	$setnext{$target} = !$setnext{$target};
32}
33
34sub sig_public {
35	my ($server, $msg, $nick, $address, $target) = @_;
36
37	change_formats($server->{tag}."/".$target);
38}
39
40sub sig_own_public {
41	my ($server, $msg, $target) = @_;
42
43	change_formats($server->{tag}."/".$target);
44}
45
46Irssi::signal_add('message public', 'sig_public');
47Irssi::signal_add('message own_public', 'sig_own_public');
48