Skip to content

Instantly share code, notes, and snippets.

@coderanger
Created February 16, 2014 02:03
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save coderanger/9028227 to your computer and use it in GitHub Desktop.
Save coderanger/9028227 to your computer and use it in GitHub Desktop.
Reconnect plugin for Tigerlily
use strict;
my $reconnect_timer;
sub try_reconnect {
my $ui = ui_name("main");
my $server = active_server();
if(!$server) {
$ui->print("(trying to reconnect)\n");
TLily::Event::send(
type => 'user_input',
ui => $ui,
server => $server,
text => "%connect");
}
return 0;
}
sub toggle_reconnect {
my $ui = ui_name("main");
my $server = active_server();
my $reconnect_interval = $config{reconnect_interval} || 60;
if($server && $reconnect_timer) {
$ui->print("(deactivating reconnect timer)\n");
TLily::Event::time_u($reconnect_timer);
} elsif(!$server && !$reconnect_timer) {
$ui->print("(activating reconnect timer)\n");
$reconnect_timer = TLily::Event::time_r(
after => $reconnect_interval,
interval => $reconnect_interval,
call => \&try_reconnect);
}
return 0;
}
sub load {
my $ui = ui_name("main");
toggle_reconnect();
event_r(type => 'server_activate',
order => 'after',
call => \&toggle_reconnect);
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment