mirror of
https://github.com/pmmp/PocketMine-MP.git
synced 2025-04-22 16:51:42 +00:00
CommandSender: export getLanguage()
this currently serves as a proxy to the server main language, but it can be used by third party implementations to choose a non-Server language.
This commit is contained in:
parent
097fc7e6cb
commit
52fd1a8c1d
@ -1290,7 +1290,7 @@ class Server{
|
||||
return true;
|
||||
}
|
||||
|
||||
$sender->sendMessage($this->getLanguage()->translateString(TextFormat::RED . "%commands.generic.notFound"));
|
||||
$sender->sendMessage($sender->getLanguage()->translateString(TextFormat::RED . "%commands.generic.notFound"));
|
||||
|
||||
return false;
|
||||
}
|
||||
|
@ -108,7 +108,7 @@ abstract class Command{
|
||||
}
|
||||
|
||||
if($this->permissionMessage === null){
|
||||
$target->sendMessage($target->getServer()->getLanguage()->translateString(TextFormat::RED . "%commands.generic.permission"));
|
||||
$target->sendMessage($target->getLanguage()->translateString(TextFormat::RED . "%commands.generic.permission"));
|
||||
}elseif($this->permissionMessage !== ""){
|
||||
$target->sendMessage(str_replace("<permission>", $this->permission, $this->permissionMessage));
|
||||
}
|
||||
@ -229,7 +229,7 @@ abstract class Command{
|
||||
public static function broadcastCommandMessage(CommandSender $source, $message, bool $sendToSource = true) : void{
|
||||
$users = PermissionManager::getInstance()->getPermissionSubscriptions(Server::BROADCAST_CHANNEL_ADMINISTRATIVE);
|
||||
if($message instanceof TranslationContainer){
|
||||
$formatted = "[" . $source->getName() . ": " . ($source->getServer()->getLanguage()->get($message->getText()) !== $message->getText() ? "%" : "") . $message->getText() . "]";
|
||||
$formatted = "[" . $source->getName() . ": " . ($source->getLanguage()->get($message->getText()) !== $message->getText() ? "%" : "") . $message->getText() . "]";
|
||||
|
||||
$result = new TranslationContainer($formatted, $message->getParameters());
|
||||
$colored = new TranslationContainer(TextFormat::GRAY . TextFormat::ITALIC . $formatted, $message->getParameters());
|
||||
|
@ -23,12 +23,15 @@ declare(strict_types=1);
|
||||
|
||||
namespace pocketmine\command;
|
||||
|
||||
use pocketmine\lang\Language;
|
||||
use pocketmine\lang\TranslationContainer;
|
||||
use pocketmine\permission\Permissible;
|
||||
use pocketmine\Server;
|
||||
|
||||
interface CommandSender extends Permissible{
|
||||
|
||||
public function getLanguage() : Language;
|
||||
|
||||
/**
|
||||
* @param TranslationContainer|string $message
|
||||
*/
|
||||
|
@ -23,6 +23,7 @@ declare(strict_types=1);
|
||||
|
||||
namespace pocketmine\command;
|
||||
|
||||
use pocketmine\lang\Language;
|
||||
use pocketmine\lang\TranslationContainer;
|
||||
use pocketmine\permission\PermissibleBase;
|
||||
use pocketmine\permission\PermissibleDelegateTrait;
|
||||
@ -48,15 +49,19 @@ class ConsoleCommandSender implements CommandSender{
|
||||
return $this->server;
|
||||
}
|
||||
|
||||
public function getLanguage() : Language{
|
||||
return $this->server->getLanguage();
|
||||
}
|
||||
|
||||
/**
|
||||
* @param TranslationContainer|string $message
|
||||
*/
|
||||
public function sendMessage($message) : void{
|
||||
$server = $this->getServer();
|
||||
if($message instanceof TranslationContainer){
|
||||
$message = $server->getLanguage()->translate($message);
|
||||
$message = $this->getLanguage()->translate($message);
|
||||
}else{
|
||||
$message = $server->getLanguage()->translateString($message);
|
||||
$message = $this->getLanguage()->translateString($message);
|
||||
}
|
||||
|
||||
foreach(explode("\n", trim($message)) as $line){
|
||||
|
@ -243,7 +243,7 @@ class SimpleCommandMap implements CommandMap{
|
||||
try{
|
||||
$target->execute($sender, $sentCommandLabel, $args);
|
||||
}catch(InvalidCommandSyntaxException $e){
|
||||
$sender->sendMessage($this->server->getLanguage()->translateString("commands.generic.usage", [$target->getUsage()]));
|
||||
$sender->sendMessage($sender->getLanguage()->translateString("commands.generic.usage", [$target->getUsage()]));
|
||||
}finally{
|
||||
$target->timings->stopTiming();
|
||||
}
|
||||
|
@ -55,7 +55,7 @@ class KillCommand extends VanillaCommand{
|
||||
|
||||
if(count($args) === 1){
|
||||
if(!$sender->hasPermission("pocketmine.command.kill.other")){
|
||||
$sender->sendMessage($sender->getServer()->getLanguage()->translateString(TextFormat::RED . "%commands.generic.permission"));
|
||||
$sender->sendMessage($sender->getLanguage()->translateString(TextFormat::RED . "%commands.generic.permission"));
|
||||
|
||||
return true;
|
||||
}
|
||||
@ -74,7 +74,7 @@ class KillCommand extends VanillaCommand{
|
||||
|
||||
if($sender instanceof Player){
|
||||
if(!$sender->hasPermission("pocketmine.command.kill.self")){
|
||||
$sender->sendMessage($sender->getServer()->getLanguage()->translateString(TextFormat::RED . "%commands.generic.permission"));
|
||||
$sender->sendMessage($sender->getLanguage()->translateString(TextFormat::RED . "%commands.generic.permission"));
|
||||
|
||||
return true;
|
||||
}
|
||||
|
@ -50,7 +50,7 @@ class TimeCommand extends VanillaCommand{
|
||||
|
||||
if($args[0] === "start"){
|
||||
if(!$sender->hasPermission("pocketmine.command.time.start")){
|
||||
$sender->sendMessage($sender->getServer()->getLanguage()->translateString(TextFormat::RED . "%commands.generic.permission"));
|
||||
$sender->sendMessage($sender->getLanguage()->translateString(TextFormat::RED . "%commands.generic.permission"));
|
||||
|
||||
return true;
|
||||
}
|
||||
@ -61,7 +61,7 @@ class TimeCommand extends VanillaCommand{
|
||||
return true;
|
||||
}elseif($args[0] === "stop"){
|
||||
if(!$sender->hasPermission("pocketmine.command.time.stop")){
|
||||
$sender->sendMessage($sender->getServer()->getLanguage()->translateString(TextFormat::RED . "%commands.generic.permission"));
|
||||
$sender->sendMessage($sender->getLanguage()->translateString(TextFormat::RED . "%commands.generic.permission"));
|
||||
|
||||
return true;
|
||||
}
|
||||
@ -72,7 +72,7 @@ class TimeCommand extends VanillaCommand{
|
||||
return true;
|
||||
}elseif($args[0] === "query"){
|
||||
if(!$sender->hasPermission("pocketmine.command.time.query")){
|
||||
$sender->sendMessage($sender->getServer()->getLanguage()->translateString(TextFormat::RED . "%commands.generic.permission"));
|
||||
$sender->sendMessage($sender->getLanguage()->translateString(TextFormat::RED . "%commands.generic.permission"));
|
||||
|
||||
return true;
|
||||
}
|
||||
@ -81,7 +81,7 @@ class TimeCommand extends VanillaCommand{
|
||||
}else{
|
||||
$world = $sender->getServer()->getWorldManager()->getDefaultWorld();
|
||||
}
|
||||
$sender->sendMessage($sender->getServer()->getLanguage()->translateString("commands.time.query", [$world->getTime()]));
|
||||
$sender->sendMessage($sender->getLanguage()->translateString("commands.time.query", [$world->getTime()]));
|
||||
return true;
|
||||
}
|
||||
|
||||
@ -91,7 +91,7 @@ class TimeCommand extends VanillaCommand{
|
||||
|
||||
if($args[0] === "set"){
|
||||
if(!$sender->hasPermission("pocketmine.command.time.set")){
|
||||
$sender->sendMessage($sender->getServer()->getLanguage()->translateString(TextFormat::RED . "%commands.generic.permission"));
|
||||
$sender->sendMessage($sender->getLanguage()->translateString(TextFormat::RED . "%commands.generic.permission"));
|
||||
|
||||
return true;
|
||||
}
|
||||
@ -126,7 +126,7 @@ class TimeCommand extends VanillaCommand{
|
||||
Command::broadcastCommandMessage($sender, new TranslationContainer("commands.time.set", [$value]));
|
||||
}elseif($args[0] === "add"){
|
||||
if(!$sender->hasPermission("pocketmine.command.time.add")){
|
||||
$sender->sendMessage($sender->getServer()->getLanguage()->translateString(TextFormat::RED . "%commands.generic.permission"));
|
||||
$sender->sendMessage($sender->getLanguage()->translateString(TextFormat::RED . "%commands.generic.permission"));
|
||||
|
||||
return true;
|
||||
}
|
||||
|
@ -117,7 +117,7 @@ class WhitelistCommand extends VanillaCommand{
|
||||
"off" => "disable"
|
||||
];
|
||||
if(!$sender->hasPermission("pocketmine.command.whitelist." . ($map[$subcommand] ?? $subcommand))){
|
||||
$sender->sendMessage($sender->getServer()->getLanguage()->translateString(TextFormat::RED . "%commands.generic.permission"));
|
||||
$sender->sendMessage($sender->getLanguage()->translateString(TextFormat::RED . "%commands.generic.permission"));
|
||||
|
||||
return true;
|
||||
}
|
||||
|
@ -768,7 +768,7 @@ class NetworkSession{
|
||||
|
||||
$data = new CommandData(
|
||||
$lname, //TODO: commands containing uppercase letters in the name crash 1.9.0 client
|
||||
$this->server->getLanguage()->translateString($command->getDescription()),
|
||||
$this->player->getLanguage()->translateString($command->getDescription()),
|
||||
0,
|
||||
0,
|
||||
$aliasObj,
|
||||
|
@ -78,6 +78,7 @@ use pocketmine\item\enchantment\EnchantmentInstance;
|
||||
use pocketmine\item\enchantment\MeleeWeaponEnchantment;
|
||||
use pocketmine\item\Item;
|
||||
use pocketmine\item\ItemUseResult;
|
||||
use pocketmine\lang\Language;
|
||||
use pocketmine\lang\TranslationContainer;
|
||||
use pocketmine\math\Vector3;
|
||||
use pocketmine\nbt\tag\CompoundTag;
|
||||
@ -634,6 +635,10 @@ class Player extends Human implements CommandSender, ChunkLoader, ChunkListener,
|
||||
return $this->locale;
|
||||
}
|
||||
|
||||
public function getLanguage() : Language{
|
||||
return $this->server->getLanguage();
|
||||
}
|
||||
|
||||
/**
|
||||
* Called when a player changes their skin.
|
||||
* Plugin developers should not use this, use setSkin() and sendSkin() instead.
|
||||
@ -1859,7 +1864,7 @@ class Player extends Human implements CommandSender, ChunkLoader, ChunkListener,
|
||||
return;
|
||||
}
|
||||
|
||||
$this->networkSession->onRawChatMessage($this->server->getLanguage()->translateString($message));
|
||||
$this->networkSession->onRawChatMessage($this->getLanguage()->translateString($message));
|
||||
}
|
||||
|
||||
/**
|
||||
@ -1868,11 +1873,11 @@ class Player extends Human implements CommandSender, ChunkLoader, ChunkListener,
|
||||
public function sendTranslation(string $message, array $parameters = []) : void{
|
||||
if(!$this->server->isLanguageForced()){
|
||||
foreach($parameters as $i => $p){
|
||||
$parameters[$i] = $this->server->getLanguage()->translateString($p, [], "pocketmine.");
|
||||
$parameters[$i] = $this->getLanguage()->translateString($p, [], "pocketmine.");
|
||||
}
|
||||
$this->networkSession->onTranslatedChatMessage($this->server->getLanguage()->translateString($message, $parameters, "pocketmine."), $parameters);
|
||||
$this->networkSession->onTranslatedChatMessage($this->getLanguage()->translateString($message, $parameters, "pocketmine."), $parameters);
|
||||
}else{
|
||||
$this->sendMessage($this->server->getLanguage()->translateString($message, $parameters));
|
||||
$this->sendMessage($this->getLanguage()->translateString($message, $parameters));
|
||||
}
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user