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
- build/make-release.php
- build/server-phar.php
- build/generate-known-translation-keys.php
- build/generate-known-translation-apis.php
paths:
- src
- tests/phpstan/rules

View File

@ -43,6 +43,7 @@ use pocketmine\event\player\PlayerDataSaveEvent;
use pocketmine\event\server\CommandEvent;
use pocketmine\event\server\DataPacketSendEvent;
use pocketmine\event\server\QueryRegenerateEvent;
use pocketmine\lang\KnownTranslationFactory;
use pocketmine\lang\KnownTranslationKeys;
use pocketmine\lang\Language;
use pocketmine\lang\LanguageNotFoundException;
@ -143,6 +144,7 @@ use function stripos;
use function strlen;
use function strrpos;
use function strtolower;
use function strval;
use function time;
use function touch;
use function trim;
@ -529,7 +531,7 @@ class Server{
private function handleCorruptedPlayerData(string $name) : void{
$path = $this->getPlayerDataPath($name);
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{
@ -575,7 +577,7 @@ class Server{
try{
file_put_contents($this->getPlayerDataPath($name), zlib_encode($nbt->write(new TreeRoot($ev->getSaveData())), ZLIB_ENCODING_GZIP));
}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);
}
});
@ -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(!$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->translateString(KnownTranslationKeys::POCKETMINE_SERVER_DEVBUILD_ERROR2));
$this->logger->emergency($this->language->translateString(KnownTranslationKeys::POCKETMINE_SERVER_DEVBUILD_ERROR3));
$this->logger->emergency($this->language->translateString(KnownTranslationKeys::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_error1(VersionInfo::NAME)));
$this->logger->emergency($this->language->translate(KnownTranslationFactory::pocketmine_server_devBuild_error2()));
$this->logger->emergency($this->language->translate(KnownTranslationFactory::pocketmine_server_devBuild_error3()));
$this->logger->emergency($this->language->translate(KnownTranslationFactory::pocketmine_server_devBuild_error4("settings.enable-dev-builds")));
$this->logger->emergency($this->language->translate(KnownTranslationFactory::pocketmine_server_devBuild_error5("https://github.com/pmmp/PocketMine-MP/releases")));
$this->forceShutdown();
return;
}
$this->logger->warning(str_repeat("-", 40));
$this->logger->warning($this->language->translateString(KnownTranslationKeys::POCKETMINE_SERVER_DEVBUILD_WARNING1, [VersionInfo::NAME]));
$this->logger->warning($this->language->translateString(KnownTranslationKeys::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_warning1(VersionInfo::NAME)));
$this->logger->warning($this->language->translate(KnownTranslationFactory::pocketmine_server_devBuild_warning2()));
$this->logger->warning($this->language->translate(KnownTranslationFactory::pocketmine_server_devBuild_warning3()));
$this->logger->warning(str_repeat("-", 40));
}
$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"){
$poolSize = 2;
@ -955,11 +957,11 @@ class Server{
$this->onlineMode = $this->configGroup->getConfigBool("xbox-auth", true);
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{
$this->logger->warning($this->getLanguage()->translateString(KnownTranslationKeys::POCKETMINE_SERVER_AUTH_DISABLED));
$this->logger->warning($this->getLanguage()->translateString(KnownTranslationKeys::POCKETMINE_SERVER_AUTHWARNING));
$this->logger->warning($this->getLanguage()->translateString(KnownTranslationKeys::POCKETMINE_SERVER_AUTHPROPERTY_DISABLED));
$this->logger->warning($this->getLanguage()->translate(KnownTranslationFactory::pocketmine_server_auth_disabled()));
$this->logger->warning($this->getLanguage()->translate(KnownTranslationFactory::pocketmine_server_authWarning()));
$this->logger->warning($this->getLanguage()->translate(KnownTranslationFactory::pocketmine_server_authProperty_disabled()));
}
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->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(),
(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();
TimingsHandler::setEnabled($this->configGroup->getPropertyBool("settings.enable-profiling", false));
@ -1017,7 +1019,7 @@ class Server{
){
$providerManager->setDefault($format);
}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);
@ -1087,7 +1089,7 @@ class Server{
$world = $this->worldManager->getWorldByName($default);
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();
return;
@ -1103,7 +1105,7 @@ class Server{
//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->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){
$this->network->registerRawPacketHandler(new QueryHandler($this));
@ -1124,9 +1126,9 @@ class Server{
$this->configGroup->save();
$this->logger->info($this->getLanguage()->translateString(KnownTranslationKeys::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()->translateString(KnownTranslationKeys::POCKETMINE_SERVER_STARTFINISHED, [round(microtime(true) - $this->startTime, 3)]));
$this->logger->info($this->getLanguage()->translate(KnownTranslationFactory::pocketmine_server_defaultGameMode($this->getGamemode()->getTranslationKey())));
$this->logger->info($this->getLanguage()->translate(KnownTranslationFactory::pocketmine_server_donate(TextFormat::AQUA . "https://patreon.com/pocketminemp" . TextFormat::RESET)));
$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
$consoleSender = new ConsoleCommandSender($this, $this->language);
@ -1501,10 +1503,10 @@ class Server{
ini_set("error_reporting", '0');
ini_set("memory_limit", '-1'); //Fix error dump not dumped on memory problems
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);
$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)){
$report = true;
@ -1548,7 +1550,7 @@ class Server{
if(isset($data->crashId) and isset($data->crashUrl)){
$reportId = $data->crashId;
$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)){
$this->logger->emergency("Automatic crash report submission failed: $data->error");
}
@ -1560,7 +1562,7 @@ class Server{
}catch(\Throwable $e){
$this->logger->logException($e);
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){}
}
@ -1729,7 +1731,7 @@ class Server{
}
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\console\ConsoleCommandSender;
use pocketmine\lang\KnownTranslationFactory;
use pocketmine\lang\KnownTranslationKeys;
use pocketmine\lang\TranslationContainer;
use pocketmine\permission\PermissionManager;
@ -241,7 +242,7 @@ abstract class Command{
$result = new TranslationContainer($formatted, $message->getParameters());
$colored = new TranslationContainer(TextFormat::GRAY . TextFormat::ITALIC . $formatted, $message->getParameters());
}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]);
}

View File

@ -65,7 +65,7 @@ use pocketmine\command\defaults\VanillaCommand;
use pocketmine\command\defaults\VersionCommand;
use pocketmine\command\defaults\WhitelistCommand;
use pocketmine\command\utils\InvalidCommandSyntaxException;
use pocketmine\lang\KnownTranslationKeys;
use pocketmine\lang\KnownTranslationFactory;
use pocketmine\Server;
use function array_shift;
use function count;
@ -246,7 +246,7 @@ class SimpleCommandMap implements CommandMap{
try{
$target->execute($sender, $sentCommandLabel, $args);
}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{
$target->timings->stopTiming();
}
@ -278,7 +278,7 @@ class SimpleCommandMap implements CommandMap{
foreach($values as $alias => $commandStrings){
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;
}
@ -301,12 +301,12 @@ class SimpleCommandMap implements CommandMap{
}
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;
}
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;
}

View File

@ -26,8 +26,8 @@ namespace pocketmine\command\defaults;
use pocketmine\command\Command;
use pocketmine\command\CommandSender;
use pocketmine\command\utils\InvalidCommandSyntaxException;
use pocketmine\lang\KnownTranslationFactory;
use pocketmine\lang\KnownTranslationKeys;
use pocketmine\lang\TranslationContainer;
use pocketmine\permission\DefaultPermissionNames;
use pocketmine\player\Player;
use function array_shift;
@ -63,7 +63,7 @@ class BanCommand extends VanillaCommand{
$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;
}

View File

@ -26,8 +26,8 @@ namespace pocketmine\command\defaults;
use pocketmine\command\Command;
use pocketmine\command\CommandSender;
use pocketmine\command\utils\InvalidCommandSyntaxException;
use pocketmine\lang\KnownTranslationFactory;
use pocketmine\lang\KnownTranslationKeys;
use pocketmine\lang\TranslationContainer;
use pocketmine\permission\DefaultPermissionNames;
use pocketmine\player\Player;
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)){
$this->processIPBan($value, $sender, $reason);
Command::broadcastCommandMessage($sender, new TranslationContainer(KnownTranslationKeys::COMMANDS_BANIP_SUCCESS, [$value]));
Command::broadcastCommandMessage($sender, KnownTranslationFactory::commands_banip_success($value));
}else{
if(($player = $sender->getServer()->getPlayerByPrefix($value)) instanceof Player){
$ip = $player->getNetworkSession()->getIp();
$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{
$sender->sendMessage(new TranslationContainer(KnownTranslationKeys::COMMANDS_BANIP_INVALID));
$sender->sendMessage(KnownTranslationFactory::commands_banip_invalid());
return false;
}

View File

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

View File

@ -28,6 +28,7 @@ use pocketmine\command\CommandSender;
use pocketmine\command\utils\InvalidCommandSyntaxException;
use pocketmine\item\LegacyStringToItemParser;
use pocketmine\item\LegacyStringToItemParserException;
use pocketmine\lang\KnownTranslationFactory;
use pocketmine\lang\KnownTranslationKeys;
use pocketmine\lang\TranslationContainer;
use pocketmine\permission\DefaultPermissionNames;
@ -102,7 +103,7 @@ class ClearCommand extends VanillaCommand{
}
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{
$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){
Command::broadcastCommandMessage($sender, new TranslationContainer(KnownTranslationKeys::COMMANDS_CLEAR_SUCCESS, [$target->getName(), $cleared]));
Command::broadcastCommandMessage($sender, KnownTranslationFactory::commands_clear_success($target->getName(), (string) $cleared));
}else{
$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\utils\InvalidCommandSyntaxException;
use pocketmine\data\java\GameModeIdMap;
use pocketmine\lang\KnownTranslationFactory;
use pocketmine\lang\KnownTranslationKeys;
use pocketmine\lang\TranslationContainer;
use pocketmine\permission\DefaultPermissionNames;
use pocketmine\player\GameMode;
use function count;
@ -59,7 +59,7 @@ class DefaultGamemodeCommand extends VanillaCommand{
}
$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;
}
}

View File

@ -26,8 +26,8 @@ namespace pocketmine\command\defaults;
use pocketmine\command\Command;
use pocketmine\command\CommandSender;
use pocketmine\command\utils\InvalidCommandSyntaxException;
use pocketmine\lang\KnownTranslationFactory;
use pocketmine\lang\KnownTranslationKeys;
use pocketmine\lang\TranslationContainer;
use pocketmine\permission\DefaultPermissionNames;
use pocketmine\player\Player;
use pocketmine\utils\TextFormat;
@ -63,7 +63,7 @@ class DeopCommand extends VanillaCommand{
if(($player = $sender->getServer()->getPlayerExact($name)) !== null){
$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;
}

View File

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

View File

@ -27,6 +27,7 @@ use pocketmine\command\CommandSender;
use pocketmine\command\utils\InvalidCommandSyntaxException;
use pocketmine\entity\effect\EffectInstance;
use pocketmine\entity\effect\VanillaEffects;
use pocketmine\lang\KnownTranslationFactory;
use pocketmine\lang\KnownTranslationKeys;
use pocketmine\lang\TranslationContainer;
use pocketmine\permission\DefaultPermissionNames;
@ -66,7 +67,7 @@ class EffectCommand extends VanillaCommand{
if(strtolower($args[1]) === "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;
}
@ -106,19 +107,19 @@ class EffectCommand extends VanillaCommand{
if($duration === 0){
if(!$effectManager->has($effect)){
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{
$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;
}
$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{
$instance = new EffectInstance($effect, $duration, $amplification, $visible);
$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;

View File

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

View File

@ -26,6 +26,7 @@ namespace pocketmine\command\defaults;
use pocketmine\command\Command;
use pocketmine\command\CommandSender;
use pocketmine\command\utils\InvalidCommandSyntaxException;
use pocketmine\lang\KnownTranslationFactory;
use pocketmine\lang\KnownTranslationKeys;
use pocketmine\lang\TranslationContainer;
use pocketmine\permission\DefaultPermissionNames;
@ -78,10 +79,10 @@ class GamemodeCommand extends VanillaCommand{
$sender->sendMessage("Game mode change for " . $target->getName() . " failed!");
}else{
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{
$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\item\LegacyStringToItemParser;
use pocketmine\item\LegacyStringToItemParserException;
use pocketmine\lang\KnownTranslationFactory;
use pocketmine\lang\KnownTranslationKeys;
use pocketmine\lang\TranslationContainer;
use pocketmine\nbt\JsonNbtParser;
@ -82,7 +83,7 @@ class GiveCommand extends VanillaCommand{
try{
$tags = JsonNbtParser::parseJson($data);
}catch(NbtDataException $e){
$sender->sendMessage(new TranslationContainer(KnownTranslationKeys::COMMANDS_GIVE_TAGERROR, [$e->getMessage()]));
$sender->sendMessage(KnownTranslationFactory::commands_give_tagError($e->getMessage()));
return true;
}
@ -92,11 +93,11 @@ class GiveCommand extends VanillaCommand{
//TODO: overflow
$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() . ")",
(string) $item->getCount(),
$player->getName()
]));
));
return true;
}
}

View File

@ -25,8 +25,8 @@ namespace pocketmine\command\defaults;
use pocketmine\command\Command;
use pocketmine\command\CommandSender;
use pocketmine\lang\KnownTranslationFactory;
use pocketmine\lang\KnownTranslationKeys;
use pocketmine\lang\TranslationContainer;
use pocketmine\permission\DefaultPermissionNames;
use pocketmine\utils\TextFormat;
use function array_chunk;
@ -88,7 +88,7 @@ class HelpCommand extends VanillaCommand{
if($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])){
foreach($commands[$pageNumber - 1] as $command){
$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\CommandSender;
use pocketmine\command\utils\InvalidCommandSyntaxException;
use pocketmine\lang\KnownTranslationFactory;
use pocketmine\lang\KnownTranslationKeys;
use pocketmine\lang\TranslationContainer;
use pocketmine\permission\DefaultPermissionNames;
@ -62,9 +63,9 @@ class KickCommand extends VanillaCommand{
if(($player = $sender->getServer()->getPlayerByPrefix($name)) instanceof Player){
$player->kick("Kicked by admin." . ($reason !== "" ? "Reason: " . $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{
Command::broadcastCommandMessage($sender, new TranslationContainer(KnownTranslationKeys::COMMANDS_KICK_SUCCESS, [$player->getName()]));
Command::broadcastCommandMessage($sender, KnownTranslationFactory::commands_kick_success($player->getName()));
}
}else{
$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\utils\InvalidCommandSyntaxException;
use pocketmine\event\entity\EntityDamageEvent;
use pocketmine\lang\KnownTranslationFactory;
use pocketmine\lang\KnownTranslationKeys;
use pocketmine\lang\TranslationContainer;
use pocketmine\permission\DefaultPermissionNames;
@ -65,7 +66,7 @@ class KillCommand extends VanillaCommand{
if($player instanceof Player){
$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{
$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->sendMessage(new TranslationContainer(KnownTranslationKeys::COMMANDS_KILL_SUCCESSFUL, [$sender->getName()]));
$sender->sendMessage(KnownTranslationFactory::commands_kill_successful($sender->getName()));
}else{
throw new InvalidCommandSyntaxException();
}

View File

@ -24,8 +24,8 @@ declare(strict_types=1);
namespace pocketmine\command\defaults;
use pocketmine\command\CommandSender;
use pocketmine\lang\KnownTranslationFactory;
use pocketmine\lang\KnownTranslationKeys;
use pocketmine\lang\TranslationContainer;
use pocketmine\permission\DefaultPermissionNames;
use pocketmine\player\Player;
use function array_filter;
@ -58,7 +58,7 @@ class ListCommand extends VanillaCommand{
}));
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));
return true;

View File

@ -25,8 +25,8 @@ namespace pocketmine\command\defaults;
use pocketmine\command\CommandSender;
use pocketmine\command\utils\InvalidCommandSyntaxException;
use pocketmine\lang\KnownTranslationFactory;
use pocketmine\lang\KnownTranslationKeys;
use pocketmine\lang\TranslationContainer;
use pocketmine\permission\DefaultPermissionNames;
use pocketmine\player\Player;
use pocketmine\utils\TextFormat;
@ -53,7 +53,7 @@ class MeCommand extends VanillaCommand{
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;
}

View File

@ -26,8 +26,8 @@ namespace pocketmine\command\defaults;
use pocketmine\command\Command;
use pocketmine\command\CommandSender;
use pocketmine\command\utils\InvalidCommandSyntaxException;
use pocketmine\lang\KnownTranslationFactory;
use pocketmine\lang\KnownTranslationKeys;
use pocketmine\lang\TranslationContainer;
use pocketmine\permission\DefaultPermissionNames;
use pocketmine\player\Player;
use pocketmine\utils\TextFormat;
@ -63,7 +63,7 @@ class OpCommand extends VanillaCommand{
if(($player = $sender->getServer()->getPlayerExact($name)) !== null){
$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;
}
}

View File

@ -26,8 +26,8 @@ namespace pocketmine\command\defaults;
use pocketmine\command\Command;
use pocketmine\command\CommandSender;
use pocketmine\command\utils\InvalidCommandSyntaxException;
use pocketmine\lang\KnownTranslationFactory;
use pocketmine\lang\KnownTranslationKeys;
use pocketmine\lang\TranslationContainer;
use pocketmine\permission\DefaultPermissionNames;
use function count;
@ -54,7 +54,7 @@ class PardonCommand extends VanillaCommand{
$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;
}

View File

@ -26,8 +26,8 @@ namespace pocketmine\command\defaults;
use pocketmine\command\Command;
use pocketmine\command\CommandSender;
use pocketmine\command\utils\InvalidCommandSyntaxException;
use pocketmine\lang\KnownTranslationFactory;
use pocketmine\lang\KnownTranslationKeys;
use pocketmine\lang\TranslationContainer;
use pocketmine\permission\DefaultPermissionNames;
use function count;
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])){
$sender->getServer()->getIPBans()->remove($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{
$sender->sendMessage(new TranslationContainer(KnownTranslationKeys::COMMANDS_UNBANIP_INVALID));
$sender->sendMessage(KnownTranslationFactory::commands_unbanip_invalid());
}
return true;

View File

@ -29,6 +29,7 @@ use pocketmine\command\CommandSender;
use pocketmine\command\utils\InvalidCommandSyntaxException;
use pocketmine\item\ItemFactory;
use pocketmine\item\VanillaItems;
use pocketmine\lang\KnownTranslationFactory;
use pocketmine\lang\KnownTranslationKeys;
use pocketmine\lang\TranslationContainer;
use pocketmine\math\Vector3;
@ -124,7 +125,7 @@ class ParticleCommand extends VanillaCommand{
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());

View File

@ -24,8 +24,8 @@ declare(strict_types=1);
namespace pocketmine\command\defaults;
use pocketmine\command\CommandSender;
use pocketmine\lang\KnownTranslationFactory;
use pocketmine\lang\KnownTranslationKeys;
use pocketmine\lang\TranslationContainer;
use pocketmine\permission\DefaultPermissionNames;
use pocketmine\plugin\Plugin;
use pocketmine\utils\TextFormat;
@ -57,7 +57,7 @@ class PluginsCommand extends VanillaCommand{
}, $sender->getServer()->getPluginManager()->getPlugins());
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;
}
}

View File

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

View File

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

View File

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

View File

@ -24,8 +24,8 @@ declare(strict_types=1);
namespace pocketmine\command\defaults;
use pocketmine\command\CommandSender;
use pocketmine\lang\KnownTranslationFactory;
use pocketmine\lang\KnownTranslationKeys;
use pocketmine\lang\TranslationContainer;
use pocketmine\permission\DefaultPermissionNames;
use pocketmine\player\Player;
@ -50,7 +50,7 @@ class SeedCommand extends VanillaCommand{
}else{
$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;
}

View File

@ -26,8 +26,8 @@ namespace pocketmine\command\defaults;
use pocketmine\command\Command;
use pocketmine\command\CommandSender;
use pocketmine\command\utils\InvalidCommandSyntaxException;
use pocketmine\lang\KnownTranslationFactory;
use pocketmine\lang\KnownTranslationKeys;
use pocketmine\lang\TranslationContainer;
use pocketmine\math\Vector3;
use pocketmine\permission\DefaultPermissionNames;
use pocketmine\player\Player;
@ -70,7 +70,7 @@ class SetWorldSpawnCommand extends VanillaCommand{
$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;
}

View File

@ -26,6 +26,7 @@ namespace pocketmine\command\defaults;
use pocketmine\command\Command;
use pocketmine\command\CommandSender;
use pocketmine\command\utils\InvalidCommandSyntaxException;
use pocketmine\lang\KnownTranslationFactory;
use pocketmine\lang\KnownTranslationKeys;
use pocketmine\lang\TranslationContainer;
use pocketmine\permission\DefaultPermissionNames;
@ -79,7 +80,7 @@ class SpawnpointCommand extends VanillaCommand{
$z = $this->getRelativeDouble($pos->z, $sender, $args[3]);
$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;
}elseif(count($args) <= 1){
@ -88,7 +89,7 @@ class SpawnpointCommand extends VanillaCommand{
$pos = Position::fromObject($cpos->floor(), $cpos->getWorld());
$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;
}else{
$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\CommandSender;
use pocketmine\lang\KnownTranslationFactory;
use pocketmine\lang\KnownTranslationKeys;
use pocketmine\lang\TranslationContainer;
use pocketmine\permission\DefaultPermissionNames;
class StopCommand extends VanillaCommand{
@ -45,7 +45,7 @@ class StopCommand extends VanillaCommand{
return true;
}
Command::broadcastCommandMessage($sender, new TranslationContainer(KnownTranslationKeys::COMMANDS_STOP_START));
Command::broadcastCommandMessage($sender, KnownTranslationFactory::commands_stop_start());
$sender->getServer()->shutdown();

View File

@ -27,8 +27,8 @@ use pocketmine\command\Command;
use pocketmine\command\CommandSender;
use pocketmine\command\utils\InvalidCommandSyntaxException;
use pocketmine\entity\Location;
use pocketmine\lang\KnownTranslationFactory;
use pocketmine\lang\KnownTranslationKeys;
use pocketmine\lang\TranslationContainer;
use pocketmine\permission\DefaultPermissionNames;
use pocketmine\player\Player;
use pocketmine\utils\AssumptionFailedError;
@ -97,7 +97,7 @@ class TeleportCommand extends VanillaCommand{
}
$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;
case 3:
@ -117,12 +117,12 @@ class TeleportCommand extends VanillaCommand{
$targetLocation = new Location($x, $y, $z, $yaw, $pitch, $base->getWorld());
$subject->teleport($targetLocation);
Command::broadcastCommandMessage($sender, new TranslationContainer(KnownTranslationKeys::COMMANDS_TP_SUCCESS_COORDINATES, [
Command::broadcastCommandMessage($sender, KnownTranslationFactory::commands_tp_success_coordinates(
$subject->getName(),
round($targetLocation->x, 2),
round($targetLocation->y, 2),
round($targetLocation->z, 2)
]));
(string) round($targetLocation->x, 2),
(string) round($targetLocation->y, 2),
(string) round($targetLocation->z, 2)
));
return true;
default:
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\CommandSender;
use pocketmine\command\utils\InvalidCommandSyntaxException;
use pocketmine\lang\KnownTranslationFactory;
use pocketmine\lang\KnownTranslationKeys;
use pocketmine\lang\TranslationContainer;
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]));
$name = $sender instanceof Player ? $sender->getDisplayName() : $sender->getName();
$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{
$sender->sendMessage(new TranslationContainer(KnownTranslationKeys::COMMANDS_GENERIC_PLAYER_NOTFOUND));
$sender->sendMessage(KnownTranslationFactory::commands_generic_player_notFound());
}
return true;

View File

@ -26,8 +26,8 @@ namespace pocketmine\command\defaults;
use pocketmine\command\Command;
use pocketmine\command\CommandSender;
use pocketmine\command\utils\InvalidCommandSyntaxException;
use pocketmine\lang\KnownTranslationFactory;
use pocketmine\lang\KnownTranslationKeys;
use pocketmine\lang\TranslationContainer;
use pocketmine\permission\DefaultPermissionNames;
use pocketmine\player\Player;
use pocketmine\world\World;
@ -86,7 +86,7 @@ class TimeCommand extends VanillaCommand{
}else{
$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;
}
@ -126,7 +126,7 @@ class TimeCommand extends VanillaCommand{
foreach($sender->getServer()->getWorldManager()->getWorlds() as $world){
$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"){
if(!$this->testPermission($sender, DefaultPermissionNames::COMMAND_TIME_ADD)){
return true;
@ -136,7 +136,7 @@ class TimeCommand extends VanillaCommand{
foreach($sender->getServer()->getWorldManager()->getWorlds() as $world){
$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{
throw new InvalidCommandSyntaxException();
}

View File

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

View File

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

View File

@ -24,8 +24,8 @@ declare(strict_types=1);
namespace pocketmine\command\defaults;
use pocketmine\command\CommandSender;
use pocketmine\lang\KnownTranslationFactory;
use pocketmine\lang\KnownTranslationKeys;
use pocketmine\lang\TranslationContainer;
use pocketmine\network\mcpe\protocol\ProtocolInfo;
use pocketmine\permission\DefaultPermissionNames;
use pocketmine\plugin\Plugin;
@ -53,12 +53,12 @@ class VersionCommand extends VanillaCommand{
}
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()->getPocketMineVersion(),
$sender->getServer()->getVersion(),
ProtocolInfo::CURRENT_PROTOCOL
]));
(string) ProtocolInfo::CURRENT_PROTOCOL
));
}else{
$pluginName = implode(" ", $args);
$exactPlugin = $sender->getServer()->getPluginManager()->getPlugin($pluginName);
@ -79,7 +79,7 @@ class VersionCommand extends VanillaCommand{
}
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\CommandSender;
use pocketmine\command\utils\InvalidCommandSyntaxException;
use pocketmine\lang\KnownTranslationFactory;
use pocketmine\lang\KnownTranslationKeys;
use pocketmine\lang\TranslationContainer;
use pocketmine\permission\DefaultPermissionNames;
use pocketmine\player\Player;
use function count;
@ -64,21 +64,21 @@ class WhitelistCommand extends VanillaCommand{
case "reload":
if($this->testPermission($sender, DefaultPermissionNames::COMMAND_WHITELIST_RELOAD)){
$sender->getServer()->getWhitelisted()->reload();
Command::broadcastCommandMessage($sender, new TranslationContainer(KnownTranslationKeys::COMMANDS_WHITELIST_RELOADED));
Command::broadcastCommandMessage($sender, KnownTranslationFactory::commands_whitelist_reloaded());
}
return true;
case "on":
if($this->testPermission($sender, DefaultPermissionNames::COMMAND_WHITELIST_ENABLE)){
$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;
case "off":
if($this->testPermission($sender, DefaultPermissionNames::COMMAND_WHITELIST_DISABLE)){
$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;
@ -87,20 +87,20 @@ class WhitelistCommand extends VanillaCommand{
$entries = $sender->getServer()->getWhitelisted()->getAll(true);
sort($entries, SORT_STRING);
$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);
}
return true;
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;
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;
}
}elseif(count($args) === 2){
@ -111,14 +111,14 @@ class WhitelistCommand extends VanillaCommand{
case "add":
if($this->testPermission($sender, DefaultPermissionNames::COMMAND_WHITELIST_ADD)){
$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;
case "remove":
if($this->testPermission($sender, DefaultPermissionNames::COMMAND_WHITELIST_REMOVE)){
$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;

View File

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

View File

@ -25,7 +25,7 @@ namespace pocketmine\network\mcpe\handler;
use pocketmine\entity\InvalidSkinException;
use pocketmine\event\player\PlayerPreLoginEvent;
use pocketmine\lang\KnownTranslationKeys;
use pocketmine\lang\KnownTranslationFactory;
use pocketmine\network\mcpe\auth\ProcessLoginTask;
use pocketmine\network\mcpe\convert\SkinAdapterSingleton;
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->session->disconnect(
$this->server->getLanguage()->translateString(KnownTranslationKeys::POCKETMINE_DISCONNECT_INCOMPATIBLEPROTOCOL, [$packet->protocol]),
$this->server->getLanguage()->translate(KnownTranslationFactory::pocketmine_disconnect_incompatibleProtocol((string) $packet->protocol)),
false
);

View File

@ -27,7 +27,7 @@ declare(strict_types=1);
*/
namespace pocketmine\network\query;
use pocketmine\lang\KnownTranslationKeys;
use pocketmine\lang\KnownTranslationFactory;
use pocketmine\network\AdvancedNetworkInterface;
use pocketmine\network\RawPacketHandler;
use pocketmine\Server;
@ -71,7 +71,7 @@ class QueryHandler implements RawPacketHandler{
$this->regenerateToken();
$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{

View File

@ -80,6 +80,7 @@ use pocketmine\item\enchantment\MeleeWeaponEnchantment;
use pocketmine\item\Item;
use pocketmine\item\ItemUseResult;
use pocketmine\item\Releasable;
use pocketmine\lang\KnownTranslationFactory;
use pocketmine\lang\KnownTranslationKeys;
use pocketmine\lang\Language;
use pocketmine\lang\TranslationContainer;
@ -276,16 +277,16 @@ class Player extends Human implements CommandSender, ChunkListener, IPlayer{
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,
$session->getIp(),
$session->getPort(),
$this->id,
(string) $session->getPort(),
(string) $this->id,
$this->getWorld()->getDisplayName(),
round($this->location->x, 4),
round($this->location->y, 4),
round($this->location->z, 4)
]));
(string) round($this->location->x, 4),
(string) round($this->location->y, 4),
(string) round($this->location->z, 4)
)));
$this->server->addOnlinePlayer($this);
}

View File

@ -27,7 +27,7 @@ use pocketmine\command\Command;
use pocketmine\command\CommandExecutor;
use pocketmine\command\CommandSender;
use pocketmine\command\PluginCommand;
use pocketmine\lang\KnownTranslationKeys;
use pocketmine\lang\KnownTranslationFactory;
use pocketmine\scheduler\TaskScheduler;
use pocketmine\Server;
use pocketmine\utils\AssumptionFailedError;
@ -168,7 +168,7 @@ abstract class PluginBase implements Plugin, CommandExecutor{
foreach($this->getDescription()->getCommands() as $key => $data){
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;
}
if(is_array($data)){ //TODO: error out if it isn't
@ -185,7 +185,7 @@ abstract class PluginBase implements Plugin, CommandExecutor{
$aliasList = [];
foreach($data["aliases"] as $alias){
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;
}
$aliasList[] = $alias;

View File

@ -31,6 +31,7 @@ use pocketmine\event\ListenerMethodTags;
use pocketmine\event\plugin\PluginDisableEvent;
use pocketmine\event\plugin\PluginEnableEvent;
use pocketmine\event\RegisteredListener;
use pocketmine\lang\KnownTranslationFactory;
use pocketmine\lang\KnownTranslationKeys;
use pocketmine\network\mcpe\protocol\ProtocolInfo;
use pocketmine\permission\DefaultPermissions;
@ -135,7 +136,7 @@ class PluginManager{
if($loader->canLoadPlugin($path)){
$description = $loader->getPluginDescription($path);
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{
$description->checkRequiredExtensions();
}catch(PluginException $ex){
@ -246,7 +247,7 @@ class PluginManager{
try{
$description = $loader->getPluginDescription($file);
}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);
continue;
}
@ -256,58 +257,58 @@ class PluginManager{
$name = $description->getName();
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;
}
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){
$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;
}
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,
$this->server->getLanguage()->translateString(KnownTranslationKeys::POCKETMINE_PLUGIN_INCOMPATIBLEAPI, [implode(", ", $description->getCompatibleApis())])
]));
$this->server->getLanguage()->translate(KnownTranslationFactory::pocketmine_plugin_incompatibleAPI(implode(", ", $description->getCompatibleApis())))
)));
continue;
}
$ambiguousVersions = ApiVersion::checkAmbiguousVersions($description->getCompatibleApis());
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,
$this->server->getLanguage()->translateString(KnownTranslationKeys::POCKETMINE_PLUGIN_AMBIGUOUSMINAPI, [implode(", ", $ambiguousVersions)])
]));
$this->server->getLanguage()->translate(KnownTranslationFactory::pocketmine_plugin_ambiguousMinAPI(implode(", ", $ambiguousVersions)))
)));
continue;
}
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,
$this->server->getLanguage()->translateString(KnownTranslationKeys::POCKETMINE_PLUGIN_INCOMPATIBLEOS, [implode(", ", $description->getCompatibleOperatingSystems())])
]));
$this->server->getLanguage()->translate(KnownTranslationFactory::pocketmine_plugin_incompatibleOS(implode(", ", $description->getCompatibleOperatingSystems())))
)));
continue;
}
if(count($pluginMcpeProtocols = $description->getCompatibleMcpeProtocols()) > 0){
$serverMcpeProtocols = [ProtocolInfo::CURRENT_PROTOCOL];
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,
$this->server->getLanguage()->translateString(KnownTranslationKeys::POCKETMINE_DISCONNECT_INCOMPATIBLEPROTOCOL, [implode(", ", $pluginMcpeProtocols)])
]));
$this->server->getLanguage()->translate(KnownTranslationFactory::pocketmine_plugin_incompatibleProtocol(implode(", ", $pluginMcpeProtocols)))
)));
continue;
}
}
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,
"Disallowed by graylist"
]));
)));
continue;
}
$plugins[$name] = $file;
@ -333,10 +334,10 @@ class PluginManager{
if(isset($loadedPlugins[$dependency]) or $this->getPlugin($dependency) instanceof Plugin){
unset($dependencies[$name][$key]);
}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,
$this->server->getLanguage()->translateString(KnownTranslationKeys::POCKETMINE_PLUGIN_UNKNOWNDEPENDENCY, [$dependency])
]));
$this->server->getLanguage()->translate(KnownTranslationFactory::pocketmine_plugin_unknownDependency($dependency))
)));
unset($plugins[$name]);
continue 2;
}
@ -372,7 +373,7 @@ class PluginManager{
if(($plugin = $this->loadPlugin($file, $loaders)) instanceof Plugin){
$loadedPlugins[$name] = $plugin;
}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){
//No plugins loaded :(
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 = [];
}
@ -395,7 +396,7 @@ class PluginManager{
public function enablePlugin(Plugin $plugin) : void{
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->onEnableStateChange(true);
@ -414,7 +415,7 @@ class PluginManager{
public function disablePlugin(Plugin $plugin) : void{
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();
unset($this->enabledPlugins[$plugin->getDescription()->getName()]);

View File

@ -28,7 +28,7 @@ declare(strict_types=1);
namespace pocketmine\wizard;
use pocketmine\data\java\GameModeIdMap;
use pocketmine\lang\KnownTranslationKeys;
use pocketmine\lang\KnownTranslationFactory;
use pocketmine\lang\Language;
use pocketmine\lang\LanguageNotFoundException;
use pocketmine\player\GameMode;
@ -83,7 +83,7 @@ class SetupWizard{
$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()){
return false;
@ -94,7 +94,7 @@ class SetupWizard{
$config->set("language", $lang);
$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();
return true;
}
@ -113,7 +113,7 @@ class SetupWizard{
}
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
This program is free software: you can redistribute it and/or modify
@ -123,8 +123,8 @@ class SetupWizard{
LICENSE;
$this->writeLine();
if(strtolower($this->getInput($this->lang->get(KnownTranslationKeys::ACCEPT_LICENSE), "n", "y/N")) !== "y"){
$this->error($this->lang->translateString(KnownTranslationKeys::YOU_HAVE_TO_ACCEPT_THE_LICENSE, [VersionInfo::NAME]));
if(strtolower($this->getInput($this->lang->translate(KnownTranslationFactory::accept_license()), "n", "y/N")) !== "y"){
$this->error($this->lang->translate(KnownTranslationFactory::you_have_to_accept_the_license(VersionInfo::NAME)));
sleep(5);
return false;
@ -134,23 +134,23 @@ LICENSE;
}
private function welcome() : void{
$this->message($this->lang->get(KnownTranslationKeys::SETTING_UP_SERVER_NOW));
$this->message($this->lang->get(KnownTranslationKeys::DEFAULT_VALUES_INFO));
$this->message($this->lang->get(KnownTranslationKeys::SERVER_PROPERTIES));
$this->message($this->lang->translate(KnownTranslationFactory::setting_up_server_now()));
$this->message($this->lang->translate(KnownTranslationFactory::default_values_info()));
$this->message($this->lang->translate(KnownTranslationFactory::server_properties()));
}
private function generateBaseConfig() : void{
$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);
$this->message($this->lang->get(KnownTranslationKeys::PORT_WARNING));
$this->message($this->lang->translate(KnownTranslationFactory::port_warning()));
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){
$this->error($this->lang->get(KnownTranslationKeys::INVALID_PORT));
$this->error($this->lang->translate(KnownTranslationFactory::invalid_port()));
continue;
}
@ -158,35 +158,35 @@ LICENSE;
}while(true);
$config->set("server-port", $port);
$this->message($this->lang->get(KnownTranslationKeys::GAMEMODE_INFO));
$this->message($this->lang->translate(KnownTranslationFactory::gamemode_info()));
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);
$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();
}
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 === ""){
$this->error($this->lang->get(KnownTranslationKeys::OP_WARNING));
$this->error($this->lang->translate(KnownTranslationFactory::op_warning()));
}else{
$ops = new Config(Path::join($this->dataPath, "ops.txt"), Config::ENUM);
$ops->set($op, true);
$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);
if(strtolower($this->getInput($this->lang->get(KnownTranslationKeys::WHITELIST_ENABLE), "n", "y/N")) === "y"){
$this->error($this->lang->get(KnownTranslationKeys::WHITELIST_WARNING));
if(strtolower($this->getInput($this->lang->translate(KnownTranslationFactory::whitelist_enable()), "n", "y/N")) === "y"){
$this->error($this->lang->translate(KnownTranslationFactory::whitelist_warning()));
$config->set("white-list", true);
}else{
$config->set("white-list", false);
@ -196,9 +196,9 @@ LICENSE;
private function networkFunctions() : void{
$config = new Config(Path::join($this->dataPath, "server.properties"), Config::PROPERTIES);
$this->error($this->lang->get(KnownTranslationKeys::QUERY_WARNING1));
$this->error($this->lang->get(KnownTranslationKeys::QUERY_WARNING2));
if(strtolower($this->getInput($this->lang->get(KnownTranslationKeys::QUERY_DISABLE), "n", "y/N")) === "y"){
$this->error($this->lang->translate(KnownTranslationFactory::query_warning1()));
$this->error($this->lang->translate(KnownTranslationFactory::query_warning2()));
if(strtolower($this->getInput($this->lang->translate(KnownTranslationFactory::query_disable()), "n", "y/N")) === "y"){
$config->set("enable-query", false);
}else{
$config->set("enable-query", true);
@ -208,7 +208,7 @@ LICENSE;
}
private function printIpDetails() : void{
$this->message($this->lang->get(KnownTranslationKeys::IP_GET));
$this->message($this->lang->translate(KnownTranslationFactory::ip_get()));
$externalIP = Internet::getIP();
if($externalIP === false){
@ -220,15 +220,15 @@ LICENSE;
$internalIP = "unknown (" . $e->getMessage() . ")";
}
$this->error($this->lang->translateString(KnownTranslationKeys::IP_WARNING, ["EXTERNAL_IP" => $externalIP, "INTERNAL_IP" => $internalIP]));
$this->error($this->lang->get(KnownTranslationKeys::IP_CONFIRM));
$this->error($this->lang->translate(KnownTranslationFactory::ip_warning($externalIP, $internalIP)));
$this->error($this->lang->translate(KnownTranslationFactory::ip_confirm()));
$this->readLine();
}
private function endWizard() : void{
$this->message($this->lang->get(KnownTranslationKeys::YOU_HAVE_FINISHED));
$this->message($this->lang->get(KnownTranslationKeys::POCKETMINE_PLUGINS));
$this->message($this->lang->translateString(KnownTranslationKeys::POCKETMINE_WILL_START, [VersionInfo::NAME]));
$this->message($this->lang->translate(KnownTranslationFactory::you_have_finished()));
$this->message($this->lang->translate(KnownTranslationFactory::pocketmine_plugins()));
$this->message($this->lang->translate(KnownTranslationFactory::pocketmine_will_start(VersionInfo::NAME)));
$this->writeLine();
$this->writeLine();

View File

@ -54,7 +54,7 @@ use pocketmine\item\Item;
use pocketmine\item\ItemFactory;
use pocketmine\item\ItemUseResult;
use pocketmine\item\LegacyStringToItemParser;
use pocketmine\lang\KnownTranslationKeys;
use pocketmine\lang\KnownTranslationFactory;
use pocketmine\math\AxisAlignedBB;
use pocketmine\math\Vector3;
use pocketmine\nbt\NbtDataException;
@ -401,7 +401,7 @@ class World implements ChunkManager{
$this->minY = $this->provider->getWorldMinY();
$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);
//TODO: validate generator options
$this->chunkPopulationRequestQueue = new \SplQueue();

View File

@ -27,7 +27,7 @@ use pocketmine\entity\Entity;
use pocketmine\event\world\WorldInitEvent;
use pocketmine\event\world\WorldLoadEvent;
use pocketmine\event\world\WorldUnloadEvent;
use pocketmine\lang\KnownTranslationKeys;
use pocketmine\lang\KnownTranslationFactory;
use pocketmine\player\ChunkSelector;
use pocketmine\Server;
use pocketmine\timings\Timings;
@ -149,7 +149,7 @@ class WorldManager{
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{
$safeSpawn = $this->defaultWorld !== null ? $this->defaultWorld->getSafeSpawn() : null;
}catch(WorldException $e){
@ -193,12 +193,12 @@ class WorldManager{
$providers = $this->providerManager->getMatchingProviders($path);
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,
count($providers) === 0 ?
$this->server->getLanguage()->translateString(KnownTranslationKeys::POCKETMINE_LEVEL_UNKNOWNFORMAT) :
$this->server->getLanguage()->translateString(KnownTranslationKeys::POCKETMINE_LEVEL_AMBIGUOUSFORMAT, [implode(", ", array_keys($providers))])
]));
$this->server->getLanguage()->translate(KnownTranslationFactory::pocketmine_level_unknownFormat()) :
$this->server->getLanguage()->translate(KnownTranslationFactory::pocketmine_level_ambiguousFormat(implode(", ", array_keys($providers)))
))));
return false;
}
$providerClass = array_shift($providers);
@ -206,16 +206,16 @@ class WorldManager{
try{
$provider = $providerClass->fromPath($path);
}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;
}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;
}
try{
GeneratorManager::getInstance()->getGenerator($provider->getWorldData()->getGenerator(), true);
}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;
}
if(!($provider instanceof WritableWorldProvider)){
@ -265,7 +265,7 @@ class WorldManager{
(new WorldLoadEvent($world))->call();
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();
$centerX = $spawnLocation->getFloorX() >> 4;