diff --git a/.travis.yml b/.travis.yml index 1c46d5ed2..e06c9f64c 100644 --- a/.travis.yml +++ b/.travis.yml @@ -7,7 +7,7 @@ before_script: - pecl install channel://pecl.php.net/pthreads-0.0.44 script: - - php src/tests/ServerSuiteTest.php + - php src/tests/ServerSuiteTest.php --no-wizard notifications: email: false diff --git a/src/API/BlockAPI.php b/src/API/BlockAPI.php index 9411488cb..58e2ae6e7 100644 --- a/src/API/BlockAPI.php +++ b/src/API/BlockAPI.php @@ -336,11 +336,15 @@ class BlockAPI{ $item = $player->getSlot($player->slot); if($this->server->api->dhandle("player.block.touch", array("type" => "break", "player" => $player, "target" => $target, "item" => $item)) === false){ - return $this->cancelAction($target, $player, false); + if($this->server->api->dhandle("player.block.break.bypass", array("player" => $player, "target" => $target, "item" => $item)) !== true){ + return $this->cancelAction($target, $player, false); + } } if((!$target->isBreakable($item, $player) and $this->server->api->dhandle("player.block.break.invalid", array("player" => $player, "target" => $target, "item" => $item)) !== true) or ($player->gamemode & 0x02) === 0x02 or (($player->lastBreak - $player->getLag() / 1000) + $target->getBreakTime($item, $player) - 0.1) >= microtime(true)){ - return $this->cancelAction($target, $player, false); + if($this->server->api->dhandle("player.block.break.bypass", array("player" => $player, "target" => $target, "item" => $item)) !== true){ + return $this->cancelAction($target, $player, false); + } } $player->lastBreak = microtime(true); @@ -375,12 +379,16 @@ class BlockAPI{ $item = $player->getSlot($player->slot); if($target->getID() === AIR and $this->server->api->dhandle("player.block.place.invalid", array("player" => $player, "block" => $block, "target" => $target, "item" => $item)) !== true){ //If no block exists or not allowed in CREATIVE - $this->cancelAction($target, $player); - return $this->cancelAction($block, $player); + if($this->server->api->dhandle("player.block.place.bypass", array("player" => $player, "block" => $block, "target" => $target, "item" => $item)) !== true){ + $this->cancelAction($target, $player); + return $this->cancelAction($block, $player); + } } if($this->server->api->dhandle("player.block.touch", array("type" => "place", "player" => $player, "block" => $block, "target" => $target, "item" => $item)) === false){ - return $this->cancelAction($block, $player); + if($this->server->api->dhandle("player.block.place.bypass", array("player" => $player, "block" => $block, "target" => $target, "item" => $item)) !== true){ + return $this->cancelAction($block, $player); + } } $this->blockUpdate($target, BLOCK_UPDATE_TOUCH); @@ -391,7 +399,9 @@ class BlockAPI{ } if(($player->gamemode & 0x02) === 0x02){ //Adventure mode!! - return $this->cancelAction($block, $player, false); + if($this->server->api->dhandle("player.block.place.bypass", array("player" => $player, "block" => $block, "target" => $target, "item" => $item)) !== true){ + return $this->cancelAction($block, $player, false); + } } if($block->y > 127 or $block->y < 0){ @@ -422,7 +432,7 @@ class BlockAPI{ if($target->isReplaceable === true){ $block = $target; $hand->position($block); - $face = -1; + //$face = -1; } if($hand->isSolid === true and $player->entity->inBlock($block)){ diff --git a/src/API/LevelAPI.php b/src/API/LevelAPI.php index a597c9890..e2d143384 100644 --- a/src/API/LevelAPI.php +++ b/src/API/LevelAPI.php @@ -237,4 +237,9 @@ class LevelAPI{ } } -} \ No newline at end of file + public function getAll() + { + return $this->levels; + } + +} diff --git a/src/API/PlayerAPI.php b/src/API/PlayerAPI.php index 525798e9c..ed2e45d6a 100644 --- a/src/API/PlayerAPI.php +++ b/src/API/PlayerAPI.php @@ -402,7 +402,7 @@ class PlayerAPI{ public function spawnToAllPlayers(Player $player){ foreach($this->getAll() as $p){ - if($p !== $player and ($p->entity instanceof Entity)){ + if($p !== $player and ($p->entity instanceof Entity) and ($player->entity instanceof Entity)){ $player->entity->spawn($p); if($p->level !== $player->level){ $p->dataPacket(MC_MOVE_ENTITY_POSROT, array( diff --git a/src/API/ServerAPI.php b/src/API/ServerAPI.php index adcd7f02c..c909dd0e9 100644 --- a/src/API/ServerAPI.php +++ b/src/API/ServerAPI.php @@ -143,7 +143,7 @@ class ServerAPI{ $this->server = new PocketMinecraftServer($this->getProperty("server-name"), $this->getProperty("gamemode"), ($seed = $this->getProperty("level-seed")) != "" ? (int) $seed:false, $this->getProperty("server-port"), ($ip = $this->getProperty("server-ip")) != "" ? $ip:"0.0.0.0"); $this->server->api = $this; self::$serverRequest = $this->server; - console("[INFO] This server is running PocketMine-MP version ".($version->isDev() ? FORMAT_YELLOW:"").MAJOR_VERSION.FORMAT_RESET." (MCPE: ".CURRENT_MINECRAFT_VERSION.") (API ".CURRENT_API_VERSION.")", true, true, 0); + console("[INFO] This server is running PocketMine-MP version ".($version->isDev() ? FORMAT_YELLOW:"").MAJOR_VERSION.FORMAT_RESET." \"".CODENAME."\" (MCPE: ".CURRENT_MINECRAFT_VERSION.") (API ".CURRENT_API_VERSION.")", true, true, 0); console("[INFO] PocketMine-MP is distibuted under the LGPL License", true, true, 0); if($this->getProperty("upnp-forwarding") === true){ diff --git a/src/Player.php b/src/Player.php index 2ffea40ed..2eb21fd16 100644 --- a/src/Player.php +++ b/src/Player.php @@ -44,6 +44,7 @@ class Player{ private $startAction = false; private $isSleeping = false; public $data; + /** @var \Entity */ public $entity = false; public $auth = false; public $CID; @@ -78,6 +79,8 @@ class Player{ private $chunkCount = array(); private $received = array(); public $realmsData = array(); + /** @var \Level */ + public $level; public function __get($name){ if(isset($this->{$name})){ @@ -1297,7 +1300,11 @@ class Player{ if($u !== false){ $u->close("logged in from another location"); } - + if(!isset($this->CID) or $this->CID == null){ + console("[DEBUG] Player ".$this->username." does not have a CID", true, true, 2); + $this->CID = Utils::readLong(Utils::getRandomBytes(8, false)); + } + $this->server->api->player->add($this->CID); if($this->server->api->handle("player.join", $this) === false){ $this->close("join cancelled", false); @@ -1484,7 +1491,7 @@ class Player{ $data["eid"] = $this->eid; $data["player"] = $this; - if($data["slot"] === 0){ + if($data["slot"] === 0x28 or $data["slot"] === 0){ //0 for 0.8.0 compatibility $data["slot"] = -1; $data["item"] = BlockAPI::getItem(AIR, 0, 0); if($this->server->handle("player.equipment.change", $data) !== false){ diff --git a/src/build/compile.sh b/src/build/compile.sh index 3807fe9bb..3ec22f828 100755 --- a/src/build/compile.sh +++ b/src/build/compile.sh @@ -1,13 +1,13 @@ #!/bin/bash COMPILER_VERSION="0.14" -PHP_VERSION="5.5.7" +PHP_VERSION="5.5.8" ZEND_VM="GOTO" LIBEDIT_VERSION="0.3" ZLIB_VERSION="1.2.8" PTHREADS_VERSION="0.0.45" -CURL_VERSION="curl-7_33_0" +CURL_VERSION="curl-7_34_0" echo "[PocketMine] PHP installer and compiler for Linux & Mac" DIR="$(pwd)" @@ -20,6 +20,7 @@ type automake >> "$DIR/install.log" 2>&1 || { echo >&2 "[ERROR] Please install \ type libtool >> "$DIR/install.log" 2>&1 || { echo >&2 "[ERROR] Please install \"libtool\""; read -p "Press [Enter] to continue..."; exit 1; } type m4 >> "$DIR/install.log" 2>&1 || { echo >&2 "[ERROR] Please install \"m4\""; read -p "Press [Enter] to continue..."; exit 1; } type wget >> "$DIR/install.log" 2>&1 || { echo >&2 "[ERROR] Please install \"wget\""; read -p "Press [Enter] to continue..."; exit 1; } +type getconf >> "$DIR/install.log" 2>&1 || { echo >&2 "[ERROR] Please install \"getconf\""; read -p "Press [Enter] to continue..."; exit 1; } export CC="gcc" COMPILE_FOR_ANDROID=no @@ -77,9 +78,12 @@ elif [ "$1" == "crosscompile" ]; then exit 1 fi else - echo "[INFO] Compiling for current machine" - if [ $(uname -m) == "x86_64" ]; then - CFLAGS="-mx32 $CFLAGS" + if [ `getconf LONG_BIT` = "64" ]; then + echo "[INFO] Compiling for current machine using 64-bit" + CFLAGS="-m64 $CFLAGS" + else + echo "[INFO] Compiling for current machine using 32-bit" + CFLAGS="-m32 $CFLAGS" fi fi @@ -280,5 +284,5 @@ mv php5/bin/php bin/php rm -r -f php5/ >> "$DIR/install.log" 2>&1 date >> "$DIR/install.log" 2>&1 echo " done!" -echo "[PocketMine] You should start the server now using \"./start.sh\"" -echo "[PocketMine] If it doesn't works, please send the \"install.log\" file to the Bug Tracker" +echo "[PocketMine] You should start the server now using \"./start.sh.\"" +echo "[PocketMine] If it doesn't work, please send the \"install.log\" file to the Bug Tracker." diff --git a/src/config.php b/src/config.php index 5fbe130fd..f4f950f4c 100644 --- a/src/config.php +++ b/src/config.php @@ -59,9 +59,10 @@ set_include_path(get_include_path() . PATH_SEPARATOR . FILE_PATH); ini_set("memory_limit", "128M"); //Default define("LOG", true); define("START_TIME", microtime(true)); -define("MAJOR_VERSION", "Alpha_1.3.11dev"); -define("CURRENT_MINECRAFT_VERSION", "v0.8.0 alpha"); -define("CURRENT_API_VERSION", 11); +define("MAJOR_VERSION", "Alpha_1.3.12dev"); +define("CODENAME", "変梃(Henteko)マインカート(Minecart)"); +define("CURRENT_MINECRAFT_VERSION", "v0.8.1 alpha"); +define("CURRENT_API_VERSION", 12); define("CURRENT_PHP_VERSION", "5.5"); $gitsha1 = false; if(file_exists(FILE_PATH.".git/refs/heads/master")){ //Found Git information! diff --git a/src/dependencies.php b/src/dependencies.php index 921c9f9a9..c2c39f490 100644 --- a/src/dependencies.php +++ b/src/dependencies.php @@ -94,4 +94,10 @@ foreach($inc as $s){ $sha1sum ^= sha1_file($s, true); } /***REM_END***/ -define("SOURCE_SHA1SUM", bin2hex($sha1sum)); \ No newline at end of file +define("SOURCE_SHA1SUM", bin2hex($sha1sum)); + +/***REM_START***/ +if(!file_exists(DATA_PATH."server.properties") and arg("no-wizard", false) != true){ + $installer = new Installer(); +} +/***REM_END***/ \ No newline at end of file diff --git a/src/installer/Installer.php b/src/installer/Installer.php new file mode 100644 index 000000000..44f4db689 --- /dev/null +++ b/src/installer/Installer.php @@ -0,0 +1,287 @@ + $native){ + echo " $native => $short\n"; + } + do{ + echo "[?] Language (en): "; + $lang = strtolower($this->getInput("en")); + if(!isset(InstallerLang::$languages[$lang])){ + echo "[!] Couldn't find the language\n"; + $lang = false; + } + }while($lang == false); + $this->lang = new InstallerLang($lang); + echo "[*] ".$this->lang->language_has_been_selected."\n"; + echo "[?] ".$this->lang->skip_installer." (y/N): "; + if(strtolower($this->getInput()) === "y"){ + return; + } + echo "\n"; + $this->welcome(); + $this->generateBaseConfig(); + $this->generateUserFiles(); + + $this->networkFunctions(); + + $this->endWizard(); + } + + private function welcome(){ + echo $this->lang->welcome_to_pocketmine."\n"; + echo <<lang->accept_license." (y/N): "; + if(strtolower($this->getInput("n")) != "y"){ + echo "[!] ".$this->lang->you_have_to_accept_the_license."\n"; + sleep(5); + exit(0); + } + echo "[*] ".$this->lang->setting_up_server_now."\n"; + echo "[*] ".$this->lang->default_values_info."\n"; + echo "[*] ".$this->lang->server_properties."\n"; + + } + + private function generateBaseConfig(){ + $config = new Config(DATA_PATH . "server.properties", CONFIG_PROPERTIES); + echo "[?] ".$this->lang->name_your_server." (".self::DEFAULT_NAME."): "; + $config->set("server-name", $this->getInput(self::DEFAULT_NAME)); + echo "[*] ".$this->lang->port_warning."\n"; + do{ + echo "[?] ".$this->lang->server_port." (".self::DEFAULT_PORT."): "; + $port = (int) $this->getInput(self::DEFAULT_PORT); + if($port <= 0 or $port > 65535){ + echo "[!] ".$this->lang->invalid_port."\n"; + } + }while($port <= 0 or $port > 65535); + $config->set("server-port", $port); + echo "[*] ".$this->lang->ram_warning."\n"; + echo "[?] ".$this->lang->server_ram." (".self::DEFAULT_MEMORY."): "; + $config->set("gamemode", ((int) $this->getInput(self::DEFAULT_MEMORY))."M"); + echo "[*] ".$this->lang->gamemode_info."\n"; + do{ + echo "[?] ".$this->lang->default_gamemode.": (".self::DEFAULT_GAMEMODE."): "; + $gamemode = (int) $this->getInput(self::DEFAULT_GAMEMODE); + }while($gamemode < 0 or $gamemode > 3); + $config->set("gamemode", $gamemode); + echo "[?] ".$this->lang->max_players." (".self::DEFAULT_PLAYERS."): "; + $config->set("max-players", (int) $this->getInput(self::DEFAULT_PLAYERS)); + echo "[*] ".$this->lang->spawn_protection_info."\n"; + echo "[?] ".$this->lang->spawn_protection." (Y/n): "; + if(strtolower($this->getInput("y")) == "n"){ + $config->set("spawn-protection", -1); + }else{ + $config->set("spawn-protection", 16); + } + $config->save(); + } + + private function generateUserFiles(){ + echo "[*] ".$this->lang->op_info."\n"; + echo "[?] ".$this->lang->op_who.": "; + $op = strtolower($this->getInput("")); + if($op === ""){ + echo "[!] ".$this->lang->op_warning."\n"; + }else{ + $ops = new Config(DATA_PATH."ops.txt", CONFIG_LIST); + $ops->set($op, true); + $ops->save(); + } + echo "[*] ".$this->lang->whitelist_info."\n"; + echo "[?] ".$this->lang->whitelist_enable." (y/N): "; + $config = new Config(DATA_PATH . "server.properties", CONFIG_PROPERTIES); + if(strtolower($this->getInput("n")) === "y"){ + echo "[!] ".$this->lang->whitelist_warning."\n"; + $config->set("white-list", true); + }else{ + $config->set("white-list", false); + } + $config->save(); + } + + private function networkFunctions(){ + $config = new Config(DATA_PATH . "server.properties", CONFIG_PROPERTIES); + echo "[!] ".$this->lang->query_warning1."\n"; + echo "[!] ".$this->lang->query_warning2."\n"; + echo "[?] ".$this->lang->query_disable." (y/N): "; + if(strtolower($this->getInput("n")) === "y"){ + $config->set("enable-query", false); + }else{ + $config->set("enable-query", true); + } + + echo "[*] ".$this->lang->rcon_info."\n"; + echo "[?] ".$this->lang->rcon_enable." (y/N): "; + if(strtolower($this->getInput("n")) === "y"){ + $config->set("enable-rcon", true); + $password = substr(base64_encode(Utils::getRandomBytes(20, false)), 3, 10); + $config->set("rcon.password", $password); + echo "[*] ".$this->lang->rcon_password.": ".$password."\n"; + }else{ + $config->set("enable-rcon", false); + } + + echo "[*] ".$this->lang->usage_info."\n"; + echo "[?] ".$this->lang->usage_disable." (y/N): "; + if(strtolower($this->getInput("n")) === "y"){ + $config->set("send-usage", false); + }else{ + $config->set("send-usage", true); + } + $config->save(); + + + echo "[*] ".$this->lang->ip_get."\n"; + + $externalIP = Utils::getIP(); + $internalIP = gethostbyname(trim(`hostname`)); + + echo "[!] ".$this->lang->get("ip_warning", array("{{EXTERNAL_IP}}", "{{INTERNAL_IP}}"), array($externalIP, $internalIP))."\n"; + echo "[!] ".$this->lang->ip_confirm; + $this->getInput(); + } + + private function endWizard(){ + echo "[*] ".$this->lang->you_have_finished."\n"; + echo "[*] ".$this->lang->pocketmine_plugins."\n"; + echo "[*] ".$this->lang->pocketmine_will_start."\n\n\n"; + sleep(4); + } + + private function getInput($default = ""){ + $input = trim(fgets(STDIN)); + return $input === "" ? $default:$input; + } + + + } + + class InstallerLang{ + public static $languages = array( + "en" => "English", + "es" => "Español", + "zh" => "中文", + "ru" => "Pyccĸий", + "ja" => "日本語", + "de" => "Deutsch", + //"vi" => "Tiếng Việt", + "ko" => "한국어", + "fr" => "Français", + "it" => "Italiano", + //"lv" => "Latviešu", + "nl" => "Nederlands", + //"pt" => "Português", + //"sv" => "Svenska", + "fi" => "Suomi", + "tr" => "Türkçe", + //"et" => "Eesti", + ); + private $texts = array(); + private $lang; + private $langfile; + public function __construct($lang = ""){ + if(file_exists(FILE_PATH."src/lang/Installer/".$lang.".ini")){ + $this->lang = $lang; + $this->langfile = FILE_PATH."src/lang/Installer/".$lang.".ini"; + }else{ + $l = glob(FILE_PATH."src/lang/Installer/".$lang."_*.ini"); + if(count($l) > 0){ + $files = array(); + foreach($l as $file){ + $files[$file] = filesize($file); + } + arsort($files); + reset($files); + $l = key($files); + $l = substr($l, strrpos($l, "/") + 1, -4); + $this->lang = isset(self::$languages[$l]) ? $l:$lang; + $this->langfile = FILE_PATH."src/lang/Installer/".$l.".ini"; + }else{ + $this->lang = "en"; + $this->langfile = FILE_PATH."src/lang/Installer/en.ini"; + } + } + + $this->loadLang(FILE_PATH."src/lang/Installer/en.ini", "en"); + if($this->lang !== "en"){ + $this->loadLang($this->langfile, $this->lang); + } + + } + + public function getLang(){ + return ($this->lang); + } + + public function loadLang($langfile, $lang = "en"){ + $this->texts[$lang] = array(); + $texts = explode("\n", str_replace(array("\r", "\/\/"), array("", "//"), file_get_contents($langfile))); + foreach($texts as $line){ + $line = trim($line); + if($line === ""){ + continue; + } + $line = explode("=", $line); + $this->texts[$lang][array_shift($line)] = str_replace(array("\\n", "\\N",), "\n", implode("=", $line)); + } + } + + public function get($name, $search = array(), $replace = array()){ + if(!isset($this->texts[$this->lang][$name])){ + if($this->lang !== "en" and isset($this->texts["en"][$name])){ + return $this->texts["en"][$name]; + }else{ + return $name; + } + }elseif(count($search) > 0){ + return str_replace($search, $replace, $this->texts[$this->lang][$name]); + }else{ + return $this->texts[$this->lang][$name]; + } + } + + public function __get($name){ + return $this->get($name); + } + + } +/***REM_END***/ \ No newline at end of file diff --git a/src/lang/Installer/af_ZA.ini b/src/lang/Installer/af_ZA.ini new file mode 100644 index 000000000..6fb66a5e2 --- /dev/null +++ b/src/lang/Installer/af_ZA.ini @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/lang/Installer/ar_SA.ini b/src/lang/Installer/ar_SA.ini new file mode 100644 index 000000000..6fb66a5e2 --- /dev/null +++ b/src/lang/Installer/ar_SA.ini @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/lang/Installer/cs_CZ.ini b/src/lang/Installer/cs_CZ.ini new file mode 100644 index 000000000..6fb66a5e2 --- /dev/null +++ b/src/lang/Installer/cs_CZ.ini @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/lang/Installer/de_DE.ini b/src/lang/Installer/de_DE.ini new file mode 100644 index 000000000..ebe7f9d88 --- /dev/null +++ b/src/lang/Installer/de_DE.ini @@ -0,0 +1,45 @@ +language_has_been_selected=Englisch haben Sie richtig ausgewählt. +skip_installer=Möchten Sie den Setup-Assistenten überspringen? + +welcome_to_pocketmine=Willkommen auf PocketMine-MP!\nBevor Sie die Einrichtung Ihres neuen Server starten, müssen Sie die Lizenz akzeptieren. \nPocketMine-MP ist unter der LGPL-Lizenz, \ndamit Sie die LIZENZ in diesem Ordner lesen oder öffnen können. +accept_license=Akzeptieren Sie die Lizenz? +you_have_to_accept_the_license=Sie müssen die LGPL Lizenz akzeptieren, um weiterhin PocketMine-MP zu nutzen + +setting_up_server_now=Sie werden jetzt Ihren Server einrichten. +default_values_info=Wenn Sie nicht den Standardwert ändern möchten, drücken Sie einfach Enter. +server_properties=Sie können sie später in der server.properties Datei bearbeiten. + +name_your_server=Geben Sie einen Namen für Ihren Server ein +port_warning=Ändern Sie den Standard-Port-Wert nicht, wenn dies Ihr erster Server ist. +server_port=Server-Port +invalid_port=Ungültiger Server-Port +ram_warning=Der RAM ist die maximale Speichermenge die PocketMine-MP verwenden kann. Ein Wert zwischen 128 bis 256 MB wird empfohlen +server_ram=Server RAM in MB +gamemode_info=Wählen Sie zwischen Kreativ (1) oder Überleben (0) +default_gamemode=Standard Spielmodus +max_players=Max. Online-Spieler +spawn_protection_info=Der Spawn-Schutz verbietet Platzierung/Zerstörung der Blöcke in der Einstiegszone, was aber nicht für OPs gilt +spawn_protection=Aktiviere Spawn-Schutz? + +op_info=Ein OP ist der Admin Spieler des Servers. OPs können mehr Befehle ausführen als normale Spieler +op_who=OP Spieler Name (z.B. dein Spiel-Name) +op_warning=Sie werden in der Lage sein einen OP Benutzer später mit /op hinzuzufügen +whitelist_info=Nur die Spieler auf der white-list können zu ihrem Spiel verbinden. +whitelist_enable=Möchten Sie die white-list aktivieren? +whitelist_warning=Sie müssen die Spieler zur white-list hinzufügen + +query_warning1=Query ist ein Protokoll das von verschiedenen Tools verwendet wird, um Informationen von Ihrem Server und eingeloggten Spieler zu nehmen. +query_warning2=Wenn Sie es deaktivieren, werden Sie nicht in der Lage sein, Server-Listen zu verwenden. +query_disable=Wollen Sie Query deaktivieren? +rcon_info=RCON ist ein Protokoll für eine Remote-Verbindung mit der Server-Konsole, mit der Benutzung eines Passworts. +rcon_enable=Wollen Sie RCON aktivieren? +rcon_password=RCON Passwort (Sie können es später ändern) +usage_info=Die anonymen Nutzungsdaten ermöglichen es uns, globale Statistiken für PocketMine-MP und seine Plugins zu berechnen. Sie können sie auf stats.pocketmine.net ansehen +usage_disable=Wollen Sie die anonyme Nutzung deaktivieren? +ip_get=Bekomme deine externe IP und interne IP +ip_warning=Ihre externe IP ist {{EXTERNAL_IP}}. Evtl. musst Du einen port-forward auf deine interne IP {{INTERNAL_IP}} machen +ip_confirm=Achten Sie darauf, wenn Sie den Port forwarden müssen und Sie es überspringen, dass keine externen Spieler beitreten können. [Drücke Enter] + +you_have_finished=Sie haben den Setup-Assistenten korrekt beendet +pocketmine_will_start=PocketMine-MP wird nun gestartet. Tippe /help um die Liste der verfügbaren Befehle anzuzeigen. +pocketmine_plugins=Überprüfen Sie das Plugin Repository um neue Features, Minispiele, oder einen erweiterten Schutz für Ihren Server hinzuzufügen diff --git a/src/lang/Installer/el_GR.ini b/src/lang/Installer/el_GR.ini new file mode 100644 index 000000000..6fb66a5e2 --- /dev/null +++ b/src/lang/Installer/el_GR.ini @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/lang/Installer/en.ini b/src/lang/Installer/en.ini new file mode 100644 index 000000000..c1fb634f7 --- /dev/null +++ b/src/lang/Installer/en.ini @@ -0,0 +1,45 @@ +language_has_been_selected=English has been correctly selected. +skip_installer=Do you want to skip the set-up wizard? + +welcome_to_pocketmine=Welcome to PocketMine-MP!\nBefore starting setting up your new server you have to accept the license.\nPocketMine-MP is licensed under the LGPL License,\nthat you can read opening the LICENSE file on this folder. +accept_license=Do you accept the License? +you_have_to_accept_the_license=You have to accept the LGPL license to continue using PocketMine-MP + +setting_up_server_now=You are going to set up your server now. +default_values_info=If you don't want to change the default value, just press Enter. +server_properties=You can edit them later on the server.properties file. + +name_your_server=Give a name to your server +port_warning=Do not change the default port value if this is your first server. +server_port=Server port +invalid_port=Invalid server port +ram_warning=The RAM is the maximum amount of memory PocketMine-MP will use. A value of 128-256 MB is recommended +server_ram=Server RAM in MB +gamemode_info=Choose between Creative (1) or Survival (0) +default_gamemode=Default Game mode +max_players=Max. online players +spawn_protection_info=The spawn protection disallows placing/breaking blocks in the spawn zone except for OPs +spawn_protection=Enable spawn protection? + +op_info=An OP is the player admin of the server. OPs can run more commands than normal players +op_who=OP player name (example, your game name) +op_warning=You will be able to add an OP user later using /op +whitelist_info=The white-list only allows players in it to join. +whitelist_enable=Do you want to enable the white-list? +whitelist_warning=You will have to add the players to the white-list + +query_warning1=Query is a protocol used by diferent tools to get information of your server and players logged in. +query_warning2=If you disable it, you won't be able to use server lists. +query_disable=Do you want to disable Query? +rcon_info=RCON is a protocol to remote connect with the server console using a password. +rcon_enable=Do you want to enable RCON? +rcon_password=RCON password (you can change it later) +usage_info=The anonymous usage data allows us to calculate global statistics for PocketMine-MP and its plugins. You can view them on stats.pocketmine.net +usage_disable=Do you want to disable the anonymous usage? +ip_get=Getting your external IP and internal IP +ip_warning=Your external IP is {{EXTERNAL_IP}}. You may have to port-forward to your internal IP {{INTERNAL_IP}} +ip_confirm=Be sure to check it, if you have to forward and you skip that, no external players will be able to join. [Press Enter] + +you_have_finished=You have finished the set-up wizard correctly +pocketmine_will_start=PocketMine-MP will now start. Type /help to view the list of available commands. +pocketmine_plugins=Check the Plugin Repository to add new features, minigames, or advanced protection to your server \ No newline at end of file diff --git a/src/lang/Installer/en_AU.ini b/src/lang/Installer/en_AU.ini new file mode 100644 index 000000000..86899b95e --- /dev/null +++ b/src/lang/Installer/en_AU.ini @@ -0,0 +1,45 @@ +language_has_been_selected=English has been correctly selected. +skip_installer=Do you want to skip the set-up wizard? + +welcome_to_pocketmine=Welcome to PocketMine-MP!\nBefore starting setting up your new server you have to accept the license.\nPocketMine-MP is licensed under the LGPL License,\nthat you can read opening the LICENSE file on this folder. +accept_license=Do you accept the License? +you_have_to_accept_the_license=You have to accept the LGPL license to continue using PocketMine-MP + +setting_up_server_now=You are going to set up your server now. +default_values_info=If you don't want to change the default value, just press Enter. +server_properties=You can edit them later on the server.properties file. + +name_your_server=Give a name to your server +port_warning=Do not change the default port value if this is your first server. +server_port=Server port +invalid_port=Invalid server port +ram_warning=The RAM is the maximum amount of memory PocketMine-MP will use. A value of 128-256 MB is recommended +server_ram=Server RAM in MB +gamemode_info=Choose between Creative (1) or Survival (0) +default_gamemode=Default Game mode +max_players=Max. online players +spawn_protection_info=The spawn protection disallows placing/breaking blocks in the spawn zone except for OPs +spawn_protection=Enable spawn protection? + +op_info=An OP is the player admin of the server. OPs can run more commands than normal players +op_who=OP player name (example, your game name) +op_warning=You will be able to add an OP user later using /op +whitelist_info=The white-list only allows players in it to join. +whitelist_enable=Do you want to enable the white-list? +whitelist_warning=You will have to add the players to the white-list + +query_warning1=Query is a protocol used by diferent tools to get information of your server and players logged in. +query_warning2=If you disable it, you won't be able to use server lists. +query_disable=Do you want to disable Query? +rcon_info=RCON is a protocol to remote connect with the server console using a password. +rcon_enable=Do you want to enable RCON? +rcon_password=RCON password (you can change it later) +usage_info=The anonymous usage data allows us to calculate global statistics for PocketMine-MP and its plugins. You can view them on stats.pocketmine.net +usage_disable=Do you want to disable the anonymous usage? +ip_get=Getting your external IP and internal IP +ip_warning=Your external IP is {{EXTERNAL_IP}}. You may have to port-forward to your internal IP {{INTERNAL_IP}} +ip_confirm=Be sure to check it, if you have to forward and you skip that, no external players will be able to join. [Press Enter] + +you_have_finished=You have finished the set-up wizard correctly +pocketmine_will_start=PocketMine-MP will now start. Type /help to view the list of available commands. +pocketmine_plugins=Check the Plugin Repository to add new features, minigames, or advanced protection to your server diff --git a/src/lang/Installer/en_CA.ini b/src/lang/Installer/en_CA.ini new file mode 100644 index 000000000..86899b95e --- /dev/null +++ b/src/lang/Installer/en_CA.ini @@ -0,0 +1,45 @@ +language_has_been_selected=English has been correctly selected. +skip_installer=Do you want to skip the set-up wizard? + +welcome_to_pocketmine=Welcome to PocketMine-MP!\nBefore starting setting up your new server you have to accept the license.\nPocketMine-MP is licensed under the LGPL License,\nthat you can read opening the LICENSE file on this folder. +accept_license=Do you accept the License? +you_have_to_accept_the_license=You have to accept the LGPL license to continue using PocketMine-MP + +setting_up_server_now=You are going to set up your server now. +default_values_info=If you don't want to change the default value, just press Enter. +server_properties=You can edit them later on the server.properties file. + +name_your_server=Give a name to your server +port_warning=Do not change the default port value if this is your first server. +server_port=Server port +invalid_port=Invalid server port +ram_warning=The RAM is the maximum amount of memory PocketMine-MP will use. A value of 128-256 MB is recommended +server_ram=Server RAM in MB +gamemode_info=Choose between Creative (1) or Survival (0) +default_gamemode=Default Game mode +max_players=Max. online players +spawn_protection_info=The spawn protection disallows placing/breaking blocks in the spawn zone except for OPs +spawn_protection=Enable spawn protection? + +op_info=An OP is the player admin of the server. OPs can run more commands than normal players +op_who=OP player name (example, your game name) +op_warning=You will be able to add an OP user later using /op +whitelist_info=The white-list only allows players in it to join. +whitelist_enable=Do you want to enable the white-list? +whitelist_warning=You will have to add the players to the white-list + +query_warning1=Query is a protocol used by diferent tools to get information of your server and players logged in. +query_warning2=If you disable it, you won't be able to use server lists. +query_disable=Do you want to disable Query? +rcon_info=RCON is a protocol to remote connect with the server console using a password. +rcon_enable=Do you want to enable RCON? +rcon_password=RCON password (you can change it later) +usage_info=The anonymous usage data allows us to calculate global statistics for PocketMine-MP and its plugins. You can view them on stats.pocketmine.net +usage_disable=Do you want to disable the anonymous usage? +ip_get=Getting your external IP and internal IP +ip_warning=Your external IP is {{EXTERNAL_IP}}. You may have to port-forward to your internal IP {{INTERNAL_IP}} +ip_confirm=Be sure to check it, if you have to forward and you skip that, no external players will be able to join. [Press Enter] + +you_have_finished=You have finished the set-up wizard correctly +pocketmine_will_start=PocketMine-MP will now start. Type /help to view the list of available commands. +pocketmine_plugins=Check the Plugin Repository to add new features, minigames, or advanced protection to your server diff --git a/src/lang/Installer/en_GB.ini b/src/lang/Installer/en_GB.ini new file mode 100644 index 000000000..86899b95e --- /dev/null +++ b/src/lang/Installer/en_GB.ini @@ -0,0 +1,45 @@ +language_has_been_selected=English has been correctly selected. +skip_installer=Do you want to skip the set-up wizard? + +welcome_to_pocketmine=Welcome to PocketMine-MP!\nBefore starting setting up your new server you have to accept the license.\nPocketMine-MP is licensed under the LGPL License,\nthat you can read opening the LICENSE file on this folder. +accept_license=Do you accept the License? +you_have_to_accept_the_license=You have to accept the LGPL license to continue using PocketMine-MP + +setting_up_server_now=You are going to set up your server now. +default_values_info=If you don't want to change the default value, just press Enter. +server_properties=You can edit them later on the server.properties file. + +name_your_server=Give a name to your server +port_warning=Do not change the default port value if this is your first server. +server_port=Server port +invalid_port=Invalid server port +ram_warning=The RAM is the maximum amount of memory PocketMine-MP will use. A value of 128-256 MB is recommended +server_ram=Server RAM in MB +gamemode_info=Choose between Creative (1) or Survival (0) +default_gamemode=Default Game mode +max_players=Max. online players +spawn_protection_info=The spawn protection disallows placing/breaking blocks in the spawn zone except for OPs +spawn_protection=Enable spawn protection? + +op_info=An OP is the player admin of the server. OPs can run more commands than normal players +op_who=OP player name (example, your game name) +op_warning=You will be able to add an OP user later using /op +whitelist_info=The white-list only allows players in it to join. +whitelist_enable=Do you want to enable the white-list? +whitelist_warning=You will have to add the players to the white-list + +query_warning1=Query is a protocol used by diferent tools to get information of your server and players logged in. +query_warning2=If you disable it, you won't be able to use server lists. +query_disable=Do you want to disable Query? +rcon_info=RCON is a protocol to remote connect with the server console using a password. +rcon_enable=Do you want to enable RCON? +rcon_password=RCON password (you can change it later) +usage_info=The anonymous usage data allows us to calculate global statistics for PocketMine-MP and its plugins. You can view them on stats.pocketmine.net +usage_disable=Do you want to disable the anonymous usage? +ip_get=Getting your external IP and internal IP +ip_warning=Your external IP is {{EXTERNAL_IP}}. You may have to port-forward to your internal IP {{INTERNAL_IP}} +ip_confirm=Be sure to check it, if you have to forward and you skip that, no external players will be able to join. [Press Enter] + +you_have_finished=You have finished the set-up wizard correctly +pocketmine_will_start=PocketMine-MP will now start. Type /help to view the list of available commands. +pocketmine_plugins=Check the Plugin Repository to add new features, minigames, or advanced protection to your server diff --git a/src/lang/Installer/en_PT.ini b/src/lang/Installer/en_PT.ini new file mode 100644 index 000000000..6fb66a5e2 --- /dev/null +++ b/src/lang/Installer/en_PT.ini @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/lang/Installer/en_US.ini b/src/lang/Installer/en_US.ini new file mode 100644 index 000000000..86899b95e --- /dev/null +++ b/src/lang/Installer/en_US.ini @@ -0,0 +1,45 @@ +language_has_been_selected=English has been correctly selected. +skip_installer=Do you want to skip the set-up wizard? + +welcome_to_pocketmine=Welcome to PocketMine-MP!\nBefore starting setting up your new server you have to accept the license.\nPocketMine-MP is licensed under the LGPL License,\nthat you can read opening the LICENSE file on this folder. +accept_license=Do you accept the License? +you_have_to_accept_the_license=You have to accept the LGPL license to continue using PocketMine-MP + +setting_up_server_now=You are going to set up your server now. +default_values_info=If you don't want to change the default value, just press Enter. +server_properties=You can edit them later on the server.properties file. + +name_your_server=Give a name to your server +port_warning=Do not change the default port value if this is your first server. +server_port=Server port +invalid_port=Invalid server port +ram_warning=The RAM is the maximum amount of memory PocketMine-MP will use. A value of 128-256 MB is recommended +server_ram=Server RAM in MB +gamemode_info=Choose between Creative (1) or Survival (0) +default_gamemode=Default Game mode +max_players=Max. online players +spawn_protection_info=The spawn protection disallows placing/breaking blocks in the spawn zone except for OPs +spawn_protection=Enable spawn protection? + +op_info=An OP is the player admin of the server. OPs can run more commands than normal players +op_who=OP player name (example, your game name) +op_warning=You will be able to add an OP user later using /op +whitelist_info=The white-list only allows players in it to join. +whitelist_enable=Do you want to enable the white-list? +whitelist_warning=You will have to add the players to the white-list + +query_warning1=Query is a protocol used by diferent tools to get information of your server and players logged in. +query_warning2=If you disable it, you won't be able to use server lists. +query_disable=Do you want to disable Query? +rcon_info=RCON is a protocol to remote connect with the server console using a password. +rcon_enable=Do you want to enable RCON? +rcon_password=RCON password (you can change it later) +usage_info=The anonymous usage data allows us to calculate global statistics for PocketMine-MP and its plugins. You can view them on stats.pocketmine.net +usage_disable=Do you want to disable the anonymous usage? +ip_get=Getting your external IP and internal IP +ip_warning=Your external IP is {{EXTERNAL_IP}}. You may have to port-forward to your internal IP {{INTERNAL_IP}} +ip_confirm=Be sure to check it, if you have to forward and you skip that, no external players will be able to join. [Press Enter] + +you_have_finished=You have finished the set-up wizard correctly +pocketmine_will_start=PocketMine-MP will now start. Type /help to view the list of available commands. +pocketmine_plugins=Check the Plugin Repository to add new features, minigames, or advanced protection to your server diff --git a/src/lang/Installer/es_AR.ini b/src/lang/Installer/es_AR.ini new file mode 100644 index 000000000..0d3d9ba50 --- /dev/null +++ b/src/lang/Installer/es_AR.ini @@ -0,0 +1,45 @@ +language_has_been_selected=Español sido seleccionado correctamente. +skip_installer=Quieres saltarte el asistente de configuración? + +welcome_to_pocketmine=Bienvenido a PocketMine-MP!\nAntes de comenzar a configurar tu nuevo servidor, tienes que aceptar la licencia.\nPocketMine-MP está licenciado con la licencia LGPL,\nque puedes leer abriendo el archivo LICENSE en esta carpeta. +accept_license=¿Aceptas la Licencia? +you_have_to_accept_the_license=Tienes que aceptar la licencia LGPL antes de continuar usando PocketMine-MP + +setting_up_server_now=La configuración del servidor va a comenzar. +default_values_info=Si no quieres cambiar el valor por defecto, pulsa Enter. +server_properties=Puedes editar todo despues en el fichero server.properties. + +name_your_server=Nombre del servidor +port_warning=No cambies el puerto por defecto si este es tu primer servidor. +server_port=Puerto del servidor +invalid_port=Puerto inválido +ram_warning=La RAM esla máxima memoria que PocketMine-MP usará. Es recomendado usar un valor de 128-256 MB +server_ram=RAM del servidor en MB +gamemode_info=Elige entre Creativo (1) o Supervivencia (0) +default_gamemode=Modo de juego por defecto +max_players=Límite de jugadores +spawn_protection_info=La protección del inicio bloquea poner/romper bloques en la zona de inicio, excepto los OPs +spawn_protection=¿Activar protección de inicio? + +op_info=Un OP es el jugador administrador del servidor. Los OPs pueden usar más comandos que los jugadores normales +op_who=Jugador OP (por ejemplo, tu nombre de jugador) +op_warning=Podrás añadir mas OPs después usando /op +whitelist_info=La lista blanca permite entrar únicamente a los jugadores en ella. +whitelist_enable=¿Quieres activar la lista blanca? +whitelist_warning=Tendrás que añadir los jugadores a la lista blanca + +query_warning1=Query es un protocolo usado por diferentes herramientas para conseguir informacion de tu servidor y los jugadores conectados. +query_warning2=Si lo desactivas, no podrás usar listas de servidores. +query_disable=¿Quieres desactivar Query? +rcon_info=RCON es un protocolo que permite conectarte a la consola del servidor usando una contraseña. +rcon_enable=¿Queres activar RCON? +rcon_password=Contraseña RCON (puedes cambiarla después) +usage_info=Los datos de uso anónimos nos permiten calcular estadísticas globales para PocketMine-MP y sus plugins. Puedes verlas en stats.pocketmine.net +usage_disable=¿Quieres desactivar las datos de uso anónimos? +ip_get=Obteniendo tu IP externa e IP interna +ip_warning=Tu IP externa es {{EXTERNAL_IP}}. Quizás debas redireccionar el puerto a tu IP interna {{INTERNAL_IP}} +ip_confirm=Asegúrate de comprobarlo, ya que si debes hacerlo y lo saltas, ningún jugador externo podra entrar. [Pulsa Enter] + +you_have_finished=Has completado el asistente de configuración correctamente +pocketmine_will_start=PocketMine-MP se iniciará ahora. Escribe /help para ver la lista de los comandos disponibles. +pocketmine_plugins=Ves al Repositorio de Plugins para añadir nuevas funcionalidades, minijuegos o protección avanzada a tu servidor diff --git a/src/lang/Installer/es_ES.ini b/src/lang/Installer/es_ES.ini new file mode 100644 index 000000000..0d3d9ba50 --- /dev/null +++ b/src/lang/Installer/es_ES.ini @@ -0,0 +1,45 @@ +language_has_been_selected=Español sido seleccionado correctamente. +skip_installer=Quieres saltarte el asistente de configuración? + +welcome_to_pocketmine=Bienvenido a PocketMine-MP!\nAntes de comenzar a configurar tu nuevo servidor, tienes que aceptar la licencia.\nPocketMine-MP está licenciado con la licencia LGPL,\nque puedes leer abriendo el archivo LICENSE en esta carpeta. +accept_license=¿Aceptas la Licencia? +you_have_to_accept_the_license=Tienes que aceptar la licencia LGPL antes de continuar usando PocketMine-MP + +setting_up_server_now=La configuración del servidor va a comenzar. +default_values_info=Si no quieres cambiar el valor por defecto, pulsa Enter. +server_properties=Puedes editar todo despues en el fichero server.properties. + +name_your_server=Nombre del servidor +port_warning=No cambies el puerto por defecto si este es tu primer servidor. +server_port=Puerto del servidor +invalid_port=Puerto inválido +ram_warning=La RAM esla máxima memoria que PocketMine-MP usará. Es recomendado usar un valor de 128-256 MB +server_ram=RAM del servidor en MB +gamemode_info=Elige entre Creativo (1) o Supervivencia (0) +default_gamemode=Modo de juego por defecto +max_players=Límite de jugadores +spawn_protection_info=La protección del inicio bloquea poner/romper bloques en la zona de inicio, excepto los OPs +spawn_protection=¿Activar protección de inicio? + +op_info=Un OP es el jugador administrador del servidor. Los OPs pueden usar más comandos que los jugadores normales +op_who=Jugador OP (por ejemplo, tu nombre de jugador) +op_warning=Podrás añadir mas OPs después usando /op +whitelist_info=La lista blanca permite entrar únicamente a los jugadores en ella. +whitelist_enable=¿Quieres activar la lista blanca? +whitelist_warning=Tendrás que añadir los jugadores a la lista blanca + +query_warning1=Query es un protocolo usado por diferentes herramientas para conseguir informacion de tu servidor y los jugadores conectados. +query_warning2=Si lo desactivas, no podrás usar listas de servidores. +query_disable=¿Quieres desactivar Query? +rcon_info=RCON es un protocolo que permite conectarte a la consola del servidor usando una contraseña. +rcon_enable=¿Queres activar RCON? +rcon_password=Contraseña RCON (puedes cambiarla después) +usage_info=Los datos de uso anónimos nos permiten calcular estadísticas globales para PocketMine-MP y sus plugins. Puedes verlas en stats.pocketmine.net +usage_disable=¿Quieres desactivar las datos de uso anónimos? +ip_get=Obteniendo tu IP externa e IP interna +ip_warning=Tu IP externa es {{EXTERNAL_IP}}. Quizás debas redireccionar el puerto a tu IP interna {{INTERNAL_IP}} +ip_confirm=Asegúrate de comprobarlo, ya que si debes hacerlo y lo saltas, ningún jugador externo podra entrar. [Pulsa Enter] + +you_have_finished=Has completado el asistente de configuración correctamente +pocketmine_will_start=PocketMine-MP se iniciará ahora. Escribe /help para ver la lista de los comandos disponibles. +pocketmine_plugins=Ves al Repositorio de Plugins para añadir nuevas funcionalidades, minijuegos o protección avanzada a tu servidor diff --git a/src/lang/Installer/es_MX.ini b/src/lang/Installer/es_MX.ini new file mode 100644 index 000000000..92bd6d42b --- /dev/null +++ b/src/lang/Installer/es_MX.ini @@ -0,0 +1,45 @@ +language_has_been_selected=Español seleccionado. +skip_installer=Deseas omitir el asistente de configuración? + +welcome_to_pocketmine=¡Bienvenido a PocketMine-MP!\nAntes de empezar a configurar tu nuevo servidor necesitas aceptar la licensia.\nLa licensia de PocketMine-MP esta bajo la licensia LGPL,\n que puedes leer abriendo el archivo "License" en esta carpeta. +accept_license=Aceptas la licensia? +you_have_to_accept_the_license=Debes aceptar la licensia de LPGL para continuar utilizando PocketMine-MP + +setting_up_server_now=Empezemos con la configuración. +default_values_info=Si no quieres cambiar los valores predeterminados pulsa Enter. +server_properties=Puedes editarlos despues editando el archivo "server.properties". + +name_your_server=Escribe el nombre de tu servidor +port_warning=No cambies el puerto predeterminado si este es tu primer servidor. +server_port=Puerto del servidor +invalid_port=Puerto invalido +ram_warning=La RAM es la máxima memoria que PocketMine-MP usará. Se recomienda utilizar un mínimo de 128 MB +server_ram=RAM del servidor en MB +gamemode_info=Escoge entre Creativo (1) o Survival (0) +default_gamemode=Modo de juego predeterminado +max_players=Límite de jugadores +spawn_protection_info=La protección del inicio impide poner/romper bloques en la zona de aparición, a excepción de los OPs +spawn_protection=Activar la protección del spawn? + +op_info=Un OP es el administrador del servidor. Los OPs pueden ejecutar más comandos que los usuarios normales +op_who=OP nombre del jugador (Por ejemplo: Tu nombre de Minecraft) +op_warning=Podrás añadir más usuarios a la lista de OPs después, utilizando el comando /op +whitelist_info=La lista blanca (white-list) permite hacer una lista de invitados, solo los usuarios en la lista podrán entrar a tu servidor. +whitelist_enable=¿Deseas activar la lista blanca? +whitelist_warning=Tendrás que añadir usuarios a la lista blanca + +query_warning1=Query es un protocolo usado por diferentes herramientas para conseguir informacion de tu servidor y los jugadores conectados. +query_warning2=Si lo desactivas, no podrás registrar tu servidor en una lista de servidores. +query_disable=¿Quieres desactivar Query? +rcon_info=RCON es un protocolo que te permite conectarte a la consola de tu servidor usando una contraseña. +rcon_enable=¿Queres activar RCON? +rcon_password=Contraseña para RCON (puedes cambiarla después) +usage_info=Los datos de uso anónimos nos permiten calcular estadísticas globales para PocketMine-MP y sus plugins. Puedes verlas en stats.pocketmine.net +usage_disable=¿Quieres desactivar las datos de uso anónimos? +ip_get=Obteniendo tu IP externa e IP interna +ip_warning=Tu IP externa es {{EXTERNAL_IP}}. Quizás debas redireccionar el puerto a tu IP interna: {{INTERNAL_IP}} +ip_confirm=Asegúrate de que este bien, ya que si debes hacerlo y lo saltas, ningún jugador podrá entrar si esta fuera de tu red WIFI. [Pulsa Enter] + +you_have_finished=Has completado el asistente de configuración correctamente +pocketmine_will_start=PocketMine-MP se iniciará ahora. Escribe /help para ver la lista de los comandos disponibles. +pocketmine_plugins=Ve al Repositorio de Plugins para añadir nuevas funciones, minijuegos o protección avanzada a tu servidor diff --git a/src/lang/Installer/et_EE.ini b/src/lang/Installer/et_EE.ini new file mode 100644 index 000000000..6fb66a5e2 --- /dev/null +++ b/src/lang/Installer/et_EE.ini @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/lang/Installer/fi_FI.ini b/src/lang/Installer/fi_FI.ini new file mode 100644 index 000000000..bdfa7ab6f --- /dev/null +++ b/src/lang/Installer/fi_FI.ini @@ -0,0 +1,7 @@ + + + +default_gamemode=Normaali Peli Tila + + + diff --git a/src/lang/Installer/fr_FR.ini b/src/lang/Installer/fr_FR.ini new file mode 100644 index 000000000..035e5be66 --- /dev/null +++ b/src/lang/Installer/fr_FR.ini @@ -0,0 +1,45 @@ +language_has_been_selected=Français a été correctement sélectionné. +skip_installer=Voulez-vous passer l'assistant d'installation? + +welcome_to_pocketmine=Bienvenue sur PocketMine-MP!\nAvant de commencer à paramétrer votre nouveau serveur, vous devez accepter la license d'utilisation.\nPocketMine-MP est sous licence LGPL,\nvous pouvez la lire en ouvrant le fichier LICENSE dans ce dossier. +accept_license=Acceptez-vous la Licence? +you_have_to_accept_the_license=Vous devez accepter la licence LGPL pour continuer à utiliser PocketMine-MP + +setting_up_server_now=Vous êtes maintenant prêt à paramétrer votre serveur. +default_values_info=Si vous ne voulez pas changer la valeur par défaut, pressez juste Enter. +server_properties=Vous pouvez éditer cela plus tard dans le fichier server.properties. + +name_your_server=Donnez un nom à votre serveur +port_warning=Ne changez pas la valeur par défaut du port si c'est votre premier serveur. +server_port=Port du serveur +invalid_port=Port du serveur invalide +ram_warning=La RAM est au maximum de sa capacité par rapport à la mémoire utilisée par PocketMine-MP. Une valeur de 128-256 MB est recommandée +server_ram=RAM du serveur en MB +gamemode_info=Choisir entre Créatif (1) ou Survie (1) +default_gamemode=Mode de jeu par défaut +max_players=Joueurs max. en ligne +spawn_protection_info=La protection de spawn désactive le placement/cassement de blocs dans la zone de spawn excepté pour les OPs +spawn_protection=Activer la protection de spawn? + +op_info=Un OP est un administrateur du serveur. Les OPs peuvent exécuter plus de commandes que les joueurs normaux +op_who=Nom de joueur OP (exemple, votre nom de jeu) +op_warning=Vous serez en mesure d'ajouter un OP plus tard en utilisant /op +whitelist_info=La white-list autorise seulement les joueurs présents sur celle-ci. +whitelist_enable=Voulez-vous activer la white-list? +whitelist_warning=Vous devrez ajouter les joueurs à la white-list + +query_warning1=Query est un protocole utilisé par différents outils pour avoir des informations sur votre serveur et les joueurs connectés. +query_warning2=Si vous le désactivez, vous ne pourrez pas utiliser les listes du serveur. +query_disable=Voulez-vous désactiver Query? +rcon_info=RCON est un protocole pour se connecter à distance à la console du serveur par un mot de passe. +rcon_enable=Voulez-vous activer RCON? +rcon_password=Mot de passe RCON (vous pouvez le changer plus tard) +usage_info=Les données d'utilisation anonyme vous permettent de calculer les statistiques globales de PocketMine-MP et ses plugins. Vous pouvez les voir sur stats.pocketmine.net +usage_disable=Voulez-vous désactiver l'utilisation anonyme? +ip_get=Obtention de votre IP externe et IP interne +ip_warning=Votre IP externe est {{EXTERNAL_IP}}. Vous pourriez avoir à transmettre au port votre IP interne {{INTERNAL_IP}} +ip_confirm=Vérifiez-le bien, si vous avancez et sautez cette étape, les joueurs extérieurs ne pourront pas rejoindre votre serveur. [Tapez Enter] + +you_have_finished=Vous avez correctement terminé l'assistant d'installation +pocketmine_will_start=PocketMine-MP démarre. Tapez /help pour voir la liste des commandes disponibles. +pocketmine_plugins=Vérification du répertoire de plugin pour ajouter des nouvelles caractéristiques, mini-jeux, ou une protection avancée de votre serveur diff --git a/src/lang/Installer/ga_IE.ini b/src/lang/Installer/ga_IE.ini new file mode 100644 index 000000000..6fb66a5e2 --- /dev/null +++ b/src/lang/Installer/ga_IE.ini @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/lang/Installer/he_IL.ini b/src/lang/Installer/he_IL.ini new file mode 100644 index 000000000..6fb66a5e2 --- /dev/null +++ b/src/lang/Installer/he_IL.ini @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/lang/Installer/id_ID.ini b/src/lang/Installer/id_ID.ini new file mode 100644 index 000000000..6fb66a5e2 --- /dev/null +++ b/src/lang/Installer/id_ID.ini @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/lang/Installer/it_IT.ini b/src/lang/Installer/it_IT.ini new file mode 100644 index 000000000..d66b9f79d --- /dev/null +++ b/src/lang/Installer/it_IT.ini @@ -0,0 +1,45 @@ +language_has_been_selected=Italiano selezionato correttamente. +skip_installer=Vuoi evitare il programma di installazione? + +welcome_to_pocketmine=Benvenuto in PocketMine-MP!\nPrima di iniziare a impostare il tuo nuovo server devi accettare la licenza.\nPocketMine-MP è distribuito sotto licenza LGPL,\nche potrai leggere aprendo il file LICNESE in questa cartella. +accept_license=Accetti i termini della licenza? +you_have_to_accept_the_license=Devi accettare i termini della licenza LGPL per continuare ad usare PocketMine-MP + +setting_up_server_now=Stai per iniziare ad impostare il tuo server. +default_values_info=Se non vuoi cambiare i valori proposti, premi Invio. +server_properties=Potrai modificarli in seguito nel file server.properties. + +name_your_server=Dai un nome al tuo server +port_warning=Non cambiare la porta predefinita se questo è il tuo primo server. +server_port=Porta del server +invalid_port=Porta del server non valida +ram_warning=La RAM è la massima quantità di memoria che PocketMine-MP potrà usare. Un valore di 128-256 MB è raccomandata +server_ram=RAM del server in MB +gamemode_info=Scegli tra Creative (1) o Survival (0) +default_gamemode=Modalità di gioco predefinita +max_players=Players massimi +spawn_protection_info=La protezione dello spawn non permette di piazzare/rompere blocchi nella zona di spawn, ad eccezione degli Operatori +spawn_protection=Abilitare la protezione dello spawn? + +op_info=Un Operatore (OP) è un player amministratore del server. Gli operatori possono usare più comandi dei players normali +op_who=Nome del player OP (ad esempio, il tuo nome in gioco) +op_warning=Sarà possibile aggiungere un player OP più tardi con /op +whitelist_info=La white-list permette solo ad i players in lista di entrare. +whitelist_enable=Vuoi abilitare la white-list? +whitelist_warning=Dovrai aggiungere i players in white-list + +query_warning1=Query è un protocollo usato da differenti programmi per ottenere informazioni dal tuo server e dai player che ci entrano. +query_warning2=Se lo disabiliti, non sarai in grado di usare le liste server. +query_disable=Vuoi disabilitare Query? +rcon_info=RCON è un protocollo per connessioni remote con la console del server grazie all'utilizzo di una password. +rcon_enable=Vuoi abilitare RCON? +rcon_password=Password RCON (potrai cambiarla più tardi) +usage_info=L'invio anonimo dei dati di utilizzo ci aiuta a calcolare statistiche generali per PocketMine-MP ed i suoi plugins. Puoi vederle su stats.pocketmine.net +usage_disable=Vuoi disabilitare l'invio anonimo dei dati di utilizzo? +ip_get=Ottengo il tuo indirizzo IP interno ed esterno +ip_warning=Il tuo indirizzo IP è {{EXTERNAL_IP}}. Potresti dover redirigere le porte al tuo IP interno: {{INTERNAL_IP}} +ip_confirm=Sii sicuro di farlo, se devi redirigere le porte e non lo fai, nessun player esterno sarà in grado di entrare. [Premi Invio] + +you_have_finished=Hai completato l'installazione con successo +pocketmine_will_start=Ora PocketMine-MP si avvierà. Digita /help per visualizzare la lista dei comandi disponibili. +pocketmine_plugins=Controlla il Repository dei Plugins per aggiungere nuove funzionalità, minigiochi, o protezioni avanzate al tuo server diff --git a/src/lang/Installer/ja_JP.ini b/src/lang/Installer/ja_JP.ini new file mode 100644 index 000000000..c49e27332 --- /dev/null +++ b/src/lang/Installer/ja_JP.ini @@ -0,0 +1,45 @@ +language_has_been_selected=日本語に設定されました +skip_installer=セットアップウィザードをスキップしますか? + +welcome_to_pocketmine=PocketMine-MPをインストールして頂きありがとうございます!サーバのセットアップを開始するにはライセンスに同意する必要があります。PocketMine-MPはLGPLライセンスに基づいて認可されており、これについてはこのフォルダ内のLICENSEファイルから確認することができます。 +accept_license=ライセンスに同意しますか? +you_have_to_accept_the_license=PocketMine-MPを使用するにはLGPLライセンスに同意する必要があります + +setting_up_server_now=サーバのセットアップを開始します +default_values_info=設定を変更しない場合は、Enterキーを押してください。 +server_properties=それらの設定は後からでもserver.propertiesファイルから変更できます + +name_your_server=あなたのサーバに名前を付けてください +port_warning=これが初めてのサーバの場合は、ポート番号をデフォルトから変更しないでください +server_port=サーバポート +invalid_port=不適切なサーバポートです +ram_warning=RAMはPocketMine-MPが使用し得るメモリの最大値を示しています。128-256MBの範囲内で指定することを推奨します。 +server_ram=RAMの単位はMBです +gamemode_info=クリエイティブモード(1)、またはサバイバルモード(0)を選択してください +default_gamemode=デフォルトのゲームモード +max_players=最大プレイヤー数 +spawn_protection_info=スポーンプロテクションは、OPでないプレイヤーによるスポーン地点付近でのブロックの設置/破壊を制限します +spawn_protection=スポーンプロテクションを有効にしますか? + +op_info=OPとはそのサーバの管理権限を指します。OPを持ったプレイヤーは他のプレイヤーよりも多くのコマンドを使用できます。 +op_who=OPプレイヤー名(例: あなたのゲーム内での名前) +op_warning=後から/op <プレイヤー名>コマンドを実行してOPプレイヤーを追加することもできます +whitelist_info=ホワイトリストはこのサーバに入ることのできるプレイヤーを制限します。 +whitelist_enable=ホワイトリストを有効にしますか? +whitelist_warning=プレイヤーをホワイトリストに追加してください + +query_warning1=クエリは他のツールによりあなたのサーバやプレイヤーの情報を取得するためのプロトコルです。 +query_warning2=それを無効にした場合、サーバリストを使用できなくなる可能性があります。 +query_disable=クエリを無効にしますか? +rcon_info=RCONはパスワードを用いてサーバコンソールからリモート接続するためのプロトコルです。 +rcon_enable=RCONを有効にしますか? +rcon_password=RCONパスワード(後から変更できます) +usage_info=世界中で使われているPocketMine-MPやそのプラグインの統計を算出するために匿名の使用データが送信されます。統計はこちらから確認できます。stats.pocketmine.net +usage_disable=匿名の使用データの送信を拒否しますか? +ip_get=グローバルIPとプライベートIPの取得 +ip_warning=あなたのグローバルIPは{{EXTERNAL_IP}}です。プライベートIP{{INTERNAL_IP}}をポート解放してください。 +ip_confirm=必ずポート解放ができているか確認してください。ポートが解放できていなかった場合、他のプレイヤーがサーバに入れなくなる恐れがあります。[Enterキーを押してください] + +you_have_finished=セットアップは正しく終了しました +pocketmine_will_start=PocketMine_MPを起動します。/helpと入力すれば使用可能なコマンド一覧を表示できます。 +pocketmine_plugins=拡張機能や管理システム、ミニゲームなどを追加できるプラグインリポジトリも確認してみてください diff --git a/src/lang/Installer/ko_KR.ini b/src/lang/Installer/ko_KR.ini new file mode 100644 index 000000000..4f8f9238e --- /dev/null +++ b/src/lang/Installer/ko_KR.ini @@ -0,0 +1,45 @@ +language_has_been_selected=한국어가 언어로 선택되었습니다. +skip_installer=설치 마법사를 건너뛰겠습니까? + +welcome_to_pocketmine=PocketMine-MP에 오신 것을 환영합니다!\n서버 설치를 시작하기 전, 약관에 동의해야 합니다. \nPocketMine-MP는 GNU 약소 일반 공중 사용 허가서(LGPL) 하에 배포되고 있습니다. \n이 폴더에서 약관을 읽을 수 있습니다. +accept_license=약관에 동의하십니까? +you_have_to_accept_the_license=GNU 약소 일반 공중 사용 허가서(LGPL)에 동의해야 PocketMine-MP를 사용할 수 있습니다 + +setting_up_server_now=서버 설정을 시작합니다. +default_values_info=기본값을 수정하고 싶지 않으면, 엔터를 누르십시오. +server_properties=이 설정들은 server.properties 파일에서 세부적으로 변경할 수 있습니다. + +name_your_server=당신의 서버 이름을 입력하십시오 +port_warning=만약 당신이 서버를 처음 설정한다면 포트 값을 변경하지 마십시오. +server_port=서버 포트 +invalid_port=서버 포트가 잘못 입력되었습니다 +ram_warning=RAM 값은 PocketMine-MP에 할당할 메모리의 크기입니다. 128~256MB를 권장합니다. +server_ram=서버 RAM (MB) +gamemode_info=크리에이티브 (1) 또는 서바이벌 (0) 게임모드 중 하나를 고르십시오 +default_gamemode=기본 게임 모드 +max_players=최대 동시 접속 인원 수 +spawn_protection_info=스폰 보호는 OP를 제외한 유저들이 스폰 지역 근처에서 블럭을 놓거나 부수는것을 방지합니다 +spawn_protection=스폰 지역 보호를 사용하겠습니까? + +op_info=OP는 서버 관리자를 뜻합니다. OP는 일반 플레이어보다 훨씬 많은 명령어들을 사용할 수 있습니다 +op_who=OP 권한을 줄 플레이어 이름(예: 당신의 닉네임) +op_warning=또는 이후에 /op <플레이어 이름> 을 입력해 그 유저에게 OP 권한을 줄 수도 있습니다 +whitelist_info=화이트리스트를 사용하면 허용된 플레이어들만 서버에 접속할 수 있습니다. +whitelist_enable=화이트리스트를 사용하겠습니까? +whitelist_warning=당신은 접속을 허용할 플레이어들의 이름을 적어야 합니다 + +query_warning1=쿼리 (Query)는 당신의 서버와 현재 접속한 플레이어들의 정보를 알 수 있게 해주는 여러가지 기능이 담긴 프로토콜입니다. +query_warning2=쿼리를 사용하지 않으면, 당신은 서버 리스트를 사용할 수 없게 됩니다. +query_disable=쿼리를 사용하지 않겠습니까? +rcon_info=RCON은 비밀 번호를 사용하여 서버 명령창에 원격으로 접소갈 수 있는 프로토콜입니다. +rcon_enable=RCON 을 사용하시겠습니까? +rcon_password=RCON 비밀번호 설정 (나중에 server.properties 에서 변경이 가능합니다.) +usage_info=익명 사용 통계 전송을 허용하면 PocketMine-MP가 세계의 서버 상황과 플러그인들을 통계화하는 데 사용할 수 있습니다. 당신은 stats.pocketmine.net에서 이를 확인할 수 있습니다 +usage_disable=익명 사용 통계 전송을 사용하지 않으시겠습니까? +ip_get=내/외부 IP 주소 얻기 +ip_warning=당신의 외부 IP는 {{EXTERNAL_IP}}입니다. 당신의 내부 IP {{INTERNAL_IP}}로 포트포워딩이 필요할 수 있습니다 +ip_confirm=신중하게 확인하세요. 만약 포트 포워딩이 필요하지만 하지 않을 경우 외부에서 플레이어들이 접속할 수 없게 됩니다. [계속 하시려면 엔터를 누르세요] + +you_have_finished=PocketMine-MP의 설치가 모두 완료되었습니다. +pocketmine_will_start=PocketMine-MP 서버를 구동합니다. /help로 사용 가능한 모든 명령어의 목록을 보시기 바랍니다. +pocketmine_plugins=플러그인 저장소에서 새로운 기능을 추가하세요. 새로운 기능, 미니게임을 추가하거나 고급 기능으로 당신의 서버를 보호할 수 있습니다 diff --git a/src/lang/Installer/lv_LV.ini b/src/lang/Installer/lv_LV.ini new file mode 100644 index 000000000..6fb66a5e2 --- /dev/null +++ b/src/lang/Installer/lv_LV.ini @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/lang/Installer/ms_MY.ini b/src/lang/Installer/ms_MY.ini new file mode 100644 index 000000000..6fb66a5e2 --- /dev/null +++ b/src/lang/Installer/ms_MY.ini @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/lang/Installer/mt_MT.ini b/src/lang/Installer/mt_MT.ini new file mode 100644 index 000000000..6fb66a5e2 --- /dev/null +++ b/src/lang/Installer/mt_MT.ini @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/lang/Installer/nl_NL.ini b/src/lang/Installer/nl_NL.ini new file mode 100644 index 000000000..5d515cc35 --- /dev/null +++ b/src/lang/Installer/nl_NL.ini @@ -0,0 +1,45 @@ +language_has_been_selected=Nederlands is nu geselecteerd. +skip_installer=Wil je de set-up help overslaan? + +welcome_to_pocketmine=Welkom op de PocketMine-MP!\nVoordat je je nieuwe server klaarmaakt, moet je onze gebruikersovereenkomst accepteren.\nPocketMine-MP is gelicenseerd onder LGPL License,\nwat je kunt lezen door de LICENSE file in deze map te openen. +accept_license=Accepteer je de gebruikersvoorwaarden? +you_have_to_accept_the_license=Je moet de LGPL gebruikersvoorwaarden accepteren voordat je verder gaat met het gebruiken van de services van PocketMine-MP + +setting_up_server_now=Je gaat nu een server klaarmaken voor gebruik. +default_values_info=Druk op Enter als je de gebruikelijke waarde niet wilt veranderen. +server_properties=Je kunt ze later veranderen in het server.properties bestand. + +name_your_server=Geef een naam aan je server +port_warning=Verander de gebruikelijke poort niet als dit je eerste server is. +server_port=Server poort +invalid_port=Ongeldige server poort +ram_warning=De RAM is het maximale aantal memory wat PocketMine-MP zal gebruiken. Een aantal tussen de 128 en de 256 MB is aanbevolen +server_ram=Server RAM in MB +gamemode_info=Kies tussen Creative (1) of Survival (0) +default_gamemode=Gebruikelijke spelmodus +max_players=Maximale online spelers +spawn_protection_info=De spawnbeveiliging verbiedt het plaatsen/slopen van blokken in het spawn gebied behalve voor OP's +spawn_protection=Wil je spawnbeveiliging aanzetten? + +op_info=Een OP is de beheerder van de server. OP's kunnen meer commando's gebruiken dan normale spelers +op_who=OP speler naam (voorbeeld: je username) +op_warning=Je kunt later meerdere OP's toevoegen met het commando /op +whitelist_info=De whitelist laat alleen de spelers die in de lijst staan op de server. +whitelist_enable=Wil je de white-list aanzetten? +whitelist_warning=Je moet wel spelers aan de whitelist toevoegen. + +query_warning1=Query is een protocol dat gebruikt wordt door verschillende programma's om informatie te verkrijgen van je server en welke spelers ingelogd zijn. +query_warning2=Als je het uitzet, zul je geen mogelijkheid hebben om server lijsten te gebruiken. +query_disable=Wil je Query uitschakelen? +rcon_info=RCON is een protocol om je server op afstand te beheren via de server console door middel van een wachtwoord. +rcon_enable=Wil je RCON aanzetten? +rcon_password=RCON wachtwoord (deze kun je later veranderen) +usage_info=De anonieme gebruikersdata laat ons toe om de globale statistieken voor PocketMine-ML te zien en zijn plugins. Je kunt de statistieken zien op stats.pocketmine.net +usage_disable=Wil je anonieme data uitschakelen? +ip_get=Je externe IP en interne IP verkrijgen +ip_warning=Je externe IP is {{EXTERNAL_IP}}. Het is mogelijk dat je moet port-forwarden naar je interne IP:{{INTERNAL_IP}} +ip_confirm=Wees niet bang om het te controleren, als je moet port-forwarden en je slaat dit over, kunnen externe spelers niet op de server. + +you_have_finished=Je hebt de set-up help volledig beëindigd. +pocketmine_will_start=PocketMine-MP zal nu starten. Type /help om een lijst met alle beschikbare commando's te zien. +pocketmine_plugins=Check de Plugin Opslag om nieuwe features, minigames of geavanceerde spawnbeveiliging toe te voegen aan je server diff --git a/src/lang/Installer/no_NO.ini b/src/lang/Installer/no_NO.ini new file mode 100644 index 000000000..6fb66a5e2 --- /dev/null +++ b/src/lang/Installer/no_NO.ini @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/lang/Installer/pl_PL.ini b/src/lang/Installer/pl_PL.ini new file mode 100644 index 000000000..6fb66a5e2 --- /dev/null +++ b/src/lang/Installer/pl_PL.ini @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/lang/Installer/pt_PT.ini b/src/lang/Installer/pt_PT.ini new file mode 100644 index 000000000..6fb66a5e2 --- /dev/null +++ b/src/lang/Installer/pt_PT.ini @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/lang/Installer/ru_RU.ini b/src/lang/Installer/ru_RU.ini new file mode 100644 index 000000000..3975abef0 --- /dev/null +++ b/src/lang/Installer/ru_RU.ini @@ -0,0 +1,45 @@ +language_has_been_selected=Английский был выбран правильно. +skip_installer=Вы хотите пропустить мастер настройки? + +welcome_to_pocketmine=Добро пожаловать в PocketMine-MP!\nПеред началом установки нового сервера, вы должны согласиться с лицензией. \nPocketMine-MP лицензировано на условиях LGPL лицензии, \nс которой вы можете ознакомиться, открыв файл LICENSE в этой папке. +accept_license=Принимаете ли вы лицензию? +you_have_to_accept_the_license=Вы должны принять LGPL лицензию, чтобы продолжить использование PocketMine-MP + +setting_up_server_now=Теперь вы можете настроить сервер. +default_values_info=Если вы не хотите изменять стандартное значение, просто нажмите Enter. +server_properties=Вы можете редактировать их позже в файле server.properties. + +name_your_server=Дайте имя вашему серверу +port_warning=Не изменяйте значение порта по умолчанию, если это ваш первый сервер. +server_port=Порт сервера +invalid_port=Неверный порт сервера +ram_warning=RAM - максимальный объем памяти, котооый будет использовать PocketMine-MP, рекомендуемое значение 128-256 МБ +server_ram=Оперативная память сервера в МБ +gamemode_info=Выберите между Креативом-(1), или Выживанием (0) +default_gamemode=Режим игры по умолчанию +max_players=Максимум онлайн игроков +spawn_protection_info=Защита спавна запрещает размещение/разрушение блоков на спавне, за исключением операторов +spawn_protection=Включить защиту спавна? + +op_info=Оператор - Администратор сервера, который может использовать больше команд, чем обычный игрок +op_who=Имя оператора (К примеру ваш ник в игре) +op_warning=Вы можете добавить оператора позже используя команду /op +whitelist_info=White-list позволяет присоединиться только игрокам в этом списке. +whitelist_enable=Вы хотите включить white-list? +whitelist_warning=Вам придётся добавить игроков в white-list + +query_warning1=Query это протокол, используемый разными инструментами, чтобы получить информацию о вашем сервере и о зашедших игроках. +query_warning2=Если вы отключите его, вы не сможете использовать списки серверов. +query_disable=Вы хотите отключить Query? +rcon_info=RCON - это протокол для удаленного управления сервером через консоль, с использованием пароля. +rcon_enable=Вы хотите включить RCON? +rcon_password=RCON пароль (вы сможете изменить его позже) +usage_info=Сбор анонимных данных о использовании поможет нам проанализировать глобальную статистику для PocketMine-MP и плагинов. Статистика доступна по адресу stats.pocketmine.net +usage_disable=Вы хотите отключить сбор анонимных данных о использовании? +ip_get=Получение вашего внешнего и внутреннего IP адреса +ip_warning=Ваш внешний IP адрес: {{EXTERNAL_IP}}. Возможно вам необходимо открыть порты к вашему внутреннему IP адресу: {{INTERNAL_IP}} +ip_confirm=Убедитесь в том, что вы открыли порты, в противном случае игроки вне вашей локальной сети не смогут подключится. [Нажмите Enter] + +you_have_finished=Вы закончили работу с мастером установки +pocketmine_will_start=PocketMine-MP сейчас запустится. Введите /help для просмотра доступных вам команд. +pocketmine_plugins=Посетите репозиторий плагинов для получения новых функций, мини-игр, или повышения защиты вашего сервера diff --git a/src/lang/Installer/sv_SE.ini b/src/lang/Installer/sv_SE.ini new file mode 100644 index 000000000..6fb66a5e2 --- /dev/null +++ b/src/lang/Installer/sv_SE.ini @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/lang/Installer/th_TH.ini b/src/lang/Installer/th_TH.ini new file mode 100644 index 000000000..6fb66a5e2 --- /dev/null +++ b/src/lang/Installer/th_TH.ini @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/lang/Installer/tlh_AA.ini b/src/lang/Installer/tlh_AA.ini new file mode 100644 index 000000000..6fb66a5e2 --- /dev/null +++ b/src/lang/Installer/tlh_AA.ini @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/lang/Installer/tr_TR.ini b/src/lang/Installer/tr_TR.ini new file mode 100644 index 000000000..afbb875f0 --- /dev/null +++ b/src/lang/Installer/tr_TR.ini @@ -0,0 +1,12 @@ +language_has_been_selected=İngilizce seçildi. +skip_installer=Kurulum yazılımını atlamak istiyormusunuz? + +accept_license=Lisansı kabul ediyormusunuz? +you_have_to_accept_the_license=PocketMine-MP'yi kullanabilmeniz için LGPL lisansını kabul etmeniz gereklidir + +setting_up_server_now=Sunucunuz şimdi kurulacak, Devam edilsin mi? + +invalid_port=Yanlış sunucu port'u + + + diff --git a/src/lang/Installer/vi_VN.ini b/src/lang/Installer/vi_VN.ini new file mode 100644 index 000000000..6fb66a5e2 --- /dev/null +++ b/src/lang/Installer/vi_VN.ini @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/lang/Installer/zh_CN.ini b/src/lang/Installer/zh_CN.ini new file mode 100644 index 000000000..34962d203 --- /dev/null +++ b/src/lang/Installer/zh_CN.ini @@ -0,0 +1,46 @@ +language_has_been_selected=您现在选择了简体中文. +skip_installer=您想跳过安装向导吗? + +welcome_to_pocketmine=欢迎来到PocketMine-MP!\n在开始使用您的新服务器之前您需要接受以下协议\nPocketMine-MP使用了LGPL协议,\n你可以在这个文件夹中找到LICENCE文件. +accept_license=您接受协议内容吗? +you_have_to_accept_the_license=您接受了LGPL协议来继续使用PocketMine-MP + +setting_up_server_now=你现在要开始设置您的服务器了 +default_values_info=如果您希望留住默认设置请直接按下回车键. +server_properties=您以后可以在server.properties中修改设置. + +name_your_server=命名您的服务器: +port_warning=尽量不要改变端口如果这是您第一次设置服务器. +server_port=服务器端口: +invalid_port=不正确的服务器端口. +ram_warning=RAM是PocketMine-MP可用的最大内存. 推荐范围: 128-256 MB +server_ram=分配给服务器的内存(MB): +gamemode_info=选择模式: (1)生存模式 或 (2)创造模式 +default_gamemode=默认游戏模式 +max_players=最大在线人数 +spawn_protection_info=出生点保护可以在出生点范围内保护所有方块不被摆放/破坏. +spawn_protection=启用出生点保护? + +op_info=OP是一个服务器的管理员, 可以执行比普通玩家更多的命令. +op_who=OP的用户名是什么? +op_warning=你可以执行\"/op <用户名>\"来添加OP. +whitelist_info=白名单可以只允许在其列表内的玩家加入. +whitelist_enable=您想启用白名单吗? +whitelist_warning=你可以用\"/whitelist add <用户名>\"把别人加入白名单. + +query_warning1=请求是一个用于不同的程序的协议用来获取您服务器数据和登录的玩家. +query_warning2=如果您禁止了它, 您将不能使用服务器列表. +query_disable=您希望禁用Query请求吗? +rcon_info=RCON是一个用来远程连接到服务器控制台的协议(需要密码). +rcon_enable=您希望启用RCON吗? +rcon_password=RCON密码 (您也以后更改它) : +usage_info=匿名数据让我们可以获得全球的PocketMine-MP和它的插件的统计信息. 您可以在 stats.pocketmine.net 查看统计信息. + +usage_disable=您希望禁用匿名数据吗? +ip_get=获得你的外部IP和内部IP +ip_warning=您的外部IP是 {{EXTERNAL_IP}} . 您可能需要端口转发到您的内网IP {{INTERNAL_IP}} . +ip_confirm=请确认您检查了它, 如果您直接进入下一步并跳过这一步, 没有外部的玩家可以加入. [按\"回车\"键] + +you_have_finished=您已经成功完成了服务器设置向导. +pocketmine_will_start=PocketMine-MP现在开始运行. 输入 \"/help\" 来看所有可用的命令. +pocketmine_plugins=请查看插件源来添加新的功能, 迷你游戏或者对服务器的高级保护. diff --git a/src/lang/Installer/zu_ZA.ini b/src/lang/Installer/zu_ZA.ini new file mode 100644 index 000000000..a47ed8d99 --- /dev/null +++ b/src/lang/Installer/zu_ZA.ini @@ -0,0 +1,45 @@ +language_has_been_selected={crwdns106:0}{crwdne106:0} +skip_installer={crwdns107:0}{crwdne107:0} + +welcome_to_pocketmine={crwdns108:0}{crwdne108:0} +accept_license={crwdns109:0}{crwdne109:0} +you_have_to_accept_the_license={crwdns110:0}{crwdne110:0} + +setting_up_server_now={crwdns111:0}{crwdne111:0} +default_values_info={crwdns112:0}{crwdne112:0} +server_properties={crwdns113:0}{crwdne113:0} + +name_your_server={crwdns114:0}{crwdne114:0} +port_warning={crwdns115:0}{crwdne115:0} +server_port={crwdns116:0}{crwdne116:0} +invalid_port={crwdns117:0}{crwdne117:0} +ram_warning={crwdns118:0}{crwdne118:0} +server_ram={crwdns119:0}{crwdne119:0} +gamemode_info={crwdns120:0}{crwdne120:0} +default_gamemode={crwdns121:0}{crwdne121:0} +max_players={crwdns122:0}{crwdne122:0} +spawn_protection_info={crwdns123:0}{crwdne123:0} +spawn_protection={crwdns124:0}{crwdne124:0} + +op_info={crwdns125:0}{crwdne125:0} +op_who={crwdns126:0}{crwdne126:0} +op_warning={crwdns127:0}{crwdne127:0} +whitelist_info={crwdns128:0}{crwdne128:0} +whitelist_enable={crwdns129:0}{crwdne129:0} +whitelist_warning={crwdns130:0}{crwdne130:0} + +query_warning1={crwdns131:0}{crwdne131:0} +query_warning2={crwdns132:0}{crwdne132:0} +query_disable={crwdns133:0}{crwdne133:0} +rcon_info={crwdns134:0}{crwdne134:0} +rcon_enable={crwdns135:0}{crwdne135:0} +rcon_password={crwdns136:0}{crwdne136:0} +usage_info={crwdns137:0}{crwdne137:0} +usage_disable={crwdns138:0}{crwdne138:0} +ip_get={crwdns139:0}{crwdne139:0} +ip_warning={crwdns140:0}{{EXTERNAL_IP}}{crwdnd140:0}{{INTERNAL_IP}}{crwdne140:0} +ip_confirm={crwdns141:0}{crwdne141:0} + +you_have_finished={crwdns142:0}{crwdne142:0} +pocketmine_will_start={crwdns143:0}{crwdne143:0} +pocketmine_plugins={crwdns144:0}{crwdne144:0} diff --git a/src/material/block/DoorBlock.php b/src/material/block/DoorBlock.php index 6d6ac1d98..06c0c4bcb 100644 --- a/src/material/block/DoorBlock.php +++ b/src/material/block/DoorBlock.php @@ -20,12 +20,22 @@ */ class DoorBlock extends TransparentBlock{ - public function __construct($id, $meta = 0, $name = "Unknown"){ + /** + * @param int $id + * @param int $meta + * @param string $name + */ + public function __construct($id, $meta = 0, $name = "Unknown"){ parent::__construct($id, $meta, $name); $this->isSolid = false; } - public function onUpdate($type){ + /** + * @param int $type + * + * @return bool|int + */ + public function onUpdate($type){ if($type === BLOCK_UPDATE_NORMAL){ if($this->getSide(0)->getID() === AIR){ //Replace with common break method $this->level->setBlock($this, new AirBlock(), false); @@ -38,7 +48,19 @@ class DoorBlock extends TransparentBlock{ return false; } - public function place(Item $item, Player $player, Block $block, Block $target, $face, $fx, $fy, $fz){ + /** + * @param Item $item + * @param Player $player + * @param Block $block + * @param Block $target + * @param integer $face + * @param integer $fx + * @param integer $fy + * @param integer $fz + * + * @return boolean + */ + public function place(Item $item, Player $player, Block $block, Block $target, $face, $fx, $fy, $fz){ if($face === 1){ $blockUp = $this->getSide(1); $blockDown = $this->getSide(0); @@ -66,8 +88,14 @@ class DoorBlock extends TransparentBlock{ } return false; } - - public function onBreak(Item $item, Player $player){ + + /** + * @param Item $item + * @param Player $player + * + * @return boolean + */ + public function onBreak(Item $item, Player $player){ if(($this->meta & 0x08) === 0x08){ $down = $this->getSide(0); if($down->getID() === $this->id){ @@ -82,8 +110,14 @@ class DoorBlock extends TransparentBlock{ $this->level->setBlock($this, new AirBlock(), true, false, true); return true; } - - public function onActivate(Item $item, Player $player){ + + /** + * @param Item $item + * @param Player $player + * + * @return boolean + */ + public function onActivate(Item $item, Player $player){ if(($this->meta & 0x08) === 0x08){ //Top $down = $this->getSide(0); if($down->getID() === $this->id){ diff --git a/src/material/block/FallableBlock.php b/src/material/block/FallableBlock.php index b4c4bcabd..8b4a1e121 100644 --- a/src/material/block/FallableBlock.php +++ b/src/material/block/FallableBlock.php @@ -20,12 +20,29 @@ */ class FallableBlock extends SolidBlock{ - public function __construct($id, $meta = 0, $name = "Unknown"){ + /** + * @param int $id + * @param int $meta + * @param string $name + */ + public function __construct($id, $meta = 0, $name = "Unknown"){ parent::__construct($id, $meta, $name); $this->hasPhysics = true; } - - public function place(Item $item, Player $player, Block $block, Block $target, $face, $fx, $fy, $fz){ + + /** + * @param Item $item + * @param Player $player + * @param Block $block + * @param Block $target + * @param int $face + * @param int $fx + * @param int $fy + * @param int $fz + * + * @return mixed + */ + public function place(Item $item, Player $player, Block $block, Block $target, $face, $fx, $fy, $fz){ $ret = $this->level->setBlock($this, $this, true, false, true); ServerAPI::request()->api->block->blockUpdate(clone $this, BLOCK_UPDATE_NORMAL); return $ret; diff --git a/src/material/block/FlowableBlock.php b/src/material/block/FlowableBlock.php index 0811320ae..d6b58b385 100644 --- a/src/material/block/FlowableBlock.php +++ b/src/material/block/FlowableBlock.php @@ -20,7 +20,12 @@ */ class FlowableBlock extends TransparentBlock{ - public function __construct($id, $meta = 0, $name = "Unknown"){ + /** + * @param int $id + * @param int $meta + * @param string $name + */ + public function __construct($id, $meta = 0, $name = "Unknown"){ parent::__construct($id, $meta, $name); $this->isFlowable = true; $this->isFullBlock = false; diff --git a/src/material/block/GenericBlock.php b/src/material/block/GenericBlock.php index c2c752d93..6e4e01a2d 100644 --- a/src/material/block/GenericBlock.php +++ b/src/material/block/GenericBlock.php @@ -21,22 +21,57 @@ class GenericBlock extends Block{ - public function __construct($id, $meta = 0, $name = "Unknown"){ + /** + * @param int $id + * @param int $meta + * @param string $name + */ + public function __construct($id, $meta = 0, $name = "Unknown"){ parent::__construct($id, $meta, $name); - } - public function place(Item $item, Player $player, Block $block, Block $target, $face, $fx, $fy, $fz){ + } + + /** + * @param Item $item + * @param Player $player + * @param Block $block + * @param Block $target + * @param integer $face + * @param integer $fx + * @param integer $fy + * @param integer $fz + * + * @return mixed + */ + public function place(Item $item, Player $player, Block $block, Block $target, $face, $fx, $fy, $fz){ return $this->level->setBlock($this, $this, true, false, true); } - - public function isBreakable(Item $item, Player $player){ + + /** + * @param Item $item + * @param Player $player + * + * @return boolean + */ + public function isBreakable(Item $item, Player $player){ return ($this->breakable); } - - public function onBreak(Item $item, Player $player){ + + /** + * @param Item $item + * @param Player $player + * + * @return mixed + */ + public function onBreak(Item $item, Player $player){ return $this->level->setBlock($this, new AirBlock(), true, false, true); } - - public function onUpdate($type){ + + /** + * @param integer $type + * + * @return boolean + */ + public function onUpdate($type){ if($this->hasPhysics === true and $type === BLOCK_UPDATE_NORMAL){ $down = $this->getSide(0); if($down->getID() === AIR or ($down instanceof LiquidBlock)){ @@ -57,7 +92,13 @@ class GenericBlock extends Block{ return false; } - public function onActivate(Item $item, Player $player){ + /** + * @param Item $item + * @param Player $player + * + * @return boolean + */ + public function onActivate(Item $item, Player $player){ return $this->isActivable; } } \ No newline at end of file diff --git a/src/material/block/LiquidBlock.php b/src/material/block/LiquidBlock.php index e88e5749d..1da2aca84 100644 --- a/src/material/block/LiquidBlock.php +++ b/src/material/block/LiquidBlock.php @@ -20,7 +20,12 @@ */ class LiquidBlock extends TransparentBlock{ - public function __construct($id, $meta = 0, $name = "Unknown"){ + /** + * @param int $id + * @param int $meta + * @param string $name + */ + public function __construct($id, $meta = 0, $name = "Unknown"){ parent::__construct($id, $meta, $name); $this->isLiquid = true; $this->breakable = false; diff --git a/src/material/block/SolidBlock.php b/src/material/block/SolidBlock.php index af0d81afe..eee322440 100644 --- a/src/material/block/SolidBlock.php +++ b/src/material/block/SolidBlock.php @@ -20,7 +20,12 @@ */ class SolidBlock extends GenericBlock{ - public function __construct($id, $meta = 0, $name = "Unknown"){ + /** + * @param int $id + * @param int $meta + * @param string $name + */ + public function __construct($id, $meta = 0, $name = "Unknown"){ parent::__construct($id, $meta, $name); $this->isSolid = true; $this->isFullBlock = true; diff --git a/src/material/block/StairBlock.php b/src/material/block/StairBlock.php index 87897e53a..e39ed27e2 100644 --- a/src/material/block/StairBlock.php +++ b/src/material/block/StairBlock.php @@ -20,7 +20,12 @@ */ class StairBlock extends TransparentBlock{ - public function __construct($id, $meta = 0, $name = "Unknown"){ + /** + * @param int $id + * @param int $meta + * @param string $name + */ + public function __construct($id, $meta = 0, $name = "Unknown"){ parent::__construct($id, $meta, $name); if(($this->meta & 0x04) === 0x04){ $this->isFullBlock = true; @@ -30,7 +35,19 @@ class StairBlock extends TransparentBlock{ $this->hardness = 30; } - public function place(Item $item, Player $player, Block $block, Block $target, $face, $fx, $fy, $fz){ + /** + * @param Item $item + * @param Player $player + * @param Block $block + * @param Block $target + * @param int $face + * @param int $fx + * @param int $fy + * @param int $fz + * + * @return bool|mixed + */ + public function place(Item $item, Player $player, Block $block, Block $target, $face, $fx, $fy, $fz){ $faces = array( 0 => 0, 1 => 2, @@ -44,8 +61,14 @@ class StairBlock extends TransparentBlock{ $this->level->setBlock($block, $this, true, false, true); return true; } - - public function getDrops(Item $item, Player $player){ + + /** + * @param Item $item + * @param Player $player + * + * @return array + */ + public function getDrops(Item $item, Player $player){ if($item->isPickaxe() >= 1){ return array( array($this->id, 0, 1), diff --git a/src/material/block/TransparentBlock.php b/src/material/block/TransparentBlock.php index 33e19d6fa..0f0c438da 100644 --- a/src/material/block/TransparentBlock.php +++ b/src/material/block/TransparentBlock.php @@ -20,7 +20,12 @@ */ class TransparentBlock extends GenericBlock{ - public function __construct($id, $meta = 0, $name = "Unknown"){ + /** + * @param int $id + * @param int $meta + * @param string $name + */ + public function __construct($id, $meta = 0, $name = "Unknown"){ parent::__construct($id, $meta, $name); $this->isActivable = false; $this->breakable = true; diff --git a/src/material/block/attachable/Ladder.php b/src/material/block/attachable/Ladder.php index 128361bae..7d6a50cb0 100644 --- a/src/material/block/attachable/Ladder.php +++ b/src/material/block/attachable/Ladder.php @@ -45,11 +45,11 @@ class LadderBlock extends TransparentBlock{ public function onUpdate($type){ if($type === BLOCK_UPDATE_NORMAL){ - if($this->getSide(0)->getID() === AIR){ //Replace with common break method + /*if($this->getSide(0)->getID() === AIR){ //Replace with common break method ServerAPI::request()->api->entity->drop($this, BlockAPI::getItem(LADDER, 0, 1)); $this->level->setBlock($this, new AirBlock(), true, true, true); return BLOCK_UPDATE_NORMAL; - } + }*/ } return false; } diff --git a/src/material/block/liquid/Lava.php b/src/material/block/liquid/Lava.php index 5eb39efa2..1f7fd557f 100644 --- a/src/material/block/liquid/Lava.php +++ b/src/material/block/liquid/Lava.php @@ -113,6 +113,10 @@ class LavaBlock extends LiquidBlock{ if($sb instanceof LavaBlock){ $tlevel = $sb->meta & 0x07; if($tlevel != 0x00){ + for ($s = 0; $s <= 5; $s++) { + $ssb = $sb->getSide($s); + ServerAPI::request()->api->block->scheduleBlockUpdate(new Position($ssb, 0, 0, $this->level), 40, BLOCK_UPDATE_NORMAL); + } $this->level->setBlock($sb, new AirBlock(), false, false, true); } } @@ -120,6 +124,10 @@ class LavaBlock extends LiquidBlock{ if($b instanceof LavaBlock){ $tlevel = $b->meta & 0x07; if($tlevel != 0x00){ + for ($s = 0; $s <= 5; $s++) { + $ssb = $sb->getSide($s); + ServerAPI::request()->api->block->scheduleBlockUpdate(new Position($ssb, 0, 0, $this->level), 40, BLOCK_UPDATE_NORMAL); + } $this->level->setBlock($b, new AirBlock(), false, false, true); } } diff --git a/src/material/block/liquid/Water.php b/src/material/block/liquid/Water.php index 1959fe789..0efdc40d1 100644 --- a/src/material/block/liquid/Water.php +++ b/src/material/block/liquid/Water.php @@ -119,6 +119,10 @@ class WaterBlock extends LiquidBlock{ if($sb instanceof WaterBlock){ $tlevel = $sb->meta & 0x07; if($tlevel != 0x00){ + for ($s = 0; $s <= 5; $s++) { + $ssb = $sb->getSide($s); + ServerAPI::request()->api->block->scheduleBlockUpdate(new Position($ssb, 0, 0, $this->level), 10, BLOCK_UPDATE_NORMAL); + } $this->level->setBlock($sb, new AirBlock(), false, false, true); } } @@ -126,6 +130,10 @@ class WaterBlock extends LiquidBlock{ if($b instanceof WaterBlock){ $tlevel = $b->meta & 0x07; if($tlevel != 0x00){ + for ($s = 0; $s <= 5; $s++) { + $ssb = $sb->getSide($s); + ServerAPI::request()->api->block->scheduleBlockUpdate(new Position($ssb, 0, 0, $this->level), 10, BLOCK_UPDATE_NORMAL); + } $this->level->setBlock($b, new AirBlock(), false, false, true); } } diff --git a/src/network/protocol/CustomPacketHandler.php b/src/network/protocol/CustomPacketHandler.php index c23bc7e4c..b56d97759 100644 --- a/src/network/protocol/CustomPacketHandler.php +++ b/src/network/protocol/CustomPacketHandler.php @@ -193,8 +193,10 @@ class CustomPacketHandler{ case MC_SET_TIME: if($this->c === false){ $this->data["time"] = Utils::readInt($this->get(4)); + $this->data["started"] = ord($this->get(1)) & 0x80 > 0; }else{ $this->raw .= Utils::writeInt($this->data["time"])."\x80"; + $this->raw .= chr((isset($this->data["started"]) and $this->data["started"] == true) ? 0x80:0x00); } break; case MC_START_GAME: diff --git a/src/utils/Config.php b/src/utils/Config.php index 1099d5fc3..4dce87927 100644 --- a/src/utils/Config.php +++ b/src/utils/Config.php @@ -28,11 +28,29 @@ define("CONFIG_YAML", 2); // .yml, .yaml define("CONFIG_SERIALIZED", 4); // .sl define("CONFIG_LIST", 5); // .txt, .list +/** + * Class Config + * + * Config Class for simple config manipulation of multiple formats. + */ class Config{ - private $config; - private $file; - private $correct; - private $type = CONFIG_DETECT; + /** + * @var array + */ + private $config; + /** + * @var string + */ + private $file; + /** + * @var boolean + */ + private $correct; + /** + * @var integer + */ + private $type = CONFIG_DETECT; + public static $formats = array( "properties" => CONFIG_PROPERTIES, "cnf" => CONFIG_CNF, @@ -49,7 +67,14 @@ class Config{ "txt" => CONFIG_LIST, "list" => CONFIG_LIST, ); - public function __construct($file, $type = CONFIG_DETECT, $default = array(), &$correct = null){ + + /** + * @param string $file + * @param int $type + * @param array $default + * @param null|boolean $correct + */ + public function __construct($file, $type = CONFIG_DETECT, $default = array(), &$correct = null){ $this->load($file, $type, $default); $correct = $this->check(); } @@ -61,8 +86,15 @@ class Config{ $this->load($this->file); $correct = $this->check(); } - - public function load($file, $type = CONFIG_DETECT, $default = array()){ + + /** + * @param string $file + * @param int $type + * @param array $default + * + * @return boolean + */ + public function load($file, $type = CONFIG_DETECT, $default = array()){ $this->correct = true; $this->type = (int) $type; $this->file = $file; @@ -118,12 +150,18 @@ class Config{ } return true; } - - public function check(){ + + /** + * @return boolean + */ + public function check(){ return $this->correct === true; } - - public function save(){ + + /** + * @return boolean + */ + public function save(){ if($this->correct === true){ switch($this->type){ case CONFIG_PROPERTIES: @@ -149,41 +187,70 @@ class Config{ return false; } } - - public function &__get($k){ + + /** + * @param $k + * + * @return boolean|mixed + */ + public function &__get($k){ return $this->get($k); } - - public function __set($k, $v){ - return $this->set($k, $v); + + /** + * @param $k + * @param $v + */ + public function __set($k, $v){ + $this->set($k, $v); } - - public function __isset($k){ + + /** + * @param $k + * + * @return boolean + */ + public function __isset($k){ return $this->exists($k); } - - public function __unset($k){ - return $this->remove($k); + + /** + * @param $k + */ + public function __unset($k){ + $this->remove($k); } - - public function &get($k){ + + /** + * @param $k + * + * @return boolean|mixed + */ + public function &get($k){ if(isset($this->correct) and ($this->correct === false or !isset($this->config[$k]))){ $false = false; return $false; } return $this->config[$k]; } - - public function set($k, $v = true){ + + /** + * @param $k + * @param bool $v + */ + public function set($k, $v = true){ $this->config[$k] = $v; } - - public function setAll($v){ + + /** + * @param array $v + */ + public function setAll($v){ $this->config = $v; } /** - * @param mixed $k + * @param $k * @param bool $lowercase If set, searches Config in single-case / lowercase. * * @return boolean @@ -197,16 +264,30 @@ class Config{ return isset($this->config[$k]); endif; } - - public function remove($k){ + + /** + * @param $k + */ + public function remove($k){ unset($this->config[$k]); } - - public function getAll($keys = false){ + + /** + * @param bool $keys + * + * @return array + */ + public function getAll($keys = false){ return ($keys === true ? array_keys($this->config):$this->config); } - - private function fillDefaults($default, &$data){ + + /** + * @param $default + * @param $data + * + * @return integer + */ + private function fillDefaults($default, &$data){ $changed = 0; foreach($default as $k => $v){ if(is_array($v)){ @@ -222,7 +303,10 @@ class Config{ return $changed; } - private function parseList($content){ + /** + * @param $content + */ + private function parseList($content){ foreach(explode("\n", trim(str_replace("\r\n", "\n", $content))) as $v){ $v = trim($v); if($v == ""){ @@ -231,8 +315,11 @@ class Config{ $this->config[$v] = true; } } - - private function writeProperties(){ + + /** + * @return string + */ + private function writeProperties(){ $content = "#Properties Config file\r\n#".date("D M j H:i:s T Y")."\r\n"; foreach($this->config as $k => $v){ if(is_bool($v) === true){ @@ -244,8 +331,11 @@ class Config{ } return $content; } - - private function parseProperties($content){ + + /** + * @param $content + */ + private function parseProperties($content){ if(preg_match_all('/([a-zA-Z0-9\-_\.]*)=([^\r\n]*)/u', $content, $matches) > 0){ //false or 0 matches foreach($matches[1] as $i => $k){ $v = trim($matches[2][$i]); diff --git a/src/utils/Utils.php b/src/utils/Utils.php index 1409d0ac6..3f08a5cca 100644 --- a/src/utils/Utils.php +++ b/src/utils/Utils.php @@ -28,7 +28,7 @@ class Utils{ public static $ip = false; public static function isOnline(){ - return ((@fsockopen("google.com", 80) !== false or @fsockopen("www.linux.org", 80) !== false or @fsockopen("www.php.net", 80) !== false) ? true:false); + return ((@fsockopen("google.com", 80, $e = null, $n = null, 2) !== false or @fsockopen("www.linux.org", 80, $e = null, $n = null, 2) !== false or @fsockopen("www.php.net", 80, $e = null, $n = null, 2) !== false) ? true:false); } public static function getIP($force = false){ diff --git a/src/world/Entity.php b/src/world/Entity.php index 218ed8e69..112b6026e 100644 --- a/src/world/Entity.php +++ b/src/world/Entity.php @@ -130,6 +130,9 @@ class Entity extends Position{ if($this->type === OBJECT_PAINTING){ $this->isStatic = true; }elseif($this->type === OBJECT_PRIMEDTNT){ + if(!isset($this->data["fuse"])){ + $this->data["fuse"] = 0; + } $this->setHealth(10000000, "generic"); $this->server->schedule(5, array($this, "updateFuse"), array(), true); $this->update(); @@ -239,7 +242,7 @@ class Entity extends Position{ $time = microtime(true); if($this->class === ENTITY_PLAYER and ($this->player instanceof Player) and $this->player->spawned === true and $this->player->blocked !== true){ foreach($this->server->api->entity->getRadius($this, 1.5, ENTITY_ITEM) as $item){ - if($item->spawntime > 0 and ($time - $item->spawntime) >= 0.6){ + if($item->closed === false and $item->spawntime > 0 and ($time - $item->spawntime) >= 0.6){ if((($this->player->gamemode & 0x01) === 1 or $this->player->hasSpace($item->type, $item->meta, $item->stack) === true) and $this->server->api->dhandle("player.pickup", array( "eid" => $this->player->eid, "player" => $this->player, diff --git a/src/world/Level.php b/src/world/Level.php index 3e62e02db..99e1075b9 100644 --- a/src/world/Level.php +++ b/src/world/Level.php @@ -21,7 +21,7 @@ class Level{ public $entities, $tiles, $blockUpdates, $nextSave, $players = array(), $level; - private $time, $startCheck, $startTime, $server, $name, $usedChunks, $changedBlocks, $changedCount; + private $time, $startCheck, $startTime, $server, $name, $usedChunks, $changedBlocks, $changedCount, $stopTime; public function __construct(PMFLevel $level, Config $entities, Config $tiles, Config $blockUpdates, $name){ $this->server = ServerAPI::request(); @@ -33,6 +33,7 @@ class Level{ $this->startTime = $this->time = (int) $this->level->getData("time"); $this->nextSave = $this->startCheck = microtime(true); $this->nextSave += 90; + $this->stopTime = false; $this->server->schedule(15, array($this, "checkThings"), array(), true); $this->server->schedule(20 * 13, array($this, "checkTime"), array(), true); $this->name = $name; @@ -70,11 +71,16 @@ class Level{ return false; } $now = microtime(true); - $time = $this->startTime + ($now - $this->startCheck) * 20; + if($this->stopTime == true){ + + }else{ + $time = $this->startTime + ($now - $this->startCheck) * 20; + } if($this->server->api->dhandle("time.change", array("level" => $this, "time" => $time)) !== false){ $this->time = $time; $this->server->api->player->broadcastPacket($this->players, MC_SET_TIME, array( "time" => (int) $this->time, + "started" => $this->stopTime == false, )); } } @@ -169,8 +175,8 @@ class Level{ $entities[] = array( "id" => $entity->type, "TileX" => $entity->x, - "TileX" => $entity->y, - "TileX" => $entity->z, + "TileY" => $entity->y, + "TileZ" => $entity->z, "Health" => $entity->health, "Motive" => $entity->data["Motive"], "Pos" => array( @@ -470,6 +476,18 @@ class Level{ $this->checkTime(); } + public function stopTime(){ + $this->stopTime = true; + $this->startCheck = 0; + $this->checkTime(); + } + + public function startTime(){ + $this->stopTime = false; + $this->startCheck = microtime(true); + $this->checkTime(); + } + public function getSeed(){ if(!isset($this->level)){ return false; @@ -490,4 +508,4 @@ class Level{ } return $this->server->api->block->scheduleBlockUpdate($pos, $delay, $type); } -} \ No newline at end of file +} diff --git a/start.cmd b/start.cmd index c8623289b..b0735d956 100644 --- a/start.cmd +++ b/start.cmd @@ -3,13 +3,13 @@ TITLE PocketMine-MP server software for Minecraft: Pocket Edition cd /d %~dp0 if exist bin\php\php.exe ( if exist bin\mintty.exe ( - start "" bin\mintty.exe -o Columns=88 -o Rows=32 -o AllowBlinking=0 -o FontQuality=3 -o CursorType=0 -o CursorBlinks=1 -h error -t "PocketMine-MP" -i bin/pocketmine.ico -w max bin\php\php.exe -d enable_dl=On PocketMine-MP.php --enable-ansi %* + start "" bin\mintty.exe -o Columns=88 -o Rows=32 -o AllowBlinking=0 -o FontQuality=3 -o Font="DejaVu Sans Mono" -o FontHeight=10 -o CursorType=0 -o CursorBlinks=1 -h error -t "PocketMine-MP" -i bin/pocketmine.ico -w max bin\php\php.exe -d enable_dl=On PocketMine-MP.php --enable-ansi %* ) else ( bin\php\php.exe -d enable_dl=On PocketMine-MP.php %* ) ) else ( if exist bin\mintty.exe ( - start "" bin\mintty.exe -o Columns=88 -o Rows=32 -o AllowBlinking=0 -o FontQuality=3 -o CursorType=0 -o CursorBlinks=1 -h error -t "PocketMine-MP" -i bin/pocketmine.ico -w max php -d enable_dl=On PocketMine-MP.php --enable-ansi %* + start "" bin\mintty.exe -o Columns=88 -o Rows=32 -o AllowBlinking=0 -o FontQuality=3 -o Font="DejaVu Sans Mono" -o FontHeight=10 -o CursorType=0 -o CursorBlinks=1 -h error -t "PocketMine-MP" -i bin/pocketmine.ico -w max php -d enable_dl=On PocketMine-MP.php --enable-ansi %* ) else ( php -d enable_dl=On PocketMine-MP.php %* )