From 683c05f206457ede710bf828a0b6c8c8ed62fd95 Mon Sep 17 00:00:00 2001 From: Shoghi Cervantes Pueyo Date: Sat, 5 Jan 2013 17:13:12 +0100 Subject: [PATCH] Replace player spaces & handle more data packets --- src/classes/Entity.class.php | 4 ++-- src/classes/Player.class.php | 14 +++++++++++++- 2 files changed, 15 insertions(+), 3 deletions(-) diff --git a/src/classes/Entity.class.php b/src/classes/Entity.class.php index 01af3b8cc..7754f72e2 100644 --- a/src/classes/Entity.class.php +++ b/src/classes/Entity.class.php @@ -76,7 +76,7 @@ class Entity extends stdClass{ } public function update(){ - if($this->class === ENTITY_ITEM){ + if($this->class === ENTITY_ITEM and $this->closed === false){ $this->server->api->dhandle("entity.move", $this->eid); $player = $this->server->query("SELECT EID FROM entities WHERE class == ".ENTITY_PLAYER." AND abs(x - {$this->x}) <= 1.5 AND abs(y - {$this->y}) <= 1.5 AND abs(z - {$this->z}) <= 1.5 LIMIT 1;", true); if($player !== true and $player !== false){ @@ -166,7 +166,7 @@ class Entity extends stdClass{ $this->server->query("DELETE FROM entities WHERE EID = ".$this->eid.";"); $this->server->api->dhandle("entity.remove", $this->eid); $this->closed = true; - unset($this); + $this->__destruct(); } } diff --git a/src/classes/Player.class.php b/src/classes/Player.class.php index d115dceca..b4cde1a5b 100644 --- a/src/classes/Player.class.php +++ b/src/classes/Player.class.php @@ -213,9 +213,21 @@ class Player{ )); break; case 0x80: + case 0x81: + case 0x82: + case 0x83: case 0x84: + case 0x85: + case 0x86: + case 0x87: case 0x88: + case 0x89: + case 0x8a: + case 0x8b: case 0x8c: + case 0x8d: + case 0x8e: + case 0x8f: if(isset($data[0])){ $diff = $data[0] - $this->counter[1]; if($diff > 1){ //Packet recovery @@ -244,7 +256,7 @@ class Player{ break; case MC_LOGIN: - $this->username = str_replace("/", "", $data["username"]); + $this->username = str_replace(array("\x00", "/", " ", "\r", "\n"), array("", "-", "_", "", ""), $data["username"]); if($this->username == ""){ $this->close("bad username", false); break;