/** Gets a Server class instance for the specified server. * This function returns an instance of Server (the same as the innerAPI one) for the specified server in argument. * * \param $server The wanted server's name. * * \return If the server exists, it returns an instance of Server class. Else, it returns FALSE. */ public static function getServer($server) { $self = self::getInstance(); if (!isset($self->_leelabot->servers[$server])) { return FALSE; } $instance = new Server(); $instance->setServer($self->_leelabot->servers[$server]); return $instance; }
public function IrcPlayers($pseudo, $channel, $cmd, $message) { $serverlist = ServerList::getList(); $actual = Server::getName(); if (isset($cmd[1]) && in_array($cmd[1], $serverlist)) { Server::setServer($this->_main->servers[$cmd[1]]); $this->_printPlayers($cmd[1]); } else { foreach ($serverlist as $server) { Server::setServer($this->_main->servers[$server]); $this->_printPlayers(); } } Server::setServer($this->_main->servers[$actual]); }
/** Loads all the server instances and defining their parameters * This function loads all the server instances found in Leelabot::$config, and initializes them with their config. * * \returns TRUE if instances loaded successfully, FALSE otherwise. */ public function loadServerInstances() { if (!isset($this->config['Server'])) { Leelabot::message('No server defined in configuration.', array(), E_ERROR); exit; } $this->servers = array(); Leelabot::message('Loading server instances.'); //Checking default configuration if (isset($this->config['Server']['default'])) { $defaultConfig = $this->config['Server']['default']; unset($this->config['Server']['default']); } foreach ($this->config['Server'] as $name => $instance) { if (isset($instance['name'])) { $name = $instance['name']; } Leelabot::message('Loading server "$0".', array($name)); $this->servers[$name] = new ServerInstance($this); //Using config name if not specified $this->servers[$name]->setName($name); //Loading config if (!$this->servers[$name]->loadConfig($instance)) { Leelabot::message('Can\'t load config for server "$0".', array($name), E_WARNING); unset($this->servers[$name]); continue; } //Setting servers for static inner API RCon::setServer($this->servers[$name]); Server::setServer($this->servers[$name]); //Connecting to server if (!$this->servers[$name]->connect()) { Leelabot::message('Can\'t connect to server "$0".', array($name), E_WARNING); unset($this->servers[$name]); } } }
public function IrcStats($pseudo, $channel, $cmd, $message) { $server = LeelaBotIrc::nameOfServer($cmd[2], FALSE); $actual = Server::getName(); if (isset($cmd[1])) { if ($server !== false) { Server::setServer($this->_main->servers[$server]); $target = Server::searchPlayer(trim($cmd[1])); if (!$target) { LeelaBotIrc::sendMessage("Unknown player"); } elseif (is_array($target)) { $players = array(); foreach ($target as $p) { $players[] = Server::getPlayer($p)->name; } LeelaBotIrc::sendMessage("Multiple players found : " . join(', ', $players)); } else { $buffer = array(); $_stats = Server::get('stats'); $_awards = Server::get('awards'); $player = Server::getPlayer($target); if ($_stats[$player->id]['deaths'] != 0) { $ratio = $_stats[$player->id]['kills'] / $_stats[$player->id]['deaths']; } else { $ratio = $_stats[$player->id]['kills']; } if (in_array('hits', $this->config['ShowStats'])) { //Gestion des hits en fonction de la configuration du plugin de stats $hits = "Hits : " . $_stats[$player->id]['hits'] . " - "; } if (Server::getServer()->serverInfo['g_gametype'] == 7) { //Gestion des caps uniquement en CTF $caps = " - Caps : " . $_stats[$player->id]['caps']; } LeelaBotIrc::sendMessage("Stats de " . $player->name . " : " . $hits . "Kills : " . $_stats[$player->id]['kills'] . " - Deaths : " . $_stats[$player->id]['deaths'] . " - Ratio : " . $ratio . $caps . " - Streaks : " . $_stats[$player->id]['streaks']); } Server::setServer($this->_main->servers[$actual]); } } else { LeelaBotIrc::sendMessage("Player name missing"); } }