+#**************************************************************************
+# Copyright (C) 2008 by Michael Andreen <harvATruinDOTnu> *
+# *
+# This program is free software; you can redistribute it and/or modify *
+# it under the terms of the GNU General Public License as published by *
+# the Free Software Foundation; either version 2 of the License, or *
+# (at your option) any later version. *
+# *
+# This program is distributed in the hope that it will be useful, *
+# but WITHOUT ANY WARRANTY; without even the implied warranty of *
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
+# GNU General Public License for more details. *
+# *
+# You should have received a copy of the GNU General Public License *
+# along with this program; if not, write to the *
+# Free Software Foundation, Inc., *
+# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. *
+#**************************************************************************/
+
+package NDIRC::Commands::PA;
+
+use strict;
+use warnings;
+
+use Moose;
+use MooseX::MethodAttributes;
+
+use NDIRC::Misc;
+
+sub p
+ : Help(usage: .p X:Y:Z | or .p nick with high enough access)
+{
+ my ($self, $c, $msg) = @_;
+
+ my ($x,$y,$z,$nick);
+ if ($msg =~ /(\d+)\D+(\d+)\D+(\d+)/){
+ $x = $1;
+ $y = $2;
+ $z = $3;
+ }elsif ($msg && $c->check_user_roles(qw/irc_p_nick/)){
+ $nick = $msg;
+ }else{
+ die "ARGS";
+ }
+
+ my $f = $c->model->prepare(q{
+SELECT coords(x,y,z),ruler,planet,race,score,size,value,scorerank,sizerank,
+ valuerank, xp, xprank, alliance, relationship, nick, planet_status, hit_us, channel
+FROM current_planet_stats WHERE (x = $1 AND y = $2 and z = $3) OR nick ILIKE $4 LIMIT 1
+ });
+ $f->execute($x,$y,$z,$nick);
+ if (my $planet = $f->fetchrow_hashref()){
+ for (keys %{$planet}){
+ $planet->{$_} = valuecolor(1,$planet->{$_});
+ }
+ my $ally = "";
+ if ($c->check_user_roles(qw/irc_p_intel/)){
+ $ally = "Alliance=$planet->{alliance} ($planet->{relationship}), Nick=$planet->{nick} ($planet->{planet_status}), Channel: $planet->{channel}, Hostile Count: $planet->{hit_us},";
+ }
+ $c->reply("$planet->{coords} $planet->{ruler} OF $planet->{planet},$ally Race=$planet->{race}, Score=$planet->{score} ($planet->{scorerank}), Size=$planet->{size} ($planet->{sizerank}), Value=$planet->{value} ($planet->{valuerank}), XP=$planet->{xp} ($planet->{xprank})");
+ }else{
+ $c->reply("Couldn't find planet: $msg");
+ }
+}
+
+1;