}
}
+my %scantypes;
+{
+ my $i = 1;
+ %scantypes = map {$_ => $i++} @scantypes;
+}
+
+sub scanreqs
+ : Help(syntax: .scanreqs [-pdunja] | Lists scan requests that haven't been handled. The argument can be used to omit types you don't have, like .scanreqs -ja to list all requests except jumpgates and advanced unit scans.)
+ : ACL(irc_scanreqs)
+{
+ my ($self, $c, $msg) = @_;
+
+ my @notype;
+ if ($msg =~ /^-([pdunja]+)$/){
+ for (split //, $1){
+ push @notype, $scantypes[$scanid{$_}-1];
+ }
+ }elsif($msg){
+ die 'ARGS';
+ }
+
+ my $reqs = $c->model->prepare(q{
+SELECT min(sr.id) AS id, x,y,z,type
+FROM scan_requests sr
+ JOIN current_planet_stats p ON p.id = sr.planet
+WHERE sr.time > NOW() - '30 min'::INTERVAL
+ AND NOT EXISTS (SELECT scan_id FROM scans
+ WHERE planet = sr.planet
+ AND type = sr.type
+ AND tick >= sr.tick
+ )
+ AND type <> ALL($1)
+GROUP BY x,y,z,type
+ORDER BY id
+ });
+ $reqs->execute(\@notype);
+ my $text = '';
+ while (my $req = $reqs->fetchrow_hashref){
+ $text .= "<b>$req->{id}</b> http://game.planetarion.com/waves.pl?id=$scantypes{$req->{type}}&x=$req->{x}&y=$req->{y}&z=$req->{z} "
+ }
+
+ $c->reply($text || 'No unhandled requests.');
+}
+
1;
}
}
-
-our %scantypes;
-{
- my $i = 1;
- %scantypes = map {$_ => $i++} @scantypes;
-}
-
-sub scanReqs {
- my ($msg, $command) = @_;
-
- if (scanner()){
-
- my @notype;
- if ($msg && $msg =~ /-([pdunja]+)/){
- for (split //, $1){
- push @notype, $scantypes[$scanid{$_}-1];
- }
- }
-
- my $reqs = $ND::DBH->prepare(q{SELECT min(sr.id) AS id, x,y,z,type
- FROM scan_requests sr
- JOIN current_planet_stats p ON p.id = sr.planet
- WHERE sr.time > NOW() - '30 min'::INTERVAL
- AND NOT EXISTS (SELECT scan_id FROM scans
- WHERE planet = sr.planet
- AND type = sr.type
- AND tick >= sr.tick
- )
- AND type <> ALL($1)
- GROUP BY x,y,z,type
- ORDER BY id
- });
- $reqs->execute(\@notype);
- my $text = '';
- while (my $req = $reqs->fetchrow_hashref){
- $text .= "$ND::B$req->{id}$ND::O http://game.planetarion.com/waves.pl?id=$scantypes{$req->{type}}&x=$req->{x}&y=$req->{y}&z=$req->{z} "
- }
-
- $text = 'No unhandled requests.' unless $text;
- $ND::server->command("notice $ND::nick $text");
- }
-}
-
sub getScan {
my ($msg, $command) = @_;
INSERT INTO roles VALUES('irc_masterop');
INSERT INTO roles VALUES('irc_masterinvite');
INSERT INTO roles VALUES('irc_gs');
+INSERT INTO roles VALUES('irc_scanreqs');
INSERT INTO group_roles (gid,role) VALUES(1,'irc_p_nick');
INSERT INTO group_roles (gid,role) VALUES(1,'irc_p_intel');
INSERT INTO group_roles (gid,role) VALUES(1,'irc_masterop');
INSERT INTO group_roles (gid,role) VALUES(1,'irc_masterinvite');
+INSERT INTO group_roles (gid,role) VALUES(1,'irc_scanreqs');
INSERT INTO group_roles (gid,role) VALUES(2,'irc_gs');
INSERT INTO group_roles (gid,role) VALUES(3,'irc_p_nick');
INSERT INTO group_roles (gid,role) VALUES(3,'irc_masterop');
INSERT INTO group_roles (gid,role) VALUES(3,'irc_masterinvite');
+INSERT INTO group_roles (gid,role) VALUES(3,'irc_scanreqs');
INSERT INTO group_roles (gid,role) VALUES(5,'irc_p_nick');
INSERT INTO group_roles (gid,role) VALUES(5,'irc_p_intel');
INSERT INTO group_roles (gid,role) VALUES(6,'irc_p_intel');
+INSERT INTO group_roles (gid,role) VALUES(8,'irc_scanreqs');
+
INSERT INTO group_roles (gid,role) VALUES(18,'irc_p_nick');
INSERT INTO group_roles (gid,role) VALUES(18,'irc_p_intel');