Fixed TextFormat::toJSON() on nested formatting

This commit is contained in:
Shoghi Cervantes 2014-06-25 22:20:50 +02:00
parent e2f7cf61e3
commit b506ab349f

View File

@ -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);
}