From b506ab349f8c5c6335a18f53105132b2e844c310 Mon Sep 17 00:00:00 2001 From: Shoghi Cervantes Date: Wed, 25 Jun 2014 22:20:50 +0200 Subject: [PATCH] Fixed TextFormat::toJSON() on nested formatting --- src/pocketmine/utils/TextFormat.php | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/src/pocketmine/utils/TextFormat.php b/src/pocketmine/utils/TextFormat.php index 6e9795f12..c07bab76a 100644 --- a/src/pocketmine/utils/TextFormat.php +++ b/src/pocketmine/utils/TextFormat.php @@ -91,8 +91,17 @@ class TextFormat{ $underlined = false; $strikethrough = false; $obfuscated = false; + $index = 0; foreach($string as $token){ + if(isset($pointer["text"])){ + if(!isset($newString["extra"])){ + $newString["extra"] = []; + } + $newString["extra"][$index] = []; + $pointer =& $newString["extra"][$index]; + ++$index; + } switch($token){ case TextFormat::BOLD: if($bold === false){ @@ -218,12 +227,18 @@ class TextFormat{ break; default: $pointer["text"] = $token; - $pointer["extra"] = []; - $pointer =& $pointer["extra"]; break; } } + if(isset($newString["extra"])){ + foreach($newString["extra"] as $k => $d){ + if(!isset($d["text"])){ + unset($newString["extra"][$k]); + } + } + } + return json_encode($newString, JSON_UNESCAPED_SLASHES); }