public function serverCmd($server, $cmd, &$data = null, $broadcast = false, $nocache = false)
 {
     $command = $cmd;
     $r = array();
     if (($cache = CommandCache::get($server, $command, $r)) === 1) {
         if (@$r['success']) {
             $data = @$r['data'];
             return true;
         }
         $this->addError(@$r['error']);
         return false;
     }
     $cmd = 'server ' . $server . ':' . $cmd;
     $ret = array();
     if ($broadcast) {
         $ret = $this->globalCmd($cmd);
     } else {
         $ret = array($this->cmd(Server::getDaemon($server), $cmd));
     }
     $e = '';
     foreach ($ret as $r) {
         if ($cache !== 0) {
             CommandCache::set($server, $command, $r);
         }
         if ($r['success']) {
             $data = $r['data'];
             return true;
         }
         $e = $r['error'];
     }
     $this->addError($e);
     return false;
 }