- my ($x,$y,$z,$nick) = @_;
- DB();
- if (officer()){
- if ($ND::DBH->do("UPDATE planets SET nick = ? WHERE id = planetid(?,?,?,0)"
- ,undef,$nick,$x,$y,$z)){
- $ND::server->command("msg $ND::target $x:$y:$z has been updated");
+ my ($msg, $command) = @_;
+ my ($x,$y,$z,$nick);
+ if(defined $msg && $msg =~ /^(\d+)\D(\d+)\D(\d+) (\S+)$/){
+ $x = $1;
+ $y = $2;
+ $z = $3;
+ $nick = $4;
+ }else{
+ $ND::server->command("notice $ND::nick Usage: .$command X:Y:Z nick");
+ return;
+ }
+ if (my $user = intel){
+ my $findid = $ND::DBH->prepare_cached(q{SELECT nick, id FROM planets
+ WHERE id = planetid(?,?,?,tick())});
+ my ($oldnick,$id) = $ND::DBH->selectrow_array($findid,undef,$x,$y,$z);
+ if ($id && $ND::DBH->do('UPDATE planets SET nick = $1 WHERE id = $2'
+ ,undef,$nick,$id)){
+ unless (defined $oldnick){
+ $ND::server->command("msg $ND::target $x:$y:$z nick has been set to $ND::B$nick");
+ }else{
+ $ND::server->command("msg $ND::target $x:$y:$z nick has been changed from $ND::B$oldnick$ND::B to $ND::B$nick");
+ }
+ intel_log $user->{uid},$id,"Set nick to: $nick";
+ }else{
+ $ND::server->command("msg $ND::target Couldn't find any planet with coords $x:$y:$z");