]> ruin.nu Git - NDIRC.git/blob - Intel.pm
83dd833c103c7a87e1ef110f3b1bc73586a5f12d
[NDIRC.git] / Intel.pm
1 #**************************************************************************
2 #   Copyright (C) 2006 by Michael Andreen <harvATruinDOTnu>               *
3 #                                                                         *
4 #   This program is free software; you can redistribute it and/or modify  *
5 #   it under the terms of the GNU General Public License as published by  *
6 #   the Free Software Foundation; either version 2 of the License, or     *
7 #   (at your option) any later version.                                   *
8 #                                                                         *
9 #   This program is distributed in the hope that it will be useful,       *
10 #   but WITHOUT ANY WARRANTY; without even the implied warranty of        *
11 #   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the         *
12 #   GNU General Public License for more details.                          *
13 #                                                                         *
14 #   You should have received a copy of the GNU General Public License     *
15 #   along with this program; if not, write to the                         *
16 #   Free Software Foundation, Inc.,                                       *
17 #   51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.         *
18 #**************************************************************************/
19 package NDIRC::Intel;
20 use strict;
21 use warnings;
22 use ND::DB;
23 use NDIRC::Access;
24 use NDIRC::Misc;
25 use ND::Include;
26 require Exporter;
27
28 our @ISA = qw/Exporter/;
29
30 our @EXPORT = qw/setChannel/;
31
32 sub setChannel {
33         my ($msg, $command) = @_;
34         my ($x,$y,$z,$channel);
35         if(defined $msg && $msg =~ /^(\d+)\D(\d+)\D(\d+) (\S+)$/){
36                 $x = $1;
37                 $y = $2;
38                 $z = $3;
39                 $channel = $4;
40         }else{
41                 $ND::server->command("notice $ND::nick Usage: .$command X:Y:Z channel");
42                 return;
43         }
44         if (my $user = intel){
45                 my $findid = $ND::DBH->prepare_cached(q{SELECT id,channel FROM current_planet_stats 
46                                 WHERE x = ? AND y = ? and z = ?});
47                 my ($id,$c) = $ND::DBH->selectrow_array($findid,undef,$x,$y,$z);
48                 if ($ND::DBH->do('UPDATE planets SET channel = $1 WHERE id = $2'
49                                 ,undef,$channel,$id)){
50
51                         if (defined $c){
52                                 $ND::server->command("msg $ND::target Changed $x:$y:$z from $ND::B$c$ND::B to $ND::B$channel");
53                         }else{
54                                 $ND::server->command("msg $ND::target Setting $x:$y:$z as $ND::B$channel");
55                         }
56                         intel_log $user->{uid},$id,"Set channel to: $channel";
57                 }else{
58                         $ND::server->command("msg $ND::target Couldn't find a planet at $x:$y:$z");
59                 }
60         }
61 }
62
63 1;