Fixes #31 Server crash in health regeneration

This commit is contained in:
Shoghi Cervantes Pueyo 2013-01-06 02:28:58 +01:00
parent b150d4e001
commit 7030f9118d

View File

@ -42,10 +42,12 @@ class PlayerAPI{
public function handle($data, $event){ public function handle($data, $event){
switch($event){ switch($event){
case "server.regeneration": case "server.regeneration":
$result = $this->server->query("SELECT ip,port FROM players WHERE EID = (SELECT EID FROM entities WHERE health < 20);"); $result = $this->server->query("SELECT EID FROM players WHERE EID = (SELECT EID FROM entities WHERE health < 20);");
if($result !== true and $result !== false){ if($result !== true and $result !== false){
while(false !== ($player = $result->fetchArray())){ while(false !== ($player = $result->fetchArray())){
$player->entity->setHealth(min(20, $player->entity->getHealth() + $data), "regeneration"); if(($player = $this->server->api->player->getByEID($player["EID"])) !== false){
$player->entity->setHealth(min(20, $player->entity->getHealth() + $data), "regeneration");
}
} }
} }
break; break;