X-Git-Url: http://git.pk910.de/?p=PHP-P10.git;a=blobdiff_plain;f=Uplink%2FP10_User.class.php;h=651c6ccd4b87139a4c67063ed4a1ac47f5d0d261;hp=cd3a485d51a0426da735778705c985cd46bdb9c0;hb=refs%2Fheads%2Fmaster;hpb=b692377ffd5176e4be4394997c149773eb9405f7 diff --git a/Uplink/P10_User.class.php b/Uplink/P10_User.class.php index cd3a485..651c6cc 100644 --- a/Uplink/P10_User.class.php +++ b/Uplink/P10_User.class.php @@ -1,12 +1,10 @@ . * * * ************************************************************************ - * + * * Uplink/P10_User.class.php * * This class represents a IRC User * - ************************************************************************ - * accessable methods: - * - * static P10_User getUserByNum(String $numeric) - * searches and returns the User with the provided Numeric - * - * __construct(String $nick, String $numeric, P10_Server $server, int $connect_time, String $ident, String $realname, P10_ModeSet $modes) - * *** nothing to say here *** - * */ class P10_User { private static $static_users = array(); - + public static function getUserByNum($numeric) { if(array_key_exists($numeric, self::$static_users)) { return self::$static_users[$numeric]; } return NULL; } - + public static function getUserByNick($nick) { $nick = strtolower($nick); foreach(self::$static_users as $user) { @@ -54,8 +42,12 @@ class P10_User { } return NULL; } - - + + public static function getAllUsers() { + return self::$static_users; + } + + private $numeric; private $server; private $nick; @@ -65,8 +57,9 @@ class P10_User { private $connect_time; private $modes; private $realname; - private $channels; - + private $channels = array(); + private $away = null; + public function __construct($nick, $numeric, $server, $connect_time, $ident, $host, $ip, $realname, $modes) { $this->nick = $nick; $this->numeric = $numeric; @@ -80,62 +73,75 @@ class P10_User { $server->addUser($this); self::$static_users[$numeric] = $this; } - + public function getNumeric() { return $this->numeric; } - + public function getServer() { return $this->server; } - + public function setNick($nick) { $this->nick = $nick; } - + public function getNick() { return $this->nick; } - + public function setIdent($ident) { $this->ident = $ident; } - + public function getIdent() { return $this->ident; } - + public function getHost() { return $this->host; } - + public function getIP() { return $this->ip; } - + public function getConnectTime() { return $this->connect_time; } - + public function getModes() { return $this->modes; } - + public function getRealname() { return $this->realname; } - + + public function setAway($away) { + $this->away = $away; + } + + public function getAway() { + return $this->away; + } + + public function isAway() { + return ($this->away != null); + } + public function quit($reason) { $this->server->delUser($this); + unset(self::$static_users[$this->numeric]); foreach($this->channels as $channel) { $channel->quitUser($this); } } - + public function addChannel($channel) { $this->channels[strtolower($channel->getName())] = $channel; } - + public function delChannel($channel) { if(array_key_exists(strtolower($channel->getName()), $this->channels)) { unset($this->channels[strtolower($channel->getName())]); @@ -143,14 +149,29 @@ class P10_User { trigger_error("Tried to remove a Channel, that does NOT exist.", E_USER_WARNING); } } - + public function getChannels() { return $this->channels; } - + + public function getChannelCount() { + return count($this->channels); + } + public function isOnChannel($channel) { return array_key_exists(strtolower($channel->getName()),$this->channels); } + + public function getAuthNick() { + $authData = $this->getModes()->hasMode('r'); + $authnick = false; + if($authData) { + $authData = explode(':', $authData); + $authnick = $authData[0]; + } + + return $authnick; + } } ?> \ No newline at end of file