mirror of
https://github.com/pmmp/PocketMine-MP.git
synced 2025-04-21 08:17:34 +00:00
TextFormat: Moved toANSI() to Terminal, close #1995
This also removes a cyclic dependency between TextFormat and Terminal, meaning that TextFormat is now standalone without any external dependencies. This is also an API break. Beware all ye who wander here, master = bleeding-edge!
This commit is contained in:
parent
98d6aea7fe
commit
b445825467
@ -214,7 +214,7 @@ class MainLogger extends \AttachableThreadedLogger{
|
||||
$threadName = (new \ReflectionClass($thread))->getShortName() . " thread";
|
||||
}
|
||||
|
||||
$message = TextFormat::toANSI(TextFormat::AQUA . "[" . date("H:i:s", $now) . "] " . TextFormat::RESET . $color . "[" . $threadName . "/" . $prefix . "]:" . " " . $message . TextFormat::RESET);
|
||||
$message = Terminal::toANSI(TextFormat::AQUA . "[" . date("H:i:s", $now) . "] " . TextFormat::RESET . $color . "[" . $threadName . "/" . $prefix . "]:" . " " . $message . TextFormat::RESET);
|
||||
$cleanMessage = TextFormat::clean($message);
|
||||
|
||||
if(!Terminal::hasFormattingCodes()){
|
||||
|
@ -159,4 +159,97 @@ abstract class Terminal{
|
||||
//TODO: iOS
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns a string with colorized ANSI Escape codes for the current terminal
|
||||
* Note that this is platform-dependent and might produce different results depending on the terminal type and/or OS.
|
||||
*
|
||||
* @param string|array $string
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public static function toANSI($string) : string{
|
||||
if(!is_array($string)){
|
||||
$string = TextFormat::tokenize($string);
|
||||
}
|
||||
|
||||
$newString = "";
|
||||
foreach($string as $token){
|
||||
switch($token){
|
||||
case TextFormat::BOLD:
|
||||
$newString .= Terminal::$FORMAT_BOLD;
|
||||
break;
|
||||
case TextFormat::OBFUSCATED:
|
||||
$newString .= Terminal::$FORMAT_OBFUSCATED;
|
||||
break;
|
||||
case TextFormat::ITALIC:
|
||||
$newString .= Terminal::$FORMAT_ITALIC;
|
||||
break;
|
||||
case TextFormat::UNDERLINE:
|
||||
$newString .= Terminal::$FORMAT_UNDERLINE;
|
||||
break;
|
||||
case TextFormat::STRIKETHROUGH:
|
||||
$newString .= Terminal::$FORMAT_STRIKETHROUGH;
|
||||
break;
|
||||
case TextFormat::RESET:
|
||||
$newString .= Terminal::$FORMAT_RESET;
|
||||
break;
|
||||
|
||||
//Colors
|
||||
case TextFormat::BLACK:
|
||||
$newString .= Terminal::$COLOR_BLACK;
|
||||
break;
|
||||
case TextFormat::DARK_BLUE:
|
||||
$newString .= Terminal::$COLOR_DARK_BLUE;
|
||||
break;
|
||||
case TextFormat::DARK_GREEN:
|
||||
$newString .= Terminal::$COLOR_DARK_GREEN;
|
||||
break;
|
||||
case TextFormat::DARK_AQUA:
|
||||
$newString .= Terminal::$COLOR_DARK_AQUA;
|
||||
break;
|
||||
case TextFormat::DARK_RED:
|
||||
$newString .= Terminal::$COLOR_DARK_RED;
|
||||
break;
|
||||
case TextFormat::DARK_PURPLE:
|
||||
$newString .= Terminal::$COLOR_PURPLE;
|
||||
break;
|
||||
case TextFormat::GOLD:
|
||||
$newString .= Terminal::$COLOR_GOLD;
|
||||
break;
|
||||
case TextFormat::GRAY:
|
||||
$newString .= Terminal::$COLOR_GRAY;
|
||||
break;
|
||||
case TextFormat::DARK_GRAY:
|
||||
$newString .= Terminal::$COLOR_DARK_GRAY;
|
||||
break;
|
||||
case TextFormat::BLUE:
|
||||
$newString .= Terminal::$COLOR_BLUE;
|
||||
break;
|
||||
case TextFormat::GREEN:
|
||||
$newString .= Terminal::$COLOR_GREEN;
|
||||
break;
|
||||
case TextFormat::AQUA:
|
||||
$newString .= Terminal::$COLOR_AQUA;
|
||||
break;
|
||||
case TextFormat::RED:
|
||||
$newString .= Terminal::$COLOR_RED;
|
||||
break;
|
||||
case TextFormat::LIGHT_PURPLE:
|
||||
$newString .= Terminal::$COLOR_LIGHT_PURPLE;
|
||||
break;
|
||||
case TextFormat::YELLOW:
|
||||
$newString .= Terminal::$COLOR_YELLOW;
|
||||
break;
|
||||
case TextFormat::WHITE:
|
||||
$newString .= Terminal::$COLOR_WHITE;
|
||||
break;
|
||||
default:
|
||||
$newString .= $token;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
return $newString;
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -24,7 +24,7 @@ declare(strict_types=1);
|
||||
namespace pocketmine\utils;
|
||||
|
||||
/**
|
||||
* Class used to handle Minecraft chat format, and convert it to other formats like ANSI or HTML
|
||||
* Class used to handle Minecraft chat format, and convert it to other formats like HTML
|
||||
*/
|
||||
abstract class TextFormat{
|
||||
public const ESCAPE = "\xc2\xa7"; //§
|
||||
@ -395,97 +395,4 @@ abstract class TextFormat{
|
||||
|
||||
return $newString;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns a string with colorized ANSI Escape codes
|
||||
*
|
||||
* @param string|array $string
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public static function toANSI($string) : string{
|
||||
if(!is_array($string)){
|
||||
$string = self::tokenize($string);
|
||||
}
|
||||
|
||||
$newString = "";
|
||||
foreach($string as $token){
|
||||
switch($token){
|
||||
case TextFormat::BOLD:
|
||||
$newString .= Terminal::$FORMAT_BOLD;
|
||||
break;
|
||||
case TextFormat::OBFUSCATED:
|
||||
$newString .= Terminal::$FORMAT_OBFUSCATED;
|
||||
break;
|
||||
case TextFormat::ITALIC:
|
||||
$newString .= Terminal::$FORMAT_ITALIC;
|
||||
break;
|
||||
case TextFormat::UNDERLINE:
|
||||
$newString .= Terminal::$FORMAT_UNDERLINE;
|
||||
break;
|
||||
case TextFormat::STRIKETHROUGH:
|
||||
$newString .= Terminal::$FORMAT_STRIKETHROUGH;
|
||||
break;
|
||||
case TextFormat::RESET:
|
||||
$newString .= Terminal::$FORMAT_RESET;
|
||||
break;
|
||||
|
||||
//Colors
|
||||
case TextFormat::BLACK:
|
||||
$newString .= Terminal::$COLOR_BLACK;
|
||||
break;
|
||||
case TextFormat::DARK_BLUE:
|
||||
$newString .= Terminal::$COLOR_DARK_BLUE;
|
||||
break;
|
||||
case TextFormat::DARK_GREEN:
|
||||
$newString .= Terminal::$COLOR_DARK_GREEN;
|
||||
break;
|
||||
case TextFormat::DARK_AQUA:
|
||||
$newString .= Terminal::$COLOR_DARK_AQUA;
|
||||
break;
|
||||
case TextFormat::DARK_RED:
|
||||
$newString .= Terminal::$COLOR_DARK_RED;
|
||||
break;
|
||||
case TextFormat::DARK_PURPLE:
|
||||
$newString .= Terminal::$COLOR_PURPLE;
|
||||
break;
|
||||
case TextFormat::GOLD:
|
||||
$newString .= Terminal::$COLOR_GOLD;
|
||||
break;
|
||||
case TextFormat::GRAY:
|
||||
$newString .= Terminal::$COLOR_GRAY;
|
||||
break;
|
||||
case TextFormat::DARK_GRAY:
|
||||
$newString .= Terminal::$COLOR_DARK_GRAY;
|
||||
break;
|
||||
case TextFormat::BLUE:
|
||||
$newString .= Terminal::$COLOR_BLUE;
|
||||
break;
|
||||
case TextFormat::GREEN:
|
||||
$newString .= Terminal::$COLOR_GREEN;
|
||||
break;
|
||||
case TextFormat::AQUA:
|
||||
$newString .= Terminal::$COLOR_AQUA;
|
||||
break;
|
||||
case TextFormat::RED:
|
||||
$newString .= Terminal::$COLOR_RED;
|
||||
break;
|
||||
case TextFormat::LIGHT_PURPLE:
|
||||
$newString .= Terminal::$COLOR_LIGHT_PURPLE;
|
||||
break;
|
||||
case TextFormat::YELLOW:
|
||||
$newString .= Terminal::$COLOR_YELLOW;
|
||||
break;
|
||||
case TextFormat::WHITE:
|
||||
$newString .= Terminal::$COLOR_WHITE;
|
||||
break;
|
||||
default:
|
||||
$newString .= $token;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
return $newString;
|
||||
}
|
||||
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user