]> ruin.nu Git - NDIRC.git/commitdiff
getFleet command
authorMichael Andreen <harv@ruin.nu>
Fri, 31 Oct 2008 17:10:00 +0000 (18:10 +0100)
committerMichael Andreen <harv@ruin.nu>
Fri, 31 Oct 2008 17:10:00 +0000 (18:10 +0100)
Usermgm.pm

index a37dc70af0922c928171823b985d32e3289bf2ff..c579a3cf336282f87fa0952aefa220daf126fe6b 100644 (file)
@@ -25,7 +25,7 @@ require Exporter;
 
 our @ISA = qw/Exporter/;
 
-our @EXPORT = qw/addUser whois flags flag laston addPoints chattrG setHost setPNick deactivateUser getShips/;
+our @EXPORT = qw/addUser whois flags flag laston addPoints chattrG setHost setPNick deactivateUser getShips getFleet/;
 
 sub addUser {
        my ($msg, $command) = @_;
@@ -216,6 +216,44 @@ sub getShips {
        }
 }
 
+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 id,username
+                                       FROM fleets f
+                                               JOIN users u ON u.planet = f.sender
+                                       WHERE mission = 'Full fleet' AND name <> 'Unit'
+                                               AND username ILIKE $1
+                                       ORDER BY planet,tick DESC,id DESC
+                                       LIMIT 1
+                               ) f  USING (id)
+                       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");
+               }
+       }
+}
+
 sub addPoints {
        my ($msg, $t) = @_;