X-Git-Url: https://ruin.nu/git/?a=blobdiff_plain;f=alliances.pl;h=4f89a48f264131c3e28794f7f11d0d67a400cb27;hb=27f3358d4b4cc93f855eb30dd04d65764d52d990;hp=4cfa2d51f46ea61e884a8665a2953a064153f851;hpb=ccf38f8bef1adef7c1ef8797d8c84e477bc82305;p=ndwebbie.git diff --git a/alliances.pl b/alliances.pl index 4cfa2d5..4f89a48 100644 --- a/alliances.pl +++ b/alliances.pl @@ -19,11 +19,10 @@ use strict; use warnings FATAL => 'all'; -no warnings qw(uninitialized); -use POSIX; +use ND::Include; our $BODY; our $DBH; -our $LOG; +our $ERROR; my $error; $ND::TEMPLATE->param(TITLE => 'Alliances'); @@ -31,31 +30,35 @@ $ND::TEMPLATE->param(TITLE => 'Alliances'); die "You don't have access" unless isHC(); my $alliance; -if (param('alliance') =~ /^(\d+)$/){ +if (defined param('alliance') && param('alliance') =~ /^(\d+)$/){ my $query = $DBH->prepare(q{SELECT id,name, relationship FROM alliances WHERE id = ?}); $alliance = $DBH->selectrow_hashref($query,undef,$1); } -if ($alliance && param ('cmd') eq 'change'){ +if ($alliance && defined param('cmd') && param ('cmd') eq 'change'){ $DBH->begin_work; if (param('crelationship')){ my $value = escapeHTML(param('relationship')); if ($DBH->do(q{UPDATE alliances SET relationship = ? WHERE id =?} ,undef,$value,$alliance->{id})){ $alliance->{relationship} = $value; - $LOG->execute($ND::UID,"HC set alliance: $alliance->{id} relationship: $value"); + log_message $ND::UID,"HC set alliance: $alliance->{id} relationship: $value"; }else{ $error .= "

Something went wrong: ".$DBH->errstr."

"; } } my $coords = param('coords'); + my $findplanet = $DBH->prepare(q{SELECT id FROM current_planet_stats WHERE x = ? AND y = ? AND z = ?}); my $addplanet = $DBH->prepare(q{ -UPDATE planets SET alliance_id = ?, nick = coalesce(?,nick) -WHERE id = (SELECT id FROM current_planet_stats WHERE x = ? AND y = ? AND z = ?); +UPDATE planets SET alliance_id = $2, nick = coalesce($3,nick) +WHERE id = $1; }); while ($coords =~ m/(\d+):(\d+):(\d+)(?:\s+nick=\s*(\S+))?/g){ - if ($addplanet->execute($alliance->{id},$4,$1,$2,$3)){ - $error .= "

Added planet $1:$2:$3 (nick $4) to this alliance

"; - $LOG->execute($ND::UID,"HC Added planet $1:$2:$3 (nick $4) to alliance: $alliance->{id}"); + my ($id) = $DBH->selectrow_array($findplanet,undef,$1,$2,$3) or $ERROR .= p $DBH->errstr; + if ($addplanet->execute($id,$alliance->{id},$4)){ + my $nick = ''; + $nick = '(nick $4)' if defined $4; + $error .= "

Added planet $1:$2:$3 $nick to this alliance

"; + intel_log $ND::UID,$id,"HC Added planet $1:$2:$3 $nick to alliance: $alliance->{id} ($alliance->{name})"; }else{ $error .= "

Something went wrong: ".$DBH->errstr."

"; } @@ -68,12 +71,12 @@ if ($alliance){ $BODY->param(Id => $alliance->{id}); my @relationships; for my $relationship (" ","Friendly", "NAP", "Hostile"){ - push @relationships,{Rel => $relationship, Selected => $relationship eq $alliance->{relationship}} + push @relationships,{Rel => $relationship, Selected => defined $alliance->{relationship} && $relationship eq $alliance->{relationship}} } $BODY->param(Relationships => \@relationships); my $order = "p.x,p.y,p.z"; - if (param('order') =~ /^(score|size|value|xp|hit_us|race)$/){ + if (defined param('order') && param('order') =~ /^(score|size|value|xp|hit_us|race)$/){ $order = "$1 DESC"; } my $members = $DBH->prepare(qq{ @@ -115,7 +118,7 @@ ORDER BY $order}); }else{ my $order = "score DESC"; - if (param('order') =~ /^(score|kscore|size|ksize|members|kmem|kxp|kxp|scavg|kscavg|siavg|ksiavg|kxpavg|kvalue|kvalavg)$/){ + if (defined param('order') && param('order') =~ /^(score|kscore|size|ksize|members|kmem|kxp|kxp|scavg|kscavg|siavg|ksiavg|kxpavg|kvalue|kvalavg)$/){ $order = "$1 DESC"; } my $query = $DBH->prepare(qq{ @@ -133,8 +136,8 @@ ORDER BY $order my @alliances; my $i = 0; while (my $alliance = $query->fetchrow_hashref){ + next unless (defined $alliance->{score} || $alliance->{kscore} > 0); $i++; - next if ($alliance->{score} < 1 && $alliance->{kscore} < 1); $alliance->{ODD} = $i % 2; push @alliances, $alliance; }