+ my $f = $c->model->prepare(q{
+WITH p AS (SELECT pid,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
+), t AS (SELECT tag,bool_or(uid = $5) AS own,max(time) AS time
+ FROM planet_tags
+ WHERE pid = (SELECT pid FROM p)
+ AND ($6 OR uid = $5)
+ GROUP BY tag
+ ORDER BY time DESC
+), tags AS (SELECT array_to_string(array_agg(tag || CASE WHEN own THEN '*' ELSE '' END),' ') AS tags
+ FROM t
+)
+SELECT * FROM p, tags;
+ });
+ $f->execute($x,$y,$z,$nick,$c->uid,$c->check_user_roles(qw/irc_p_intel/) // 0);
+ if (my $planet = $f->fetchrow_hashref()){
+ for (keys %{$planet}){
+ $planet->{$_} = $c->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}) TAGS: $planet->{tags}");
+ }else{
+ $c->reply("Couldn't find planet: $msg");
+ }