sub irc_public {
my ($kernel, $who, $where, $msg) = @_[KERNEL, ARG0 .. ARG2];
run_script($kernel, $bot_version, $bot_nick, $irc_admins, $qstat_master,
$who, $where, $msg, $qstat_addr, $User_Info, @randquote);
}
####
my @alias = eval
"${script}_load()";
####
our %script_aliases = load_scripts();
sub load_scripts {
my (%script_aliases, $script_aliases);
if (-d "scripts") {
while() {
my $script_name = $_;
my $script = $1 if $script_name =~ /\/(.*)\.script/;
print "Loading script: $script_name\n";
require "$script_name";
my @alias = eval "${script}_load()";
$script_aliases{$alias[0]} = $alias[1];
}
return %script_aliases;
} else {
die "Scripts directory does not exist.\n";
}
}
####
sub run_script {
our ($kernel, $bot_version, $bot_nick, $irc_admins, $qstat_master, $irc_host, $irc_chan, $irc_msg, $qstat_addr, $User_Info, @randquote) = @_;
our ($irc_nick, $irc_hostmask) = split(/!/, $irc_host);
if ($irc_msg =~ /^$bot_nick.* commands$/i) {
my @commands;
for (keys %script_aliases) {
push @commands, $_;
}
@commands = sort @commands;
my $commands = join ', ', @commands;
send_chan_message($irc_chan, "commands: $commands", $kernel);
} elsif ($irc_msg =~ /^$bot_nick.* /i) {
for (keys %script_aliases) {
if ($irc_msg =~ /^$bot_nick.* $_/) {
eval "$script_aliases{$_}()";
last;
}
}
}
}
####
sub mem_usage_load {
my $alias = 'mem usage';
my $sub = 'display_mem_usage';
my $variables = '$kernel, $irc_chan';
return ($alias, $sub, $variables);
}