class TextPacket extends DataPacket{ public static $pool = []; public static $next = 0; const TYPE_RAW = 0; const TYPE_CHAT = 1; const TYPE_TRANSLATION = 2; public $type; public $source; public $message; public $parameters = []; public function pid(){ return Info::TEXT_PACKET; } public function decode(){ $this->type = $this->getByte(); switch($this->type){ case self::TYPE_CHAT: $this->source = $this->getString(); case self::TYPE_RAW: $this->message = $this->getString(); break; case self::TYPE_TRANSLATION: $this->message = $this->getString(); $count = $this->getByte(); for($i = 0; $i < $count; ++$count){ $this->parameters[] = $this->getString(); } } } public function encode(){ $this->reset(); $this->putByte($this->type); switch($this->type){ case self::TYPE_CHAT: $this->putString($this->source); case self::TYPE_RAW: $this->putString($this->message); break; case self::TYPE_TRANSLATION: $this->putString($this->message); $this->putByte(count($this->parameters)); foreach($this->parameters as $p){ $this->putString($p); } } } }