diff --git a/src/command/Command.php b/src/command/Command.php index 02bae60d9e..30338ddad7 100644 --- a/src/command/Command.php +++ b/src/command/Command.php @@ -58,7 +58,7 @@ abstract class Command{ /** @var string[] */ private array $permission = []; - private ?string $permissionMessage = null; + private Translatable|string|null $permissionMessage = null; /** * @param string[] $aliases @@ -112,10 +112,11 @@ abstract class Command{ return true; } - if($this->permissionMessage === null){ - $target->sendMessage(KnownTranslationFactory::pocketmine_command_error_permission($this->name)->prefix(TextFormat::RED)); - }elseif($this->permissionMessage !== ""){ - $target->sendMessage(str_replace("", $permission ?? implode(";", $this->permission), $this->permissionMessage)); + $message = $this->permissionMessage ?? KnownTranslationFactory::pocketmine_command_error_permission($this->name); + if($message instanceof Translatable){ + $target->sendMessage($message->prefix(TextFormat::RED)); + }elseif($message !== ""){ + $target->sendMessage(str_replace("", $permission ?? implode(";", $this->permission), $message)); } return false; @@ -187,7 +188,7 @@ abstract class Command{ return $this->activeAliases; } - public function getPermissionMessage() : ?string{ + public function getPermissionMessage() : Translatable|string|null{ return $this->permissionMessage; } @@ -213,7 +214,7 @@ abstract class Command{ $this->description = $description; } - public function setPermissionMessage(string $permissionMessage) : void{ + public function setPermissionMessage(Translatable|string $permissionMessage) : void{ $this->permissionMessage = $permissionMessage; }