X-Git-Url: http://git.pk910.de/?a=blobdiff_plain;f=Uplink%2FP10_Server.class.php;h=a111a6e95b2af418f2b9e4fd0d89409fc39f1bc0;hb=refs%2Fheads%2Fmaster;hp=41bf281d4c58ede41fd3fc2b90b397986a22a737;hpb=8fc32c585446865b73c89859c35d1387fadbf9af;p=PHP-P10.git diff --git a/Uplink/P10_Server.class.php b/Uplink/P10_Server.class.php index 41bf281..a111a6e 100644 --- a/Uplink/P10_Server.class.php +++ b/Uplink/P10_Server.class.php @@ -1,12 +1,10 @@ . * * * ************************************************************************ - * + * * Uplink/P10_Server.class.php * * This class represents a IRC Server * - ************************************************************************ - * accessable methods: - * - * static P10_Server getServerByNum(String $numeric) - * searches and returns the Server with the provided Numeric - * - * __construct(String $name, String $numeric, P10_Server $parent_server, int $start_time, $link_time, $description) - * *** nothing to say here *** - * - * void disconnectServer(bool $linked_only = false) - * DISCONNECT EVENT (if $linked_only is true, only the Servers connected to the actual Server get disconnected.) - * - * String getNumeric() - * returns the Numeric of the Server - * - * String getName() - * returns the Name of the Server - * - * String getStartTime() - * returns the startup time of the Server - * - * String getLinkTime() - * returns the link time of the Server - * - * String getDescription() - * returns the Description of the Server - * - * void addServer(P10_Server $server) - * adds a Server to the server's "slave" list - * - * void delServer(P10_Server $server) - * removes a Server to the server's "slave" list */ class P10_Server { private static $static_servers = array(); - - public static getServerByNum($numeric) { + + public static function getServerByNum($numeric) { if(array_key_exists($numeric, self::$static_servers)) { return self::$static_servers[$numeric]; } return NULL; } - - + + public static function getServerByName($name) { + $name = strtolower($name); + foreach(self::$static_servers as $server) { + if(strtolower($server->getName()) == $name) { + return $server; + } + } + return NULL; + } + + public static function getServerCount() { + return count(self::$static_servers); + } + + public static function getServers() { + return self::$static_servers; + } + + private $name; private $numeric; private $parent_server; @@ -77,7 +60,7 @@ class P10_Server { private $description; private $servers = array(); //all Servers connected to this Server private $users = array(); //all Users connected to this Server - + public function __construct($name, $numeric, $parent_server, $start_time, $link_time, $description) { $this->name = $name; $this->numeric = $numeric; @@ -85,12 +68,14 @@ class P10_Server { $this->start_time = $start_time; $this->link_time = $link_time; $this->description = $description; - + self::$static_servers[$numeric] = $this; } - - public function disconnectServer($linked_only = false) { + + public function disconnectServer($eventHandler, $linked_only = false) { if(!$linked_only) { + if($eventHandler) + $eventHandler->event_squit($this); if($this->parent_server) { $this->parent_server->delServer($this); } @@ -98,41 +83,41 @@ class P10_Server { unset(self::$static_servers[$this->numeric]); } foreach($this->servers as $server) { - $server->disconnectServer(); + $server->disconnectServer($eventHandler); } } - + public function disconnectUsers() { //disconnect all Users connected to the actual Server foreach($this->users as $user) { $user->quit("*.net *.split"); } } - + public function getNumeric() { return $this->numeric; } - + public function getName() { return $this->name; } - + public function getStartTime() { return $this->start_time; } - + public function getLinkTime() { return $this->link_time; } - + public function getDescription() { return $this->description; } - + public function addServer($server) { $this->servers[$server->getNumeric()] = $server; } - + public function delServer($server) { if(array_key_exists($server->getNumeric(), $this->servers)) { unset($this->servers[$server->getNumeric()]); @@ -140,11 +125,11 @@ class P10_Server { trigger_error("Tried to remove a Server, that does NOT exist.", E_USER_WARNING); } } - + public function addUser($user) { $this->users[$user->getNumeric()] = $user; } - + public function delUser($user) { if(array_key_exists($user->getNumeric(), $this->users)) { unset($this->users[$user->getNumeric()]); @@ -152,6 +137,14 @@ class P10_Server { trigger_error("Tried to remove a User, that does NOT exist.", E_USER_WARNING); } } + + public function getUsers() { + return $this->users; + } + + public function getUserCount() { + return count($this->users); + } } ?> \ No newline at end of file