session = $session; } /** * @return NetworkSession */ public function getNetworkSession() : NetworkSession{ return $this->session; } /** * @return string */ public function getAddress() : string{ return $this->session->getIp(); } /** * @return int */ public function getPort() : int{ return $this->session->getPort(); } /** * @return Player::class */ public function getBaseClass(){ return $this->baseClass; } /** * @param Player::class $class */ public function setBaseClass($class) : void{ if(!is_a($class, $this->baseClass, true)){ throw new \RuntimeException("Base class $class must extend " . $this->baseClass); } $this->baseClass = $class; } /** * @return Player::class */ public function getPlayerClass(){ return $this->playerClass; } /** * @param Player::class $class */ public function setPlayerClass($class) : void{ if(!is_a($class, $this->baseClass, true)){ throw new \RuntimeException("Class $class must extend " . $this->baseClass); } $this->playerClass = $class; } }