use strict; use warnings; no strict 'subs'; my $SCRIPT_NAME = 'banner'; my $SCRIPT_AUTHOR = 'The Krusty Krab '; my $SCRIPT_VERSION = '1.0'; my $SCRIPT_LICENCE = 'Public domain'; my $SCRIPT_DESC = 'Banner text'; our (%queue, %timer); our @chars = (' ````````^', ' XX``XXXXX', ' ``````XXX ````````` ``````XXX', ' ``X```X`` XXXXXXXXX ``X```X`` XXXXXXXXX ``X```X``', ' `````XX`` `X``X``X` XX``X``XX `X``X``X` ``XX`````', ' ```X```XX XX``X``XX XX```X```', ' ```X`X``` X`X`X`X`X ``X```X``', ' ``````XXX', ' `XXXXXXX` X```````X', ' X```````X `XXXXXXX`', ' ``````X`X ```````X` ``````X`X', ' ````X```` ```XXX``` ````X````', ' X```````` `XX``````', ' ````X```^ ````X````', ' X````````', ' XXX`````` ```XXX``` ``````XXX', ' `XXXXXXX` X```````X `XXXXXXX`', ' X``````X` XXXXXXXXX X````````', ' XXX````X` X``XX```X X````XXX`', ' `X`````X` X```X```X `XXX`XXX`', ' ````XXX`` ````X``X` XXXXXXXXX', ' X```XXXXX X```X```X `XXX````X', ' `XXXXXXX` X```X```X `XXX`````', ' XXX`````X ```XXX``X ``````XXX', ' `XXX`XXX` X```X```X `XXX`XXX`', ' `````XXX` X```X```X `XXXXXXX`', ' ``XX`XX``', ' `X``````` ``XX`XX``', ' ````X```` ```X`X``` ``X```X``', ' ```X`X``` ```X`X``^ ```X`X```', ' ``X```X`` ```X`X``` ````X````', ' ```````X` XX``X```X `````XXX`', ' `XXXXXXX` X``XXX``X X`X```X`X X`XXXXXXX', ' XXXXXXXX` ````X```X XXXXXXXX`', ' XXXXXXXXX X```X```X `XXX`XXX`', ' `XXXXXXX` X```````X `X`````X`', ' XXXXXXXXX X```````X `XXXXXXX`', ' XXXXXXXXX X```X```X X```````X', ' XXXXXXXXX ````X```X ````````X', ' `XXXXXXX` X```````X `XXX```X`', ' XXXXXXXXX ````X```` XXXXXXXXX', ' X```````X XXXXXXXXX X```````X', ' `X``````X X```````X `XXXXXXXX', ' XXXXXXXXX ````X```` ```X`X``` XXX```XXX', ' XXXXXXXXX X````````', ' XXXXXXXXX ``````XX` ``XXXX``` ``````XX` XXXXXXXXX', ' XXXXXXXXX ``````XX` ```XXX``` `XX`````` XXXXXXXXX', ' XXXXXXXXX X```````X XXXXXXXXX', ' XXXXXXXXX ````X```X `````XXX`', ' `XXXXXXXX XX``````X XXXXXXXXX X````````', ' XXXXXXXXX ````X```X XXXX`XXX`', ' `X```XXX` X```X```X `XXX```X`', ' ````````X XXXXXXXXX ````````X', ' XXXXXXXXX X```````` XXXXXXXXX', ' ```XXXXXX XXX`````` ```XXXXXX', ' `XXXXXXXX X```````` `XXXX```` X```````` `XXXXXXXX', ' XXX```XXX ```XXX``` XXX```XXX', ' `````XXXX XXXXX```` `````XXXX', ' XXX`````X X``XXX``X X`````XXX', ' XXXXXXXXX X```````X', ' ``````XXX ```XXX``` XXX``````', ' X```````X XXXXXXXXX', ' ```````X` ````````X ```````X`', ' X```````` X```````^ X````````', ' ````````X ```````X`', ' `X``X```` X`X`X```` XXXX`````', ' XXXXXXXXX X```X```` `XXX`````', ' `XXX````` X```X```` X```X````', ' `XXX````` X```X```` XXXXXXXXX', ' `XXX````` X`X`X```` X`XX`````', ' XXXXXXXX` ````X```X', ' X``X````` X`X`X```` `XXXX````', ' XXXXXXXXX ````X```` XXXX`````', ' XXXXX``X`', ' X```````` `XXXX``X`', ' XXXXXXXXX ````X```` XXXX`X```', ' X```````X XXXXXXXXX X````````', ' XXXXX```` ````X```` XXXX````` ````X```` XXXX`````', ' XXXXX```` ````X```` XXXX`````', ' XXXXX```` X```X```` XXXXX````', ' XXXXX```` `X``X```` ``XX`````', ' ``XX````` `X``X```` XXXXX````', ' XXXXX```` ````X````', ' X``X````` X`X`X```` `X``X````', ' `XXXXXXX` X```X````', ' `XXXX```` X```````` XXXXX````', ' ``XXX```` XX``````` ``XXX````', ' `XXXX```` X```````` `XXX````` X```````` `XXXX````', ' XX`XX```` ``X`````` XX`XX````', ' X``XX```` X`X`````` `XXXX````', ' XX``X```` X`X`X```` X``XX````', ' ````X```` XXXX`XXXX X```````X', ' XXXXXXXXX', ' X```````X XXXX`XXXX ````X````', ' ```````X` ````````X ```````X` ````````X'); if (weechat::register($SCRIPT_NAME, $SCRIPT_AUTHOR, $SCRIPT_VERSION, $SCRIPT_LICENCE, $SCRIPT_DESC, '', '')) { weechat::hook_command('banner', 'Banner text', "[-nick|-key|-limit] text", "-nick: send to /nick command\n". "-key: send as /mode +k (doesn't work on all ircds)\n". "-limit: send as /mode +l\n", '', 'cmd_banner', ''); } sub cmd_banner { my ($buffer, $cmd) = ($_[1], $_[2]); my ($flag, $text) = $cmd =~ /^(-nick|-key|-limit|) *(.*)$/; my @output; my $prefix = '/msg *'; my $nick = weechat::info_get('irc_nick', weechat::buffer_get_string($buffer, 'localvar_server')); for ($flag) { /-nick/ and $prefix = '/nick', last; /-key/ and $prefix = '/mode +k', last; /-limit/ and $prefix = '/mode +l', last; } if ($flag eq '-limit') { @chars[$_] =~ y/`X/18/ for (0 .. @chars) } else { @chars[$_] =~ y/18/`X/ for (0 .. @chars) } for my $char (split //, $text) { push @output, $flag eq '-limit' ? '111111111' : '`````````'; push @output, split /\n/, $chars[ord($char) - 0x20]; } weechat::command($buffer, "$prefix $_") for @output; for ($flag) { /-nick/ and weechat::command($buffer, "/nick $nick"), last; /-key/ and weechat::command($buffer, "/mode +k `````````"), weechat::command($buffer, "/mode -k `````````"), last; /-limit/ and weechat::command($buffer, "/mode -l"), last; } return weechat::WEECHAT_RC_OK; }