X-Git-Url: https://ruin.nu/git/?a=blobdiff_plain;f=Commands%2FIntel.pm;h=b9c00e91d20ebe6085208caca59c53321ea59f66;hb=4c40fd39668614135ae9370092b5d17355bad15c;hp=dd8eb2eca672f189b4943c2c743b5a17700d844b;hpb=86a286d12a410321c2784bc2742ce9c755c262ed;p=NDIRC.git diff --git a/Commands/Intel.pm b/Commands/Intel.pm index dd8eb2e..b9c00e9 100644 --- a/Commands/Intel.pm +++ b/Commands/Intel.pm @@ -37,7 +37,7 @@ sub sethostile my $findid = $dbh->prepare(q{SELECT planetid(?,?,?,tick())}); my ($id) = $dbh->selectrow_array($findid,undef,$x,$y,$z); $dbh->begin_work; - my $rv = $dbh->do(q{UPDATE planets SET planet_status = 'Hostile' WHERE id = $1} + my $rv = $dbh->do(q{UPDATE planets SET planet_status = 'Hostile' WHERE pid = $1} ,undef,$id); if ($rv == 1){ $c->reply("$x:$y:$z is now marked s hostile"); @@ -55,23 +55,23 @@ sub setnick my $dbh = $c->model; my $findid = $dbh->prepare(q{ -SELECT nick, id, alliance_id FROM planets WHERE id = planetid(?,?,?,tick()) +SELECT nick, pid, alliance FROM planets WHERE pid = planetid(?,?,?,tick()) }); my $planet = $dbh->selectrow_hashref($findid,undef,$x,$y,$z); - unless($planet->{id}){ + unless($planet->{pid}){ $c->reply("Couldn't find any planet with coords $x:$y:$z"); - }elsif($planet->{alliance_id} ~~ 1){ + }elsif($planet->{alliance} ~~ 'NewDawn'){ $c->reply("This is an ND planet."); }else{ $dbh->begin_work; - $dbh->do(q{UPDATE planets SET nick = $1 WHERE id = $2} - ,undef,$nick,$planet->{id}); + $dbh->do(q{UPDATE planets SET nick = $1 WHERE pid = $2} + ,undef,$nick,$planet->{pid}); if ($planet->{nick}){ $c->reply("$x:$y:$z nick has been changed from $planet->{nick} to $nick"); }else{ $c->reply("$x:$y:$z nick has been set to $nick"); } - $c->intel_log($planet->{id},"Set nick to: $nick"); + $c->intel_log($planet->{pid},"Set nick to: $nick"); $dbh->commit; } } @@ -87,14 +87,14 @@ sub setally my $aid; if ($ally ne 'unknown'){ ($aid,$ally) = $dbh->selectrow_array(q{ -SELECT id,name FROM alliances WHERE name ILIKE ? +SELECT aid,alliance FROM alliances WHERE alliance 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 = ? +SELECT pid,alliance,aid 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){ @@ -105,8 +105,8 @@ SELECT id,alliance,alliance_id FROM current_planet_stats WHERE x = ? AND y = ? a $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); + $dbh->do(q{UPDATE planets SET alliance = $1 WHERE pid = $2} + ,undef,$ally,$id); if (defined $alliance){ $c->reply("Changed $x:$y:$z from $alliance to $ally"); }else{ @@ -120,4 +120,33 @@ SELECT id,alliance,alliance_id FROM current_planet_stats WHERE x = ? AND y = ? a } } +sub setchannel + : Help(Usage: .setchannel X:Y:Z channel | Set channel or bot for a planet) + : ACL(irc_setchannel) +{ + my ($self,$c,$msg) = @_; + my ($x,$y,$z,$channel) = $msg =~ /^(\d+)\D(\d+)\D(\d+) (\S+)$/ or die 'ARGS'; + my $dbh = $c->model; + + my $findid = $dbh->prepare_cached(q{SELECT pid,channel FROM current_planet_stats + WHERE x = ? AND y = ? and z = ?}); + my ($id,$oc) = $dbh->selectrow_array($findid,undef,$x,$y,$z); + if ($channel ~~ $oc){ + $c->reply("$x:$y:$z already got $oc as channel"); + }elsif($id){ + $dbh->begin_work; + $dbh->do(q{UPDATE planets SET channel = $1 WHERE pid = $2} + ,undef,$channel,$id); + $c->intel_log($id,"Set channel to: $channel"); + $dbh->commit; + if ($oc){ + $c->reply("Changed $x:$y:$z from $oc to $channel"); + }else{ + $c->reply("Setting $x:$y:$z as $channel"); + } + }else{ + $c->reply("Couldn't find a planet at $x:$y:$z"); + } +} + 1;