use strict; use warnings; use Irssi; use Irssi::Irc; my $VERSION = "1.0.0"; my %IRSSI = ( author => "ardnew", contact => "andrew\@ardnew.com", name => "wat", description => "wat", license => "dwtfywwi", ); use vars qw($VERSION %IRSSI); sub handle_sajoin { my ($server, $data) = @_; my ($target, $text) = split(/ :/, $data, 2); if(my ($src, $targ, $dest) = ($text =~ /\s(\S+)\sused\sSAJOIN\sto\smake\s(\S+)\sjoin\s(\S+)/)) { Irssi::print("CAUGHT SAJOIN: $src: $targ -> $dest"); if ($dest eq "#Testing") { $server->send_raw("sapart $targ $dest"); } } } Irssi::signal_add("event notice", \&handle_sajoin); sub handle_sapart { my ($server, $data) = @_; my ($target, $text) = split(/ :/, $data, 2); if(my ($src, $targ, $dest) = ($text =~ /\s(\S+)\sused\sSAPART\sto\smake\s(\S+)\spart\s(\S+)/)) { Irssi::print("CAUGHT SAPART: $src: $targ -> $dest"); if ($dest eq "#Testing") { $server->send_raw("sajoin $targ $dest"); } } } Irssi::signal_add("event notice", \&handle_sapart); sub on_join { my ($server, $channel, $target) = @_; my $chan = substr($channel, 1); $server->send_raw("sapart $target $chan"); } Irssi::signal_add("event join", \&on_join); sub cmd_sajoin { my ($target, $server) = @_; Irssi::print("/SAJOIN: $target - $server"); $server->send_raw("sajoin $target"); } Irssi::command_bind("sajoin", \&cmd_sajoin); sub cmd_sapart { my ($target, $server) = @_; $server->send_raw("sapart $target"); } Irssi::command_bind("sapart", \&cmd_sapart);