From: Michael Andreen Date: Sat, 16 May 2009 18:11:40 +0000 (+0200) Subject: Converted .getfleet X-Git-Url: https://ruin.nu/git/?a=commitdiff_plain;h=04c0624b174ff51ccd6f1847d342e79a98bfa29b;p=NDIRC.git Converted .getfleet --- diff --git a/Commands/Usermgm.pm b/Commands/Usermgm.pm index 101ea06..21fe637 100644 --- a/Commands/Usermgm.pm +++ b/Commands/Usermgm.pm @@ -291,4 +291,42 @@ GROUP BY username ORDER BY amount DESC } } +sub getfleet + : Help(Usage: .getfleet username | % can be used as wildcard, e.g. barr%) + : ACL(irc_getfleet) +{ + my ($self,$c,$msg) = @_; + my ($nick) = $msg =~ /^(\S+)$/ or die 'ARGS'; + my $dbh = $c->model; + + my $f = $dbh->prepare(q{ +SELECT fs.ship, fs.amount, username +FROM fleet_ships fs + JOIN (SELECT fid,username + FROM fleets f + JOIN users u USING (planet) + WHERE mission = 'Full fleet' AND name <> 'Unit' + AND username ILIKE $1 + ORDER BY planet,tick DESC,fid DESC + LIMIT 1 + ) f USING (fid) +ORDER BY num + }); + $f->execute($nick); + my $text; + my $username; + while (my $ship = $f->fetchrow_hashref){ + unless (defined $username) { + $username = $ship->{username}; + $text = "$username has: " + } + $text .= "$ship->{ship} $ship->{amount} "; + } + if ($text){ + $c->reply($text); + }else{ + $c->reply("Couldn't find any fleet for $nick"); + } +} + 1; diff --git a/Usermgm.pm b/Usermgm.pm index 21fbce8..16a4528 100644 --- a/Usermgm.pm +++ b/Usermgm.pm @@ -25,45 +25,7 @@ require Exporter; our @ISA = qw/Exporter/; -our @EXPORT = qw/addPoints setHost setPNick getFleet/; - -sub getFleet { - my ($nick,$command) = @_; - - unless (defined $nick){ - $ND::server->command("notice $ND::nick Usage: $command nick | % can be used as wildcard, e.g. barr%"); - return; - } - if (officer() || dc()){ - my $f = $ND::DBH->prepare(q{SELECT fs.ship, fs.amount, username - FROM fleet_ships fs - JOIN (SELECT fid,username - FROM fleets f - JOIN users u USING (planet) - WHERE mission = 'Full fleet' AND name <> 'Unit' - AND username ILIKE $1 - ORDER BY planet,tick DESC,fid DESC - LIMIT 1 - ) f USING (fid) - ORDER BY num - }); - $f->execute($nick); - my $text; - my $username; - while (my $ship = $f->fetchrow_hashref){ - unless (defined $username) { - $username = $ship->{username}; - $text = "$ND::B$username$ND::O has: " - } - $text .= "$ship->{ship} $ship->{amount} "; - } - if ($text){ - $ND::server->command("notice $ND::nick $text"); - }else{ - $ND::server->command("notice $ND::nick Couldn't find any fleet for $nick"); - } - } -} +our @EXPORT = qw/addPoints setHost setPNick/; sub addPoints { my ($msg, $t) = @_; diff --git a/database/roles.sql b/database/roles.sql index f618bd0..91493a3 100644 --- a/database/roles.sql +++ b/database/roles.sql @@ -17,6 +17,7 @@ INSERT INTO roles VALUES('irc_flag'); INSERT INTO roles VALUES('irc_laston'); INSERT INTO roles VALUES('irc_lastseen'); INSERT INTO roles VALUES('irc_getships'); +INSERT INTO roles VALUES('irc_getfleet'); INSERT INTO group_roles (gid,role) VALUES(1,'irc_p_nick'); INSERT INTO group_roles (gid,role) VALUES(1,'irc_p_intel'); @@ -35,6 +36,7 @@ INSERT INTO group_roles (gid,role) VALUES(1,'irc_flag'); INSERT INTO group_roles (gid,role) VALUES(1,'irc_laston'); INSERT INTO group_roles (gid,role) VALUES(1,'irc_lastseen'); INSERT INTO group_roles (gid,role) VALUES(1,'irc_getships'); +INSERT INTO group_roles (gid,role) VALUES(1,'irc_getfleet'); INSERT INTO group_roles (gid,role) VALUES(2,'irc_gs'); INSERT INTO group_roles (gid,role) VALUES(2,'irc_scan'); @@ -55,6 +57,7 @@ INSERT INTO group_roles (gid,role) VALUES(3,'irc_flag'); INSERT INTO group_roles (gid,role) VALUES(3,'irc_laston'); INSERT INTO group_roles (gid,role) VALUES(3,'irc_lastseen'); INSERT INTO group_roles (gid,role) VALUES(3,'irc_getships'); +INSERT INTO group_roles (gid,role) VALUES(3,'irc_getfleet'); INSERT INTO group_roles (gid,role) VALUES(4,'irc_points_others'); @@ -65,6 +68,7 @@ INSERT INTO group_roles (gid,role) VALUES(6,'irc_p_intel'); INSERT INTO group_roles (gid,role) VALUES(6,'irc_points_others'); INSERT INTO group_roles (gid,role) VALUES(6,'irc_sms'); INSERT INTO group_roles (gid,role) VALUES(6,'irc_getships'); +INSERT INTO group_roles (gid,role) VALUES(6,'irc_getfleet'); INSERT INTO group_roles (gid,role) VALUES(8,'irc_scanreqs'); INSERT INTO group_roles (gid,role) VALUES(8,'irc_anonscan');