X-Git-Url: https://ruin.nu/git/?a=blobdiff_plain;f=alliances.pl;h=8b5830836b8db4d63d9ef2aa5c2943879acda37a;hb=dfdaf29be0eb73b0b900ce3bced443120b1fca96;hp=101f2db12a9caf69664041cc55b5d3a81ef4afa5;hpb=38ca8c5683ec02a62badb6a0150e60a9a9338580;p=ndwebbie.git diff --git a/alliances.pl b/alliances.pl index 101f2db..8b58308 100644 --- a/alliances.pl +++ b/alliances.pl @@ -18,7 +18,7 @@ #**************************************************************************/ use strict; -use POSIX; +use warnings FATAL => 'all'; our $BODY; our $DBH; our $LOG; @@ -29,16 +29,37 @@ $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 'coords'){ - $DBH->begin_work; - $DBH->commit or $error .= "

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

"; -} -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"); + }else{ + $error .= "

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

"; + } + } + my $coords = param('coords'); + 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 = ?); + }); + while ($coords =~ m/(\d+):(\d+):(\d+)(?:\s+nick=\s*(\S+))?/g){ + if ($addplanet->execute($alliance->{id},$4,$1,$2,$3)){ + my $nick = ''; + $nick = '(nick $4)' if defined $4; + $error .= "

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

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

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

"; + } + } $DBH->commit or $error .= "

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

"; } @@ -47,12 +68,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{ @@ -65,9 +86,9 @@ ORDER BY $order}); $members->execute($alliance->{id}); my $i = 0; while (my $member = $members->fetchrow_hashref){ + $i++; $member->{ODD} = $i % 2; push @members,$member; - $i++; } $BODY->param(Members => \@members); @@ -79,22 +100,22 @@ ORDER BY $order}); $query->execute($alliance->{id},$alliance->{id},$alliance->{id},$alliance->{id}) or $error .= $DBH->errstr; my @intel; - my $i = 0; + $i = 0; while (my $intel = $query->fetchrow_hashref){ if ($intel->{ingal}){ $intel->{missionclass} = 'ingal'; }else{ $intel->{missionclass} = $intel->{mission}; } + $i++; $intel->{ODD} = $i % 2; push @intel,$intel; - $i++; } $BODY->param(Intel => \@intel); }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{ @@ -112,10 +133,10 @@ ORDER BY $order my @alliances; my $i = 0; while (my $alliance = $query->fetchrow_hashref){ - next if ($alliance->{score} < 1 && $alliance->{kscore} < 1); + next unless (defined $alliance->{score} || $alliance->{kscore} > 0); + $i++; $alliance->{ODD} = $i % 2; push @alliances, $alliance; - $i++; } $BODY->param(Alliances => \@alliances); }