diff --git a/src/event/player/PlayerChatEvent.php b/src/event/player/PlayerChatEvent.php index 6f2732142..1cdbb49fb 100644 --- a/src/event/player/PlayerChatEvent.php +++ b/src/event/player/PlayerChatEvent.php @@ -26,7 +26,7 @@ namespace pocketmine\event\player; use pocketmine\command\CommandSender; use pocketmine\event\Cancellable; use pocketmine\event\CancellableTrait; -use pocketmine\lang\KnownTranslationKeys; +use pocketmine\player\chat\ChatFormatter; use pocketmine\player\Player; use pocketmine\utils\Utils; @@ -43,7 +43,7 @@ class PlayerChatEvent extends PlayerEvent implements Cancellable{ Player $player, protected string $message, protected array $recipients, - protected string $format = KnownTranslationKeys::CHAT_TYPE_TEXT + protected ChatFormatter $formatter ){ $this->player = $player; } @@ -63,12 +63,12 @@ class PlayerChatEvent extends PlayerEvent implements Cancellable{ $this->player = $player; } - public function getFormat() : string{ - return $this->format; + public function getFormatter() : ChatFormatter{ + return $this->formatter; } - public function setFormat(string $format) : void{ - $this->format = $format; + public function setFormatter(ChatFormatter $formatter) : void{ + $this->formatter = $formatter; } /** diff --git a/src/player/Player.php b/src/player/Player.php index 4281df2b8..523e5c81f 100644 --- a/src/player/Player.php +++ b/src/player/Player.php @@ -114,6 +114,7 @@ use pocketmine\permission\DefaultPermissionNames; use pocketmine\permission\DefaultPermissions; use pocketmine\permission\PermissibleBase; use pocketmine\permission\PermissibleDelegateTrait; +use pocketmine\player\chat\StandardChatFormatter; use pocketmine\Server; use pocketmine\timings\Timings; use pocketmine\utils\AssumptionFailedError; @@ -1445,10 +1446,10 @@ class Player extends Human implements CommandSender, ChunkListener, IPlayer{ $this->server->dispatchCommand($this, substr($messagePart, 1)); Timings::$playerCommand->stopTiming(); }else{ - $ev = new PlayerChatEvent($this, $messagePart, $this->server->getBroadcastChannelSubscribers(Server::BROADCAST_CHANNEL_USERS)); + $ev = new PlayerChatEvent($this, $messagePart, $this->server->getBroadcastChannelSubscribers(Server::BROADCAST_CHANNEL_USERS), new StandardChatFormatter()); $ev->call(); if(!$ev->isCancelled()){ - $this->server->broadcastMessage($this->getServer()->getLanguage()->translateString($ev->getFormat(), [$ev->getPlayer()->getDisplayName(), $ev->getMessage()]), $ev->getRecipients()); + $this->server->broadcastMessage($ev->getFormatter()->format($ev->getPlayer()->getDisplayName(), $ev->getMessage()), $ev->getRecipients()); } } } diff --git a/src/player/chat/ChatFormatter.php b/src/player/chat/ChatFormatter.php new file mode 100644 index 000000000..5e85985ec --- /dev/null +++ b/src/player/chat/ChatFormatter.php @@ -0,0 +1,38 @@ +format); + } +} diff --git a/src/player/chat/StandardChatFormatter.php b/src/player/chat/StandardChatFormatter.php new file mode 100644 index 000000000..e077b9b47 --- /dev/null +++ b/src/player/chat/StandardChatFormatter.php @@ -0,0 +1,37 @@ +