]> ruin.nu Git - NDIRC.git/commitdiff
Converted .setally
authorMichael Andreen <harv@ruin.nu>
Sat, 16 May 2009 22:57:14 +0000 (00:57 +0200)
committerMichael Andreen <harv@ruin.nu>
Sat, 16 May 2009 22:57:14 +0000 (00:57 +0200)
Commands/Intel.pm
Intel.pm
database/roles.sql

index e529018a6ea6d29bbf1a10438ecbbdbc71ef8e25..dd8eb2eca672f189b4943c2c743b5a17700d844b 100644 (file)
@@ -76,4 +76,48 @@ SELECT nick, id, alliance_id FROM planets WHERE id = planetid(?,?,?,tick())
        }
 }
 
+sub setally
+       : Help(Usage: .setally X:Y:Z ally | % can be used for wildcards \%-crew\% will match [F-Crew])
+       : ACL(irc_setally)
+{
+       my ($self,$c,$msg) = @_;
+       my ($x,$y,$z,$ally) = $msg =~ /^(\d+)\D(\d+)\D(\d+) (\S+)$/ or die 'ARGS';
+       my $dbh = $c->model;
+
+       my $aid;
+       if ($ally ne 'unknown'){
+               ($aid,$ally) = $dbh->selectrow_array(q{
+SELECT id,name FROM alliances WHERE name ILIKE ?
+               },undef,$ally);
+       }
+       if ($aid ~~ 1){
+               $c->reply("Don't set ND planets manually.");
+       }elsif ($ally){
+               my $findid = $dbh->prepare(q{
+SELECT id,alliance,alliance_id FROM current_planet_stats WHERE x = ? AND y = ? and z = ?
+               });
+               my ($id,$alliance,$alliance_id) = $dbh->selectrow_array($findid,undef,$x,$y,$z);
+               unless ($id){
+                       $c->reply("Couldn't find a planet at $x:$y:$z");
+               }elsif ($alliance_id ~~ 1){
+                       $c->reply("$x:$y:$z is an ND planet.");
+               }elsif ($alliance_id ~~ $aid){
+                       $c->reply("$x:$y:$z is already set to $ally");
+               }else{
+                       $dbh->begin_work;
+                       $dbh->do(q{UPDATE planets SET alliance_id = $1 WHERE id = $2}
+                               ,undef,$aid,$id);
+                       if (defined $alliance){
+                               $c->reply("Changed $x:$y:$z from <b>$alliance</b> to <b>$ally</b>");
+                       }else{
+                               $c->reply("Setting $x:$y:$z as <b>$ally</b>");
+                       }
+                       $c->intel_log($id,"Set alliance_id to: $aid ($ally)");
+                       $dbh->commit;
+               }
+       }else{
+               $c->reply("Couldn't find such an alliance");
+       }
+}
+
 1;
index 4d98d80880dda96a3718dcf45c25f8ec9f1d6be9..83dd833c103c7a87e1ef110f3b1bc73586a5f12d 100644 (file)
--- a/Intel.pm
+++ b/Intel.pm
@@ -27,49 +27,7 @@ require Exporter;
 
 our @ISA = qw/Exporter/;
 
-our @EXPORT = qw/setAlly setChannel/;
-
-sub setAlly {
-       my ($msg, $command) = @_;
-       my ($x,$y,$z,$ally);
-       if(defined $msg && $msg =~ /^(\d+)\D(\d+)\D(\d+) (\S+)$/){
-               $x = $1;
-               $y = $2;
-               $z = $3;
-               $ally = $4;
-       }else{
-               $ND::server->command("notice $ND::nick Usage: .$command X:Y:Z ally | | % can be used for wildcards \%-crew\% will match [F-Crew]");
-               return;
-       }
-       if (my $user = intel){
-               my $aid;
-               if ($ally ne 'unknown'){
-                       ($aid,$ally) = $ND::DBH->selectrow_array("SELECT id,name FROM alliances WHERE name ILIKE ?",undef,$ally);
-               }
-               if ($ally){
-                       my $findid = $ND::DBH->prepare(q{SELECT id,alliance FROM current_planet_stats 
-                               WHERE x = ? AND y = ? and z = ?});
-                       my ($id,$alliance) = $ND::DBH->selectrow_array($findid,undef,$x,$y,$z);
-                       unless ($id){
-                               $ND::server->command("msg $ND::target Couldn't find a planet at $x:$y:$z");
-                               return;
-                       }
-                       if($ND::DBH->do('UPDATE planets SET alliance_id = $1 WHERE id = $2'
-                               ,undef,$aid,$id)){
-                               if (defined $alliance){
-                                       $ND::server->command("msg $ND::target Changed $x:$y:$z from $ND::B$alliance$ND::B to $ND::B$ally");
-                               }else{
-                                       $ND::server->command("msg $ND::target Setting $x:$y:$z as $ND::B$ally");
-                               }
-                               intel_log $user->{uid},$id,"Set alliance_id to: $aid ($ally)";
-                       }else{
-                               $ND::server->command("msg $ND::target Couldn't set alliance_id to: $aid");
-                       }
-               }else{
-                       $ND::server->command("msg $ND::target Couldn't find such an alliance");
-               }
-       }
-}
+our @EXPORT = qw/setChannel/;
 
 sub setChannel {
        my ($msg, $command) = @_;
index 5ff09a02ba17de05c7e581f235a74e37f71239b9..315fe47a0cb1085429aca4fc064d85863be630bb 100644 (file)
@@ -26,6 +26,7 @@ INSERT INTO roles VALUES('irc_s');
 INSERT INTO roles VALUES('irc_h');
 INSERT INTO roles VALUES('irc_sethostile');
 INSERT INTO roles VALUES('irc_setnick');
+INSERT INTO roles VALUES('irc_setally');
 
 INSERT INTO group_roles (gid,role) VALUES(1,'irc_p_nick');
 INSERT INTO group_roles (gid,role) VALUES(1,'irc_p_intel');
@@ -53,6 +54,7 @@ INSERT INTO group_roles (gid,role) VALUES(1,'irc_s');
 INSERT INTO group_roles (gid,role) VALUES(1,'irc_h');
 INSERT INTO group_roles (gid,role) VALUES(1,'irc_sethostile');
 INSERT INTO group_roles (gid,role) VALUES(1,'irc_setnick');
+INSERT INTO group_roles (gid,role) VALUES(1,'irc_setally');
 
 INSERT INTO group_roles (gid,role) VALUES(2,'irc_gs');
 INSERT INTO group_roles (gid,role) VALUES(2,'irc_scan');
@@ -82,6 +84,7 @@ INSERT INTO group_roles (gid,role) VALUES(3,'irc_s');
 INSERT INTO group_roles (gid,role) VALUES(3,'irc_h');
 INSERT INTO group_roles (gid,role) VALUES(3,'irc_sethostile');
 INSERT INTO group_roles (gid,role) VALUES(3,'irc_setnick');
+INSERT INTO group_roles (gid,role) VALUES(3,'irc_setally');
 
 INSERT INTO group_roles (gid,role) VALUES(4,'irc_points_others');
 INSERT INTO group_roles (gid,role) VALUES(4,'irc_a');
@@ -90,6 +93,7 @@ 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(5,'irc_sethostile');
 INSERT INTO group_roles (gid,role) VALUES(5,'irc_setnick');
+INSERT INTO group_roles (gid,role) VALUES(5,'irc_setally');
 
 INSERT INTO group_roles (gid,role) VALUES(6,'irc_p_intel');
 INSERT INTO group_roles (gid,role) VALUES(6,'irc_points_others');