]> ruin.nu Git - NDIRC.git/blobdiff - Commands/Def.pm
Need to return the status for new calls
[NDIRC.git] / Commands / Def.pm
index 321697871bc4113e2cb2fd5ea0b45bac829c4295..c49405c96b5b8bf140bbc840fe47b4cc72422075 100644 (file)
@@ -75,9 +75,9 @@ ORDER BY c.landing_tick;
                        return;
                }
        }
-       $c->message(notice => $ND::memchan, "DEFENSE REQUIRED!! WAKE UP!!");
-       $c->message(privmsg => $ND::memchan, "DEFENSE REQUIRED $mess $callinfo MSG "
-               .$c->nick." TO RESPOND");
+       $c->message(notice => $c->disp->targets->{members}, "DEFENSE REQUIRED!! WAKE UP!!");
+       $c->message(privmsg => $c->disp->targets->{members}, "DEFENSE REQUIRED "
+               ."$mess $callinfo MSG ".$c->nick." TO RESPOND");
 }
 
 sub settype
@@ -172,10 +172,10 @@ sub calltake
 
        $dbh->begin_work;
        my $rows = $dbh->do(q{
-UPDATE calls SET dc = (SELECT uid FROM users WHERE hostmask ILIKE $1)
+UPDATE calls SET dc = $1
        ,status = $3
 WHERE call = $2
-               },undef,$c->host,$id,$status);
+               },undef,$c->uid,$id,$status);
        if ($rows == 1){
                $c->reply("Setting status on call $id to $status");
                $c->def_log($id , "Changed status: [B]$status [/B]");
@@ -196,7 +196,7 @@ sub setcalc
        my $dbh = $c->model;
 
        $dbh->begin_work;
-       my $rows = $dbh->do(q{UPDATE calls SET calc = $2 WHERE id = $1}
+       my $rows = $dbh->do(q{UPDATE calls SET calc = $2 WHERE call = $1}
                ,undef,$id, $calc);
        if ($rows == 1){
                $c->reply("Updated calc call <b>$id</b>");
@@ -219,14 +219,15 @@ sub getcalc
        my $dbh = $c->model;
 
        my $calc = $dbh->selectrow_array(q{
-SELECT calc FROM calls WHERE id = $1}
+SELECT calc FROM calls WHERE call = $1}
                ,undef,$id);
        $calc //= "Bad call id, there is no such call.";
        $c->reply("Calc for call <b>$id</b>: $calc");
 }
 
 sub report_incs
-       : Type(pm)
+       : Help(Used to report incs, same as pasting in pm. Use ~ prefix to send output to channel)
+       : Type(def)
 {
        my ($self,$c,$msg) = @_;
 
@@ -263,11 +264,12 @@ FROM groupmembers WHERE uid = ? AND gid = 'X'
                                },undef,$user->{uid});
                                unless (@call){ #call doesn't exists, create a new one
                                        @call = $dbh->selectrow_array(q{
-INSERT INTO calls (uid,landing_tick,info) VALUES(?,?,'') RETURNING call
+INSERT INTO calls (uid,landing_tick,info) VALUES(?,?,'') RETURNING call,status,calc
                                        },undef,$user->{uid},$landing_tick);
                                        if ($threefleeter){
                                                $dbh->do(q{UPDATE calls SET status = 'Ignored' WHERE call = $1},undef,$call[0]);
                                                $c->def_log($call[0], 'This member has been marked as [B]NoDef[/B], do [B]not cover[/B] unless you have a good reaon.');
+                                               $call[1] = 'Ignored';
                                        }
                                }
                                if (@call){
@@ -287,34 +289,34 @@ INSERT INTO calls (uid,landing_tick,info) VALUES(?,?,'') RETURNING call
 INSERT INTO incomings (call,pid,eta,amount,fleet) VALUES(?,?,?,?,?) RETURNING inc
                                                },undef,$call[0],$attacker[2],$9,$amount,$7);
                                                @attacker = map (valuecolor(0),@attacker);
-                                               if (! $threefleeter || $call[2]){
-                                                       $c->message(privmsg => $ND::defchan, "<b>New incoming: CallId: $call[0], IncId: $incid $1:$2:$3 ($user->{defprio}) is under Attack by $4:$5:$6, ($attacker[3]), $attacker[1]($attacker[4]) https://nd.ruin.nu/calls/edit/$call[0]</b>");
+                                               if (! $threefleeter || $call[1] ne 'Ignored'){
+                                                       $c->reply("<b>New incoming: CallId: $call[0], IncId: $incid $1:$2:$3 ($user->{defprio}) is under Attack by $4:$5:$6, ($attacker[3]), $attacker[1]($attacker[4]) https://nd.ruin.nu/calls/edit/$call[0]</b>");
                                                }else{
-                                                       $c->message(privmsg => $ND::defchan, "<b>Do not cover</b>, NoDef member is under attack by $4:$5:$6, ($attacker[3]), $attacker[1]($attacker[4])  https://nd.ruin.nu/calls/edit/$call[0]");
+                                                       $c->reply("<b>Do not cover</b>, NoDef member is under attack by $4:$5:$6, ($attacker[3]), $attacker[1]($attacker[4])  https://nd.ruin.nu/calls/edit/$call[0]");
                                                }
                                                $dbh->do(q{UPDATE planets SET hit_us = hit_us + 1 WHERE pid = ?},undef,$attacker[2]);
                                                if ($call[1] eq 'Covered'){
                                                        $dbh->do(q{UPDATE calls SET status = 'Open' WHERE call = ?},undef,$call[0]);
-                                                       $c->message(privmsg => $ND::defchan, "<b>Call is likely not covered anymore, please recalc! calc: $call[3]</b>");
+                                                       $c->reply("<b>Call is likely not covered anymore, please recalc! calc: $call[2]</b>");
                                                }
                                        }else{
                                                @attacker = map (valuecolor(0),@attacker);
-                                               $c->message(privmsg => $ND::defchan, "Duplicate call: Callid: $call[0], Covered: $call[1], Open: $call[2] $1:$2:$3 ($user->{defprio}) is under Attack by $4:$5:$6, ($attacker[3]), $attacker[1]($attacker[4]), landing tick: $landing_tick");
+                                               $c->reply("Duplicate call: Callid: $call[0], Status: $call[1] $1:$2:$3 ($user->{defprio}) is under Attack by $4:$5:$6, ($attacker[3]), $attacker[1]($attacker[4]), landing tick: $landing_tick");
                                        }
 
                                        my ($fleetcatch) = $dbh->selectrow_array(q{
 SELECT count(*) FROM launch_confirmations WHERE uid = ? AND back = ?
                                        },undef,$user->{uid},$landing_tick);
                                        if ($fleetcatch > 0){
-                                               $c->message(privmsg => $ND::defchan, "<c04>THIS IS A POSSIBLE FLEETCATCH!</c>");
+                                               $c->reply("<c04>THIS IS A POSSIBLE FLEETCATCH!</c>");
                                        }
                                }
                                $dbh->commit;
                        }else{
-                               $c->message(privmsg => $ND::defchan, "<c04>Didn't find any planet with coordinates $4:$5:$6 at this tick</c>");
+                               $c->reply("<c04>Didn't find any planet with coordinates $4:$5:$6 at this tick</c>");
                        }
                }else{
-                       $c->message(privmsg => $ND::defchan, "<c04>No member registered with coordinates $1:$2:$3</c>");
+                       $c->reply("<c04>No member registered with coordinates $1:$2:$3</c>");
                }
        }