Added KnownTranslationFactory and use it in as many places as possible

this makes translation usage much more statically analysable.
The only places this isn't used are:
- places that prefix translations with colours (those are still a problem)
- places where server/client translations don't match (e.g. gameMode.changed accepts different parameters in vanilla than in PM)
This commit is contained in:
Dylan K. Taylor 2021-08-10 14:50:40 +01:00
parent d39080c45a
commit 2293bd948d
No known key found for this signature in database
GPG Key ID: 8927471A91CAFD3D
52 changed files with 2185 additions and 372 deletions

View File

@ -0,0 +1,178 @@
<?php
/*
*
* ____ _ _ __ __ _ __ __ ____
* | _ \ ___ ___| | _____| |_| \/ (_)_ __ ___ | \/ | _ \
* | |_) / _ \ / __| |/ / _ \ __| |\/| | | '_ \ / _ \_____| |\/| | |_) |
* | __/ (_) | (__| < __/ |_| | | | | | | | __/_____| | | | __/
* |_| \___/ \___|_|\_\___|\__|_| |_|_|_| |_|\___| |_| |_|_|
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* @author PocketMine Team
* @link http://www.pocketmine.net/
*
*
*/
declare(strict_types=1);
namespace pocketmine\build\generate_known_translation_apis;
use Webmozart\PathUtil\Path;
use function array_map;
use function count;
use function dirname;
use function file_put_contents;
use function fwrite;
use function implode;
use function is_numeric;
use function ob_get_clean;
use function ob_start;
use function parse_ini_file;
use function str_replace;
use function strtoupper;
use const INI_SCANNER_RAW;
use const SORT_STRING;
use const STDERR;
require dirname(__DIR__) . '/vendor/autoload.php';
function constantify(string $permissionName) : string{
return strtoupper(str_replace([".", "-"], "_", $permissionName));
}
function functionify(string $permissionName) : string{
return str_replace([".", "-"], "_", $permissionName);
}
const SHARED_HEADER = <<<'HEADER'
<?php
/*
*
* ____ _ _ __ __ _ __ __ ____
* | _ \ ___ ___| | _____| |_| \/ (_)_ __ ___ | \/ | _ \
* | |_) / _ \ / __| |/ / _ \ __| |\/| | | '_ \ / _ \_____| |\/| | |_) |
* | __/ (_) | (__| < __/ |_| | | | | | | | __/_____| | | | __/
* |_| \___/ \___|_|\_\___|\__|_| |_|_|_| |_|\___| |_| |_|_|
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* @author PocketMine Team
* @link http://www.pocketmine.net/
*
*
*/
declare(strict_types=1);
namespace pocketmine\lang;
HEADER;
/**
* @param string[] $languageDefinitions
* @phpstan-param array<string, string> $languageDefinitions
*/
function generate_known_translation_keys(array $languageDefinitions) : void{
ob_start();
echo SHARED_HEADER;
echo <<<'HEADER'
/**
* This class contains constants for all the translations known to PocketMine-MP as per the used version of pmmp/Language.
* This class is generated automatically, do NOT modify it by hand.
*/
final class KnownTranslationKeys{
HEADER;
ksort($languageDefinitions, SORT_STRING);
foreach($languageDefinitions as $k => $_){
echo "\tpublic const ";
echo constantify($k);
echo " = \"" . $k . "\";\n";
}
echo "}\n";
file_put_contents(dirname(__DIR__) . '/src/lang/KnownTranslationKeys.php', ob_get_clean());
echo "Done generating KnownTranslationKeys.\n";
}
/**
* @param string[] $languageDefinitions
* @phpstan-param array<string, string> $languageDefinitions
*/
function generate_known_translation_factory(array $languageDefinitions) : void{
ob_start();
echo SHARED_HEADER;
echo <<<'HEADER'
/**
* This class contains factory methods for all the translations known to PocketMine-MP as per the used version of
* pmmp/Language.
* This class is generated automatically, do NOT modify it by hand.
*/
final class KnownTranslationFactory{
HEADER;
ksort($languageDefinitions, SORT_STRING);
$parameterRegex = '/{%(.+?)}/';
foreach($languageDefinitions as $key => $value){
$parameters = [];
if(preg_match_all($parameterRegex, $value, $matches) > 0){
foreach($matches[1] as $parameterName){
if(is_numeric($parameterName)){
$parameters[$parameterName] = "param$parameterName";
}else{
$parameters[$parameterName] = $parameterName;
}
}
}
echo "\tpublic static function " .
functionify($key) .
"(" . implode(", ", array_map(fn(string $paramName) => "string \$$paramName", $parameters)) . ") : TranslationContainer{\n";
echo "\t\treturn new TranslationContainer(KnownTranslationKeys::" . constantify($key) . ", [";
foreach($parameters as $parameterKey => $parameterName){
echo "\n\t\t\t";
if(!is_numeric($parameterKey)){
echo "\"$parameterKey\"";
}else{
echo $parameterKey;
}
echo " => \$$parameterName,";
}
if(count($parameters) !== 0){
echo "\n\t\t";
}
echo "]);\n\t}\n\n";
}
echo "}\n";
file_put_contents(dirname(__DIR__) . '/src/lang/KnownTranslationFactory.php', ob_get_clean());
echo "Done generating KnownTranslationFactory.\n";
}
$lang = parse_ini_file(Path::join(\pocketmine\RESOURCE_PATH, "locale", "eng.ini"), false, INI_SCANNER_RAW);
if($lang === false){
fwrite(STDERR, "Missing language files!\n");
exit(1);
}
generate_known_translation_keys($lang);
generate_known_translation_factory($lang);

View File

@ -1,93 +0,0 @@
<?php
/*
*
* ____ _ _ __ __ _ __ __ ____
* | _ \ ___ ___| | _____| |_| \/ (_)_ __ ___ | \/ | _ \
* | |_) / _ \ / __| |/ / _ \ __| |\/| | | '_ \ / _ \_____| |\/| | |_) |
* | __/ (_) | (__| < __/ |_| | | | | | | | __/_____| | | | __/
* |_| \___/ \___|_|\_\___|\__|_| |_|_|_| |_|\___| |_| |_|_|
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* @author PocketMine Team
* @link http://www.pocketmine.net/
*
*
*/
declare(strict_types=1);
namespace pocketmine\build\generate_known_translation_keys;
use Webmozart\PathUtil\Path;
use function dirname;
require dirname(__DIR__) . '/vendor/autoload.php';
function constantify(string $permissionName) : string{
return strtoupper(str_replace([".", "-"], "_", $permissionName));
}
ob_start();
echo <<<'HEADER'
<?php
/*
*
* ____ _ _ __ __ _ __ __ ____
* | _ \ ___ ___| | _____| |_| \/ (_)_ __ ___ | \/ | _ \
* | |_) / _ \ / __| |/ / _ \ __| |\/| | | '_ \ / _ \_____| |\/| | |_) |
* | __/ (_) | (__| < __/ |_| | | | | | | | __/_____| | | | __/
* |_| \___/ \___|_|\_\___|\__|_| |_|_|_| |_|\___| |_| |_|_|
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* @author PocketMine Team
* @link http://www.pocketmine.net/
*
*
*/
declare(strict_types=1);
namespace pocketmine\lang;
/**
* This class contains constants for all the translations known to PocketMine-MP as per the used version of pmmp/Language.
* This class is generated automatically, do NOT modify it by hand.
*/
final class KnownTranslationKeys{
HEADER;
$perms = [];
$lang = parse_ini_file(Path::join(\pocketmine\RESOURCE_PATH, "locale", "eng.ini"), false, INI_SCANNER_RAW);
if($lang === false){
fwrite(STDERR, "Missing language files!\n");
exit(1);
}
foreach($lang as $k => $v){
$perms[] = $k;
}
sort($perms, SORT_STRING);
foreach($perms as $perm){
echo "\tpublic const ";
echo constantify($perm);
echo " = \"" . $perm . "\";\n";
}
echo "}\n";
file_put_contents(dirname(__DIR__) . '/src/lang/KnownTranslationKeys.php', ob_get_clean());
echo "Done.\n";

View File

@ -30,7 +30,7 @@ parameters:
- src/PocketMine.php - src/PocketMine.php
- build/make-release.php - build/make-release.php
- build/server-phar.php - build/server-phar.php
- build/generate-known-translation-keys.php - build/generate-known-translation-apis.php
paths: paths:
- src - src
- tests/phpstan/rules - tests/phpstan/rules

View File

@ -43,6 +43,7 @@ use pocketmine\event\player\PlayerDataSaveEvent;
use pocketmine\event\server\CommandEvent; use pocketmine\event\server\CommandEvent;
use pocketmine\event\server\DataPacketSendEvent; use pocketmine\event\server\DataPacketSendEvent;
use pocketmine\event\server\QueryRegenerateEvent; use pocketmine\event\server\QueryRegenerateEvent;
use pocketmine\lang\KnownTranslationFactory;
use pocketmine\lang\KnownTranslationKeys; use pocketmine\lang\KnownTranslationKeys;
use pocketmine\lang\Language; use pocketmine\lang\Language;
use pocketmine\lang\LanguageNotFoundException; use pocketmine\lang\LanguageNotFoundException;
@ -143,6 +144,7 @@ use function stripos;
use function strlen; use function strlen;
use function strrpos; use function strrpos;
use function strtolower; use function strtolower;
use function strval;
use function time; use function time;
use function touch; use function touch;
use function trim; use function trim;
@ -529,7 +531,7 @@ class Server{
private function handleCorruptedPlayerData(string $name) : void{ private function handleCorruptedPlayerData(string $name) : void{
$path = $this->getPlayerDataPath($name); $path = $this->getPlayerDataPath($name);
rename($path, $path . '.bak'); rename($path, $path . '.bak');
$this->logger->error($this->getLanguage()->translateString(KnownTranslationKeys::POCKETMINE_DATA_PLAYERCORRUPTED, [$name])); $this->logger->error($this->getLanguage()->translate(KnownTranslationFactory::pocketmine_data_playerCorrupted($name)));
} }
public function getOfflinePlayerData(string $name) : ?CompoundTag{ public function getOfflinePlayerData(string $name) : ?CompoundTag{
@ -575,7 +577,7 @@ class Server{
try{ try{
file_put_contents($this->getPlayerDataPath($name), zlib_encode($nbt->write(new TreeRoot($ev->getSaveData())), ZLIB_ENCODING_GZIP)); file_put_contents($this->getPlayerDataPath($name), zlib_encode($nbt->write(new TreeRoot($ev->getSaveData())), ZLIB_ENCODING_GZIP));
}catch(\ErrorException $e){ }catch(\ErrorException $e){
$this->logger->critical($this->getLanguage()->translateString(KnownTranslationKeys::POCKETMINE_DATA_SAVEERROR, [$name, $e->getMessage()])); $this->logger->critical($this->getLanguage()->translate(KnownTranslationFactory::pocketmine_data_saveError($name, $e->getMessage())));
$this->logger->logException($e); $this->logger->logException($e);
} }
}); });
@ -879,30 +881,30 @@ class Server{
} }
} }
$this->logger->info($this->getLanguage()->translateString(KnownTranslationKeys::LANGUAGE_SELECTED, [$this->getLanguage()->getName(), $this->getLanguage()->getLang()])); $this->logger->info($this->getLanguage()->translate(KnownTranslationFactory::language_selected($this->getLanguage()->getName(), $this->getLanguage()->getLang())));
if(VersionInfo::IS_DEVELOPMENT_BUILD){ if(VersionInfo::IS_DEVELOPMENT_BUILD){
if(!$this->configGroup->getPropertyBool("settings.enable-dev-builds", false)){ if(!$this->configGroup->getPropertyBool("settings.enable-dev-builds", false)){
$this->logger->emergency($this->language->translateString(KnownTranslationKeys::POCKETMINE_SERVER_DEVBUILD_ERROR1, [VersionInfo::NAME])); $this->logger->emergency($this->language->translate(KnownTranslationFactory::pocketmine_server_devBuild_error1(VersionInfo::NAME)));
$this->logger->emergency($this->language->translateString(KnownTranslationKeys::POCKETMINE_SERVER_DEVBUILD_ERROR2)); $this->logger->emergency($this->language->translate(KnownTranslationFactory::pocketmine_server_devBuild_error2()));
$this->logger->emergency($this->language->translateString(KnownTranslationKeys::POCKETMINE_SERVER_DEVBUILD_ERROR3)); $this->logger->emergency($this->language->translate(KnownTranslationFactory::pocketmine_server_devBuild_error3()));
$this->logger->emergency($this->language->translateString(KnownTranslationKeys::POCKETMINE_SERVER_DEVBUILD_ERROR4, ["settings.enable-dev-builds"])); $this->logger->emergency($this->language->translate(KnownTranslationFactory::pocketmine_server_devBuild_error4("settings.enable-dev-builds")));
$this->logger->emergency($this->language->translateString(KnownTranslationKeys::POCKETMINE_SERVER_DEVBUILD_ERROR5, ["https://github.com/pmmp/PocketMine-MP/releases"])); $this->logger->emergency($this->language->translate(KnownTranslationFactory::pocketmine_server_devBuild_error5("https://github.com/pmmp/PocketMine-MP/releases")));
$this->forceShutdown(); $this->forceShutdown();
return; return;
} }
$this->logger->warning(str_repeat("-", 40)); $this->logger->warning(str_repeat("-", 40));
$this->logger->warning($this->language->translateString(KnownTranslationKeys::POCKETMINE_SERVER_DEVBUILD_WARNING1, [VersionInfo::NAME])); $this->logger->warning($this->language->translate(KnownTranslationFactory::pocketmine_server_devBuild_warning1(VersionInfo::NAME)));
$this->logger->warning($this->language->translateString(KnownTranslationKeys::POCKETMINE_SERVER_DEVBUILD_WARNING2)); $this->logger->warning($this->language->translate(KnownTranslationFactory::pocketmine_server_devBuild_warning2()));
$this->logger->warning($this->language->translateString(KnownTranslationKeys::POCKETMINE_SERVER_DEVBUILD_WARNING3)); $this->logger->warning($this->language->translate(KnownTranslationFactory::pocketmine_server_devBuild_warning3()));
$this->logger->warning(str_repeat("-", 40)); $this->logger->warning(str_repeat("-", 40));
} }
$this->memoryManager = new MemoryManager($this); $this->memoryManager = new MemoryManager($this);
$this->logger->info($this->getLanguage()->translateString(KnownTranslationKeys::POCKETMINE_SERVER_START, [TextFormat::AQUA . $this->getVersion() . TextFormat::RESET])); $this->logger->info($this->getLanguage()->translate(KnownTranslationFactory::pocketmine_server_start(TextFormat::AQUA . $this->getVersion() . TextFormat::RESET)));
if(($poolSize = $this->configGroup->getPropertyString("settings.async-workers", "auto")) === "auto"){ if(($poolSize = $this->configGroup->getPropertyString("settings.async-workers", "auto")) === "auto"){
$poolSize = 2; $poolSize = 2;
@ -955,11 +957,11 @@ class Server{
$this->onlineMode = $this->configGroup->getConfigBool("xbox-auth", true); $this->onlineMode = $this->configGroup->getConfigBool("xbox-auth", true);
if($this->onlineMode){ if($this->onlineMode){
$this->logger->info($this->getLanguage()->translateString(KnownTranslationKeys::POCKETMINE_SERVER_AUTH_ENABLED)); $this->logger->info($this->getLanguage()->translate(KnownTranslationFactory::pocketmine_server_auth_enabled()));
}else{ }else{
$this->logger->warning($this->getLanguage()->translateString(KnownTranslationKeys::POCKETMINE_SERVER_AUTH_DISABLED)); $this->logger->warning($this->getLanguage()->translate(KnownTranslationFactory::pocketmine_server_auth_disabled()));
$this->logger->warning($this->getLanguage()->translateString(KnownTranslationKeys::POCKETMINE_SERVER_AUTHWARNING)); $this->logger->warning($this->getLanguage()->translate(KnownTranslationFactory::pocketmine_server_authWarning()));
$this->logger->warning($this->getLanguage()->translateString(KnownTranslationKeys::POCKETMINE_SERVER_AUTHPROPERTY_DISABLED)); $this->logger->warning($this->getLanguage()->translate(KnownTranslationFactory::pocketmine_server_authProperty_disabled()));
} }
if($this->configGroup->getConfigBool("hardcore", false) and $this->getDifficulty() < World::DIFFICULTY_HARD){ if($this->configGroup->getConfigBool("hardcore", false) and $this->getDifficulty() < World::DIFFICULTY_HARD){
@ -976,11 +978,11 @@ class Server{
$this->network = new Network($this->logger); $this->network = new Network($this->logger);
$this->network->setName($this->getMotd()); $this->network->setName($this->getMotd());
$this->logger->info($this->getLanguage()->translateString(KnownTranslationKeys::POCKETMINE_SERVER_INFO, [ $this->logger->info($this->getLanguage()->translate(KnownTranslationFactory::pocketmine_server_info(
$this->getName(), $this->getName(),
(VersionInfo::IS_DEVELOPMENT_BUILD ? TextFormat::YELLOW : "") . $this->getPocketMineVersion() . TextFormat::RESET (VersionInfo::IS_DEVELOPMENT_BUILD ? TextFormat::YELLOW : "") . $this->getPocketMineVersion() . TextFormat::RESET
])); )));
$this->logger->info($this->getLanguage()->translateString(KnownTranslationKeys::POCKETMINE_SERVER_LICENSE, [$this->getName()])); $this->logger->info($this->getLanguage()->translate(KnownTranslationFactory::pocketmine_server_license($this->getName())));
Timings::init(); Timings::init();
TimingsHandler::setEnabled($this->configGroup->getPropertyBool("settings.enable-profiling", false)); TimingsHandler::setEnabled($this->configGroup->getPropertyBool("settings.enable-profiling", false));
@ -1017,7 +1019,7 @@ class Server{
){ ){
$providerManager->setDefault($format); $providerManager->setDefault($format);
}elseif($formatName !== ""){ }elseif($formatName !== ""){
$this->logger->warning($this->language->translateString(KnownTranslationKeys::POCKETMINE_LEVEL_BADDEFAULTFORMAT, [$formatName])); $this->logger->warning($this->language->translate(KnownTranslationFactory::pocketmine_level_badDefaultFormat($formatName)));
} }
$this->worldManager = new WorldManager($this, Path::join($this->dataPath, "worlds"), $providerManager); $this->worldManager = new WorldManager($this, Path::join($this->dataPath, "worlds"), $providerManager);
@ -1087,7 +1089,7 @@ class Server{
$world = $this->worldManager->getWorldByName($default); $world = $this->worldManager->getWorldByName($default);
if($world === null){ if($world === null){
$this->getLogger()->emergency($this->getLanguage()->translateString(KnownTranslationKeys::POCKETMINE_LEVEL_DEFAULTERROR)); $this->getLogger()->emergency($this->getLanguage()->translate(KnownTranslationFactory::pocketmine_level_defaultError()));
$this->forceShutdown(); $this->forceShutdown();
return; return;
@ -1103,7 +1105,7 @@ class Server{
//if it's not registered we need to make sure Query still works //if it's not registered we need to make sure Query still works
$this->network->registerInterface(new DedicatedQueryNetworkInterface($this->getIp(), $this->getPort(), new \PrefixedLogger($this->logger, "Dedicated Query Interface"))); $this->network->registerInterface(new DedicatedQueryNetworkInterface($this->getIp(), $this->getPort(), new \PrefixedLogger($this->logger, "Dedicated Query Interface")));
} }
$this->logger->info($this->getLanguage()->translateString(KnownTranslationKeys::POCKETMINE_SERVER_NETWORKSTART, [$this->getIp(), $this->getPort()])); $this->logger->info($this->getLanguage()->translate(KnownTranslationFactory::pocketmine_server_networkStart($this->getIp(), (string) $this->getPort())));
if($useQuery){ if($useQuery){
$this->network->registerRawPacketHandler(new QueryHandler($this)); $this->network->registerRawPacketHandler(new QueryHandler($this));
@ -1124,9 +1126,9 @@ class Server{
$this->configGroup->save(); $this->configGroup->save();
$this->logger->info($this->getLanguage()->translateString(KnownTranslationKeys::POCKETMINE_SERVER_DEFAULTGAMEMODE, [$this->getGamemode()->getTranslationKey()])); $this->logger->info($this->getLanguage()->translate(KnownTranslationFactory::pocketmine_server_defaultGameMode($this->getGamemode()->getTranslationKey())));
$this->logger->info($this->getLanguage()->translateString(KnownTranslationKeys::POCKETMINE_SERVER_DONATE, [TextFormat::AQUA . "https://patreon.com/pocketminemp" . TextFormat::RESET])); $this->logger->info($this->getLanguage()->translate(KnownTranslationFactory::pocketmine_server_donate(TextFormat::AQUA . "https://patreon.com/pocketminemp" . TextFormat::RESET)));
$this->logger->info($this->getLanguage()->translateString(KnownTranslationKeys::POCKETMINE_SERVER_STARTFINISHED, [round(microtime(true) - $this->startTime, 3)])); $this->logger->info($this->getLanguage()->translate(KnownTranslationFactory::pocketmine_server_startFinished(strval(round(microtime(true) - $this->startTime, 3)))));
//TODO: move console parts to a separate component //TODO: move console parts to a separate component
$consoleSender = new ConsoleCommandSender($this, $this->language); $consoleSender = new ConsoleCommandSender($this, $this->language);
@ -1501,10 +1503,10 @@ class Server{
ini_set("error_reporting", '0'); ini_set("error_reporting", '0');
ini_set("memory_limit", '-1'); //Fix error dump not dumped on memory problems ini_set("memory_limit", '-1'); //Fix error dump not dumped on memory problems
try{ try{
$this->logger->emergency($this->getLanguage()->translateString(KnownTranslationKeys::POCKETMINE_CRASH_CREATE)); $this->logger->emergency($this->getLanguage()->translate(KnownTranslationFactory::pocketmine_crash_create()));
$dump = new CrashDump($this); $dump = new CrashDump($this);
$this->logger->emergency($this->getLanguage()->translateString(KnownTranslationKeys::POCKETMINE_CRASH_SUBMIT, [$dump->getPath()])); $this->logger->emergency($this->getLanguage()->translate(KnownTranslationFactory::pocketmine_crash_submit($dump->getPath())));
if($this->configGroup->getPropertyBool("auto-report.enabled", true)){ if($this->configGroup->getPropertyBool("auto-report.enabled", true)){
$report = true; $report = true;
@ -1548,7 +1550,7 @@ class Server{
if(isset($data->crashId) and isset($data->crashUrl)){ if(isset($data->crashId) and isset($data->crashUrl)){
$reportId = $data->crashId; $reportId = $data->crashId;
$reportUrl = $data->crashUrl; $reportUrl = $data->crashUrl;
$this->logger->emergency($this->getLanguage()->translateString(KnownTranslationKeys::POCKETMINE_CRASH_ARCHIVE, [$reportUrl, $reportId])); $this->logger->emergency($this->getLanguage()->translate(KnownTranslationFactory::pocketmine_crash_archive($reportUrl, (string) $reportId)));
}elseif(isset($data->error)){ }elseif(isset($data->error)){
$this->logger->emergency("Automatic crash report submission failed: $data->error"); $this->logger->emergency("Automatic crash report submission failed: $data->error");
} }
@ -1560,7 +1562,7 @@ class Server{
}catch(\Throwable $e){ }catch(\Throwable $e){
$this->logger->logException($e); $this->logger->logException($e);
try{ try{
$this->logger->critical($this->getLanguage()->translateString(KnownTranslationKeys::POCKETMINE_CRASH_ERROR, [$e->getMessage()])); $this->logger->critical($this->getLanguage()->translate(KnownTranslationFactory::pocketmine_crash_error($e->getMessage())));
}catch(\Throwable $e){} }catch(\Throwable $e){}
} }
@ -1729,7 +1731,7 @@ class Server{
} }
if($this->getTicksPerSecondAverage() < 12){ if($this->getTicksPerSecondAverage() < 12){
$this->logger->warning($this->getLanguage()->translateString(KnownTranslationKeys::POCKETMINE_SERVER_TICKOVERLOAD)); $this->logger->warning($this->getLanguage()->translate(KnownTranslationFactory::pocketmine_server_tickOverload()));
} }
} }

View File

@ -28,6 +28,7 @@ namespace pocketmine\command;
use pocketmine\command\utils\CommandException; use pocketmine\command\utils\CommandException;
use pocketmine\console\ConsoleCommandSender; use pocketmine\console\ConsoleCommandSender;
use pocketmine\lang\KnownTranslationFactory;
use pocketmine\lang\KnownTranslationKeys; use pocketmine\lang\KnownTranslationKeys;
use pocketmine\lang\TranslationContainer; use pocketmine\lang\TranslationContainer;
use pocketmine\permission\PermissionManager; use pocketmine\permission\PermissionManager;
@ -241,7 +242,7 @@ abstract class Command{
$result = new TranslationContainer($formatted, $message->getParameters()); $result = new TranslationContainer($formatted, $message->getParameters());
$colored = new TranslationContainer(TextFormat::GRAY . TextFormat::ITALIC . $formatted, $message->getParameters()); $colored = new TranslationContainer(TextFormat::GRAY . TextFormat::ITALIC . $formatted, $message->getParameters());
}else{ }else{
$result = new TranslationContainer(KnownTranslationKeys::CHAT_TYPE_ADMIN, [$source->getName(), $message]); $result = KnownTranslationFactory::chat_type_admin($source->getName(), $message);
$colored = new TranslationContainer(TextFormat::GRAY . TextFormat::ITALIC . "%" . KnownTranslationKeys::CHAT_TYPE_ADMIN, [$source->getName(), $message]); $colored = new TranslationContainer(TextFormat::GRAY . TextFormat::ITALIC . "%" . KnownTranslationKeys::CHAT_TYPE_ADMIN, [$source->getName(), $message]);
} }

View File

@ -65,7 +65,7 @@ use pocketmine\command\defaults\VanillaCommand;
use pocketmine\command\defaults\VersionCommand; use pocketmine\command\defaults\VersionCommand;
use pocketmine\command\defaults\WhitelistCommand; use pocketmine\command\defaults\WhitelistCommand;
use pocketmine\command\utils\InvalidCommandSyntaxException; use pocketmine\command\utils\InvalidCommandSyntaxException;
use pocketmine\lang\KnownTranslationKeys; use pocketmine\lang\KnownTranslationFactory;
use pocketmine\Server; use pocketmine\Server;
use function array_shift; use function array_shift;
use function count; use function count;
@ -246,7 +246,7 @@ class SimpleCommandMap implements CommandMap{
try{ try{
$target->execute($sender, $sentCommandLabel, $args); $target->execute($sender, $sentCommandLabel, $args);
}catch(InvalidCommandSyntaxException $e){ }catch(InvalidCommandSyntaxException $e){
$sender->sendMessage($sender->getLanguage()->translateString(KnownTranslationKeys::COMMANDS_GENERIC_USAGE, [$target->getUsage()])); $sender->sendMessage($sender->getLanguage()->translate(KnownTranslationFactory::commands_generic_usage($target->getUsage())));
}finally{ }finally{
$target->timings->stopTiming(); $target->timings->stopTiming();
} }
@ -278,7 +278,7 @@ class SimpleCommandMap implements CommandMap{
foreach($values as $alias => $commandStrings){ foreach($values as $alias => $commandStrings){
if(strpos($alias, ":") !== false){ if(strpos($alias, ":") !== false){
$this->server->getLogger()->warning($this->server->getLanguage()->translateString(KnownTranslationKeys::POCKETMINE_COMMAND_ALIAS_ILLEGAL, [$alias])); $this->server->getLogger()->warning($this->server->getLanguage()->translate(KnownTranslationFactory::pocketmine_command_alias_illegal($alias)));
continue; continue;
} }
@ -301,12 +301,12 @@ class SimpleCommandMap implements CommandMap{
} }
if(count($recursive) > 0){ if(count($recursive) > 0){
$this->server->getLogger()->warning($this->server->getLanguage()->translateString(KnownTranslationKeys::POCKETMINE_COMMAND_ALIAS_RECURSIVE, [$alias, implode(", ", $recursive)])); $this->server->getLogger()->warning($this->server->getLanguage()->translate(KnownTranslationFactory::pocketmine_command_alias_recursive($alias, implode(", ", $recursive))));
continue; continue;
} }
if(count($bad) > 0){ if(count($bad) > 0){
$this->server->getLogger()->warning($this->server->getLanguage()->translateString(KnownTranslationKeys::POCKETMINE_COMMAND_ALIAS_NOTFOUND, [$alias, implode(", ", $bad)])); $this->server->getLogger()->warning($this->server->getLanguage()->translate(KnownTranslationFactory::pocketmine_command_alias_notFound($alias, implode(", ", $bad))));
continue; continue;
} }

View File

@ -26,8 +26,8 @@ namespace pocketmine\command\defaults;
use pocketmine\command\Command; use pocketmine\command\Command;
use pocketmine\command\CommandSender; use pocketmine\command\CommandSender;
use pocketmine\command\utils\InvalidCommandSyntaxException; use pocketmine\command\utils\InvalidCommandSyntaxException;
use pocketmine\lang\KnownTranslationFactory;
use pocketmine\lang\KnownTranslationKeys; use pocketmine\lang\KnownTranslationKeys;
use pocketmine\lang\TranslationContainer;
use pocketmine\permission\DefaultPermissionNames; use pocketmine\permission\DefaultPermissionNames;
use pocketmine\player\Player; use pocketmine\player\Player;
use function array_shift; use function array_shift;
@ -63,7 +63,7 @@ class BanCommand extends VanillaCommand{
$player->kick($reason !== "" ? "Banned by admin. Reason: " . $reason : "Banned by admin."); $player->kick($reason !== "" ? "Banned by admin. Reason: " . $reason : "Banned by admin.");
} }
Command::broadcastCommandMessage($sender, new TranslationContainer(KnownTranslationKeys::COMMANDS_BAN_SUCCESS, [$player !== null ? $player->getName() : $name])); Command::broadcastCommandMessage($sender, KnownTranslationFactory::commands_ban_success($player !== null ? $player->getName() : $name));
return true; return true;
} }

View File

@ -26,8 +26,8 @@ namespace pocketmine\command\defaults;
use pocketmine\command\Command; use pocketmine\command\Command;
use pocketmine\command\CommandSender; use pocketmine\command\CommandSender;
use pocketmine\command\utils\InvalidCommandSyntaxException; use pocketmine\command\utils\InvalidCommandSyntaxException;
use pocketmine\lang\KnownTranslationFactory;
use pocketmine\lang\KnownTranslationKeys; use pocketmine\lang\KnownTranslationKeys;
use pocketmine\lang\TranslationContainer;
use pocketmine\permission\DefaultPermissionNames; use pocketmine\permission\DefaultPermissionNames;
use pocketmine\player\Player; use pocketmine\player\Player;
use function array_shift; use function array_shift;
@ -61,15 +61,15 @@ class BanIpCommand extends VanillaCommand{
if(preg_match("/^([01]?\\d\\d?|2[0-4]\\d|25[0-5])\\.([01]?\\d\\d?|2[0-4]\\d|25[0-5])\\.([01]?\\d\\d?|2[0-4]\\d|25[0-5])\\.([01]?\\d\\d?|2[0-4]\\d|25[0-5])$/", $value)){ if(preg_match("/^([01]?\\d\\d?|2[0-4]\\d|25[0-5])\\.([01]?\\d\\d?|2[0-4]\\d|25[0-5])\\.([01]?\\d\\d?|2[0-4]\\d|25[0-5])\\.([01]?\\d\\d?|2[0-4]\\d|25[0-5])$/", $value)){
$this->processIPBan($value, $sender, $reason); $this->processIPBan($value, $sender, $reason);
Command::broadcastCommandMessage($sender, new TranslationContainer(KnownTranslationKeys::COMMANDS_BANIP_SUCCESS, [$value])); Command::broadcastCommandMessage($sender, KnownTranslationFactory::commands_banip_success($value));
}else{ }else{
if(($player = $sender->getServer()->getPlayerByPrefix($value)) instanceof Player){ if(($player = $sender->getServer()->getPlayerByPrefix($value)) instanceof Player){
$ip = $player->getNetworkSession()->getIp(); $ip = $player->getNetworkSession()->getIp();
$this->processIPBan($ip, $sender, $reason); $this->processIPBan($ip, $sender, $reason);
Command::broadcastCommandMessage($sender, new TranslationContainer(KnownTranslationKeys::COMMANDS_BANIP_SUCCESS_PLAYERS, [$ip, $player->getName()])); Command::broadcastCommandMessage($sender, KnownTranslationFactory::commands_banip_success_players($ip, $player->getName()));
}else{ }else{
$sender->sendMessage(new TranslationContainer(KnownTranslationKeys::COMMANDS_BANIP_INVALID)); $sender->sendMessage(KnownTranslationFactory::commands_banip_invalid());
return false; return false;
} }

View File

@ -25,8 +25,8 @@ namespace pocketmine\command\defaults;
use pocketmine\command\CommandSender; use pocketmine\command\CommandSender;
use pocketmine\command\utils\InvalidCommandSyntaxException; use pocketmine\command\utils\InvalidCommandSyntaxException;
use pocketmine\lang\KnownTranslationFactory;
use pocketmine\lang\KnownTranslationKeys; use pocketmine\lang\KnownTranslationKeys;
use pocketmine\lang\TranslationContainer;
use pocketmine\permission\BanEntry; use pocketmine\permission\BanEntry;
use pocketmine\permission\DefaultPermissionNames; use pocketmine\permission\DefaultPermissionNames;
use function array_map; use function array_map;
@ -73,9 +73,9 @@ class BanListCommand extends VanillaCommand{
$message = implode(", ", $list); $message = implode(", ", $list);
if($args[0] === "ips"){ if($args[0] === "ips"){
$sender->sendMessage(new TranslationContainer(KnownTranslationKeys::COMMANDS_BANLIST_IPS, [count($list)])); $sender->sendMessage(KnownTranslationFactory::commands_banlist_ips((string) count($list)));
}else{ }else{
$sender->sendMessage(new TranslationContainer(KnownTranslationKeys::COMMANDS_BANLIST_PLAYERS, [count($list)])); $sender->sendMessage(KnownTranslationFactory::commands_banlist_players((string) count($list)));
} }
$sender->sendMessage($message); $sender->sendMessage($message);

View File

@ -28,6 +28,7 @@ use pocketmine\command\CommandSender;
use pocketmine\command\utils\InvalidCommandSyntaxException; use pocketmine\command\utils\InvalidCommandSyntaxException;
use pocketmine\item\LegacyStringToItemParser; use pocketmine\item\LegacyStringToItemParser;
use pocketmine\item\LegacyStringToItemParserException; use pocketmine\item\LegacyStringToItemParserException;
use pocketmine\lang\KnownTranslationFactory;
use pocketmine\lang\KnownTranslationKeys; use pocketmine\lang\KnownTranslationKeys;
use pocketmine\lang\TranslationContainer; use pocketmine\lang\TranslationContainer;
use pocketmine\permission\DefaultPermissionNames; use pocketmine\permission\DefaultPermissionNames;
@ -102,7 +103,7 @@ class ClearCommand extends VanillaCommand{
} }
if($count > 0){ if($count > 0){
$sender->sendMessage(new TranslationContainer(KnownTranslationKeys::COMMANDS_CLEAR_TESTING, [$target->getName(), $count])); $sender->sendMessage(KnownTranslationFactory::commands_clear_testing($target->getName(), (string) $count));
}else{ }else{
$sender->sendMessage(new TranslationContainer(TextFormat::RED . "%" . KnownTranslationKeys::COMMANDS_CLEAR_FAILURE_NO_ITEMS, [$target->getName()])); $sender->sendMessage(new TranslationContainer(TextFormat::RED . "%" . KnownTranslationKeys::COMMANDS_CLEAR_FAILURE_NO_ITEMS, [$target->getName()]));
} }
@ -164,7 +165,7 @@ class ClearCommand extends VanillaCommand{
} }
if($cleared > 0){ if($cleared > 0){
Command::broadcastCommandMessage($sender, new TranslationContainer(KnownTranslationKeys::COMMANDS_CLEAR_SUCCESS, [$target->getName(), $cleared])); Command::broadcastCommandMessage($sender, KnownTranslationFactory::commands_clear_success($target->getName(), (string) $cleared));
}else{ }else{
$sender->sendMessage(new TranslationContainer(TextFormat::RED . "%" . KnownTranslationKeys::COMMANDS_CLEAR_FAILURE_NO_ITEMS, [$target->getName()])); $sender->sendMessage(new TranslationContainer(TextFormat::RED . "%" . KnownTranslationKeys::COMMANDS_CLEAR_FAILURE_NO_ITEMS, [$target->getName()]));
} }

View File

@ -26,8 +26,8 @@ namespace pocketmine\command\defaults;
use pocketmine\command\CommandSender; use pocketmine\command\CommandSender;
use pocketmine\command\utils\InvalidCommandSyntaxException; use pocketmine\command\utils\InvalidCommandSyntaxException;
use pocketmine\data\java\GameModeIdMap; use pocketmine\data\java\GameModeIdMap;
use pocketmine\lang\KnownTranslationFactory;
use pocketmine\lang\KnownTranslationKeys; use pocketmine\lang\KnownTranslationKeys;
use pocketmine\lang\TranslationContainer;
use pocketmine\permission\DefaultPermissionNames; use pocketmine\permission\DefaultPermissionNames;
use pocketmine\player\GameMode; use pocketmine\player\GameMode;
use function count; use function count;
@ -59,7 +59,7 @@ class DefaultGamemodeCommand extends VanillaCommand{
} }
$sender->getServer()->getConfigGroup()->setConfigInt("gamemode", GameModeIdMap::getInstance()->toId($gameMode)); $sender->getServer()->getConfigGroup()->setConfigInt("gamemode", GameModeIdMap::getInstance()->toId($gameMode));
$sender->sendMessage(new TranslationContainer(KnownTranslationKeys::COMMANDS_DEFAULTGAMEMODE_SUCCESS, [$gameMode->getTranslationKey()])); $sender->sendMessage(KnownTranslationFactory::commands_defaultgamemode_success($gameMode->getTranslationKey()));
return true; return true;
} }
} }

View File

@ -26,8 +26,8 @@ namespace pocketmine\command\defaults;
use pocketmine\command\Command; use pocketmine\command\Command;
use pocketmine\command\CommandSender; use pocketmine\command\CommandSender;
use pocketmine\command\utils\InvalidCommandSyntaxException; use pocketmine\command\utils\InvalidCommandSyntaxException;
use pocketmine\lang\KnownTranslationFactory;
use pocketmine\lang\KnownTranslationKeys; use pocketmine\lang\KnownTranslationKeys;
use pocketmine\lang\TranslationContainer;
use pocketmine\permission\DefaultPermissionNames; use pocketmine\permission\DefaultPermissionNames;
use pocketmine\player\Player; use pocketmine\player\Player;
use pocketmine\utils\TextFormat; use pocketmine\utils\TextFormat;
@ -63,7 +63,7 @@ class DeopCommand extends VanillaCommand{
if(($player = $sender->getServer()->getPlayerExact($name)) !== null){ if(($player = $sender->getServer()->getPlayerExact($name)) !== null){
$player->sendMessage(TextFormat::GRAY . "You are no longer op!"); $player->sendMessage(TextFormat::GRAY . "You are no longer op!");
} }
Command::broadcastCommandMessage($sender, new TranslationContainer(KnownTranslationKeys::COMMANDS_DEOP_SUCCESS, [$name])); Command::broadcastCommandMessage($sender, KnownTranslationFactory::commands_deop_success($name));
return true; return true;
} }

View File

@ -26,8 +26,8 @@ namespace pocketmine\command\defaults;
use pocketmine\command\Command; use pocketmine\command\Command;
use pocketmine\command\CommandSender; use pocketmine\command\CommandSender;
use pocketmine\command\utils\InvalidCommandSyntaxException; use pocketmine\command\utils\InvalidCommandSyntaxException;
use pocketmine\lang\KnownTranslationFactory;
use pocketmine\lang\KnownTranslationKeys; use pocketmine\lang\KnownTranslationKeys;
use pocketmine\lang\TranslationContainer;
use pocketmine\permission\DefaultPermissionNames; use pocketmine\permission\DefaultPermissionNames;
use pocketmine\world\World; use pocketmine\world\World;
use function count; use function count;
@ -66,7 +66,7 @@ class DifficultyCommand extends VanillaCommand{
$world->setDifficulty($difficulty); $world->setDifficulty($difficulty);
} }
Command::broadcastCommandMessage($sender, new TranslationContainer(KnownTranslationKeys::COMMANDS_DIFFICULTY_SUCCESS, [$difficulty])); Command::broadcastCommandMessage($sender, KnownTranslationFactory::commands_difficulty_success((string) $difficulty));
}else{ }else{
throw new InvalidCommandSyntaxException(); throw new InvalidCommandSyntaxException();
} }

View File

@ -27,6 +27,7 @@ use pocketmine\command\CommandSender;
use pocketmine\command\utils\InvalidCommandSyntaxException; use pocketmine\command\utils\InvalidCommandSyntaxException;
use pocketmine\entity\effect\EffectInstance; use pocketmine\entity\effect\EffectInstance;
use pocketmine\entity\effect\VanillaEffects; use pocketmine\entity\effect\VanillaEffects;
use pocketmine\lang\KnownTranslationFactory;
use pocketmine\lang\KnownTranslationKeys; use pocketmine\lang\KnownTranslationKeys;
use pocketmine\lang\TranslationContainer; use pocketmine\lang\TranslationContainer;
use pocketmine\permission\DefaultPermissionNames; use pocketmine\permission\DefaultPermissionNames;
@ -66,7 +67,7 @@ class EffectCommand extends VanillaCommand{
if(strtolower($args[1]) === "clear"){ if(strtolower($args[1]) === "clear"){
$effectManager->clear(); $effectManager->clear();
$sender->sendMessage(new TranslationContainer(KnownTranslationKeys::COMMANDS_EFFECT_SUCCESS_REMOVED_ALL, [$player->getDisplayName()])); $sender->sendMessage(KnownTranslationFactory::commands_effect_success_removed_all($player->getDisplayName()));
return true; return true;
} }
@ -106,19 +107,19 @@ class EffectCommand extends VanillaCommand{
if($duration === 0){ if($duration === 0){
if(!$effectManager->has($effect)){ if(!$effectManager->has($effect)){
if(count($effectManager->all()) === 0){ if(count($effectManager->all()) === 0){
$sender->sendMessage(new TranslationContainer(KnownTranslationKeys::COMMANDS_EFFECT_FAILURE_NOTACTIVE_ALL, [$player->getDisplayName()])); $sender->sendMessage(KnownTranslationFactory::commands_effect_failure_notActive_all($player->getDisplayName()));
}else{ }else{
$sender->sendMessage(new TranslationContainer(KnownTranslationKeys::COMMANDS_EFFECT_FAILURE_NOTACTIVE, [$effect->getName(), $player->getDisplayName()])); $sender->sendMessage(KnownTranslationFactory::commands_effect_failure_notActive($effect->getName(), $player->getDisplayName()));
} }
return true; return true;
} }
$effectManager->remove($effect); $effectManager->remove($effect);
$sender->sendMessage(new TranslationContainer(KnownTranslationKeys::COMMANDS_EFFECT_SUCCESS_REMOVED, [$effect->getName(), $player->getDisplayName()])); $sender->sendMessage(KnownTranslationFactory::commands_effect_success_removed($effect->getName(), $player->getDisplayName()));
}else{ }else{
$instance = new EffectInstance($effect, $duration, $amplification, $visible); $instance = new EffectInstance($effect, $duration, $amplification, $visible);
$effectManager->add($instance); $effectManager->add($instance);
self::broadcastCommandMessage($sender, new TranslationContainer(KnownTranslationKeys::COMMANDS_EFFECT_SUCCESS, [$effect->getName(), $instance->getAmplifier(), $player->getDisplayName(), $instance->getDuration() / 20])); self::broadcastCommandMessage($sender, KnownTranslationFactory::commands_effect_success($effect->getName(), (string) $instance->getAmplifier(), $player->getDisplayName(), (string) ($instance->getDuration() / 20)));
} }
return true; return true;

View File

@ -27,6 +27,7 @@ use pocketmine\command\CommandSender;
use pocketmine\command\utils\InvalidCommandSyntaxException; use pocketmine\command\utils\InvalidCommandSyntaxException;
use pocketmine\item\enchantment\EnchantmentInstance; use pocketmine\item\enchantment\EnchantmentInstance;
use pocketmine\item\enchantment\VanillaEnchantments; use pocketmine\item\enchantment\VanillaEnchantments;
use pocketmine\lang\KnownTranslationFactory;
use pocketmine\lang\KnownTranslationKeys; use pocketmine\lang\KnownTranslationKeys;
use pocketmine\lang\TranslationContainer; use pocketmine\lang\TranslationContainer;
use pocketmine\permission\DefaultPermissionNames; use pocketmine\permission\DefaultPermissionNames;
@ -63,14 +64,14 @@ class EnchantCommand extends VanillaCommand{
$item = $player->getInventory()->getItemInHand(); $item = $player->getInventory()->getItemInHand();
if($item->isNull()){ if($item->isNull()){
$sender->sendMessage(new TranslationContainer(KnownTranslationKeys::COMMANDS_ENCHANT_NOITEM)); $sender->sendMessage(KnownTranslationFactory::commands_enchant_noItem());
return true; return true;
} }
try{ try{
$enchantment = VanillaEnchantments::fromString($args[1]); $enchantment = VanillaEnchantments::fromString($args[1]);
}catch(\InvalidArgumentException $e){ }catch(\InvalidArgumentException $e){
$sender->sendMessage(new TranslationContainer(KnownTranslationKeys::COMMANDS_ENCHANT_NOTFOUND, [$args[1]])); $sender->sendMessage(KnownTranslationFactory::commands_enchant_notFound($args[1]));
return true; return true;
} }

View File

@ -26,6 +26,7 @@ namespace pocketmine\command\defaults;
use pocketmine\command\Command; use pocketmine\command\Command;
use pocketmine\command\CommandSender; use pocketmine\command\CommandSender;
use pocketmine\command\utils\InvalidCommandSyntaxException; use pocketmine\command\utils\InvalidCommandSyntaxException;
use pocketmine\lang\KnownTranslationFactory;
use pocketmine\lang\KnownTranslationKeys; use pocketmine\lang\KnownTranslationKeys;
use pocketmine\lang\TranslationContainer; use pocketmine\lang\TranslationContainer;
use pocketmine\permission\DefaultPermissionNames; use pocketmine\permission\DefaultPermissionNames;
@ -78,10 +79,10 @@ class GamemodeCommand extends VanillaCommand{
$sender->sendMessage("Game mode change for " . $target->getName() . " failed!"); $sender->sendMessage("Game mode change for " . $target->getName() . " failed!");
}else{ }else{
if($target === $sender){ if($target === $sender){
Command::broadcastCommandMessage($sender, new TranslationContainer(KnownTranslationKeys::COMMANDS_GAMEMODE_SUCCESS_SELF, [$gameMode->getTranslationKey()])); Command::broadcastCommandMessage($sender, KnownTranslationFactory::commands_gamemode_success_self($gameMode->getTranslationKey()));
}else{ }else{
$target->sendMessage(new TranslationContainer(KnownTranslationKeys::GAMEMODE_CHANGED, [$gameMode->getTranslationKey()])); $target->sendMessage(new TranslationContainer(KnownTranslationKeys::GAMEMODE_CHANGED, [$gameMode->getTranslationKey()]));
Command::broadcastCommandMessage($sender, new TranslationContainer(KnownTranslationKeys::COMMANDS_GAMEMODE_SUCCESS_OTHER, [$gameMode->getTranslationKey(), $target->getName()])); Command::broadcastCommandMessage($sender, KnownTranslationFactory::commands_gamemode_success_other($gameMode->getTranslationKey(), $target->getName()));
} }
} }

View File

@ -28,6 +28,7 @@ use pocketmine\command\CommandSender;
use pocketmine\command\utils\InvalidCommandSyntaxException; use pocketmine\command\utils\InvalidCommandSyntaxException;
use pocketmine\item\LegacyStringToItemParser; use pocketmine\item\LegacyStringToItemParser;
use pocketmine\item\LegacyStringToItemParserException; use pocketmine\item\LegacyStringToItemParserException;
use pocketmine\lang\KnownTranslationFactory;
use pocketmine\lang\KnownTranslationKeys; use pocketmine\lang\KnownTranslationKeys;
use pocketmine\lang\TranslationContainer; use pocketmine\lang\TranslationContainer;
use pocketmine\nbt\JsonNbtParser; use pocketmine\nbt\JsonNbtParser;
@ -82,7 +83,7 @@ class GiveCommand extends VanillaCommand{
try{ try{
$tags = JsonNbtParser::parseJson($data); $tags = JsonNbtParser::parseJson($data);
}catch(NbtDataException $e){ }catch(NbtDataException $e){
$sender->sendMessage(new TranslationContainer(KnownTranslationKeys::COMMANDS_GIVE_TAGERROR, [$e->getMessage()])); $sender->sendMessage(KnownTranslationFactory::commands_give_tagError($e->getMessage()));
return true; return true;
} }
@ -92,11 +93,11 @@ class GiveCommand extends VanillaCommand{
//TODO: overflow //TODO: overflow
$player->getInventory()->addItem($item); $player->getInventory()->addItem($item);
Command::broadcastCommandMessage($sender, new TranslationContainer(KnownTranslationKeys::COMMANDS_GIVE_SUCCESS, [ Command::broadcastCommandMessage($sender, KnownTranslationFactory::commands_give_success(
$item->getName() . " (" . $item->getId() . ":" . $item->getMeta() . ")", $item->getName() . " (" . $item->getId() . ":" . $item->getMeta() . ")",
(string) $item->getCount(), (string) $item->getCount(),
$player->getName() $player->getName()
])); ));
return true; return true;
} }
} }

View File

@ -25,8 +25,8 @@ namespace pocketmine\command\defaults;
use pocketmine\command\Command; use pocketmine\command\Command;
use pocketmine\command\CommandSender; use pocketmine\command\CommandSender;
use pocketmine\lang\KnownTranslationFactory;
use pocketmine\lang\KnownTranslationKeys; use pocketmine\lang\KnownTranslationKeys;
use pocketmine\lang\TranslationContainer;
use pocketmine\permission\DefaultPermissionNames; use pocketmine\permission\DefaultPermissionNames;
use pocketmine\utils\TextFormat; use pocketmine\utils\TextFormat;
use function array_chunk; use function array_chunk;
@ -88,7 +88,7 @@ class HelpCommand extends VanillaCommand{
if($pageNumber < 1){ if($pageNumber < 1){
$pageNumber = 1; $pageNumber = 1;
} }
$sender->sendMessage(new TranslationContainer(KnownTranslationKeys::COMMANDS_HELP_HEADER, [$pageNumber, count($commands)])); $sender->sendMessage(KnownTranslationFactory::commands_help_header((string) $pageNumber, (string) count($commands)));
if(isset($commands[$pageNumber - 1])){ if(isset($commands[$pageNumber - 1])){
foreach($commands[$pageNumber - 1] as $command){ foreach($commands[$pageNumber - 1] as $command){
$sender->sendMessage(TextFormat::DARK_GREEN . "/" . $command->getName() . ": " . TextFormat::WHITE . $command->getDescription()); $sender->sendMessage(TextFormat::DARK_GREEN . "/" . $command->getName() . ": " . TextFormat::WHITE . $command->getDescription());

View File

@ -26,6 +26,7 @@ namespace pocketmine\command\defaults;
use pocketmine\command\Command; use pocketmine\command\Command;
use pocketmine\command\CommandSender; use pocketmine\command\CommandSender;
use pocketmine\command\utils\InvalidCommandSyntaxException; use pocketmine\command\utils\InvalidCommandSyntaxException;
use pocketmine\lang\KnownTranslationFactory;
use pocketmine\lang\KnownTranslationKeys; use pocketmine\lang\KnownTranslationKeys;
use pocketmine\lang\TranslationContainer; use pocketmine\lang\TranslationContainer;
use pocketmine\permission\DefaultPermissionNames; use pocketmine\permission\DefaultPermissionNames;
@ -62,9 +63,9 @@ class KickCommand extends VanillaCommand{
if(($player = $sender->getServer()->getPlayerByPrefix($name)) instanceof Player){ if(($player = $sender->getServer()->getPlayerByPrefix($name)) instanceof Player){
$player->kick("Kicked by admin." . ($reason !== "" ? "Reason: " . $reason : "")); $player->kick("Kicked by admin." . ($reason !== "" ? "Reason: " . $reason : ""));
if($reason !== ""){ if($reason !== ""){
Command::broadcastCommandMessage($sender, new TranslationContainer(KnownTranslationKeys::COMMANDS_KICK_SUCCESS_REASON, [$player->getName(), $reason])); Command::broadcastCommandMessage($sender, KnownTranslationFactory::commands_kick_success_reason($player->getName(), $reason));
}else{ }else{
Command::broadcastCommandMessage($sender, new TranslationContainer(KnownTranslationKeys::COMMANDS_KICK_SUCCESS, [$player->getName()])); Command::broadcastCommandMessage($sender, KnownTranslationFactory::commands_kick_success($player->getName()));
} }
}else{ }else{
$sender->sendMessage(new TranslationContainer(TextFormat::RED . "%" . KnownTranslationKeys::COMMANDS_GENERIC_PLAYER_NOTFOUND)); $sender->sendMessage(new TranslationContainer(TextFormat::RED . "%" . KnownTranslationKeys::COMMANDS_GENERIC_PLAYER_NOTFOUND));

View File

@ -27,6 +27,7 @@ use pocketmine\command\Command;
use pocketmine\command\CommandSender; use pocketmine\command\CommandSender;
use pocketmine\command\utils\InvalidCommandSyntaxException; use pocketmine\command\utils\InvalidCommandSyntaxException;
use pocketmine\event\entity\EntityDamageEvent; use pocketmine\event\entity\EntityDamageEvent;
use pocketmine\lang\KnownTranslationFactory;
use pocketmine\lang\KnownTranslationKeys; use pocketmine\lang\KnownTranslationKeys;
use pocketmine\lang\TranslationContainer; use pocketmine\lang\TranslationContainer;
use pocketmine\permission\DefaultPermissionNames; use pocketmine\permission\DefaultPermissionNames;
@ -65,7 +66,7 @@ class KillCommand extends VanillaCommand{
if($player instanceof Player){ if($player instanceof Player){
$player->attack(new EntityDamageEvent($player, EntityDamageEvent::CAUSE_SUICIDE, 1000)); $player->attack(new EntityDamageEvent($player, EntityDamageEvent::CAUSE_SUICIDE, 1000));
Command::broadcastCommandMessage($sender, new TranslationContainer(KnownTranslationKeys::COMMANDS_KILL_SUCCESSFUL, [$player->getName()])); Command::broadcastCommandMessage($sender, KnownTranslationFactory::commands_kill_successful($player->getName()));
}else{ }else{
$sender->sendMessage(new TranslationContainer(TextFormat::RED . "%" . KnownTranslationKeys::COMMANDS_GENERIC_PLAYER_NOTFOUND)); $sender->sendMessage(new TranslationContainer(TextFormat::RED . "%" . KnownTranslationKeys::COMMANDS_GENERIC_PLAYER_NOTFOUND));
} }
@ -79,7 +80,7 @@ class KillCommand extends VanillaCommand{
} }
$sender->attack(new EntityDamageEvent($sender, EntityDamageEvent::CAUSE_SUICIDE, 1000)); $sender->attack(new EntityDamageEvent($sender, EntityDamageEvent::CAUSE_SUICIDE, 1000));
$sender->sendMessage(new TranslationContainer(KnownTranslationKeys::COMMANDS_KILL_SUCCESSFUL, [$sender->getName()])); $sender->sendMessage(KnownTranslationFactory::commands_kill_successful($sender->getName()));
}else{ }else{
throw new InvalidCommandSyntaxException(); throw new InvalidCommandSyntaxException();
} }

View File

@ -24,8 +24,8 @@ declare(strict_types=1);
namespace pocketmine\command\defaults; namespace pocketmine\command\defaults;
use pocketmine\command\CommandSender; use pocketmine\command\CommandSender;
use pocketmine\lang\KnownTranslationFactory;
use pocketmine\lang\KnownTranslationKeys; use pocketmine\lang\KnownTranslationKeys;
use pocketmine\lang\TranslationContainer;
use pocketmine\permission\DefaultPermissionNames; use pocketmine\permission\DefaultPermissionNames;
use pocketmine\player\Player; use pocketmine\player\Player;
use function array_filter; use function array_filter;
@ -58,7 +58,7 @@ class ListCommand extends VanillaCommand{
})); }));
sort($playerNames, SORT_STRING); sort($playerNames, SORT_STRING);
$sender->sendMessage(new TranslationContainer(KnownTranslationKeys::COMMANDS_PLAYERS_LIST, [count($playerNames), $sender->getServer()->getMaxPlayers()])); $sender->sendMessage(KnownTranslationFactory::commands_players_list((string) count($playerNames), (string) $sender->getServer()->getMaxPlayers()));
$sender->sendMessage(implode(", ", $playerNames)); $sender->sendMessage(implode(", ", $playerNames));
return true; return true;

View File

@ -25,8 +25,8 @@ namespace pocketmine\command\defaults;
use pocketmine\command\CommandSender; use pocketmine\command\CommandSender;
use pocketmine\command\utils\InvalidCommandSyntaxException; use pocketmine\command\utils\InvalidCommandSyntaxException;
use pocketmine\lang\KnownTranslationFactory;
use pocketmine\lang\KnownTranslationKeys; use pocketmine\lang\KnownTranslationKeys;
use pocketmine\lang\TranslationContainer;
use pocketmine\permission\DefaultPermissionNames; use pocketmine\permission\DefaultPermissionNames;
use pocketmine\player\Player; use pocketmine\player\Player;
use pocketmine\utils\TextFormat; use pocketmine\utils\TextFormat;
@ -53,7 +53,7 @@ class MeCommand extends VanillaCommand{
throw new InvalidCommandSyntaxException(); throw new InvalidCommandSyntaxException();
} }
$sender->getServer()->broadcastMessage(new TranslationContainer(KnownTranslationKeys::CHAT_TYPE_EMOTE, [$sender instanceof Player ? $sender->getDisplayName() : $sender->getName(), TextFormat::WHITE . implode(" ", $args)])); $sender->getServer()->broadcastMessage(KnownTranslationFactory::chat_type_emote($sender instanceof Player ? $sender->getDisplayName() : $sender->getName(), TextFormat::WHITE . implode(" ", $args)));
return true; return true;
} }

View File

@ -26,8 +26,8 @@ namespace pocketmine\command\defaults;
use pocketmine\command\Command; use pocketmine\command\Command;
use pocketmine\command\CommandSender; use pocketmine\command\CommandSender;
use pocketmine\command\utils\InvalidCommandSyntaxException; use pocketmine\command\utils\InvalidCommandSyntaxException;
use pocketmine\lang\KnownTranslationFactory;
use pocketmine\lang\KnownTranslationKeys; use pocketmine\lang\KnownTranslationKeys;
use pocketmine\lang\TranslationContainer;
use pocketmine\permission\DefaultPermissionNames; use pocketmine\permission\DefaultPermissionNames;
use pocketmine\player\Player; use pocketmine\player\Player;
use pocketmine\utils\TextFormat; use pocketmine\utils\TextFormat;
@ -63,7 +63,7 @@ class OpCommand extends VanillaCommand{
if(($player = $sender->getServer()->getPlayerExact($name)) !== null){ if(($player = $sender->getServer()->getPlayerExact($name)) !== null){
$player->sendMessage(TextFormat::GRAY . "You are now op!"); $player->sendMessage(TextFormat::GRAY . "You are now op!");
} }
Command::broadcastCommandMessage($sender, new TranslationContainer(KnownTranslationKeys::COMMANDS_OP_SUCCESS, [$name])); Command::broadcastCommandMessage($sender, KnownTranslationFactory::commands_op_success($name));
return true; return true;
} }
} }

View File

@ -26,8 +26,8 @@ namespace pocketmine\command\defaults;
use pocketmine\command\Command; use pocketmine\command\Command;
use pocketmine\command\CommandSender; use pocketmine\command\CommandSender;
use pocketmine\command\utils\InvalidCommandSyntaxException; use pocketmine\command\utils\InvalidCommandSyntaxException;
use pocketmine\lang\KnownTranslationFactory;
use pocketmine\lang\KnownTranslationKeys; use pocketmine\lang\KnownTranslationKeys;
use pocketmine\lang\TranslationContainer;
use pocketmine\permission\DefaultPermissionNames; use pocketmine\permission\DefaultPermissionNames;
use function count; use function count;
@ -54,7 +54,7 @@ class PardonCommand extends VanillaCommand{
$sender->getServer()->getNameBans()->remove($args[0]); $sender->getServer()->getNameBans()->remove($args[0]);
Command::broadcastCommandMessage($sender, new TranslationContainer(KnownTranslationKeys::COMMANDS_UNBAN_SUCCESS, [$args[0]])); Command::broadcastCommandMessage($sender, KnownTranslationFactory::commands_unban_success($args[0]));
return true; return true;
} }

View File

@ -26,8 +26,8 @@ namespace pocketmine\command\defaults;
use pocketmine\command\Command; use pocketmine\command\Command;
use pocketmine\command\CommandSender; use pocketmine\command\CommandSender;
use pocketmine\command\utils\InvalidCommandSyntaxException; use pocketmine\command\utils\InvalidCommandSyntaxException;
use pocketmine\lang\KnownTranslationFactory;
use pocketmine\lang\KnownTranslationKeys; use pocketmine\lang\KnownTranslationKeys;
use pocketmine\lang\TranslationContainer;
use pocketmine\permission\DefaultPermissionNames; use pocketmine\permission\DefaultPermissionNames;
use function count; use function count;
use function preg_match; use function preg_match;
@ -56,9 +56,9 @@ class PardonIpCommand extends VanillaCommand{
if(preg_match("/^([01]?\\d\\d?|2[0-4]\\d|25[0-5])\\.([01]?\\d\\d?|2[0-4]\\d|25[0-5])\\.([01]?\\d\\d?|2[0-4]\\d|25[0-5])\\.([01]?\\d\\d?|2[0-4]\\d|25[0-5])$/", $args[0])){ if(preg_match("/^([01]?\\d\\d?|2[0-4]\\d|25[0-5])\\.([01]?\\d\\d?|2[0-4]\\d|25[0-5])\\.([01]?\\d\\d?|2[0-4]\\d|25[0-5])\\.([01]?\\d\\d?|2[0-4]\\d|25[0-5])$/", $args[0])){
$sender->getServer()->getIPBans()->remove($args[0]); $sender->getServer()->getIPBans()->remove($args[0]);
$sender->getServer()->getNetwork()->unblockAddress($args[0]); $sender->getServer()->getNetwork()->unblockAddress($args[0]);
Command::broadcastCommandMessage($sender, new TranslationContainer(KnownTranslationKeys::COMMANDS_UNBANIP_SUCCESS, [$args[0]])); Command::broadcastCommandMessage($sender, KnownTranslationFactory::commands_unbanip_success($args[0]));
}else{ }else{
$sender->sendMessage(new TranslationContainer(KnownTranslationKeys::COMMANDS_UNBANIP_INVALID)); $sender->sendMessage(KnownTranslationFactory::commands_unbanip_invalid());
} }
return true; return true;

View File

@ -29,6 +29,7 @@ use pocketmine\command\CommandSender;
use pocketmine\command\utils\InvalidCommandSyntaxException; use pocketmine\command\utils\InvalidCommandSyntaxException;
use pocketmine\item\ItemFactory; use pocketmine\item\ItemFactory;
use pocketmine\item\VanillaItems; use pocketmine\item\VanillaItems;
use pocketmine\lang\KnownTranslationFactory;
use pocketmine\lang\KnownTranslationKeys; use pocketmine\lang\KnownTranslationKeys;
use pocketmine\lang\TranslationContainer; use pocketmine\lang\TranslationContainer;
use pocketmine\math\Vector3; use pocketmine\math\Vector3;
@ -124,7 +125,7 @@ class ParticleCommand extends VanillaCommand{
return true; return true;
} }
$sender->sendMessage(new TranslationContainer(KnownTranslationKeys::COMMANDS_PARTICLE_SUCCESS, [$name, $count])); $sender->sendMessage(KnownTranslationFactory::commands_particle_success($name, (string) $count));
$random = new Random((int) (microtime(true) * 1000) + mt_rand()); $random = new Random((int) (microtime(true) * 1000) + mt_rand());

View File

@ -24,8 +24,8 @@ declare(strict_types=1);
namespace pocketmine\command\defaults; namespace pocketmine\command\defaults;
use pocketmine\command\CommandSender; use pocketmine\command\CommandSender;
use pocketmine\lang\KnownTranslationFactory;
use pocketmine\lang\KnownTranslationKeys; use pocketmine\lang\KnownTranslationKeys;
use pocketmine\lang\TranslationContainer;
use pocketmine\permission\DefaultPermissionNames; use pocketmine\permission\DefaultPermissionNames;
use pocketmine\plugin\Plugin; use pocketmine\plugin\Plugin;
use pocketmine\utils\TextFormat; use pocketmine\utils\TextFormat;
@ -57,7 +57,7 @@ class PluginsCommand extends VanillaCommand{
}, $sender->getServer()->getPluginManager()->getPlugins()); }, $sender->getServer()->getPluginManager()->getPlugins());
sort($list, SORT_STRING); sort($list, SORT_STRING);
$sender->sendMessage(new TranslationContainer(KnownTranslationKeys::POCKETMINE_COMMAND_PLUGINS_SUCCESS, [count($list), implode(TextFormat::WHITE . ", ", $list)])); $sender->sendMessage(KnownTranslationFactory::pocketmine_command_plugins_success((string) count($list), implode(TextFormat::WHITE . ", ", $list)));
return true; return true;
} }
} }

View File

@ -25,8 +25,8 @@ namespace pocketmine\command\defaults;
use pocketmine\command\Command; use pocketmine\command\Command;
use pocketmine\command\CommandSender; use pocketmine\command\CommandSender;
use pocketmine\lang\KnownTranslationFactory;
use pocketmine\lang\KnownTranslationKeys; use pocketmine\lang\KnownTranslationKeys;
use pocketmine\lang\TranslationContainer;
use pocketmine\permission\DefaultPermissionNames; use pocketmine\permission\DefaultPermissionNames;
use function microtime; use function microtime;
use function round; use function round;
@ -47,7 +47,7 @@ class SaveCommand extends VanillaCommand{
return true; return true;
} }
Command::broadcastCommandMessage($sender, new TranslationContainer(KnownTranslationKeys::POCKETMINE_SAVE_START)); Command::broadcastCommandMessage($sender, KnownTranslationFactory::pocketmine_save_start());
$start = microtime(true); $start = microtime(true);
foreach($sender->getServer()->getOnlinePlayers() as $player){ foreach($sender->getServer()->getOnlinePlayers() as $player){
@ -58,7 +58,7 @@ class SaveCommand extends VanillaCommand{
$world->save(true); $world->save(true);
} }
Command::broadcastCommandMessage($sender, new TranslationContainer(KnownTranslationKeys::POCKETMINE_SAVE_SUCCESS, [round(microtime(true) - $start, 3)])); Command::broadcastCommandMessage($sender, KnownTranslationFactory::pocketmine_save_success((string) round(microtime(true) - $start, 3)));
return true; return true;
} }

View File

@ -25,8 +25,8 @@ namespace pocketmine\command\defaults;
use pocketmine\command\Command; use pocketmine\command\Command;
use pocketmine\command\CommandSender; use pocketmine\command\CommandSender;
use pocketmine\lang\KnownTranslationFactory;
use pocketmine\lang\KnownTranslationKeys; use pocketmine\lang\KnownTranslationKeys;
use pocketmine\lang\TranslationContainer;
use pocketmine\permission\DefaultPermissionNames; use pocketmine\permission\DefaultPermissionNames;
class SaveOffCommand extends VanillaCommand{ class SaveOffCommand extends VanillaCommand{
@ -47,7 +47,7 @@ class SaveOffCommand extends VanillaCommand{
$sender->getServer()->getWorldManager()->setAutoSave(false); $sender->getServer()->getWorldManager()->setAutoSave(false);
Command::broadcastCommandMessage($sender, new TranslationContainer(KnownTranslationKeys::COMMANDS_SAVE_DISABLED)); Command::broadcastCommandMessage($sender, KnownTranslationFactory::commands_save_disabled());
return true; return true;
} }

View File

@ -25,8 +25,8 @@ namespace pocketmine\command\defaults;
use pocketmine\command\Command; use pocketmine\command\Command;
use pocketmine\command\CommandSender; use pocketmine\command\CommandSender;
use pocketmine\lang\KnownTranslationFactory;
use pocketmine\lang\KnownTranslationKeys; use pocketmine\lang\KnownTranslationKeys;
use pocketmine\lang\TranslationContainer;
use pocketmine\permission\DefaultPermissionNames; use pocketmine\permission\DefaultPermissionNames;
class SaveOnCommand extends VanillaCommand{ class SaveOnCommand extends VanillaCommand{
@ -47,7 +47,7 @@ class SaveOnCommand extends VanillaCommand{
$sender->getServer()->getWorldManager()->setAutoSave(true); $sender->getServer()->getWorldManager()->setAutoSave(true);
Command::broadcastCommandMessage($sender, new TranslationContainer(KnownTranslationKeys::COMMANDS_SAVE_ENABLED)); Command::broadcastCommandMessage($sender, KnownTranslationFactory::commands_save_enabled());
return true; return true;
} }

View File

@ -24,8 +24,8 @@ declare(strict_types=1);
namespace pocketmine\command\defaults; namespace pocketmine\command\defaults;
use pocketmine\command\CommandSender; use pocketmine\command\CommandSender;
use pocketmine\lang\KnownTranslationFactory;
use pocketmine\lang\KnownTranslationKeys; use pocketmine\lang\KnownTranslationKeys;
use pocketmine\lang\TranslationContainer;
use pocketmine\permission\DefaultPermissionNames; use pocketmine\permission\DefaultPermissionNames;
use pocketmine\player\Player; use pocketmine\player\Player;
@ -50,7 +50,7 @@ class SeedCommand extends VanillaCommand{
}else{ }else{
$seed = $sender->getServer()->getWorldManager()->getDefaultWorld()->getSeed(); $seed = $sender->getServer()->getWorldManager()->getDefaultWorld()->getSeed();
} }
$sender->sendMessage(new TranslationContainer(KnownTranslationKeys::COMMANDS_SEED_SUCCESS, [$seed])); $sender->sendMessage(KnownTranslationFactory::commands_seed_success((string) $seed));
return true; return true;
} }

View File

@ -26,8 +26,8 @@ namespace pocketmine\command\defaults;
use pocketmine\command\Command; use pocketmine\command\Command;
use pocketmine\command\CommandSender; use pocketmine\command\CommandSender;
use pocketmine\command\utils\InvalidCommandSyntaxException; use pocketmine\command\utils\InvalidCommandSyntaxException;
use pocketmine\lang\KnownTranslationFactory;
use pocketmine\lang\KnownTranslationKeys; use pocketmine\lang\KnownTranslationKeys;
use pocketmine\lang\TranslationContainer;
use pocketmine\math\Vector3; use pocketmine\math\Vector3;
use pocketmine\permission\DefaultPermissionNames; use pocketmine\permission\DefaultPermissionNames;
use pocketmine\player\Player; use pocketmine\player\Player;
@ -70,7 +70,7 @@ class SetWorldSpawnCommand extends VanillaCommand{
$world->setSpawnLocation($pos); $world->setSpawnLocation($pos);
Command::broadcastCommandMessage($sender, new TranslationContainer(KnownTranslationKeys::COMMANDS_SETWORLDSPAWN_SUCCESS, [round($pos->x, 2), round($pos->y, 2), round($pos->z, 2)])); Command::broadcastCommandMessage($sender, KnownTranslationFactory::commands_setworldspawn_success((string) round($pos->x, 2), (string) round($pos->y, 2), (string) round($pos->z, 2)));
return true; return true;
} }

View File

@ -26,6 +26,7 @@ namespace pocketmine\command\defaults;
use pocketmine\command\Command; use pocketmine\command\Command;
use pocketmine\command\CommandSender; use pocketmine\command\CommandSender;
use pocketmine\command\utils\InvalidCommandSyntaxException; use pocketmine\command\utils\InvalidCommandSyntaxException;
use pocketmine\lang\KnownTranslationFactory;
use pocketmine\lang\KnownTranslationKeys; use pocketmine\lang\KnownTranslationKeys;
use pocketmine\lang\TranslationContainer; use pocketmine\lang\TranslationContainer;
use pocketmine\permission\DefaultPermissionNames; use pocketmine\permission\DefaultPermissionNames;
@ -79,7 +80,7 @@ class SpawnpointCommand extends VanillaCommand{
$z = $this->getRelativeDouble($pos->z, $sender, $args[3]); $z = $this->getRelativeDouble($pos->z, $sender, $args[3]);
$target->setSpawn(new Position($x, $y, $z, $world)); $target->setSpawn(new Position($x, $y, $z, $world));
Command::broadcastCommandMessage($sender, new TranslationContainer(KnownTranslationKeys::COMMANDS_SPAWNPOINT_SUCCESS, [$target->getName(), round($x, 2), round($y, 2), round($z, 2)])); Command::broadcastCommandMessage($sender, KnownTranslationFactory::commands_spawnpoint_success($target->getName(), (string) round($x, 2), (string) round($y, 2), (string) round($z, 2)));
return true; return true;
}elseif(count($args) <= 1){ }elseif(count($args) <= 1){
@ -88,7 +89,7 @@ class SpawnpointCommand extends VanillaCommand{
$pos = Position::fromObject($cpos->floor(), $cpos->getWorld()); $pos = Position::fromObject($cpos->floor(), $cpos->getWorld());
$target->setSpawn($pos); $target->setSpawn($pos);
Command::broadcastCommandMessage($sender, new TranslationContainer(KnownTranslationKeys::COMMANDS_SPAWNPOINT_SUCCESS, [$target->getName(), round($pos->x, 2), round($pos->y, 2), round($pos->z, 2)])); Command::broadcastCommandMessage($sender, KnownTranslationFactory::commands_spawnpoint_success($target->getName(), (string) round($pos->x, 2), (string) round($pos->y, 2), (string) round($pos->z, 2)));
return true; return true;
}else{ }else{
$sender->sendMessage(TextFormat::RED . "Please provide a player!"); $sender->sendMessage(TextFormat::RED . "Please provide a player!");

View File

@ -25,8 +25,8 @@ namespace pocketmine\command\defaults;
use pocketmine\command\Command; use pocketmine\command\Command;
use pocketmine\command\CommandSender; use pocketmine\command\CommandSender;
use pocketmine\lang\KnownTranslationFactory;
use pocketmine\lang\KnownTranslationKeys; use pocketmine\lang\KnownTranslationKeys;
use pocketmine\lang\TranslationContainer;
use pocketmine\permission\DefaultPermissionNames; use pocketmine\permission\DefaultPermissionNames;
class StopCommand extends VanillaCommand{ class StopCommand extends VanillaCommand{
@ -45,7 +45,7 @@ class StopCommand extends VanillaCommand{
return true; return true;
} }
Command::broadcastCommandMessage($sender, new TranslationContainer(KnownTranslationKeys::COMMANDS_STOP_START)); Command::broadcastCommandMessage($sender, KnownTranslationFactory::commands_stop_start());
$sender->getServer()->shutdown(); $sender->getServer()->shutdown();

View File

@ -27,8 +27,8 @@ use pocketmine\command\Command;
use pocketmine\command\CommandSender; use pocketmine\command\CommandSender;
use pocketmine\command\utils\InvalidCommandSyntaxException; use pocketmine\command\utils\InvalidCommandSyntaxException;
use pocketmine\entity\Location; use pocketmine\entity\Location;
use pocketmine\lang\KnownTranslationFactory;
use pocketmine\lang\KnownTranslationKeys; use pocketmine\lang\KnownTranslationKeys;
use pocketmine\lang\TranslationContainer;
use pocketmine\permission\DefaultPermissionNames; use pocketmine\permission\DefaultPermissionNames;
use pocketmine\player\Player; use pocketmine\player\Player;
use pocketmine\utils\AssumptionFailedError; use pocketmine\utils\AssumptionFailedError;
@ -97,7 +97,7 @@ class TeleportCommand extends VanillaCommand{
} }
$subject->teleport($targetPlayer->getLocation()); $subject->teleport($targetPlayer->getLocation());
Command::broadcastCommandMessage($sender, new TranslationContainer(KnownTranslationKeys::COMMANDS_TP_SUCCESS, [$subject->getName(), $targetPlayer->getName()])); Command::broadcastCommandMessage($sender, KnownTranslationFactory::commands_tp_success($subject->getName(), $targetPlayer->getName()));
return true; return true;
case 3: case 3:
@ -117,12 +117,12 @@ class TeleportCommand extends VanillaCommand{
$targetLocation = new Location($x, $y, $z, $yaw, $pitch, $base->getWorld()); $targetLocation = new Location($x, $y, $z, $yaw, $pitch, $base->getWorld());
$subject->teleport($targetLocation); $subject->teleport($targetLocation);
Command::broadcastCommandMessage($sender, new TranslationContainer(KnownTranslationKeys::COMMANDS_TP_SUCCESS_COORDINATES, [ Command::broadcastCommandMessage($sender, KnownTranslationFactory::commands_tp_success_coordinates(
$subject->getName(), $subject->getName(),
round($targetLocation->x, 2), (string) round($targetLocation->x, 2),
round($targetLocation->y, 2), (string) round($targetLocation->y, 2),
round($targetLocation->z, 2) (string) round($targetLocation->z, 2)
])); ));
return true; return true;
default: default:
throw new AssumptionFailedError("This branch should be unreachable (for now)"); throw new AssumptionFailedError("This branch should be unreachable (for now)");

View File

@ -26,6 +26,7 @@ namespace pocketmine\command\defaults;
use pocketmine\command\Command; use pocketmine\command\Command;
use pocketmine\command\CommandSender; use pocketmine\command\CommandSender;
use pocketmine\command\utils\InvalidCommandSyntaxException; use pocketmine\command\utils\InvalidCommandSyntaxException;
use pocketmine\lang\KnownTranslationFactory;
use pocketmine\lang\KnownTranslationKeys; use pocketmine\lang\KnownTranslationKeys;
use pocketmine\lang\TranslationContainer; use pocketmine\lang\TranslationContainer;
use pocketmine\permission\DefaultPermissionNames; use pocketmine\permission\DefaultPermissionNames;
@ -68,9 +69,9 @@ class TellCommand extends VanillaCommand{
$sender->sendMessage(new TranslationContainer(TextFormat::GRAY . TextFormat::ITALIC . "%" . KnownTranslationKeys::COMMANDS_MESSAGE_DISPLAY_OUTGOING, [$player->getDisplayName(), $message])); $sender->sendMessage(new TranslationContainer(TextFormat::GRAY . TextFormat::ITALIC . "%" . KnownTranslationKeys::COMMANDS_MESSAGE_DISPLAY_OUTGOING, [$player->getDisplayName(), $message]));
$name = $sender instanceof Player ? $sender->getDisplayName() : $sender->getName(); $name = $sender instanceof Player ? $sender->getDisplayName() : $sender->getName();
$player->sendMessage(new TranslationContainer(TextFormat::GRAY . TextFormat::ITALIC . "%" . KnownTranslationKeys::COMMANDS_MESSAGE_DISPLAY_INCOMING, [$name, $message])); $player->sendMessage(new TranslationContainer(TextFormat::GRAY . TextFormat::ITALIC . "%" . KnownTranslationKeys::COMMANDS_MESSAGE_DISPLAY_INCOMING, [$name, $message]));
Command::broadcastCommandMessage($sender, new TranslationContainer(KnownTranslationKeys::COMMANDS_MESSAGE_DISPLAY_OUTGOING, [$player->getDisplayName(), $message]), false); Command::broadcastCommandMessage($sender, KnownTranslationFactory::commands_message_display_outgoing($player->getDisplayName(), $message), false);
}else{ }else{
$sender->sendMessage(new TranslationContainer(KnownTranslationKeys::COMMANDS_GENERIC_PLAYER_NOTFOUND)); $sender->sendMessage(KnownTranslationFactory::commands_generic_player_notFound());
} }
return true; return true;

View File

@ -26,8 +26,8 @@ namespace pocketmine\command\defaults;
use pocketmine\command\Command; use pocketmine\command\Command;
use pocketmine\command\CommandSender; use pocketmine\command\CommandSender;
use pocketmine\command\utils\InvalidCommandSyntaxException; use pocketmine\command\utils\InvalidCommandSyntaxException;
use pocketmine\lang\KnownTranslationFactory;
use pocketmine\lang\KnownTranslationKeys; use pocketmine\lang\KnownTranslationKeys;
use pocketmine\lang\TranslationContainer;
use pocketmine\permission\DefaultPermissionNames; use pocketmine\permission\DefaultPermissionNames;
use pocketmine\player\Player; use pocketmine\player\Player;
use pocketmine\world\World; use pocketmine\world\World;
@ -86,7 +86,7 @@ class TimeCommand extends VanillaCommand{
}else{ }else{
$world = $sender->getServer()->getWorldManager()->getDefaultWorld(); $world = $sender->getServer()->getWorldManager()->getDefaultWorld();
} }
$sender->sendMessage($sender->getLanguage()->translateString(KnownTranslationKeys::COMMANDS_TIME_QUERY, [$world->getTime()])); $sender->sendMessage($sender->getLanguage()->translate(KnownTranslationFactory::commands_time_query((string) $world->getTime())));
return true; return true;
} }
@ -126,7 +126,7 @@ class TimeCommand extends VanillaCommand{
foreach($sender->getServer()->getWorldManager()->getWorlds() as $world){ foreach($sender->getServer()->getWorldManager()->getWorlds() as $world){
$world->setTime($value); $world->setTime($value);
} }
Command::broadcastCommandMessage($sender, new TranslationContainer(KnownTranslationKeys::COMMANDS_TIME_SET, [$value])); Command::broadcastCommandMessage($sender, KnownTranslationFactory::commands_time_set((string) $value));
}elseif($args[0] === "add"){ }elseif($args[0] === "add"){
if(!$this->testPermission($sender, DefaultPermissionNames::COMMAND_TIME_ADD)){ if(!$this->testPermission($sender, DefaultPermissionNames::COMMAND_TIME_ADD)){
return true; return true;
@ -136,7 +136,7 @@ class TimeCommand extends VanillaCommand{
foreach($sender->getServer()->getWorldManager()->getWorlds() as $world){ foreach($sender->getServer()->getWorldManager()->getWorlds() as $world){
$world->setTime($world->getTime() + $value); $world->setTime($world->getTime() + $value);
} }
Command::broadcastCommandMessage($sender, new TranslationContainer(KnownTranslationKeys::COMMANDS_TIME_ADDED, [$value])); Command::broadcastCommandMessage($sender, KnownTranslationFactory::commands_time_added((string) $value));
}else{ }else{
throw new InvalidCommandSyntaxException(); throw new InvalidCommandSyntaxException();
} }

View File

@ -26,8 +26,8 @@ namespace pocketmine\command\defaults;
use pocketmine\command\Command; use pocketmine\command\Command;
use pocketmine\command\CommandSender; use pocketmine\command\CommandSender;
use pocketmine\command\utils\InvalidCommandSyntaxException; use pocketmine\command\utils\InvalidCommandSyntaxException;
use pocketmine\lang\KnownTranslationFactory;
use pocketmine\lang\KnownTranslationKeys; use pocketmine\lang\KnownTranslationKeys;
use pocketmine\lang\TranslationContainer;
use pocketmine\permission\DefaultPermissionNames; use pocketmine\permission\DefaultPermissionNames;
use pocketmine\player\Player; use pocketmine\player\Player;
use pocketmine\scheduler\BulkCurlTask; use pocketmine\scheduler\BulkCurlTask;
@ -79,21 +79,21 @@ class TimingsCommand extends VanillaCommand{
if($mode === "on"){ if($mode === "on"){
if(TimingsHandler::isEnabled()){ if(TimingsHandler::isEnabled()){
$sender->sendMessage(new TranslationContainer(KnownTranslationKeys::POCKETMINE_COMMAND_TIMINGS_ALREADYENABLED)); $sender->sendMessage(KnownTranslationFactory::pocketmine_command_timings_alreadyEnabled());
return true; return true;
} }
TimingsHandler::setEnabled(); TimingsHandler::setEnabled();
Command::broadcastCommandMessage($sender, new TranslationContainer(KnownTranslationKeys::POCKETMINE_COMMAND_TIMINGS_ENABLE)); Command::broadcastCommandMessage($sender, KnownTranslationFactory::pocketmine_command_timings_enable());
return true; return true;
}elseif($mode === "off"){ }elseif($mode === "off"){
TimingsHandler::setEnabled(false); TimingsHandler::setEnabled(false);
Command::broadcastCommandMessage($sender, new TranslationContainer(KnownTranslationKeys::POCKETMINE_COMMAND_TIMINGS_DISABLE)); Command::broadcastCommandMessage($sender, KnownTranslationFactory::pocketmine_command_timings_disable());
return true; return true;
} }
if(!TimingsHandler::isEnabled()){ if(!TimingsHandler::isEnabled()){
$sender->sendMessage(new TranslationContainer(KnownTranslationKeys::POCKETMINE_COMMAND_TIMINGS_TIMINGSDISABLED)); $sender->sendMessage(KnownTranslationFactory::pocketmine_command_timings_timingsDisabled());
return true; return true;
} }
@ -102,7 +102,7 @@ class TimingsCommand extends VanillaCommand{
if($mode === "reset"){ if($mode === "reset"){
TimingsHandler::reload(); TimingsHandler::reload();
Command::broadcastCommandMessage($sender, new TranslationContainer(KnownTranslationKeys::POCKETMINE_COMMAND_TIMINGS_RESET)); Command::broadcastCommandMessage($sender, KnownTranslationFactory::pocketmine_command_timings_reset());
}elseif($mode === "merged" or $mode === "report" or $paste){ }elseif($mode === "merged" or $mode === "report" or $paste){
$timings = ""; $timings = "";
if($paste){ if($paste){
@ -164,16 +164,16 @@ class TimingsCommand extends VanillaCommand{
} }
$response = json_decode($result->getBody(), true); $response = json_decode($result->getBody(), true);
if(is_array($response) && isset($response["id"])){ if(is_array($response) && isset($response["id"])){
Command::broadcastCommandMessage($sender, new TranslationContainer(KnownTranslationKeys::POCKETMINE_COMMAND_TIMINGS_TIMINGSREAD, Command::broadcastCommandMessage($sender, KnownTranslationFactory::pocketmine_command_timings_timingsRead(
["https://" . $host . "/?id=" . $response["id"]])); "https://" . $host . "/?id=" . $response["id"]));
}else{ }else{
Command::broadcastCommandMessage($sender, new TranslationContainer(KnownTranslationKeys::POCKETMINE_COMMAND_TIMINGS_PASTEERROR)); Command::broadcastCommandMessage($sender, KnownTranslationFactory::pocketmine_command_timings_pasteError());
} }
} }
)); ));
}else{ }else{
fclose($fileTimings); fclose($fileTimings);
Command::broadcastCommandMessage($sender, new TranslationContainer(KnownTranslationKeys::POCKETMINE_COMMAND_TIMINGS_TIMINGSWRITE, [$timings])); Command::broadcastCommandMessage($sender, KnownTranslationFactory::pocketmine_command_timings_timingsWrite($timings));
} }
}else{ }else{
throw new InvalidCommandSyntaxException(); throw new InvalidCommandSyntaxException();

View File

@ -25,8 +25,8 @@ namespace pocketmine\command\defaults;
use pocketmine\command\CommandSender; use pocketmine\command\CommandSender;
use pocketmine\command\utils\InvalidCommandSyntaxException; use pocketmine\command\utils\InvalidCommandSyntaxException;
use pocketmine\lang\KnownTranslationFactory;
use pocketmine\lang\KnownTranslationKeys; use pocketmine\lang\KnownTranslationKeys;
use pocketmine\lang\TranslationContainer;
use pocketmine\permission\DefaultPermissionNames; use pocketmine\permission\DefaultPermissionNames;
use function array_slice; use function array_slice;
use function count; use function count;
@ -54,7 +54,7 @@ class TitleCommand extends VanillaCommand{
$player = $sender->getServer()->getPlayerByPrefix($args[0]); $player = $sender->getServer()->getPlayerByPrefix($args[0]);
if($player === null){ if($player === null){
$sender->sendMessage(new TranslationContainer(KnownTranslationKeys::COMMANDS_GENERIC_PLAYER_NOTFOUND)); $sender->sendMessage(KnownTranslationFactory::commands_generic_player_notFound());
return true; return true;
} }
@ -97,7 +97,7 @@ class TitleCommand extends VanillaCommand{
throw new InvalidCommandSyntaxException(); throw new InvalidCommandSyntaxException();
} }
$sender->sendMessage(new TranslationContainer(KnownTranslationKeys::COMMANDS_TITLE_SUCCESS)); $sender->sendMessage(KnownTranslationFactory::commands_title_success());
return true; return true;
} }

View File

@ -24,8 +24,8 @@ declare(strict_types=1);
namespace pocketmine\command\defaults; namespace pocketmine\command\defaults;
use pocketmine\command\CommandSender; use pocketmine\command\CommandSender;
use pocketmine\lang\KnownTranslationFactory;
use pocketmine\lang\KnownTranslationKeys; use pocketmine\lang\KnownTranslationKeys;
use pocketmine\lang\TranslationContainer;
use pocketmine\network\mcpe\protocol\ProtocolInfo; use pocketmine\network\mcpe\protocol\ProtocolInfo;
use pocketmine\permission\DefaultPermissionNames; use pocketmine\permission\DefaultPermissionNames;
use pocketmine\plugin\Plugin; use pocketmine\plugin\Plugin;
@ -53,12 +53,12 @@ class VersionCommand extends VanillaCommand{
} }
if(count($args) === 0){ if(count($args) === 0){
$sender->sendMessage(new TranslationContainer(KnownTranslationKeys::POCKETMINE_SERVER_INFO_EXTENDED, [ $sender->sendMessage(KnownTranslationFactory::pocketmine_server_info_extended(
$sender->getServer()->getName(), $sender->getServer()->getName(),
$sender->getServer()->getPocketMineVersion(), $sender->getServer()->getPocketMineVersion(),
$sender->getServer()->getVersion(), $sender->getServer()->getVersion(),
ProtocolInfo::CURRENT_PROTOCOL (string) ProtocolInfo::CURRENT_PROTOCOL
])); ));
}else{ }else{
$pluginName = implode(" ", $args); $pluginName = implode(" ", $args);
$exactPlugin = $sender->getServer()->getPluginManager()->getPlugin($pluginName); $exactPlugin = $sender->getServer()->getPluginManager()->getPlugin($pluginName);
@ -79,7 +79,7 @@ class VersionCommand extends VanillaCommand{
} }
if(!$found){ if(!$found){
$sender->sendMessage(new TranslationContainer(KnownTranslationKeys::POCKETMINE_COMMAND_VERSION_NOSUCHPLUGIN)); $sender->sendMessage(KnownTranslationFactory::pocketmine_command_version_noSuchPlugin());
} }
} }

View File

@ -26,8 +26,8 @@ namespace pocketmine\command\defaults;
use pocketmine\command\Command; use pocketmine\command\Command;
use pocketmine\command\CommandSender; use pocketmine\command\CommandSender;
use pocketmine\command\utils\InvalidCommandSyntaxException; use pocketmine\command\utils\InvalidCommandSyntaxException;
use pocketmine\lang\KnownTranslationFactory;
use pocketmine\lang\KnownTranslationKeys; use pocketmine\lang\KnownTranslationKeys;
use pocketmine\lang\TranslationContainer;
use pocketmine\permission\DefaultPermissionNames; use pocketmine\permission\DefaultPermissionNames;
use pocketmine\player\Player; use pocketmine\player\Player;
use function count; use function count;
@ -64,21 +64,21 @@ class WhitelistCommand extends VanillaCommand{
case "reload": case "reload":
if($this->testPermission($sender, DefaultPermissionNames::COMMAND_WHITELIST_RELOAD)){ if($this->testPermission($sender, DefaultPermissionNames::COMMAND_WHITELIST_RELOAD)){
$sender->getServer()->getWhitelisted()->reload(); $sender->getServer()->getWhitelisted()->reload();
Command::broadcastCommandMessage($sender, new TranslationContainer(KnownTranslationKeys::COMMANDS_WHITELIST_RELOADED)); Command::broadcastCommandMessage($sender, KnownTranslationFactory::commands_whitelist_reloaded());
} }
return true; return true;
case "on": case "on":
if($this->testPermission($sender, DefaultPermissionNames::COMMAND_WHITELIST_ENABLE)){ if($this->testPermission($sender, DefaultPermissionNames::COMMAND_WHITELIST_ENABLE)){
$sender->getServer()->getConfigGroup()->setConfigBool("white-list", true); $sender->getServer()->getConfigGroup()->setConfigBool("white-list", true);
Command::broadcastCommandMessage($sender, new TranslationContainer(KnownTranslationKeys::COMMANDS_WHITELIST_ENABLED)); Command::broadcastCommandMessage($sender, KnownTranslationFactory::commands_whitelist_enabled());
} }
return true; return true;
case "off": case "off":
if($this->testPermission($sender, DefaultPermissionNames::COMMAND_WHITELIST_DISABLE)){ if($this->testPermission($sender, DefaultPermissionNames::COMMAND_WHITELIST_DISABLE)){
$sender->getServer()->getConfigGroup()->setConfigBool("white-list", false); $sender->getServer()->getConfigGroup()->setConfigBool("white-list", false);
Command::broadcastCommandMessage($sender, new TranslationContainer(KnownTranslationKeys::COMMANDS_WHITELIST_DISABLED)); Command::broadcastCommandMessage($sender, KnownTranslationFactory::commands_whitelist_disabled());
} }
return true; return true;
@ -87,20 +87,20 @@ class WhitelistCommand extends VanillaCommand{
$entries = $sender->getServer()->getWhitelisted()->getAll(true); $entries = $sender->getServer()->getWhitelisted()->getAll(true);
sort($entries, SORT_STRING); sort($entries, SORT_STRING);
$result = implode(", ", $entries); $result = implode(", ", $entries);
$count = count($entries); $count = (string) count($entries);
$sender->sendMessage(new TranslationContainer(KnownTranslationKeys::COMMANDS_WHITELIST_LIST, [$count, $count])); $sender->sendMessage(KnownTranslationFactory::commands_whitelist_list($count, $count));
$sender->sendMessage($result); $sender->sendMessage($result);
} }
return true; return true;
case "add": case "add":
$sender->sendMessage(new TranslationContainer(KnownTranslationKeys::COMMANDS_GENERIC_USAGE, ["%" . KnownTranslationKeys::COMMANDS_WHITELIST_ADD_USAGE])); $sender->sendMessage(KnownTranslationFactory::commands_generic_usage("%" . KnownTranslationKeys::COMMANDS_WHITELIST_ADD_USAGE));
return true; return true;
case "remove": case "remove":
$sender->sendMessage(new TranslationContainer(KnownTranslationKeys::COMMANDS_GENERIC_USAGE, ["%" . KnownTranslationKeys::COMMANDS_WHITELIST_REMOVE_USAGE])); $sender->sendMessage(KnownTranslationFactory::commands_generic_usage("%" . KnownTranslationKeys::COMMANDS_WHITELIST_REMOVE_USAGE));
return true; return true;
} }
}elseif(count($args) === 2){ }elseif(count($args) === 2){
@ -111,14 +111,14 @@ class WhitelistCommand extends VanillaCommand{
case "add": case "add":
if($this->testPermission($sender, DefaultPermissionNames::COMMAND_WHITELIST_ADD)){ if($this->testPermission($sender, DefaultPermissionNames::COMMAND_WHITELIST_ADD)){
$sender->getServer()->addWhitelist($args[1]); $sender->getServer()->addWhitelist($args[1]);
Command::broadcastCommandMessage($sender, new TranslationContainer(KnownTranslationKeys::COMMANDS_WHITELIST_ADD_SUCCESS, [$args[1]])); Command::broadcastCommandMessage($sender, KnownTranslationFactory::commands_whitelist_add_success($args[1]));
} }
return true; return true;
case "remove": case "remove":
if($this->testPermission($sender, DefaultPermissionNames::COMMAND_WHITELIST_REMOVE)){ if($this->testPermission($sender, DefaultPermissionNames::COMMAND_WHITELIST_REMOVE)){
$sender->getServer()->removeWhitelist($args[1]); $sender->getServer()->removeWhitelist($args[1]);
Command::broadcastCommandMessage($sender, new TranslationContainer(KnownTranslationKeys::COMMANDS_WHITELIST_REMOVE_SUCCESS, [$args[1]])); Command::broadcastCommandMessage($sender, KnownTranslationFactory::commands_whitelist_remove_success($args[1]));
} }
return true; return true;

View File

@ -30,7 +30,7 @@ use pocketmine\event\entity\EntityDamageByEntityEvent;
use pocketmine\event\entity\EntityDamageEvent; use pocketmine\event\entity\EntityDamageEvent;
use pocketmine\event\entity\EntityDeathEvent; use pocketmine\event\entity\EntityDeathEvent;
use pocketmine\item\Item; use pocketmine\item\Item;
use pocketmine\lang\KnownTranslationKeys; use pocketmine\lang\KnownTranslationFactory;
use pocketmine\lang\TranslationContainer; use pocketmine\lang\TranslationContainer;
use pocketmine\player\Player; use pocketmine\player\Player;
@ -89,23 +89,14 @@ class PlayerDeathEvent extends EntityDeathEvent{
* Returns the vanilla death message for the given death cause. * Returns the vanilla death message for the given death cause.
*/ */
public static function deriveMessage(string $name, ?EntityDamageEvent $deathCause) : TranslationContainer{ public static function deriveMessage(string $name, ?EntityDamageEvent $deathCause) : TranslationContainer{
$message = KnownTranslationKeys::DEATH_ATTACK_GENERIC;
$params = [$name];
switch($deathCause === null ? EntityDamageEvent::CAUSE_CUSTOM : $deathCause->getCause()){ switch($deathCause === null ? EntityDamageEvent::CAUSE_CUSTOM : $deathCause->getCause()){
case EntityDamageEvent::CAUSE_ENTITY_ATTACK: case EntityDamageEvent::CAUSE_ENTITY_ATTACK:
if($deathCause instanceof EntityDamageByEntityEvent){ if($deathCause instanceof EntityDamageByEntityEvent){
$e = $deathCause->getDamager(); $e = $deathCause->getDamager();
if($e instanceof Player){ if($e instanceof Player){
$message = KnownTranslationKeys::DEATH_ATTACK_PLAYER; return KnownTranslationFactory::death_attack_player($name, $e->getDisplayName());
$params[] = $e->getDisplayName();
break;
}elseif($e instanceof Living){ }elseif($e instanceof Living){
$message = KnownTranslationKeys::DEATH_ATTACK_MOB; return KnownTranslationFactory::death_attack_mob($name, $e->getNameTag() !== "" ? $e->getNameTag() : $e->getName());
$params[] = $e->getNameTag() !== "" ? $e->getNameTag() : $e->getName();
break;
}else{
$params[] = "Unknown";
} }
} }
break; break;
@ -113,57 +104,41 @@ class PlayerDeathEvent extends EntityDeathEvent{
if($deathCause instanceof EntityDamageByEntityEvent){ if($deathCause instanceof EntityDamageByEntityEvent){
$e = $deathCause->getDamager(); $e = $deathCause->getDamager();
if($e instanceof Player){ if($e instanceof Player){
$message = KnownTranslationKeys::DEATH_ATTACK_ARROW; return KnownTranslationFactory::death_attack_arrow($name, $e->getDisplayName());
$params[] = $e->getDisplayName();
}elseif($e instanceof Living){ }elseif($e instanceof Living){
$message = KnownTranslationKeys::DEATH_ATTACK_ARROW; return KnownTranslationFactory::death_attack_arrow($name, $e->getNameTag() !== "" ? $e->getNameTag() : $e->getName());
$params[] = $e->getNameTag() !== "" ? $e->getNameTag() : $e->getName();
break;
}else{
$params[] = "Unknown";
} }
} }
break; break;
case EntityDamageEvent::CAUSE_SUICIDE: case EntityDamageEvent::CAUSE_SUICIDE:
$message = KnownTranslationKeys::DEATH_ATTACK_GENERIC; return KnownTranslationFactory::death_attack_generic($name);
break;
case EntityDamageEvent::CAUSE_VOID: case EntityDamageEvent::CAUSE_VOID:
$message = KnownTranslationKeys::DEATH_ATTACK_OUTOFWORLD; return KnownTranslationFactory::death_attack_outOfWorld($name);
break;
case EntityDamageEvent::CAUSE_FALL: case EntityDamageEvent::CAUSE_FALL:
if($deathCause instanceof EntityDamageEvent){ if($deathCause instanceof EntityDamageEvent && $deathCause->getFinalDamage() > 2){
if($deathCause->getFinalDamage() > 2){ return KnownTranslationFactory::death_fell_accident_generic($name);
$message = KnownTranslationKeys::DEATH_FELL_ACCIDENT_GENERIC;
break;
}
} }
$message = KnownTranslationKeys::DEATH_ATTACK_FALL; return KnownTranslationFactory::death_attack_fall($name);
break;
case EntityDamageEvent::CAUSE_SUFFOCATION: case EntityDamageEvent::CAUSE_SUFFOCATION:
$message = KnownTranslationKeys::DEATH_ATTACK_INWALL; return KnownTranslationFactory::death_attack_inWall($name);
break;
case EntityDamageEvent::CAUSE_LAVA: case EntityDamageEvent::CAUSE_LAVA:
$message = KnownTranslationKeys::DEATH_ATTACK_LAVA; return KnownTranslationFactory::death_attack_lava($name);
break;
case EntityDamageEvent::CAUSE_FIRE: case EntityDamageEvent::CAUSE_FIRE:
$message = KnownTranslationKeys::DEATH_ATTACK_ONFIRE; return KnownTranslationFactory::death_attack_onFire($name);
break;
case EntityDamageEvent::CAUSE_FIRE_TICK: case EntityDamageEvent::CAUSE_FIRE_TICK:
$message = KnownTranslationKeys::DEATH_ATTACK_INFIRE; return KnownTranslationFactory::death_attack_inFire($name);
break;
case EntityDamageEvent::CAUSE_DROWNING: case EntityDamageEvent::CAUSE_DROWNING:
$message = KnownTranslationKeys::DEATH_ATTACK_DROWN; return KnownTranslationFactory::death_attack_drown($name);
break;
case EntityDamageEvent::CAUSE_CONTACT: case EntityDamageEvent::CAUSE_CONTACT:
if($deathCause instanceof EntityDamageByBlockEvent){ if($deathCause instanceof EntityDamageByBlockEvent){
if($deathCause->getDamager()->getId() === BlockLegacyIds::CACTUS){ if($deathCause->getDamager()->getId() === BlockLegacyIds::CACTUS){
$message = KnownTranslationKeys::DEATH_ATTACK_CACTUS; return KnownTranslationFactory::death_attack_cactus($name);
} }
} }
break; break;
@ -173,21 +148,15 @@ class PlayerDeathEvent extends EntityDeathEvent{
if($deathCause instanceof EntityDamageByEntityEvent){ if($deathCause instanceof EntityDamageByEntityEvent){
$e = $deathCause->getDamager(); $e = $deathCause->getDamager();
if($e instanceof Player){ if($e instanceof Player){
$message = KnownTranslationKeys::DEATH_ATTACK_EXPLOSION_PLAYER; return KnownTranslationFactory::death_attack_explosion_player($name, $e->getDisplayName());
$params[] = $e->getDisplayName();
}elseif($e instanceof Living){ }elseif($e instanceof Living){
$message = KnownTranslationKeys::DEATH_ATTACK_EXPLOSION_PLAYER; return KnownTranslationFactory::death_attack_explosion_player($name, $e->getNameTag() !== "" ? $e->getNameTag() : $e->getName());
$params[] = $e->getNameTag() !== "" ? $e->getNameTag() : $e->getName();
break;
} }
}else{
$message = KnownTranslationKeys::DEATH_ATTACK_EXPLOSION;
} }
break; return KnownTranslationFactory::death_attack_explosion($name);
case EntityDamageEvent::CAUSE_MAGIC: case EntityDamageEvent::CAUSE_MAGIC:
$message = KnownTranslationKeys::DEATH_ATTACK_MAGIC; return KnownTranslationFactory::death_attack_magic($name);
break;
case EntityDamageEvent::CAUSE_CUSTOM: case EntityDamageEvent::CAUSE_CUSTOM:
break; break;
@ -196,6 +165,6 @@ class PlayerDeathEvent extends EntityDeathEvent{
break; break;
} }
return new TranslationContainer($message, $params); return KnownTranslationFactory::death_attack_generic($name);
} }
} }

File diff suppressed because it is too large Load Diff

View File

@ -33,7 +33,7 @@ use pocketmine\event\player\PlayerDuplicateLoginEvent;
use pocketmine\event\server\DataPacketReceiveEvent; use pocketmine\event\server\DataPacketReceiveEvent;
use pocketmine\event\server\DataPacketSendEvent; use pocketmine\event\server\DataPacketSendEvent;
use pocketmine\form\Form; use pocketmine\form\Form;
use pocketmine\lang\KnownTranslationKeys; use pocketmine\lang\KnownTranslationFactory;
use pocketmine\math\Vector3; use pocketmine\math\Vector3;
use pocketmine\nbt\tag\CompoundTag; use pocketmine\nbt\tag\CompoundTag;
use pocketmine\nbt\tag\StringTag; use pocketmine\nbt\tag\StringTag;
@ -581,7 +581,7 @@ class NetworkSession{
} }
if($error !== null){ if($error !== null){
$this->disconnect($this->server->getLanguage()->translateString(KnownTranslationKeys::POCKETMINE_DISCONNECT_INVALIDSESSION, [$error])); $this->disconnect($this->server->getLanguage()->translate(KnownTranslationFactory::pocketmine_disconnect_invalidSession($error)));
return; return;
} }

View File

@ -25,7 +25,7 @@ namespace pocketmine\network\mcpe\handler;
use pocketmine\entity\InvalidSkinException; use pocketmine\entity\InvalidSkinException;
use pocketmine\event\player\PlayerPreLoginEvent; use pocketmine\event\player\PlayerPreLoginEvent;
use pocketmine\lang\KnownTranslationKeys; use pocketmine\lang\KnownTranslationFactory;
use pocketmine\network\mcpe\auth\ProcessLoginTask; use pocketmine\network\mcpe\auth\ProcessLoginTask;
use pocketmine\network\mcpe\convert\SkinAdapterSingleton; use pocketmine\network\mcpe\convert\SkinAdapterSingleton;
use pocketmine\network\mcpe\JwtException; use pocketmine\network\mcpe\JwtException;
@ -83,7 +83,7 @@ class LoginPacketHandler extends PacketHandler{
//This pocketmine disconnect message will only be seen by the console (PlayStatusPacket causes the messages to be shown for the client) //This pocketmine disconnect message will only be seen by the console (PlayStatusPacket causes the messages to be shown for the client)
$this->session->disconnect( $this->session->disconnect(
$this->server->getLanguage()->translateString(KnownTranslationKeys::POCKETMINE_DISCONNECT_INCOMPATIBLEPROTOCOL, [$packet->protocol]), $this->server->getLanguage()->translate(KnownTranslationFactory::pocketmine_disconnect_incompatibleProtocol((string) $packet->protocol)),
false false
); );

View File

@ -27,7 +27,7 @@ declare(strict_types=1);
*/ */
namespace pocketmine\network\query; namespace pocketmine\network\query;
use pocketmine\lang\KnownTranslationKeys; use pocketmine\lang\KnownTranslationFactory;
use pocketmine\network\AdvancedNetworkInterface; use pocketmine\network\AdvancedNetworkInterface;
use pocketmine\network\RawPacketHandler; use pocketmine\network\RawPacketHandler;
use pocketmine\Server; use pocketmine\Server;
@ -71,7 +71,7 @@ class QueryHandler implements RawPacketHandler{
$this->regenerateToken(); $this->regenerateToken();
$this->lastToken = $this->token; $this->lastToken = $this->token;
$this->logger->info($this->server->getLanguage()->translateString(KnownTranslationKeys::POCKETMINE_SERVER_QUERY_RUNNING, [$addr, $port])); $this->logger->info($this->server->getLanguage()->translate(KnownTranslationFactory::pocketmine_server_query_running($addr, (string) $port)));
} }
public function getPattern() : string{ public function getPattern() : string{

View File

@ -80,6 +80,7 @@ use pocketmine\item\enchantment\MeleeWeaponEnchantment;
use pocketmine\item\Item; use pocketmine\item\Item;
use pocketmine\item\ItemUseResult; use pocketmine\item\ItemUseResult;
use pocketmine\item\Releasable; use pocketmine\item\Releasable;
use pocketmine\lang\KnownTranslationFactory;
use pocketmine\lang\KnownTranslationKeys; use pocketmine\lang\KnownTranslationKeys;
use pocketmine\lang\Language; use pocketmine\lang\Language;
use pocketmine\lang\TranslationContainer; use pocketmine\lang\TranslationContainer;
@ -276,16 +277,16 @@ class Player extends Human implements CommandSender, ChunkListener, IPlayer{
return; return;
} }
$this->server->getLogger()->info($this->getServer()->getLanguage()->translateString(KnownTranslationKeys::POCKETMINE_PLAYER_LOGIN, [ $this->server->getLogger()->info($this->getServer()->getLanguage()->translate(KnownTranslationFactory::pocketmine_player_logIn(
TextFormat::AQUA . $this->username . TextFormat::WHITE, TextFormat::AQUA . $this->username . TextFormat::WHITE,
$session->getIp(), $session->getIp(),
$session->getPort(), (string) $session->getPort(),
$this->id, (string) $this->id,
$this->getWorld()->getDisplayName(), $this->getWorld()->getDisplayName(),
round($this->location->x, 4), (string) round($this->location->x, 4),
round($this->location->y, 4), (string) round($this->location->y, 4),
round($this->location->z, 4) (string) round($this->location->z, 4)
])); )));
$this->server->addOnlinePlayer($this); $this->server->addOnlinePlayer($this);
} }

View File

@ -27,7 +27,7 @@ use pocketmine\command\Command;
use pocketmine\command\CommandExecutor; use pocketmine\command\CommandExecutor;
use pocketmine\command\CommandSender; use pocketmine\command\CommandSender;
use pocketmine\command\PluginCommand; use pocketmine\command\PluginCommand;
use pocketmine\lang\KnownTranslationKeys; use pocketmine\lang\KnownTranslationFactory;
use pocketmine\scheduler\TaskScheduler; use pocketmine\scheduler\TaskScheduler;
use pocketmine\Server; use pocketmine\Server;
use pocketmine\utils\AssumptionFailedError; use pocketmine\utils\AssumptionFailedError;
@ -168,7 +168,7 @@ abstract class PluginBase implements Plugin, CommandExecutor{
foreach($this->getDescription()->getCommands() as $key => $data){ foreach($this->getDescription()->getCommands() as $key => $data){
if(strpos($key, ":") !== false){ if(strpos($key, ":") !== false){
$this->logger->error($this->server->getLanguage()->translateString(KnownTranslationKeys::POCKETMINE_PLUGIN_COMMANDERROR, [$key, $this->getDescription()->getFullName()])); $this->logger->error($this->server->getLanguage()->translate(KnownTranslationFactory::pocketmine_plugin_commandError($key, $this->getDescription()->getFullName())));
continue; continue;
} }
if(is_array($data)){ //TODO: error out if it isn't if(is_array($data)){ //TODO: error out if it isn't
@ -185,7 +185,7 @@ abstract class PluginBase implements Plugin, CommandExecutor{
$aliasList = []; $aliasList = [];
foreach($data["aliases"] as $alias){ foreach($data["aliases"] as $alias){
if(strpos($alias, ":") !== false){ if(strpos($alias, ":") !== false){
$this->logger->error($this->server->getLanguage()->translateString(KnownTranslationKeys::POCKETMINE_PLUGIN_ALIASERROR, [$alias, $this->getDescription()->getFullName()])); $this->logger->error($this->server->getLanguage()->translate(KnownTranslationFactory::pocketmine_plugin_aliasError($alias, $this->getDescription()->getFullName())));
continue; continue;
} }
$aliasList[] = $alias; $aliasList[] = $alias;

View File

@ -31,6 +31,7 @@ use pocketmine\event\ListenerMethodTags;
use pocketmine\event\plugin\PluginDisableEvent; use pocketmine\event\plugin\PluginDisableEvent;
use pocketmine\event\plugin\PluginEnableEvent; use pocketmine\event\plugin\PluginEnableEvent;
use pocketmine\event\RegisteredListener; use pocketmine\event\RegisteredListener;
use pocketmine\lang\KnownTranslationFactory;
use pocketmine\lang\KnownTranslationKeys; use pocketmine\lang\KnownTranslationKeys;
use pocketmine\network\mcpe\protocol\ProtocolInfo; use pocketmine\network\mcpe\protocol\ProtocolInfo;
use pocketmine\permission\DefaultPermissions; use pocketmine\permission\DefaultPermissions;
@ -135,7 +136,7 @@ class PluginManager{
if($loader->canLoadPlugin($path)){ if($loader->canLoadPlugin($path)){
$description = $loader->getPluginDescription($path); $description = $loader->getPluginDescription($path);
if($description instanceof PluginDescription){ if($description instanceof PluginDescription){
$this->server->getLogger()->info($this->server->getLanguage()->translateString(KnownTranslationKeys::POCKETMINE_PLUGIN_LOAD, [$description->getFullName()])); $this->server->getLogger()->info($this->server->getLanguage()->translate(KnownTranslationFactory::pocketmine_plugin_load($description->getFullName())));
try{ try{
$description->checkRequiredExtensions(); $description->checkRequiredExtensions();
}catch(PluginException $ex){ }catch(PluginException $ex){
@ -246,7 +247,7 @@ class PluginManager{
try{ try{
$description = $loader->getPluginDescription($file); $description = $loader->getPluginDescription($file);
}catch(\RuntimeException $e){ //TODO: more specific exception handling }catch(\RuntimeException $e){ //TODO: more specific exception handling
$this->server->getLogger()->error($this->server->getLanguage()->translateString(KnownTranslationKeys::POCKETMINE_PLUGIN_FILEERROR, [$file, $directory, $e->getMessage()])); $this->server->getLogger()->error($this->server->getLanguage()->translate(KnownTranslationFactory::pocketmine_plugin_fileError($file, $directory, $e->getMessage())));
$this->server->getLogger()->logException($e); $this->server->getLogger()->logException($e);
continue; continue;
} }
@ -256,58 +257,58 @@ class PluginManager{
$name = $description->getName(); $name = $description->getName();
if(stripos($name, "pocketmine") !== false or stripos($name, "minecraft") !== false or stripos($name, "mojang") !== false){ if(stripos($name, "pocketmine") !== false or stripos($name, "minecraft") !== false or stripos($name, "mojang") !== false){
$this->server->getLogger()->error($this->server->getLanguage()->translateString(KnownTranslationKeys::POCKETMINE_PLUGIN_LOADERROR, [$name, "%" . KnownTranslationKeys::POCKETMINE_PLUGIN_RESTRICTEDNAME])); $this->server->getLogger()->error($this->server->getLanguage()->translate(KnownTranslationFactory::pocketmine_plugin_loadError($name, "%" . KnownTranslationKeys::POCKETMINE_PLUGIN_RESTRICTEDNAME)));
continue; continue;
} }
if(strpos($name, " ") !== false){ if(strpos($name, " ") !== false){
$this->server->getLogger()->warning($this->server->getLanguage()->translateString(KnownTranslationKeys::POCKETMINE_PLUGIN_SPACESDISCOURAGED, [$name])); $this->server->getLogger()->warning($this->server->getLanguage()->translate(KnownTranslationFactory::pocketmine_plugin_spacesDiscouraged($name)));
} }
if(isset($plugins[$name]) or $this->getPlugin($name) instanceof Plugin){ if(isset($plugins[$name]) or $this->getPlugin($name) instanceof Plugin){
$this->server->getLogger()->error($this->server->getLanguage()->translateString(KnownTranslationKeys::POCKETMINE_PLUGIN_DUPLICATEERROR, [$name])); $this->server->getLogger()->error($this->server->getLanguage()->translate(KnownTranslationFactory::pocketmine_plugin_duplicateError($name)));
continue; continue;
} }
if(!ApiVersion::isCompatible($this->server->getApiVersion(), $description->getCompatibleApis())){ if(!ApiVersion::isCompatible($this->server->getApiVersion(), $description->getCompatibleApis())){
$this->server->getLogger()->error($this->server->getLanguage()->translateString(KnownTranslationKeys::POCKETMINE_PLUGIN_LOADERROR, [ $this->server->getLogger()->error($this->server->getLanguage()->translate(KnownTranslationFactory::pocketmine_plugin_loadError(
$name, $name,
$this->server->getLanguage()->translateString(KnownTranslationKeys::POCKETMINE_PLUGIN_INCOMPATIBLEAPI, [implode(", ", $description->getCompatibleApis())]) $this->server->getLanguage()->translate(KnownTranslationFactory::pocketmine_plugin_incompatibleAPI(implode(", ", $description->getCompatibleApis())))
])); )));
continue; continue;
} }
$ambiguousVersions = ApiVersion::checkAmbiguousVersions($description->getCompatibleApis()); $ambiguousVersions = ApiVersion::checkAmbiguousVersions($description->getCompatibleApis());
if(count($ambiguousVersions) > 0){ if(count($ambiguousVersions) > 0){
$this->server->getLogger()->error($this->server->getLanguage()->translateString(KnownTranslationKeys::POCKETMINE_PLUGIN_LOADERROR, [ $this->server->getLogger()->error($this->server->getLanguage()->translate(KnownTranslationFactory::pocketmine_plugin_loadError(
$name, $name,
$this->server->getLanguage()->translateString(KnownTranslationKeys::POCKETMINE_PLUGIN_AMBIGUOUSMINAPI, [implode(", ", $ambiguousVersions)]) $this->server->getLanguage()->translate(KnownTranslationFactory::pocketmine_plugin_ambiguousMinAPI(implode(", ", $ambiguousVersions)))
])); )));
continue; continue;
} }
if(count($description->getCompatibleOperatingSystems()) > 0 and !in_array(Utils::getOS(), $description->getCompatibleOperatingSystems(), true)) { if(count($description->getCompatibleOperatingSystems()) > 0 and !in_array(Utils::getOS(), $description->getCompatibleOperatingSystems(), true)) {
$this->server->getLogger()->error($this->server->getLanguage()->translateString(KnownTranslationKeys::POCKETMINE_PLUGIN_LOADERROR, [ $this->server->getLogger()->error($this->server->getLanguage()->translate(KnownTranslationFactory::pocketmine_plugin_loadError(
$name, $name,
$this->server->getLanguage()->translateString(KnownTranslationKeys::POCKETMINE_PLUGIN_INCOMPATIBLEOS, [implode(", ", $description->getCompatibleOperatingSystems())]) $this->server->getLanguage()->translate(KnownTranslationFactory::pocketmine_plugin_incompatibleOS(implode(", ", $description->getCompatibleOperatingSystems())))
])); )));
continue; continue;
} }
if(count($pluginMcpeProtocols = $description->getCompatibleMcpeProtocols()) > 0){ if(count($pluginMcpeProtocols = $description->getCompatibleMcpeProtocols()) > 0){
$serverMcpeProtocols = [ProtocolInfo::CURRENT_PROTOCOL]; $serverMcpeProtocols = [ProtocolInfo::CURRENT_PROTOCOL];
if(count(array_intersect($pluginMcpeProtocols, $serverMcpeProtocols)) === 0){ if(count(array_intersect($pluginMcpeProtocols, $serverMcpeProtocols)) === 0){
$this->server->getLogger()->error($this->server->getLanguage()->translateString(KnownTranslationKeys::POCKETMINE_PLUGIN_LOADERROR, [ $this->server->getLogger()->error($this->server->getLanguage()->translate(KnownTranslationFactory::pocketmine_plugin_loadError(
$name, $name,
$this->server->getLanguage()->translateString(KnownTranslationKeys::POCKETMINE_DISCONNECT_INCOMPATIBLEPROTOCOL, [implode(", ", $pluginMcpeProtocols)]) $this->server->getLanguage()->translate(KnownTranslationFactory::pocketmine_plugin_incompatibleProtocol(implode(", ", $pluginMcpeProtocols)))
])); )));
continue; continue;
} }
} }
if($this->graylist !== null and !$this->graylist->isAllowed($name)){ if($this->graylist !== null and !$this->graylist->isAllowed($name)){
$this->server->getLogger()->notice($this->server->getLanguage()->translateString(KnownTranslationKeys::POCKETMINE_PLUGIN_LOADERROR, [ $this->server->getLogger()->notice($this->server->getLanguage()->translate(KnownTranslationFactory::pocketmine_plugin_loadError(
$name, $name,
"Disallowed by graylist" "Disallowed by graylist"
])); )));
continue; continue;
} }
$plugins[$name] = $file; $plugins[$name] = $file;
@ -333,10 +334,10 @@ class PluginManager{
if(isset($loadedPlugins[$dependency]) or $this->getPlugin($dependency) instanceof Plugin){ if(isset($loadedPlugins[$dependency]) or $this->getPlugin($dependency) instanceof Plugin){
unset($dependencies[$name][$key]); unset($dependencies[$name][$key]);
}elseif(!isset($plugins[$dependency])){ }elseif(!isset($plugins[$dependency])){
$this->server->getLogger()->critical($this->server->getLanguage()->translateString(KnownTranslationKeys::POCKETMINE_PLUGIN_LOADERROR, [ $this->server->getLogger()->critical($this->server->getLanguage()->translate(KnownTranslationFactory::pocketmine_plugin_loadError(
$name, $name,
$this->server->getLanguage()->translateString(KnownTranslationKeys::POCKETMINE_PLUGIN_UNKNOWNDEPENDENCY, [$dependency]) $this->server->getLanguage()->translate(KnownTranslationFactory::pocketmine_plugin_unknownDependency($dependency))
])); )));
unset($plugins[$name]); unset($plugins[$name]);
continue 2; continue 2;
} }
@ -372,7 +373,7 @@ class PluginManager{
if(($plugin = $this->loadPlugin($file, $loaders)) instanceof Plugin){ if(($plugin = $this->loadPlugin($file, $loaders)) instanceof Plugin){
$loadedPlugins[$name] = $plugin; $loadedPlugins[$name] = $plugin;
}else{ }else{
$this->server->getLogger()->critical($this->server->getLanguage()->translateString(KnownTranslationKeys::POCKETMINE_PLUGIN_GENERICLOADERROR, [$name])); $this->server->getLogger()->critical($this->server->getLanguage()->translate(KnownTranslationFactory::pocketmine_plugin_genericLoadError($name)));
} }
} }
} }
@ -380,7 +381,7 @@ class PluginManager{
if($loadedThisLoop === 0){ if($loadedThisLoop === 0){
//No plugins loaded :( //No plugins loaded :(
foreach($plugins as $name => $file){ foreach($plugins as $name => $file){
$this->server->getLogger()->critical($this->server->getLanguage()->translateString(KnownTranslationKeys::POCKETMINE_PLUGIN_LOADERROR, [$name, "%" . KnownTranslationKeys::POCKETMINE_PLUGIN_CIRCULARDEPENDENCY])); $this->server->getLogger()->critical($this->server->getLanguage()->translate(KnownTranslationFactory::pocketmine_plugin_loadError($name, "%" . KnownTranslationKeys::POCKETMINE_PLUGIN_CIRCULARDEPENDENCY)));
} }
$plugins = []; $plugins = [];
} }
@ -395,7 +396,7 @@ class PluginManager{
public function enablePlugin(Plugin $plugin) : void{ public function enablePlugin(Plugin $plugin) : void{
if(!$plugin->isEnabled()){ if(!$plugin->isEnabled()){
$this->server->getLogger()->info($this->server->getLanguage()->translateString(KnownTranslationKeys::POCKETMINE_PLUGIN_ENABLE, [$plugin->getDescription()->getFullName()])); $this->server->getLogger()->info($this->server->getLanguage()->translate(KnownTranslationFactory::pocketmine_plugin_enable($plugin->getDescription()->getFullName())));
$plugin->getScheduler()->setEnabled(true); $plugin->getScheduler()->setEnabled(true);
$plugin->onEnableStateChange(true); $plugin->onEnableStateChange(true);
@ -414,7 +415,7 @@ class PluginManager{
public function disablePlugin(Plugin $plugin) : void{ public function disablePlugin(Plugin $plugin) : void{
if($plugin->isEnabled()){ if($plugin->isEnabled()){
$this->server->getLogger()->info($this->server->getLanguage()->translateString(KnownTranslationKeys::POCKETMINE_PLUGIN_DISABLE, [$plugin->getDescription()->getFullName()])); $this->server->getLogger()->info($this->server->getLanguage()->translate(KnownTranslationFactory::pocketmine_plugin_disable($plugin->getDescription()->getFullName())));
(new PluginDisableEvent($plugin))->call(); (new PluginDisableEvent($plugin))->call();
unset($this->enabledPlugins[$plugin->getDescription()->getName()]); unset($this->enabledPlugins[$plugin->getDescription()->getName()]);

View File

@ -28,7 +28,7 @@ declare(strict_types=1);
namespace pocketmine\wizard; namespace pocketmine\wizard;
use pocketmine\data\java\GameModeIdMap; use pocketmine\data\java\GameModeIdMap;
use pocketmine\lang\KnownTranslationKeys; use pocketmine\lang\KnownTranslationFactory;
use pocketmine\lang\Language; use pocketmine\lang\Language;
use pocketmine\lang\LanguageNotFoundException; use pocketmine\lang\LanguageNotFoundException;
use pocketmine\player\GameMode; use pocketmine\player\GameMode;
@ -83,7 +83,7 @@ class SetupWizard{
$this->lang = new Language($lang); $this->lang = new Language($lang);
$this->message($this->lang->get(KnownTranslationKeys::LANGUAGE_HAS_BEEN_SELECTED)); $this->message($this->lang->translate(KnownTranslationFactory::language_has_been_selected()));
if(!$this->showLicense()){ if(!$this->showLicense()){
return false; return false;
@ -94,7 +94,7 @@ class SetupWizard{
$config->set("language", $lang); $config->set("language", $lang);
$config->save(); $config->save();
if(strtolower($this->getInput($this->lang->get(KnownTranslationKeys::SKIP_INSTALLER), "n", "y/N")) === "y"){ if(strtolower($this->getInput($this->lang->translate(KnownTranslationFactory::skip_installer()), "n", "y/N")) === "y"){
$this->printIpDetails(); $this->printIpDetails();
return true; return true;
} }
@ -113,7 +113,7 @@ class SetupWizard{
} }
private function showLicense() : bool{ private function showLicense() : bool{
$this->message($this->lang->translateString(KnownTranslationKeys::WELCOME_TO_POCKETMINE, [VersionInfo::NAME])); $this->message($this->lang->translate(KnownTranslationFactory::welcome_to_pocketmine(VersionInfo::NAME)));
echo <<<LICENSE echo <<<LICENSE
This program is free software: you can redistribute it and/or modify This program is free software: you can redistribute it and/or modify
@ -123,8 +123,8 @@ class SetupWizard{
LICENSE; LICENSE;
$this->writeLine(); $this->writeLine();
if(strtolower($this->getInput($this->lang->get(KnownTranslationKeys::ACCEPT_LICENSE), "n", "y/N")) !== "y"){ if(strtolower($this->getInput($this->lang->translate(KnownTranslationFactory::accept_license()), "n", "y/N")) !== "y"){
$this->error($this->lang->translateString(KnownTranslationKeys::YOU_HAVE_TO_ACCEPT_THE_LICENSE, [VersionInfo::NAME])); $this->error($this->lang->translate(KnownTranslationFactory::you_have_to_accept_the_license(VersionInfo::NAME)));
sleep(5); sleep(5);
return false; return false;
@ -134,23 +134,23 @@ LICENSE;
} }
private function welcome() : void{ private function welcome() : void{
$this->message($this->lang->get(KnownTranslationKeys::SETTING_UP_SERVER_NOW)); $this->message($this->lang->translate(KnownTranslationFactory::setting_up_server_now()));
$this->message($this->lang->get(KnownTranslationKeys::DEFAULT_VALUES_INFO)); $this->message($this->lang->translate(KnownTranslationFactory::default_values_info()));
$this->message($this->lang->get(KnownTranslationKeys::SERVER_PROPERTIES)); $this->message($this->lang->translate(KnownTranslationFactory::server_properties()));
} }
private function generateBaseConfig() : void{ private function generateBaseConfig() : void{
$config = new Config(Path::join($this->dataPath, "server.properties"), Config::PROPERTIES); $config = new Config(Path::join($this->dataPath, "server.properties"), Config::PROPERTIES);
$config->set("motd", ($name = $this->getInput($this->lang->get(KnownTranslationKeys::NAME_YOUR_SERVER), self::DEFAULT_NAME))); $config->set("motd", ($name = $this->getInput($this->lang->translate(KnownTranslationFactory::name_your_server()), self::DEFAULT_NAME)));
$config->set("server-name", $name); $config->set("server-name", $name);
$this->message($this->lang->get(KnownTranslationKeys::PORT_WARNING)); $this->message($this->lang->translate(KnownTranslationFactory::port_warning()));
do{ do{
$port = (int) $this->getInput($this->lang->get(KnownTranslationKeys::SERVER_PORT), (string) self::DEFAULT_PORT); $port = (int) $this->getInput($this->lang->translate(KnownTranslationFactory::server_port()), (string) self::DEFAULT_PORT);
if($port <= 0 or $port > 65535){ if($port <= 0 or $port > 65535){
$this->error($this->lang->get(KnownTranslationKeys::INVALID_PORT)); $this->error($this->lang->translate(KnownTranslationFactory::invalid_port()));
continue; continue;
} }
@ -158,35 +158,35 @@ LICENSE;
}while(true); }while(true);
$config->set("server-port", $port); $config->set("server-port", $port);
$this->message($this->lang->get(KnownTranslationKeys::GAMEMODE_INFO)); $this->message($this->lang->translate(KnownTranslationFactory::gamemode_info()));
do{ do{
$gamemode = (int) $this->getInput($this->lang->get(KnownTranslationKeys::DEFAULT_GAMEMODE), (string) GameModeIdMap::getInstance()->toId(GameMode::SURVIVAL())); $gamemode = (int) $this->getInput($this->lang->translate(KnownTranslationFactory::default_gamemode()), (string) GameModeIdMap::getInstance()->toId(GameMode::SURVIVAL()));
}while($gamemode < 0 or $gamemode > 3); }while($gamemode < 0 or $gamemode > 3);
$config->set("gamemode", $gamemode); $config->set("gamemode", $gamemode);
$config->set("max-players", (int) $this->getInput($this->lang->get(KnownTranslationKeys::MAX_PLAYERS), (string) self::DEFAULT_PLAYERS)); $config->set("max-players", (int) $this->getInput($this->lang->translate(KnownTranslationFactory::max_players()), (string) self::DEFAULT_PLAYERS));
$config->save(); $config->save();
} }
private function generateUserFiles() : void{ private function generateUserFiles() : void{
$this->message($this->lang->get(KnownTranslationKeys::OP_INFO)); $this->message($this->lang->translate(KnownTranslationFactory::op_info()));
$op = strtolower($this->getInput($this->lang->get(KnownTranslationKeys::OP_WHO), "")); $op = strtolower($this->getInput($this->lang->translate(KnownTranslationFactory::op_who()), ""));
if($op === ""){ if($op === ""){
$this->error($this->lang->get(KnownTranslationKeys::OP_WARNING)); $this->error($this->lang->translate(KnownTranslationFactory::op_warning()));
}else{ }else{
$ops = new Config(Path::join($this->dataPath, "ops.txt"), Config::ENUM); $ops = new Config(Path::join($this->dataPath, "ops.txt"), Config::ENUM);
$ops->set($op, true); $ops->set($op, true);
$ops->save(); $ops->save();
} }
$this->message($this->lang->get(KnownTranslationKeys::WHITELIST_INFO)); $this->message($this->lang->translate(KnownTranslationFactory::whitelist_info()));
$config = new Config(Path::join($this->dataPath, "server.properties"), Config::PROPERTIES); $config = new Config(Path::join($this->dataPath, "server.properties"), Config::PROPERTIES);
if(strtolower($this->getInput($this->lang->get(KnownTranslationKeys::WHITELIST_ENABLE), "n", "y/N")) === "y"){ if(strtolower($this->getInput($this->lang->translate(KnownTranslationFactory::whitelist_enable()), "n", "y/N")) === "y"){
$this->error($this->lang->get(KnownTranslationKeys::WHITELIST_WARNING)); $this->error($this->lang->translate(KnownTranslationFactory::whitelist_warning()));
$config->set("white-list", true); $config->set("white-list", true);
}else{ }else{
$config->set("white-list", false); $config->set("white-list", false);
@ -196,9 +196,9 @@ LICENSE;
private function networkFunctions() : void{ private function networkFunctions() : void{
$config = new Config(Path::join($this->dataPath, "server.properties"), Config::PROPERTIES); $config = new Config(Path::join($this->dataPath, "server.properties"), Config::PROPERTIES);
$this->error($this->lang->get(KnownTranslationKeys::QUERY_WARNING1)); $this->error($this->lang->translate(KnownTranslationFactory::query_warning1()));
$this->error($this->lang->get(KnownTranslationKeys::QUERY_WARNING2)); $this->error($this->lang->translate(KnownTranslationFactory::query_warning2()));
if(strtolower($this->getInput($this->lang->get(KnownTranslationKeys::QUERY_DISABLE), "n", "y/N")) === "y"){ if(strtolower($this->getInput($this->lang->translate(KnownTranslationFactory::query_disable()), "n", "y/N")) === "y"){
$config->set("enable-query", false); $config->set("enable-query", false);
}else{ }else{
$config->set("enable-query", true); $config->set("enable-query", true);
@ -208,7 +208,7 @@ LICENSE;
} }
private function printIpDetails() : void{ private function printIpDetails() : void{
$this->message($this->lang->get(KnownTranslationKeys::IP_GET)); $this->message($this->lang->translate(KnownTranslationFactory::ip_get()));
$externalIP = Internet::getIP(); $externalIP = Internet::getIP();
if($externalIP === false){ if($externalIP === false){
@ -220,15 +220,15 @@ LICENSE;
$internalIP = "unknown (" . $e->getMessage() . ")"; $internalIP = "unknown (" . $e->getMessage() . ")";
} }
$this->error($this->lang->translateString(KnownTranslationKeys::IP_WARNING, ["EXTERNAL_IP" => $externalIP, "INTERNAL_IP" => $internalIP])); $this->error($this->lang->translate(KnownTranslationFactory::ip_warning($externalIP, $internalIP)));
$this->error($this->lang->get(KnownTranslationKeys::IP_CONFIRM)); $this->error($this->lang->translate(KnownTranslationFactory::ip_confirm()));
$this->readLine(); $this->readLine();
} }
private function endWizard() : void{ private function endWizard() : void{
$this->message($this->lang->get(KnownTranslationKeys::YOU_HAVE_FINISHED)); $this->message($this->lang->translate(KnownTranslationFactory::you_have_finished()));
$this->message($this->lang->get(KnownTranslationKeys::POCKETMINE_PLUGINS)); $this->message($this->lang->translate(KnownTranslationFactory::pocketmine_plugins()));
$this->message($this->lang->translateString(KnownTranslationKeys::POCKETMINE_WILL_START, [VersionInfo::NAME])); $this->message($this->lang->translate(KnownTranslationFactory::pocketmine_will_start(VersionInfo::NAME)));
$this->writeLine(); $this->writeLine();
$this->writeLine(); $this->writeLine();

View File

@ -54,7 +54,7 @@ use pocketmine\item\Item;
use pocketmine\item\ItemFactory; use pocketmine\item\ItemFactory;
use pocketmine\item\ItemUseResult; use pocketmine\item\ItemUseResult;
use pocketmine\item\LegacyStringToItemParser; use pocketmine\item\LegacyStringToItemParser;
use pocketmine\lang\KnownTranslationKeys; use pocketmine\lang\KnownTranslationFactory;
use pocketmine\math\AxisAlignedBB; use pocketmine\math\AxisAlignedBB;
use pocketmine\math\Vector3; use pocketmine\math\Vector3;
use pocketmine\nbt\NbtDataException; use pocketmine\nbt\NbtDataException;
@ -401,7 +401,7 @@ class World implements ChunkManager{
$this->minY = $this->provider->getWorldMinY(); $this->minY = $this->provider->getWorldMinY();
$this->maxY = $this->provider->getWorldMaxY(); $this->maxY = $this->provider->getWorldMaxY();
$this->server->getLogger()->info($this->server->getLanguage()->translateString(KnownTranslationKeys::POCKETMINE_LEVEL_PREPARING, [$this->displayName])); $this->server->getLogger()->info($this->server->getLanguage()->translate(KnownTranslationFactory::pocketmine_level_preparing($this->displayName)));
$this->generator = GeneratorManager::getInstance()->getGenerator($this->provider->getWorldData()->getGenerator(), true); $this->generator = GeneratorManager::getInstance()->getGenerator($this->provider->getWorldData()->getGenerator(), true);
//TODO: validate generator options //TODO: validate generator options
$this->chunkPopulationRequestQueue = new \SplQueue(); $this->chunkPopulationRequestQueue = new \SplQueue();

View File

@ -27,7 +27,7 @@ use pocketmine\entity\Entity;
use pocketmine\event\world\WorldInitEvent; use pocketmine\event\world\WorldInitEvent;
use pocketmine\event\world\WorldLoadEvent; use pocketmine\event\world\WorldLoadEvent;
use pocketmine\event\world\WorldUnloadEvent; use pocketmine\event\world\WorldUnloadEvent;
use pocketmine\lang\KnownTranslationKeys; use pocketmine\lang\KnownTranslationFactory;
use pocketmine\player\ChunkSelector; use pocketmine\player\ChunkSelector;
use pocketmine\Server; use pocketmine\Server;
use pocketmine\timings\Timings; use pocketmine\timings\Timings;
@ -149,7 +149,7 @@ class WorldManager{
return false; return false;
} }
$this->server->getLogger()->info($this->server->getLanguage()->translateString(KnownTranslationKeys::POCKETMINE_LEVEL_UNLOADING, [$world->getDisplayName()])); $this->server->getLogger()->info($this->server->getLanguage()->translate(KnownTranslationFactory::pocketmine_level_unloading($world->getDisplayName())));
try{ try{
$safeSpawn = $this->defaultWorld !== null ? $this->defaultWorld->getSafeSpawn() : null; $safeSpawn = $this->defaultWorld !== null ? $this->defaultWorld->getSafeSpawn() : null;
}catch(WorldException $e){ }catch(WorldException $e){
@ -193,12 +193,12 @@ class WorldManager{
$providers = $this->providerManager->getMatchingProviders($path); $providers = $this->providerManager->getMatchingProviders($path);
if(count($providers) !== 1){ if(count($providers) !== 1){
$this->server->getLogger()->error($this->server->getLanguage()->translateString(KnownTranslationKeys::POCKETMINE_LEVEL_LOADERROR, [ $this->server->getLogger()->error($this->server->getLanguage()->translate(KnownTranslationFactory::pocketmine_level_loadError(
$name, $name,
count($providers) === 0 ? count($providers) === 0 ?
$this->server->getLanguage()->translateString(KnownTranslationKeys::POCKETMINE_LEVEL_UNKNOWNFORMAT) : $this->server->getLanguage()->translate(KnownTranslationFactory::pocketmine_level_unknownFormat()) :
$this->server->getLanguage()->translateString(KnownTranslationKeys::POCKETMINE_LEVEL_AMBIGUOUSFORMAT, [implode(", ", array_keys($providers))]) $this->server->getLanguage()->translate(KnownTranslationFactory::pocketmine_level_ambiguousFormat(implode(", ", array_keys($providers)))
])); ))));
return false; return false;
} }
$providerClass = array_shift($providers); $providerClass = array_shift($providers);
@ -206,16 +206,16 @@ class WorldManager{
try{ try{
$provider = $providerClass->fromPath($path); $provider = $providerClass->fromPath($path);
}catch(CorruptedWorldException $e){ }catch(CorruptedWorldException $e){
$this->server->getLogger()->error($this->server->getLanguage()->translateString(KnownTranslationKeys::POCKETMINE_LEVEL_LOADERROR, [$name, "Corruption detected: " . $e->getMessage()])); $this->server->getLogger()->error($this->server->getLanguage()->translate(KnownTranslationFactory::pocketmine_level_loadError($name, "Corruption detected: " . $e->getMessage())));
return false; return false;
}catch(UnsupportedWorldFormatException $e){ }catch(UnsupportedWorldFormatException $e){
$this->server->getLogger()->error($this->server->getLanguage()->translateString(KnownTranslationKeys::POCKETMINE_LEVEL_LOADERROR, [$name, "Unsupported format: " . $e->getMessage()])); $this->server->getLogger()->error($this->server->getLanguage()->translate(KnownTranslationFactory::pocketmine_level_loadError($name, "Unsupported format: " . $e->getMessage())));
return false; return false;
} }
try{ try{
GeneratorManager::getInstance()->getGenerator($provider->getWorldData()->getGenerator(), true); GeneratorManager::getInstance()->getGenerator($provider->getWorldData()->getGenerator(), true);
}catch(\InvalidArgumentException $e){ }catch(\InvalidArgumentException $e){
$this->server->getLogger()->error($this->server->getLanguage()->translateString(KnownTranslationKeys::POCKETMINE_LEVEL_LOADERROR, [$name, "Unknown generator \"" . $provider->getWorldData()->getGenerator() . "\""])); $this->server->getLogger()->error($this->server->getLanguage()->translate(KnownTranslationFactory::pocketmine_level_loadError($name, "Unknown generator \"" . $provider->getWorldData()->getGenerator() . "\"")));
return false; return false;
} }
if(!($provider instanceof WritableWorldProvider)){ if(!($provider instanceof WritableWorldProvider)){
@ -265,7 +265,7 @@ class WorldManager{
(new WorldLoadEvent($world))->call(); (new WorldLoadEvent($world))->call();
if($backgroundGeneration){ if($backgroundGeneration){
$this->server->getLogger()->notice($this->server->getLanguage()->translateString(KnownTranslationKeys::POCKETMINE_LEVEL_BACKGROUNDGENERATION, [$name])); $this->server->getLogger()->notice($this->server->getLanguage()->translate(KnownTranslationFactory::pocketmine_level_backgroundGeneration($name)));
$spawnLocation = $world->getSpawnLocation(); $spawnLocation = $world->getSpawnLocation();
$centerX = $spawnLocation->getFloorX() >> 4; $centerX = $spawnLocation->getFloorX() >> 4;