mirror of
https://github.com/pmmp/PocketMine-MP.git
synced 2025-07-05 17:41:46 +00:00
Merge remote-tracking branch 'origin/master' into Faster-Network
This commit is contained in:
commit
5700235f80
@ -110,7 +110,7 @@ class EntityAPI{
|
|||||||
|
|
||||||
public function spawnToAll(Entity $e){
|
public function spawnToAll(Entity $e){
|
||||||
foreach($this->server->api->player->getAll($e->level) as $player){
|
foreach($this->server->api->player->getAll($e->level) as $player){
|
||||||
if($player->eid !== false and $player->eid !== $e->eid and $e->class !== ENTITY_PLAYER){
|
if($player->eid !== false and $player->eid !== $e->eid and $e->class !== ENTITY_PLAYER and $e instanceof Entity){
|
||||||
$e->spawn($player);
|
$e->spawn($player);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -32,7 +32,7 @@ class PlayerAPI{
|
|||||||
$this->server->api->console->register("kill", "<player>", array($this, "commandHandler"));
|
$this->server->api->console->register("kill", "<player>", array($this, "commandHandler"));
|
||||||
$this->server->api->console->register("gamemode", "<mode> [player]", array($this, "commandHandler"));
|
$this->server->api->console->register("gamemode", "<mode> [player]", array($this, "commandHandler"));
|
||||||
$this->server->api->console->register("tp", "[target player] <destination player|w:world> OR /tp [target player] <x> <y> <z>", array($this, "commandHandler"));
|
$this->server->api->console->register("tp", "[target player] <destination player|w:world> OR /tp [target player] <x> <y> <z>", array($this, "commandHandler"));
|
||||||
$this->server->api->console->register("spawnpoint", "[player] [x] [y] [z]", array($this, "commandHandler"));
|
$this->server->api->console->register("setspawn", "[player] [x] [y] [z]", array($this, "commandHandler"));
|
||||||
$this->server->api->console->register("spawn", "", array($this, "commandHandler"));
|
$this->server->api->console->register("spawn", "", array($this, "commandHandler"));
|
||||||
$this->server->api->console->register("ping", "", array($this, "commandHandler"));
|
$this->server->api->console->register("ping", "", array($this, "commandHandler"));
|
||||||
$this->server->api->console->alias("lag", "ping");
|
$this->server->api->console->alias("lag", "ping");
|
||||||
@ -118,7 +118,7 @@ class PlayerAPI{
|
|||||||
public function commandHandler($cmd, $params, $issuer, $alias){
|
public function commandHandler($cmd, $params, $issuer, $alias){
|
||||||
$output = "";
|
$output = "";
|
||||||
switch($cmd){
|
switch($cmd){
|
||||||
case "spawnpoint":
|
case "setspawn":
|
||||||
if(!($issuer instanceof Player)){
|
if(!($issuer instanceof Player)){
|
||||||
$output .= "Please run this command in-game.\n";
|
$output .= "Please run this command in-game.\n";
|
||||||
break;
|
break;
|
||||||
@ -306,17 +306,34 @@ class PlayerAPI{
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
public function get($name, $alike = true){
|
public function get($name, $alike = true, $multiple = false){
|
||||||
$name = trim(strtolower($name));
|
$name = trim(strtolower($name));
|
||||||
if($name === ""){
|
if($name === ""){
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
$CID = $this->server->query("SELECT ip,port FROM players WHERE name ".($alike === true ? "LIKE '%".$name."%'":"= '".$name."'").";", true);
|
$query = $this->server->query("SELECT ip,port,name FROM players WHERE name ".($alike === true ? "LIKE '%".$name."%'":"= '".$name."'").";");
|
||||||
$CID = PocketMinecraftServer::clientID($CID["ip"], $CID["port"]);
|
$players = array();
|
||||||
if(isset($this->server->clients[$CID])){
|
if($query !== false and $query !== true){
|
||||||
return $this->server->clients[$CID];
|
while(($d = $query->fetchArray(SQLITE3_ASSOC)) !== false){
|
||||||
}
|
$CID = PocketMinecraftServer::clientID($d["ip"], $d["port"]);
|
||||||
return false;
|
if(isset($this->server->clients[$CID])){
|
||||||
|
$players[$CID] = $this->server->clients[$CID];
|
||||||
|
if($multiple === false and $d["name"] === $name){
|
||||||
|
return $players[$CID];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if($multiple === false){
|
||||||
|
if(count($players) > 0){
|
||||||
|
return array_shift($players);
|
||||||
|
}else{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}else{
|
||||||
|
return $players;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public function getAll($level = null){
|
public function getAll($level = null){
|
||||||
@ -429,7 +446,7 @@ class PlayerAPI{
|
|||||||
$this->server->query("DELETE FROM players WHERE name = '".$player->username."';");
|
$this->server->query("DELETE FROM players WHERE name = '".$player->username."';");
|
||||||
if($player->entity instanceof Entity){
|
if($player->entity instanceof Entity){
|
||||||
unset($player->entity->player);
|
unset($player->entity->player);
|
||||||
unset($player->entity);
|
//unset($player->entity);
|
||||||
}
|
}
|
||||||
$this->server->api->entity->remove($player->eid);
|
$this->server->api->entity->remove($player->eid);
|
||||||
$player = null;
|
$player = null;
|
||||||
|
@ -179,11 +179,11 @@ class PluginAPI extends stdClass{
|
|||||||
}
|
}
|
||||||
|
|
||||||
public function readYAML($file){
|
public function readYAML($file){
|
||||||
return Spyc::YAMLLoad(file_get_contents($file));
|
return yaml_parse(preg_replace("#^([ ]*)([a-zA-Z_]{1}[^\:]*)\:#m", "$1\"$2\":", file_get_contents($file)));
|
||||||
}
|
}
|
||||||
|
|
||||||
public function writeYAML($file, $data){
|
public function writeYAML($file, $data){
|
||||||
return file_put_contents($file, Spyc::YAMLDump($data));
|
return file_put_contents($file, yaml_emit($data, YAML_UTF8_ENCODING));
|
||||||
}
|
}
|
||||||
|
|
||||||
public function init(){
|
public function init(){
|
||||||
|
@ -145,7 +145,7 @@ class ServerAPI{
|
|||||||
$this->server->api = $this;
|
$this->server->api = $this;
|
||||||
self::$serverRequest = $this->server;
|
self::$serverRequest = $this->server;
|
||||||
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] 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);
|
console("[INFO] PocketMine-MP is distributed under the LGPL License", true, true, 0);
|
||||||
|
|
||||||
if(ADVANCED_CACHE == true){
|
if(ADVANCED_CACHE == true){
|
||||||
console("[INFO] Advanced cache enabled");
|
console("[INFO] Advanced cache enabled");
|
||||||
|
@ -219,6 +219,9 @@ class Player{
|
|||||||
"z" => $Z,
|
"z" => $Z,
|
||||||
"data" => $this->level->getOrderedChunk($X, $Z, $Yndex),
|
"data" => $this->level->getOrderedChunk($X, $Z, $Yndex),
|
||||||
));
|
));
|
||||||
|
if($cnt === false){
|
||||||
|
return false;
|
||||||
|
}
|
||||||
$this->chunkCount = array();
|
$this->chunkCount = array();
|
||||||
foreach($cnt as $i => $count){
|
foreach($cnt as $i => $count){
|
||||||
$this->chunkCount[$count] = true;
|
$this->chunkCount[$count] = true;
|
||||||
@ -1282,6 +1285,8 @@ class Player{
|
|||||||
$this->username = $data["username"];
|
$this->username = $data["username"];
|
||||||
$this->iusername = strtolower($this->username);
|
$this->iusername = strtolower($this->username);
|
||||||
}else{
|
}else{
|
||||||
|
$this->username = $data["username"];
|
||||||
|
$this->iusername = strtolower($this->username);
|
||||||
$this->close("Bad username", false);
|
$this->close("Bad username", false);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@ -1417,7 +1422,7 @@ class Player{
|
|||||||
if($this->spawned !== false){
|
if($this->spawned !== false){
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
$this->entity->setHealth($this->data->get("health"));
|
$this->entity->setHealth($this->data->get("health"), "spawn", true);
|
||||||
$this->spawned = true;
|
$this->spawned = true;
|
||||||
$this->server->api->player->spawnAllPlayers($this);
|
$this->server->api->player->spawnAllPlayers($this);
|
||||||
$this->server->api->player->spawnToAllPlayers($this);
|
$this->server->api->player->spawnToAllPlayers($this);
|
||||||
@ -1840,7 +1845,7 @@ class Player{
|
|||||||
if($this->spawned === false){
|
if($this->spawned === false){
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
if($this->entity->dead === false){
|
if(@$this->entity->dead === false){
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
$this->craftingItems = array();
|
$this->craftingItems = array();
|
||||||
@ -1849,7 +1854,7 @@ class Player{
|
|||||||
if($this->entity instanceof Entity){
|
if($this->entity instanceof Entity){
|
||||||
$this->entity->fire = 0;
|
$this->entity->fire = 0;
|
||||||
$this->entity->air = 300;
|
$this->entity->air = 300;
|
||||||
$this->entity->setHealth(20, "respawn");
|
$this->entity->setHealth(20, "respawn", true);
|
||||||
$this->entity->updateMetadata();
|
$this->entity->updateMetadata();
|
||||||
}else{
|
}else{
|
||||||
break;
|
break;
|
||||||
@ -1874,7 +1879,7 @@ class Player{
|
|||||||
switch($data["event"]){
|
switch($data["event"]){
|
||||||
case 9: //Eating
|
case 9: //Eating
|
||||||
$items = array(
|
$items = array(
|
||||||
APPLE => 2,
|
APPLE => 4,
|
||||||
MUSHROOM_STEW => 10,
|
MUSHROOM_STEW => 10,
|
||||||
BEETROOT_SOUP => 10,
|
BEETROOT_SOUP => 10,
|
||||||
BREAD => 5,
|
BREAD => 5,
|
||||||
|
@ -9,7 +9,7 @@ ZLIB_VERSION="1.2.8"
|
|||||||
PTHREADS_VERSION="0.1.0"
|
PTHREADS_VERSION="0.1.0"
|
||||||
PHPYAML_VERSION="1.1.1"
|
PHPYAML_VERSION="1.1.1"
|
||||||
YAML_VERSION="0.1.4"
|
YAML_VERSION="0.1.4"
|
||||||
CURL_VERSION="curl-7_34_0"
|
CURL_VERSION="curl-7_35_0"
|
||||||
|
|
||||||
echo "[PocketMine] PHP installer and compiler for Linux & Mac"
|
echo "[PocketMine] PHP installer and compiler for Linux & Mac"
|
||||||
DIR="$(pwd)"
|
DIR="$(pwd)"
|
||||||
@ -21,12 +21,27 @@ type autoconf >> "$DIR/install.log" 2>&1 || { echo >&2 "[ERROR] Please install \
|
|||||||
type automake >> "$DIR/install.log" 2>&1 || { echo >&2 "[ERROR] Please install \"automake\""; read -p "Press [Enter] to continue..."; exit 1; }
|
type automake >> "$DIR/install.log" 2>&1 || { echo >&2 "[ERROR] Please install \"automake\""; read -p "Press [Enter] to continue..."; exit 1; }
|
||||||
type libtool >> "$DIR/install.log" 2>&1 || { echo >&2 "[ERROR] Please install \"libtool\""; read -p "Press [Enter] to continue..."; exit 1; }
|
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 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 wget >> "$DIR/install.log" 2>&1 || type curl >> "$DIR/install.log" 2>&1 || { echo >&2 "[ERROR] Please install \"wget\" or \"curl\""; 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; }
|
type getconf >> "$DIR/install.log" 2>&1 || { echo >&2 "[ERROR] Please install \"getconf\""; read -p "Press [Enter] to continue..."; exit 1; }
|
||||||
|
|
||||||
|
#Needed to use aliases
|
||||||
|
shopt -s expand_aliases
|
||||||
|
type wget >> "$DIR/install.log" 2>&1
|
||||||
|
if [ $? -eq 0 ]; then
|
||||||
|
alias download_file="wget --no-check-certificate -q -O -"
|
||||||
|
else
|
||||||
|
type curl >> "$DIR/install.log" 2>&1
|
||||||
|
if [ $? -eq 0 ]; then
|
||||||
|
alias download_file="curl --insecure --silent --location"
|
||||||
|
else
|
||||||
|
echo "error, curl or wget not found"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
export CC="gcc"
|
export CC="gcc"
|
||||||
COMPILE_FOR_ANDROID=no
|
COMPILE_FOR_ANDROID=no
|
||||||
RANLIB=ranlib
|
RANLIB=ranlib
|
||||||
|
HAVE_MYSQLI="--with-mysqli=mysqlnd"
|
||||||
if [ "$1" == "rpi" ]; then
|
if [ "$1" == "rpi" ]; then
|
||||||
[ -z "$march" ] && march=armv6zk;
|
[ -z "$march" ] && march=armv6zk;
|
||||||
[ -z "$mtune" ] && mtune=arm1176jzf-s;
|
[ -z "$mtune" ] && mtune=arm1176jzf-s;
|
||||||
@ -37,24 +52,31 @@ elif [ "$1" == "mac" ]; then
|
|||||||
[ -z "$mtune" ] && mtune=generic;
|
[ -z "$mtune" ] && mtune=generic;
|
||||||
[ -z "$CFLAGS" ] && CFLAGS="-fomit-frame-pointer";
|
[ -z "$CFLAGS" ] && CFLAGS="-fomit-frame-pointer";
|
||||||
echo "[INFO] Compiling for Intel MacOS"
|
echo "[INFO] Compiling for Intel MacOS"
|
||||||
|
elif [ "$1" == "ios" ]; then
|
||||||
|
[ -z "$march" ] && march=armv6;
|
||||||
|
[ -z "$mtune" ] && mtune=cortex-a8;
|
||||||
|
echo "[INFO] Compiling for iOS ARMv6"
|
||||||
elif [ "$1" == "crosscompile" ]; then
|
elif [ "$1" == "crosscompile" ]; then
|
||||||
|
HAVE_MYSQLI="--without-mysqli"
|
||||||
if [ "$2" == "android" ] || [ "$2" == "android-armv6" ]; then
|
if [ "$2" == "android" ] || [ "$2" == "android-armv6" ]; then
|
||||||
COMPILE_FOR_ANDROID=yes
|
COMPILE_FOR_ANDROID=yes
|
||||||
[ -z "$march" ] && march=armv6;
|
[ -z "$march" ] && march=armv6;
|
||||||
[ -z "$mtune" ] && mtune=generic;
|
[ -z "$mtune" ] && mtune=arm1136jf-s;
|
||||||
TOOLCHAIN_PREFIX="arm-none-linux-gnueabi"
|
TOOLCHAIN_PREFIX="arm-unknown-linux-uclibcgnueabi"
|
||||||
export CC="$TOOLCHAIN_PREFIX-gcc"
|
export CC="$TOOLCHAIN_PREFIX-gcc"
|
||||||
CONFIGURE_FLAGS="--host=$TOOLCHAIN_PREFIX"
|
CONFIGURE_FLAGS="--host=$TOOLCHAIN_PREFIX --enable-static-link --disable-ipv6"
|
||||||
[ -z "$CFLAGS" ] && CFLAGS="-uclibc";
|
CFLAGS="-uclibc --static $CFLAGS";
|
||||||
|
LDFLAGS="--static"
|
||||||
echo "[INFO] Cross-compiling for Android ARMv6"
|
echo "[INFO] Cross-compiling for Android ARMv6"
|
||||||
elif [ "$2" == "android-armv7" ]; then
|
elif [ "$2" == "android-armv7" ]; then
|
||||||
COMPILE_FOR_ANDROID=yes
|
COMPILE_FOR_ANDROID=yes
|
||||||
[ -z "$march" ] && march=armv7a;
|
[ -z "$march" ] && march=armv7-a;
|
||||||
[ -z "$mtune" ] && mtune=generic-armv7-a;
|
[ -z "$mtune" ] && mtune=cortex-a8;
|
||||||
TOOLCHAIN_PREFIX="arm-none-linux-gnueabi"
|
TOOLCHAIN_PREFIX="arm-unknown-linux-uclibcgnueabi"
|
||||||
export CC="$TOOLCHAIN_PREFIX-gcc"
|
export CC="$TOOLCHAIN_PREFIX-gcc"
|
||||||
CONFIGURE_FLAGS="--host=$TOOLCHAIN_PREFIX"
|
CONFIGURE_FLAGS="--host=$TOOLCHAIN_PREFIX --enable-static-link --disable-ipv6"
|
||||||
[ -z "$CFLAGS" ] && CFLAGS="-uclibc";
|
CFLAGS="-uclibc --static $CFLAGS";
|
||||||
|
LDFLAGS="--static"
|
||||||
echo "[INFO] Cross-compiling for Android ARMv7"
|
echo "[INFO] Cross-compiling for Android ARMv7"
|
||||||
elif [ "$2" == "rpi" ]; then
|
elif [ "$2" == "rpi" ]; then
|
||||||
TOOLCHAIN_PREFIX="arm-linux-gnueabihf"
|
TOOLCHAIN_PREFIX="arm-linux-gnueabihf"
|
||||||
@ -75,8 +97,16 @@ elif [ "$1" == "crosscompile" ]; then
|
|||||||
#zlib doesn't use the correct ranlib
|
#zlib doesn't use the correct ranlib
|
||||||
RANLIB=$TOOLCHAIN_PREFIX-ranlib
|
RANLIB=$TOOLCHAIN_PREFIX-ranlib
|
||||||
echo "[INFO] Cross-compiling for Intel MacOS"
|
echo "[INFO] Cross-compiling for Intel MacOS"
|
||||||
|
elif [ "$2" == "ios" ] || [ "$2" == "ios-armv6" ]; then
|
||||||
|
[ -z "$march" ] && march=armv6;
|
||||||
|
[ -z "$mtune" ] && mtune=generic-armv6;
|
||||||
|
CONFIGURE_FLAGS="--target=arm-apple-darwin10"
|
||||||
|
elif [ "$2" == "ios-armv7" ]; then
|
||||||
|
[ -z "$march" ] && march=armv7-a;
|
||||||
|
[ -z "$mtune" ] && mtune=generic-armv7-a;
|
||||||
|
CONFIGURE_FLAGS="--target=arm-apple-darwin10"
|
||||||
else
|
else
|
||||||
echo "Please supply a proper platform [android android-armv6 android-armv7 rpi mac] to cross-compile"
|
echo "Please supply a proper platform [android android-armv6 android-armv7 rpi mac ios ios-armv6 ios-armv7] to cross-compile"
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
elif [ -z "$CFLAGS" ]; then
|
elif [ -z "$CFLAGS" ]; then
|
||||||
@ -89,26 +119,41 @@ elif [ -z "$CFLAGS" ]; then
|
|||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
cat > test.c <<'CTEST'
|
||||||
|
#include <stdio.h>
|
||||||
|
main(){
|
||||||
|
printf("Hello world\n");
|
||||||
|
}
|
||||||
|
CTEST
|
||||||
|
|
||||||
|
|
||||||
type $CC >> "$DIR/install.log" 2>&1 || { echo >&2 "[ERROR] Please install \"$CC\""; read -p "Press [Enter] to continue..."; exit 1; }
|
type $CC >> "$DIR/install.log" 2>&1 || { echo >&2 "[ERROR] Please install \"$CC\""; read -p "Press [Enter] to continue..."; exit 1; }
|
||||||
|
|
||||||
[ -z "$THREADS" ] && THREADS=1;
|
[ -z "$THREADS" ] && THREADS=1;
|
||||||
[ -z "$march" ] && march=native;
|
[ -z "$march" ] && march=native;
|
||||||
[ -z "$mtune" ] && mtune=native;
|
[ -z "$mtune" ] && mtune=native;
|
||||||
[ -z "$CFLAGS" ] && CFLAGS="";
|
[ -z "$CFLAGS" ] && CFLAGS="";
|
||||||
|
[ -z "$LDFLAGS" ] && LDFLAGS="";
|
||||||
[ -z "$CONFIGURE_FLAGS" ] && CONFIGURE_FLAGS="";
|
[ -z "$CONFIGURE_FLAGS" ] && CONFIGURE_FLAGS="";
|
||||||
|
|
||||||
$CC -O2 -pipe -march=$march -mtune=$mtune -fno-gcse $CFLAGS -Q --help=target >> "$DIR/install.log" 2>&1
|
|
||||||
if [ $? -ne 0 ]; then
|
if [ "$mtune" != "none" ]; then
|
||||||
$CC -O2 -fno-gcse $CFLAGS -Q --help=target >> "$DIR/install.log" 2>&1
|
$CC -march=$march -mtune=$mtune $CFLAGS -o test test.c >> "$DIR/install.log" 2>&1
|
||||||
if [ $? -ne 0 ]; then
|
if [ $? -eq 0 ]; then
|
||||||
export CFLAGS="-O2 -fno-gcse "
|
CFLAGS="-march=$march -mtune=$mtune -fno-gcse $CFLAGS"
|
||||||
else
|
|
||||||
export CFLAGS="-O2 -fno-gcse $CFLAGS"
|
|
||||||
fi
|
fi
|
||||||
else
|
else
|
||||||
export CFLAGS="-O2 -pipe -march=$march -mtune=$mtune -fno-gcse $CFLAGS"
|
$CC -march=$march $CFLAGS -o test test.c >> "$DIR/install.log" 2>&1
|
||||||
|
if [ $? -eq 0 ]; then
|
||||||
|
CFLAGS="-march=$march -fno-gcse $CFLAGS"
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
rm test >> "$DIR/install.log" 2>&1
|
||||||
|
rm test.c >> "$DIR/install.log" 2>&1
|
||||||
|
|
||||||
|
export CFLAGS="-O2 $CFLAGS"
|
||||||
|
export LDFLAGS="$LDFLAGS"
|
||||||
|
|
||||||
rm -r -f install_data/ >> "$DIR/install.log" 2>&1
|
rm -r -f install_data/ >> "$DIR/install.log" 2>&1
|
||||||
rm -r -f bin/ >> "$DIR/install.log" 2>&1
|
rm -r -f bin/ >> "$DIR/install.log" 2>&1
|
||||||
@ -119,7 +164,7 @@ set -e
|
|||||||
|
|
||||||
#PHP 5
|
#PHP 5
|
||||||
echo -n "[PHP] downloading $PHP_VERSION..."
|
echo -n "[PHP] downloading $PHP_VERSION..."
|
||||||
wget http://php.net/get/php-$PHP_VERSION.tar.gz/from/this/mirror -q -O - | tar -zx >> "$DIR/install.log" 2>&1
|
download_file "http://php.net/get/php-$PHP_VERSION.tar.gz/from/this/mirror" | tar -zx >> "$DIR/install.log" 2>&1
|
||||||
mv php-$PHP_VERSION php
|
mv php-$PHP_VERSION php
|
||||||
echo " done!"
|
echo " done!"
|
||||||
|
|
||||||
@ -128,7 +173,7 @@ if [ 1 ] || [ "$1" == "crosscompile" ] || [ "$1" == "rpi" ]; then
|
|||||||
else
|
else
|
||||||
#libedit
|
#libedit
|
||||||
echo -n "[libedit] downloading $LIBEDIT_VERSION..."
|
echo -n "[libedit] downloading $LIBEDIT_VERSION..."
|
||||||
wget http://download.sourceforge.net/project/libedit/libedit/libedit-$LIBEDIT_VERSION/libedit-$LIBEDIT_VERSION.tar.gz -q -O - | tar -zx >> "$DIR/install.log" 2>&1
|
download_file "http://download.sourceforge.net/project/libedit/libedit/libedit-$LIBEDIT_VERSION/libedit-$LIBEDIT_VERSION.tar.gz" | tar -zx >> "$DIR/install.log" 2>&1
|
||||||
echo -n " checking..."
|
echo -n " checking..."
|
||||||
cd libedit
|
cd libedit
|
||||||
./configure --prefix="$DIR/install_data/php/ext/libedit" --enable-static >> "$DIR/install.log" 2>&1
|
./configure --prefix="$DIR/install_data/php/ext/libedit" --enable-static >> "$DIR/install.log" 2>&1
|
||||||
@ -149,7 +194,7 @@ fi
|
|||||||
|
|
||||||
#zlib
|
#zlib
|
||||||
echo -n "[zlib] downloading $ZLIB_VERSION..."
|
echo -n "[zlib] downloading $ZLIB_VERSION..."
|
||||||
wget http://zlib.net/zlib-$ZLIB_VERSION.tar.gz -q -O - | tar -zx >> "$DIR/install.log" 2>&1
|
download_file "http://zlib.net/zlib-$ZLIB_VERSION.tar.gz" | tar -zx >> "$DIR/install.log" 2>&1
|
||||||
mv zlib-$ZLIB_VERSION zlib
|
mv zlib-$ZLIB_VERSION zlib
|
||||||
echo -n " checking..."
|
echo -n " checking..."
|
||||||
cd zlib
|
cd zlib
|
||||||
@ -165,16 +210,19 @@ rm -r -f ./zlib
|
|||||||
echo " done!"
|
echo " done!"
|
||||||
|
|
||||||
if [ "$(uname -s)" == "Darwin" ] && [ "$1" != "crosscompile" ] && [ "$2" != "curl" ]; then
|
if [ "$(uname -s)" == "Darwin" ] && [ "$1" != "crosscompile" ] && [ "$2" != "curl" ]; then
|
||||||
HAVE_CURL="shared,/usr/local"
|
HAVE_CURL="shared,/usr"
|
||||||
else
|
else
|
||||||
#curl
|
#curl
|
||||||
echo -n "[cURL] downloading $CURL_VERSION..."
|
echo -n "[cURL] downloading $CURL_VERSION..."
|
||||||
wget https://github.com/bagder/curl/archive/$CURL_VERSION.tar.gz --no-check-certificate -q -O - | tar -zx >> "$DIR/install.log" 2>&1
|
download_file "https://github.com/bagder/curl/archive/$CURL_VERSION.tar.gz" | tar -zx >> "$DIR/install.log" 2>&1
|
||||||
mv curl-$CURL_VERSION curl
|
mv curl-$CURL_VERSION curl
|
||||||
echo -n " checking..."
|
echo -n " checking..."
|
||||||
cd curl
|
cd curl
|
||||||
./buildconf >> "$DIR/install.log" 2>&1
|
if [ ! -f ./configure ]; then
|
||||||
./configure --enable-ipv6 \
|
./buildconf --force >> "$DIR/install.log" 2>&1
|
||||||
|
fi
|
||||||
|
./configure --disable-dependency-tracking \
|
||||||
|
--enable-ipv6 \
|
||||||
--enable-optimize \
|
--enable-optimize \
|
||||||
--enable-http \
|
--enable-http \
|
||||||
--enable-ftp \
|
--enable-ftp \
|
||||||
@ -187,8 +235,13 @@ else
|
|||||||
--disable-smtp \
|
--disable-smtp \
|
||||||
--disable-telnet \
|
--disable-telnet \
|
||||||
--disable-tftp \
|
--disable-tftp \
|
||||||
|
--disable-ldap \
|
||||||
|
--disable-ldaps \
|
||||||
|
--without-libidn \
|
||||||
|
--enable-threaded-resolver \
|
||||||
--prefix="$DIR/install_data/php/ext/curl" \
|
--prefix="$DIR/install_data/php/ext/curl" \
|
||||||
--disable-shared \
|
--disable-shared \
|
||||||
|
--enable-static \
|
||||||
$CONFIGURE_FLAGS >> "$DIR/install.log" 2>&1
|
$CONFIGURE_FLAGS >> "$DIR/install.log" 2>&1
|
||||||
echo -n " compiling..."
|
echo -n " compiling..."
|
||||||
make -j $THREADS >> "$DIR/install.log" 2>&1
|
make -j $THREADS >> "$DIR/install.log" 2>&1
|
||||||
@ -203,24 +256,27 @@ fi
|
|||||||
|
|
||||||
#pthreads
|
#pthreads
|
||||||
echo -n "[PHP pthreads] downloading $PTHREADS_VERSION..."
|
echo -n "[PHP pthreads] downloading $PTHREADS_VERSION..."
|
||||||
wget http://pecl.php.net/get/pthreads-$PTHREADS_VERSION.tgz --no-check-certificate -q -O - | tar -zx >> "$DIR/install.log" 2>&1
|
download_file "http://pecl.php.net/get/pthreads-$PTHREADS_VERSION.tgz" | tar -zx >> "$DIR/install.log" 2>&1
|
||||||
mv pthreads-$PTHREADS_VERSION "$DIR/install_data/php/ext/pthreads"
|
mv pthreads-$PTHREADS_VERSION "$DIR/install_data/php/ext/pthreads"
|
||||||
echo " done!"
|
echo " done!"
|
||||||
|
|
||||||
#PHP YAML
|
#PHP YAML
|
||||||
echo -n "[PHP YAML] downloading $PHPYAML_VERSION..."
|
echo -n "[PHP YAML] downloading $PHPYAML_VERSION..."
|
||||||
wget http://pecl.php.net/get/yaml-$PHPYAML_VERSION.tgz --no-check-certificate -q -O - | tar -zx >> "$DIR/install.log" 2>&1
|
download_file "http://pecl.php.net/get/yaml-$PHPYAML_VERSION.tgz" | tar -zx >> "$DIR/install.log" 2>&1
|
||||||
mv yaml-$PHPYAML_VERSION "$DIR/install_data/php/ext/yaml"
|
mv yaml-$PHPYAML_VERSION "$DIR/install_data/php/ext/yaml"
|
||||||
echo " done!"
|
echo " done!"
|
||||||
|
|
||||||
#YAML
|
#YAML
|
||||||
echo -n "[YAML] downloading $YAML_VERSION..."
|
echo -n "[YAML] downloading $YAML_VERSION..."
|
||||||
wget http://pyyaml.org/download/libyaml/yaml-$YAML_VERSION.tar.gz -q -O - | tar -zx >> "$DIR/install.log" 2>&1
|
download_file "http://pyyaml.org/download/libyaml/yaml-$YAML_VERSION.tar.gz" | tar -zx >> "$DIR/install.log" 2>&1
|
||||||
mv yaml-$YAML_VERSION yaml
|
mv yaml-$YAML_VERSION yaml
|
||||||
echo -n " checking..."
|
echo -n " checking..."
|
||||||
cd yaml
|
cd yaml
|
||||||
RANLIB=$RANLIB ./configure --prefix="$DIR/install_data/php/ext/yaml" \
|
RANLIB=$RANLIB ./configure \
|
||||||
--enable-static --disable-shared >> "$DIR/install.log" 2>&1
|
--prefix="$DIR/install_data/php/ext/yaml" \
|
||||||
|
--enable-static \
|
||||||
|
--disable-shared \
|
||||||
|
$CONFIGURE_FLAGS >> "$DIR/install.log" 2>&1
|
||||||
echo -n " compiling..."
|
echo -n " compiling..."
|
||||||
make -j $THREADS >> "$DIR/install.log" 2>&1
|
make -j $THREADS >> "$DIR/install.log" 2>&1
|
||||||
echo -n " installing..."
|
echo -n " installing..."
|
||||||
@ -286,7 +342,7 @@ $HAVE_LIBEDIT \
|
|||||||
--enable-pthreads \
|
--enable-pthreads \
|
||||||
--enable-maintainer-zts \
|
--enable-maintainer-zts \
|
||||||
--enable-zend-signals \
|
--enable-zend-signals \
|
||||||
--with-mysqli=mysqlnd \
|
$HAVE_MYSQLI \
|
||||||
--enable-embedded-mysqli \
|
--enable-embedded-mysqli \
|
||||||
--enable-bcmath \
|
--enable-bcmath \
|
||||||
--enable-cli \
|
--enable-cli \
|
||||||
@ -300,6 +356,29 @@ fi
|
|||||||
make -j $THREADS >> "$DIR/install.log" 2>&1
|
make -j $THREADS >> "$DIR/install.log" 2>&1
|
||||||
echo -n " installing..."
|
echo -n " installing..."
|
||||||
make install >> "$DIR/install.log" 2>&1
|
make install >> "$DIR/install.log" 2>&1
|
||||||
|
echo " generating php.ini..."
|
||||||
|
|
||||||
|
TIMEZONE=$(date +%Z)
|
||||||
|
touch "$DIR/bin/php5/lib/php.ini"
|
||||||
|
if [ "$1" != "crosscompile" ]; then
|
||||||
|
OPCACHE_PATH=$(find "$DIR/bin/php5" -name opcache.so)
|
||||||
|
echo "zend_extension=\"$OPCACHE_PATH\"" >> "$DIR/bin/php5/lib/php.ini"
|
||||||
|
echo "opcache.enable=1" >> "$DIR/bin/php5/lib/php.ini"
|
||||||
|
echo "opcache.enable_cli=1" >> "$DIR/bin/php5/lib/php.ini"
|
||||||
|
echo "opcache.save_comments=0" >> "$DIR/bin/php5/lib/php.ini"
|
||||||
|
echo "opcache.fast_shutdown=1" >> "$DIR/bin/php5/lib/php.ini"
|
||||||
|
echo "opcache.max_accelerated_files=4096" >> "$DIR/bin/php5/lib/php.ini"
|
||||||
|
echo "opcache.interned_strings_buffer=8" >> "$DIR/bin/php5/lib/php.ini"
|
||||||
|
echo "opcache.memory_consumption=128" >> "$DIR/bin/php5/lib/php.ini"
|
||||||
|
echo "opcache.optimization_level=0xffffffff" >> "$DIR/bin/php5/lib/php.ini"
|
||||||
|
fi
|
||||||
|
if [ "$HAVE_CURL" == "shared,/usr" ]; then
|
||||||
|
echo "extension=curl.so" >> "$DIR/bin/php5/lib/php.ini"
|
||||||
|
fi
|
||||||
|
echo "date.timezone=$TIMEZONE" >> "$DIR/bin/php5/lib/php.ini"
|
||||||
|
echo "short_open_tag=0" >> "$DIR/bin/php5/lib/php.ini"
|
||||||
|
echo "asp_tags=0" >> "$DIR/bin/php5/lib/php.ini"
|
||||||
|
|
||||||
echo " done!"
|
echo " done!"
|
||||||
cd "$DIR"
|
cd "$DIR"
|
||||||
echo -n "[INFO] Cleaning up..."
|
echo -n "[INFO] Cleaning up..."
|
||||||
|
128
src/build/installer.sh
Normal file
128
src/build/installer.sh
Normal file
@ -0,0 +1,128 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
PMMP_VERSION=""
|
||||||
|
MAC_BUILD="PHP_5.5.8_x86_MacOS"
|
||||||
|
RPI_BUILD="PHP_5.5.8_ARM_Raspbian_hard"
|
||||||
|
AND_BUILD="PHP_5.5.8_ARMv7_Android"
|
||||||
|
update=off
|
||||||
|
|
||||||
|
#Needed to use aliases
|
||||||
|
shopt -s expand_aliases
|
||||||
|
type wget > /dev/null 2>&1
|
||||||
|
if [ $? -eq 0 ]; then
|
||||||
|
alias download_file="wget --no-check-certificate -q -O -"
|
||||||
|
else
|
||||||
|
type curl >> /dev/null 2>&1
|
||||||
|
if [ $? -eq 0 ]; then
|
||||||
|
alias download_file="curl --insecure --silent --location"
|
||||||
|
else
|
||||||
|
echo "error, curl or wget not found"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
while getopts "udv:" opt; do
|
||||||
|
case $opt in
|
||||||
|
u)
|
||||||
|
update=on
|
||||||
|
;;
|
||||||
|
d)
|
||||||
|
PMMP_VERSION="master"
|
||||||
|
;;
|
||||||
|
v)
|
||||||
|
PMMP_VERSION="$OPTARG"
|
||||||
|
;;
|
||||||
|
\?)
|
||||||
|
echo "Invalid option: -$OPTARG" >&2
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
|
||||||
|
if [ "$PMMP_VERSION" == "" ]; then
|
||||||
|
PMMP_VERSION=$(download_file "https://api.github.com/repos/PocketMine/PocketMine-MP/tags" | grep '"name": "[A-Za-z0-9_\.]*",' | head -1 | sed -r 's/[ ]*"name": "([A-Za-z0-9_\.]*)",[ ]*/\1/')
|
||||||
|
if [ "$PMMP_VERSION" == "" ]; then
|
||||||
|
echo "[ERROR] Couldn't get the latest PocketMine-MP version"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "[INFO] PocketMine-MP $PMMP_VERSION downloader & installer for Linux & Mac"
|
||||||
|
|
||||||
|
echo "[0/3] Cleaning..."
|
||||||
|
rm -r -f src/
|
||||||
|
rm -f PocketMine-MP.php
|
||||||
|
rm -f README.md
|
||||||
|
rm -f CONTRIBUTING.md
|
||||||
|
rm -f LICENSE
|
||||||
|
rm -f start.sh
|
||||||
|
rm -f start.bat
|
||||||
|
echo "[1/3] Downloading PocketMine-MP $PMMP_VERSION..."
|
||||||
|
set -e
|
||||||
|
download_file "https://github.com/shoghicp/PocketMine-MP/archive/$PMMP_VERSION.tar.gz" | tar -zx > /dev/null
|
||||||
|
mv -f PocketMine-MP-$PMMP_VERSION/* ./
|
||||||
|
rm -f -r PocketMine-MP-$PMMP_VERSION/
|
||||||
|
rm -f ./start.cmd
|
||||||
|
chmod +x ./start.sh
|
||||||
|
chmod +x ./src/build/compile.sh
|
||||||
|
if [ $update == on ]; then
|
||||||
|
echo "[3/3] Skipping PHP recompilation due to user request"
|
||||||
|
else
|
||||||
|
echo -n "[3/3] Obtaining PHP:"
|
||||||
|
echo " detecting if build is available..."
|
||||||
|
if [ "$(uname -s)" == "Darwin" ]; then
|
||||||
|
if ["$(uname -s)" == iPhone*] || ["$(uname -s)" == iPod*] || ["$(uname -s)" == iPad*]; then
|
||||||
|
echo -n "[3/3] No binaries for iOS available"
|
||||||
|
else
|
||||||
|
rm -r -f bin/ >> /dev/null 2>&1
|
||||||
|
echo -n "[3/3] Mac OSX PHP build available, downloading $MAC_BUILD.tar.gz..."
|
||||||
|
download_file "http://sourceforge.net/projects/pocketmine/files/builds/$MAC_BUILD.tar.gz" | tar -zx > /dev/null 2>&1
|
||||||
|
chmod +x ./bin/php5/bin/*
|
||||||
|
echo -n " regenerating php.ini..."
|
||||||
|
OPCACHE_PATH=$(find "./bin/php5" -name opcache.so)
|
||||||
|
echo "zend_extension=\"$OPCACHE_PATH\"" > "./bin/php5/lib/php.ini"
|
||||||
|
echo "opcache.enable=1" >> "./bin/php5/lib/php.ini"
|
||||||
|
echo "opcache.enable_cli=1" >> "./bin/php5/lib/php.ini"
|
||||||
|
echo "opcache.save_comments=0" >> "./bin/php5/lib/php.ini"
|
||||||
|
echo "opcache.fast_shutdown=1" >> "./bin/php5/lib/php.ini"
|
||||||
|
echo "opcache.max_accelerated_files=4096" >> "./bin/php5/lib/php.ini"
|
||||||
|
echo "opcache.interned_strings_buffer=8" >> "./bin/php5/lib/php.ini"
|
||||||
|
echo "opcache.memory_consumption=128" >> "./bin/php5/lib/php.ini"
|
||||||
|
echo "opcache.optimization_level=0xffffffff" >> "./bin/php5/lib/php.ini"
|
||||||
|
echo "date.timezone=$TIMEZONE" >> "./bin/php5/lib/php.ini"
|
||||||
|
echo "short_open_tag=0" >> "./bin/php5/lib/php.ini"
|
||||||
|
echo "asp_tags=0" >> "./bin/php5/lib/php.ini"
|
||||||
|
echo " done"
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
set +e
|
||||||
|
grep -q BCM2708 /proc/cpuinfo > /dev/null 2>&1
|
||||||
|
if [ $? -eq 0 ]; then
|
||||||
|
set -e
|
||||||
|
rm -r -f bin/ >> /dev/null 2>&1
|
||||||
|
echo -n "[3/3] Raspberry Pi build available, downloading $RPI_BUILD.tar.gz..."
|
||||||
|
download_file "http://sourceforge.net/projects/pocketmine/files/builds/$RPI_BUILD.tar.gz" | tar -zx > /dev/null 2>&1
|
||||||
|
chmod +x ./bin/php5/bin/*
|
||||||
|
echo -n " regenerating php.ini..."
|
||||||
|
OPCACHE_PATH=$(find "./bin/php5" -name opcache.so)
|
||||||
|
echo "zend_extension=\"$OPCACHE_PATH\"" > "./bin/php5/lib/php.ini"
|
||||||
|
echo "opcache.enable=1" >> "./bin/php5/lib/php.ini"
|
||||||
|
echo "opcache.enable_cli=1" >> "./bin/php5/lib/php.ini"
|
||||||
|
echo "opcache.save_comments=0" >> "./bin/php5/lib/php.ini"
|
||||||
|
echo "opcache.fast_shutdown=1" >> "./bin/php5/lib/php.ini"
|
||||||
|
echo "opcache.max_accelerated_files=4096" >> "./bin/php5/lib/php.ini"
|
||||||
|
echo "opcache.interned_strings_buffer=8" >> "./bin/php5/lib/php.ini"
|
||||||
|
echo "opcache.memory_consumption=128" >> "./bin/php5/lib/php.ini"
|
||||||
|
echo "opcache.optimization_level=0xffffffff" >> "./bin/php5/lib/php.ini"
|
||||||
|
echo "date.timezone=$TIMEZONE" >> "./bin/php5/lib/php.ini"
|
||||||
|
echo "short_open_tag=0" >> "./bin/php5/lib/php.ini"
|
||||||
|
echo "asp_tags=0" >> "./bin/php5/lib/php.ini"
|
||||||
|
echo " done"
|
||||||
|
else
|
||||||
|
set -e
|
||||||
|
echo "[3/3] no build found, compiling PHP"
|
||||||
|
exec ./src/build/compile.sh
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
echo "[INFO] Everything done! Run ./start.sh to start PocketMine-MP"
|
||||||
|
exit 0
|
182
src/build/jenkins.sh
Normal file
182
src/build/jenkins.sh
Normal file
@ -0,0 +1,182 @@
|
|||||||
|
#!/bin/bash -x
|
||||||
|
export PATH=/opt/arm-2013.05/bin:/opt/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian/bin:/opt/arm-unknown-linux-uclibcgnueabi/bin:$PATH
|
||||||
|
export THREADS=2
|
||||||
|
|
||||||
|
#Needed to use aliases
|
||||||
|
shopt -s expand_aliases
|
||||||
|
type wget > /dev/null 2>&1
|
||||||
|
if [ $? -eq 0 ]; then
|
||||||
|
alias download_file="wget --no-check-certificate -q -O -"
|
||||||
|
else
|
||||||
|
type curl >> /dev/null 2>&1
|
||||||
|
if [ $? -eq 0 ]; then
|
||||||
|
alias download_file="curl --insecure --silent --location"
|
||||||
|
else
|
||||||
|
echo "error, curl or wget not found"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
rm -rf $WORKSPACE/compile.sh
|
||||||
|
download_file "https://github.com/PocketMine/PocketMine-MP/raw/master/src/build/compile.sh" > $WORKSPACE/compile.sh
|
||||||
|
chmod +x $WORKSPACE/compile.sh
|
||||||
|
SCRIPT="$WORKSPACE/compile.sh"
|
||||||
|
ARCHIVE=$WORKSPACE/archive
|
||||||
|
COMPILEDIR=$WORKSPACE/compile
|
||||||
|
rm -rf $ARCHIVE $COMPILEDIR
|
||||||
|
mkdir -p $ARCHIVE
|
||||||
|
mkdir -p $COMPILEDIR
|
||||||
|
|
||||||
|
if [ "$COMPILE_LINUX_32BIT" = "true" ];
|
||||||
|
then
|
||||||
|
mkdir -p {$COMPILEDIR,$ARCHIVE}/linux/32bit
|
||||||
|
cd $COMPILEDIR/linux/32bit
|
||||||
|
|
||||||
|
CFLAGS=-m32 march=i686 mtune=generic $SCRIPT
|
||||||
|
|
||||||
|
cp -r $COMPILEDIR/linux/32bit/{install.log,bin/*,install_data/*} $ARCHIVE/linux/32bit/
|
||||||
|
if [ ! -f $COMPILEDIR/linux/32bit/bin/php5/bin/php ]; then
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ "$COMPILE_LINUX_64BIT" = "true" ];
|
||||||
|
then
|
||||||
|
mkdir -p {$COMPILEDIR,$ARCHIVE}/linux/64bit
|
||||||
|
cd $COMPILEDIR/linux/64bit
|
||||||
|
|
||||||
|
$SCRIPT
|
||||||
|
|
||||||
|
cp -r $COMPILEDIR/linux/64bit/{install.log,bin/*,install_data/*} $ARCHIVE/linux/64bit/
|
||||||
|
if [ ! -f $COMPILEDIR/linux/64bit/bin/php5/bin/php ]; then
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ "$COMPILE_MAC" = "true" ];
|
||||||
|
then
|
||||||
|
mkdir -p {$COMPILEDIR,$ARCHIVE}/mac
|
||||||
|
cd $COMPILEDIR/mac
|
||||||
|
|
||||||
|
curl -L http://ftpmirror.gnu.org/libtool/libtool-2.4.2.tar.gz | tar -xz > /dev/null
|
||||||
|
cd libtool-2.4.2
|
||||||
|
./configure --prefix="$COMPILEDIR/mac/libtool" > /dev/null
|
||||||
|
make > /dev/null
|
||||||
|
make install
|
||||||
|
cd ../
|
||||||
|
rm -rf libtool-2.4.2
|
||||||
|
export LIBTOOL="$COMPILEDIR/mac/libtool/bin/libtool"
|
||||||
|
export LIBTOOLIZE="$COMPILEDIR/mac/libtool/bin/libtoolize"
|
||||||
|
$SCRIPT mac curl
|
||||||
|
|
||||||
|
cp -r $COMPILEDIR/mac/{install.log,bin/*,install_data/*} $ARCHIVE/mac/
|
||||||
|
if [ ! -f $COMPILEDIR/mac/bin/php5/bin/php ]; then
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ "$COMPILE_RPI" = "true" ];
|
||||||
|
then
|
||||||
|
mkdir -p {$COMPILEDIR,$ARCHIVE}/rpi
|
||||||
|
cd $COMPILEDIR/rpi
|
||||||
|
|
||||||
|
$SCRIPT rpi
|
||||||
|
|
||||||
|
cp -r $COMPILEDIR/rpi/{install.log,bin/*,install_data/*} $ARCHIVE/rpi/
|
||||||
|
if [ ! -f $COMPILEDIR/rpi/bin/php5/bin/php ]; then
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ "$CROSSCOMPILE_ANDROID_ARMV6" = "true" ];
|
||||||
|
then
|
||||||
|
mkdir -p {$COMPILEDIR,$ARCHIVE}/crosscompile/android-armv6
|
||||||
|
cd $COMPILEDIR/crosscompile/android-armv6
|
||||||
|
|
||||||
|
$SCRIPT crosscompile android-armv6
|
||||||
|
|
||||||
|
cp -r $COMPILEDIR/crosscompile/android-armv6/{install.log,bin/*,install_data/*} $ARCHIVE/crosscompile/android-armv6/
|
||||||
|
if [ ! -f $COMPILEDIR/crosscompile/android-armv6/bin/php5/bin/php ]; then
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ "$CROSSCOMPILE_ANDROID_ARMV7" = "true" ];
|
||||||
|
then
|
||||||
|
mkdir -p {$COMPILEDIR,$ARCHIVE}/crosscompile/android-armv7
|
||||||
|
cd $COMPILEDIR/crosscompile/android-armv7
|
||||||
|
|
||||||
|
$SCRIPT crosscompile android-armv7
|
||||||
|
|
||||||
|
cp -r $COMPILEDIR/crosscompile/android-armv7/{install.log,bin/*,install_data/*} $ARCHIVE/crosscompile/android-armv7/
|
||||||
|
if [ ! -f $COMPILEDIR/crosscompile/android-armv7/bin/php5/bin/php ]; then
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ "$CROSSCOMPILE_IOS_ARMV6" = "true" ];
|
||||||
|
then
|
||||||
|
mkdir -p {$COMPILEDIR,$ARCHIVE}/crosscompile/ios-armv6
|
||||||
|
cd $COMPILEDIR/crosscompile/ios-armv6
|
||||||
|
curl -L http://ftpmirror.gnu.org/libtool/libtool-2.4.2.tar.gz | tar -xz > /dev/null
|
||||||
|
cd libtool-2.4.2
|
||||||
|
./configure --prefix="$COMPILEDIR/crosscompile/ios-armv6/libtool" > /dev/null
|
||||||
|
make > /dev/null
|
||||||
|
make install
|
||||||
|
cd ../
|
||||||
|
rm -rf libtool-2.4.2
|
||||||
|
export LIBTOOL="$COMPILEDIR/crosscompile/ios-armv6/libtool/bin/libtool"
|
||||||
|
export LIBTOOLIZE="$COMPILEDIR/crosscompile/ios-armv6/libtool/bin/libtoolize"
|
||||||
|
PATH="/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin:$PATH" $SCRIPT crosscompile ios-armv6
|
||||||
|
|
||||||
|
cp -r $COMPILEDIR/crosscompile/ios-armv6/{install.log,bin/*,install_data/*} $ARCHIVE/crosscompile/ios-armv6/
|
||||||
|
if [ ! -f $COMPILEDIR/crosscompile/ios-armv6/bin/php5/bin/php ]; then
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ "$CROSSCOMPILE_IOS_ARMV7" = "true" ];
|
||||||
|
then
|
||||||
|
mkdir -p {$COMPILEDIR,$ARCHIVE}/crosscompile/ios-armv7
|
||||||
|
cd $COMPILEDIR/crosscompile/ios-armv7
|
||||||
|
curl -L http://ftpmirror.gnu.org/libtool/libtool-2.4.2.tar.gz | tar -xz > /dev/null
|
||||||
|
cd libtool-2.4.2
|
||||||
|
./configure --prefix="$COMPILEDIR/crosscompile/ios-armv7/libtool" > /dev/null
|
||||||
|
make > /dev/null
|
||||||
|
make install
|
||||||
|
cd ../
|
||||||
|
rm -rf libtool-2.4.2
|
||||||
|
export LIBTOOL="$COMPILEDIR/crosscompile/ios-armv7/libtool/bin/libtool"
|
||||||
|
export LIBTOOLIZE="$COMPILEDIR/crosscompile/ios-armv7/libtool/bin/libtoolize"
|
||||||
|
PATH="/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin:$PATH" $SCRIPT crosscompile ios-armv7
|
||||||
|
|
||||||
|
cp -r $COMPILEDIR/crosscompile/ios-armv7/{install.log,bin/*,install_data/*} $ARCHIVE/crosscompile/ios-armv7/
|
||||||
|
if [ ! -f $COMPILEDIR/crosscompile/ios-armv7/bin/php5/bin/php ]; then
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ "$CROSSCOMPILE_RPI" = "true" ];
|
||||||
|
then
|
||||||
|
mkdir -p {$COMPILEDIR,$ARCHIVE}/crosscompile/rpi
|
||||||
|
cd $COMPILEDIR/crosscompile/rpi
|
||||||
|
|
||||||
|
$SCRIPT crosscompile rpi
|
||||||
|
|
||||||
|
cp -r $COMPILEDIR/crosscompile/rpi/{install.log,bin/*,install_data/*} $ARCHIVE/crosscompile/rpi/
|
||||||
|
if [ ! -f $COMPILEDIR/crosscompile/rpi/bin/php5/bin/php ]; then
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ "$CROSSCOMPILE_MAC" = "true" ];
|
||||||
|
then
|
||||||
|
mkdir -p {$COMPILEDIR,$ARCHIVE}/crosscompile/mac
|
||||||
|
cd $COMPILEDIR/crosscompile/mac
|
||||||
|
|
||||||
|
$SCRIPT crosscompile mac curl
|
||||||
|
|
||||||
|
cp -r $COMPILEDIR/crosscompile/mac/{install.log,bin/*,install_data/*} $ARCHIVE/crosscompile/mac/
|
||||||
|
if [ ! -f $COMPILEDIR/crosscompile/mac/bin/php5/bin/php ]; then
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
fi
|
@ -21,26 +21,36 @@
|
|||||||
|
|
||||||
set_time_limit(0);
|
set_time_limit(0);
|
||||||
|
|
||||||
date_default_timezone_set("GMT");
|
if(ini_get("date.timezone") == ""){ //No Timezone set
|
||||||
if(strpos(" ".strtoupper(php_uname("s")), " WIN") !== false){
|
date_default_timezone_set("GMT");
|
||||||
$time = time();
|
if(strpos(" ".strtoupper(php_uname("s")), " WIN") !== false){
|
||||||
$time -= $time % 60;
|
$time = time();
|
||||||
//TODO: Parse different time & date formats by region. ¬¬ world
|
$time -= $time % 60;
|
||||||
//Example: USA
|
//TODO: Parse different time & date formats by region. ¬¬ world
|
||||||
exec("time.exe /T", $hour);
|
//Example: USA
|
||||||
$i = array_map("intval", explode(":", trim($hour[0])));
|
exec("time.exe /T", $hour);
|
||||||
exec("date.exe /T", $date);
|
$i = array_map("intval", explode(":", trim($hour[0])));
|
||||||
$j = array_map("intval", explode(substr($date[0], 2, 1), trim($date[0])));
|
exec("date.exe /T", $date);
|
||||||
$offset = round((mktime($i[0], $i[1], 0, $j[1], $j[0], $j[2]) - $time) / 60) * 60;
|
$j = array_map("intval", explode(substr($date[0], 2, 1), trim($date[0])));
|
||||||
|
$offset = round((mktime($i[0], $i[1], 0, $j[1], $j[0], $j[2]) - $time) / 60) * 60;
|
||||||
|
}else{
|
||||||
|
exec("date +%s", $t);
|
||||||
|
$offset = round((intval(trim($t[0])) - time()) / 60) * 60;
|
||||||
|
}
|
||||||
|
|
||||||
|
$daylight = (int) date("I");
|
||||||
|
$d = timezone_name_from_abbr("", $offset, $daylight);
|
||||||
|
ini_set("date.timezone", $d);
|
||||||
|
date_default_timezone_set($d);
|
||||||
}else{
|
}else{
|
||||||
exec("date +%s", $t);
|
$d = @date_default_timezone_get();
|
||||||
$offset = round((intval(trim($t[0])) - time()) / 60) * 60;
|
if(strpos($d, "/") === false){
|
||||||
|
$d = timezone_name_from_abbr($d);
|
||||||
|
ini_set("date.timezone", $d);
|
||||||
|
date_default_timezone_set($d);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
$daylight = (int) date("I");
|
|
||||||
|
|
||||||
date_default_timezone_set(timezone_name_from_abbr("", $offset, $daylight));
|
|
||||||
|
|
||||||
gc_enable();
|
gc_enable();
|
||||||
error_reporting(E_ALL | E_STRICT);
|
error_reporting(E_ALL | E_STRICT);
|
||||||
ini_set("allow_url_fopen", 1);
|
ini_set("allow_url_fopen", 1);
|
||||||
|
@ -113,6 +113,7 @@ define("SUGARCANE", 338);
|
|||||||
define("SUGAR_CANE", 338);
|
define("SUGAR_CANE", 338);
|
||||||
define("SUGAR_CANES", 338);
|
define("SUGAR_CANES", 338);
|
||||||
define("PAPER", 339);
|
define("PAPER", 339);
|
||||||
|
define("BOOK", 340);
|
||||||
define("SLIMEBALL", 341);
|
define("SLIMEBALL", 341);
|
||||||
|
|
||||||
define("EGG", 344);
|
define("EGG", 344);
|
||||||
@ -163,4 +164,4 @@ define("CAMERA", 456);
|
|||||||
define("BEETROOT", 457);
|
define("BEETROOT", 457);
|
||||||
define("BEETROOT_SEEDS", 458);
|
define("BEETROOT_SEEDS", 458);
|
||||||
define("BEETROOT_SEED", 458);
|
define("BEETROOT_SEED", 458);
|
||||||
define("BEETROOT_SOUP", 459);
|
define("BEETROOT_SOUP", 459);
|
||||||
|
@ -222,7 +222,25 @@ function error_handler($errno, $errstr, $errfile, $errline){
|
|||||||
if(error_reporting() === 0){ //@ error-control
|
if(error_reporting() === 0){ //@ error-control
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
console("[ERROR] A level ".$errno." error happened: \"$errstr\" in \"$errfile\" at line $errline", true, true, 0);
|
$errorConversion = array(
|
||||||
|
E_ERROR => "E_ERROR",
|
||||||
|
E_WARNING => "E_WARNING",
|
||||||
|
E_PARSE => "E_PARSE",
|
||||||
|
E_NOTICE => "E_NOTICE",
|
||||||
|
E_CORE_ERROR => "E_CORE_ERROR",
|
||||||
|
E_CORE_WARNING => "E_CORE_WARNING",
|
||||||
|
E_COMPILE_ERROR => "E_COMPILE_ERROR",
|
||||||
|
E_COMPILE_WARNING => "E_COMPILE_WARNING",
|
||||||
|
E_USER_ERROR => "E_USER_ERROR",
|
||||||
|
E_USER_WARNING => "E_USER_WARNING",
|
||||||
|
E_USER_NOTICE => "E_USER_NOTICE",
|
||||||
|
E_STRICT => "E_STRICT",
|
||||||
|
E_RECOVERABLE_ERROR => "E_RECOVERABLE_ERROR",
|
||||||
|
E_DEPRECATED => "E_DEPRECATED",
|
||||||
|
E_USER_DEPRECATED => "E_USER_DEPRECATED",
|
||||||
|
);
|
||||||
|
$errno = isset($errorConversion[$errno]) ? $errorConversion[$errno]:$errno;
|
||||||
|
console("[ERROR] A ".$errno." error happened: \"$errstr\" in \"$errfile\" at line $errline", true, true, 0);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -210,7 +210,7 @@ LICENSE;
|
|||||||
//"lv" => "Latviešu",
|
//"lv" => "Latviešu",
|
||||||
"nl" => "Nederlands",
|
"nl" => "Nederlands",
|
||||||
//"pt" => "Português",
|
//"pt" => "Português",
|
||||||
//"sv" => "Svenska",
|
"sv" => "Svenska",
|
||||||
"fi" => "Suomi",
|
"fi" => "Suomi",
|
||||||
"tr" => "Türkçe",
|
"tr" => "Türkçe",
|
||||||
//"et" => "Eesti",
|
//"et" => "Eesti",
|
||||||
|
@ -29,6 +29,4 @@ class Window{
|
|||||||
public function __construct(){
|
public function __construct(){
|
||||||
$this->server = ServerAPI::request();
|
$this->server = ServerAPI::request();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
?>
|
|
@ -1,6 +1,21 @@
|
|||||||
|
language_has_been_selected=وقد تم اختيار اللغة الإنجليزية بشكل صحيح.
|
||||||
|
skip_installer=هل تريد تخطي معالج الإعداد؟
|
||||||
|
|
||||||
|
welcome_to_pocketmine=مرحبا بكم في PocketMine-MP! \ nBefore بدء إعداد ملقم جديد لديك لقبول الترخيص. \ مرخص nPocketMine-MP تحت رخصة LGPL، \ n التي يمكنك أن تقرأ فتح ملف الترخيص على هذا folder.Do كنت ترغب في تخطي المعالج انشاء؟
|
||||||
|
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=ذاكرة الوصول العشوائي هو الحد الأقصى لمقدار الذاكرة سوف تستخدم PocketMine-MP. ينصح قيمة 128-256 ميغا بايت
|
||||||
|
server_ram=RAM الخادم في ميغا بايت
|
||||||
|
gamemode_info=الاختيار بين العمل الإبداعي (1) أو البقاء على قيد الحياة (0)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -1,6 +1,20 @@
|
|||||||
|
language_has_been_selected=Norsk har blitt valgt.
|
||||||
|
skip_installer=Vil du hoppe over utpakking trollmannen?
|
||||||
|
|
||||||
|
welcome_to_pocketmine=Velkommen til PocketMine-MP!\nFør vi starter med å sette opp din nye server må du akseptere vår lisens.\nPocketMine-MP er lisensiert under LGPL lisensen,\nat du kan lese LISENS filen i denne mappen.
|
||||||
|
accept_license=Aksepterer du lisensen?
|
||||||
|
you_have_to_accept_the_license=Du må akseptere LGPL lisensen for å fortsette med å bruke PocketMine-MP
|
||||||
|
|
||||||
|
setting_up_server_now=Nå skal du sette opp din server.
|
||||||
|
default_values_info=Hvis du ikke vil gjøre forskjell med den ordinære verdien, så trenger du bare å trykke Enter.
|
||||||
|
server_properties=Du kan redigere dem senere i server.properties filen.
|
||||||
|
|
||||||
|
name_your_server=Gi et navn til din server
|
||||||
|
port_warning=Ikke bytt på den vanlige port verdien vis dette er din første server.
|
||||||
|
server_port=Server port
|
||||||
|
invalid_port=Ugyldig server port
|
||||||
|
ram_warning=RAMMEN er den maksimale beløpet PocketMine-MP vil bruke. A verdien av 128-256 MB er anbefalt
|
||||||
|
server_ram=Server RAMMEN i MB
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -1,6 +1,45 @@
|
|||||||
|
language_has_been_selected=Svenska har bilvit valt.
|
||||||
|
skip_installer=Vill du hoppa över Installations programmet?
|
||||||
|
|
||||||
|
welcome_to_pocketmine=Välkommen till PocketMine-MP! Före du börja ställa in din server måste du godkänna licensen. PocketMIne-MP är licenserat under LGPL Licensen som du kan läsa genom att öppna LICENSE filen i den här mappen.
|
||||||
|
accept_license=Accepterar du Licensen?
|
||||||
|
you_have_to_accept_the_license=Du måste godkänna LGPL licensen för att fortsätta använda PocketMine-MP
|
||||||
|
|
||||||
|
setting_up_server_now=Du håller på att börja ställa in din server nu.
|
||||||
|
default_values_info=Om du inte vill ändra standard värdet, tryck bara ENTER.
|
||||||
|
server_properties=Du kan redigera dem senare i server.properies filen.
|
||||||
|
|
||||||
|
name_your_server=Ge ett namn till din server
|
||||||
|
port_warning=ändra INTE standard porten om detta är din första server.
|
||||||
|
server_port=Server port
|
||||||
|
invalid_port=Ogiltig Server port
|
||||||
|
ram_warning=RAM är max mängden minne PocketMine-MP kommer använda. Ett väre av 128-256 MB är rekommenderat
|
||||||
|
server_ram=Server RAM i MB
|
||||||
|
gamemode_info=Välj mellan Kreativt läge (1) eller Överlevnad (0)
|
||||||
|
default_gamemode=Standard spelläge
|
||||||
|
max_players=Max spelare online
|
||||||
|
spawn_protection_info=Spawn skydd stoppar spelare från att bygga / krossa block i Spawn-zonen förutom för OPs
|
||||||
|
spawn_protection=Aktivera Spawn-skydd?
|
||||||
|
|
||||||
|
op_info=En OP är en spelar Administratör på servern. OPs kan köra fler kommandon än vanliga spelare
|
||||||
|
op_who=OP spelar namn (Ditt IGN här)
|
||||||
|
op_warning=Du kommer kunna lägga till fler OPs senare me /op <spelare>
|
||||||
|
whitelist_info=whitelisten är en lista på spelare som får komma in på servern.
|
||||||
|
whitelist_enable=Vill du aktivera whitelisten?
|
||||||
|
whitelist_warning=Du måste i så fall lägga till spelare på whitelisten
|
||||||
|
|
||||||
|
query_warning1=Query är ett protokoll som används av olika verktyg för att samla in information om din server och spelare loggade in.
|
||||||
|
query_warning2=Om du stänger av den så kommer du inte kunna använda serverlistor.
|
||||||
|
query_disable=Vill du stänga av Query?
|
||||||
|
rcon_info=RCON är ett protocol för att trådlöst ansluta till server konsolen med ett lösenord.
|
||||||
|
rcon_enable=Vill du aktivera RCON?
|
||||||
|
rcon_password=RCON lösenord (kan bytas senare)
|
||||||
|
usage_info=Anonym data användning tillåter oss att räkna ut global statistik för PocketMine-MP och dess plugin. Du kan se dessa på stats.pocketmine.net
|
||||||
|
usage_disable=Vill du stänga av anonym data använding?
|
||||||
|
ip_get=Hämtar din externa IP och interna IP
|
||||||
|
ip_warning=Din externa Ip är {{EXTERNAL_IP}}} Du kan behöva göra en "port-foward" till din Interna IP {{INTERNAL_IP}}
|
||||||
|
ip_confirm=Var säker på att du kollar den. Om du måste göra en "port-foward" men skippar det så kommer inga externa spelare att kunna logga in på din server. [Tryck på ENTER]
|
||||||
|
|
||||||
|
you_have_finished=Du är nu klar. Allt har genomförts korrekt
|
||||||
|
pocketmine_will_start=Din Server kommer nu att starta. skriv /help eller /? för en list på tillgängliga kommandon.
|
||||||
|
pocketmine_plugins=Kolla in Plugin Hemsidan för att lägga till nya saker till din server, minispel, eller avancerat skydd
|
||||||
|
@ -1,6 +1,31 @@
|
|||||||
|
language_has_been_selected=Tiếng Anh đã được chọn.
|
||||||
|
skip_installer=Bạn có muốn bỏ qua hướng dẫn set-up?
|
||||||
|
|
||||||
|
welcome_to_pocketmine=Chào mừng tới PocketMine-MP!\nTrước khi bắt đầu, bạn phải chấp nhận hợp đồng. \nPocketMine-MP được hợp đồng bởi LGPL License,\nbạn có thể đọc file LICENSE trong thư mục này.
|
||||||
|
accept_license=Bạn có chấp nhận hợp đồng ?
|
||||||
|
you_have_to_accept_the_license=Bạn phải chấp nhận LGPL license để sử dụng PocketMine-MP
|
||||||
|
|
||||||
|
setting_up_server_now=Bạn sẽ bắt đầu set up server của bạn ngay.
|
||||||
|
default_values_info=Nếu bạn không muốn đổi giá trị mặc định, nhấn Enter.
|
||||||
|
server_properties=Bạn có thể chỉnh sửa lại vào file server.properties .
|
||||||
|
|
||||||
|
name_your_server=Đặt tên server
|
||||||
|
port_warning=Không được đổi giá trị port mặc định nếu đây là server đầu tiên của bạn.
|
||||||
|
server_port=Server port
|
||||||
|
invalid_port=Server port không đúng
|
||||||
|
ram_warning=RAM là tất cả bộ nhớ mà PocketMine-MP sẽ sử dụng. 128/256 MB là cần thiết
|
||||||
|
server_ram=Server RAM theo MB
|
||||||
|
gamemode_info=Chọn Creative (1) hoặc Survival (0)
|
||||||
|
default_gamemode=Chế độ mặc định
|
||||||
|
max_players=Giới hạn lượng người chơi
|
||||||
|
spawn_protection_info=Spawn protection không cho phép đặt/đập trong khu vực hồi sinh trừ OPs
|
||||||
|
spawn_protection=Mở Spawn protection?
|
||||||
|
|
||||||
|
op_info=OP là chủ/quản lí server. OPs có nhiều quyền hạn hơn người thường
|
||||||
|
op_who=Tên OP (ví dụ, tên bạn)
|
||||||
|
op_warning=Bạn có thể thêm OP bằng lệnh /op <player>
|
||||||
|
whitelist_info=White-list chỉ cho người có phép của quản lí tham gia.
|
||||||
|
whitelist_enable=Bạn có muốn bật white-list?
|
||||||
|
whitelist_warning=Bạn sẽ phải thêm người chơi vào white-list
|
||||||
|
|
||||||
|
|
||||||
|
@ -283,7 +283,7 @@ class PMFLevel extends PMF{
|
|||||||
return str_repeat("\x00", 8192);
|
return str_repeat("\x00", 8192);
|
||||||
}
|
}
|
||||||
$index = $this->getIndex($X, $Z);
|
$index = $this->getIndex($X, $Z);
|
||||||
if($this->chunks[$index][$Y] === false){
|
if(!isset($this->chunks[$index][$Y]) or $this->chunks[$index][$Y] === false){
|
||||||
return str_repeat("\x00", 8192);
|
return str_repeat("\x00", 8192);
|
||||||
}
|
}
|
||||||
return $this->chunks[$index][$Y];
|
return $this->chunks[$index][$Y];
|
||||||
|
@ -23,11 +23,12 @@ class Cache{
|
|||||||
public static $cached = array();
|
public static $cached = array();
|
||||||
|
|
||||||
public static function add($identifier, $blob, $minTTL = 30){
|
public static function add($identifier, $blob, $minTTL = 30){
|
||||||
self::$cached[$identifier] = array($blob, microtime(true) + $minTTL);
|
self::$cached[$identifier] = array($blob, microtime(true) + $minTTL, $minTTL);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static function get($identifier){
|
public static function get($identifier){
|
||||||
if(isset(self::$cached[$identifier])){
|
if(isset(self::$cached[$identifier])){
|
||||||
|
self::$cached[$identifier][1] += $minTTL;
|
||||||
return self::$cached[$identifier][0];
|
return self::$cached[$identifier][0];
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
|
@ -121,7 +121,7 @@ class Utils{
|
|||||||
}
|
}
|
||||||
|
|
||||||
public static function readTriad($str){
|
public static function readTriad($str){
|
||||||
list(,$unpacked) = unpack("N", "\x00".$str);
|
list(,$unpacked) = @unpack("N", "\x00".$str);
|
||||||
return $unpacked;
|
return $unpacked;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -457,7 +457,7 @@ class Utils{
|
|||||||
}
|
}
|
||||||
|
|
||||||
public static function readShort($str, $signed = true){
|
public static function readShort($str, $signed = true){
|
||||||
list(,$unpacked) = unpack("n", $str);
|
list(,$unpacked) = @unpack("n", $str);
|
||||||
if($unpacked > 0x7fff and $signed === true){
|
if($unpacked > 0x7fff and $signed === true){
|
||||||
$unpacked -= 0x10000; // Convert unsigned short to signed short
|
$unpacked -= 0x10000; // Convert unsigned short to signed short
|
||||||
}
|
}
|
||||||
@ -472,7 +472,7 @@ class Utils{
|
|||||||
}
|
}
|
||||||
|
|
||||||
public static function readLShort($str, $signed = true){
|
public static function readLShort($str, $signed = true){
|
||||||
list(,$unpacked) = unpack("v", $str);
|
list(,$unpacked) = @unpack("v", $str);
|
||||||
if($unpacked > 0x7fff and $signed === true){
|
if($unpacked > 0x7fff and $signed === true){
|
||||||
$unpacked -= 0x10000; // Convert unsigned short to signed short
|
$unpacked -= 0x10000; // Convert unsigned short to signed short
|
||||||
}
|
}
|
||||||
@ -487,7 +487,7 @@ class Utils{
|
|||||||
}
|
}
|
||||||
|
|
||||||
public static function readInt($str){
|
public static function readInt($str){
|
||||||
list(,$unpacked) = unpack("N", $str);
|
list(,$unpacked) = @unpack("N", $str);
|
||||||
if($unpacked >= 2147483648){
|
if($unpacked >= 2147483648){
|
||||||
$unpacked -= 4294967296;
|
$unpacked -= 4294967296;
|
||||||
}
|
}
|
||||||
@ -502,7 +502,7 @@ class Utils{
|
|||||||
}
|
}
|
||||||
|
|
||||||
public static function readLInt($str){
|
public static function readLInt($str){
|
||||||
list(,$unpacked) = unpack("V", $str);
|
list(,$unpacked) = @unpack("V", $str);
|
||||||
if($unpacked >= 2147483648){
|
if($unpacked >= 2147483648){
|
||||||
$unpacked -= 4294967296;
|
$unpacked -= 4294967296;
|
||||||
}
|
}
|
||||||
@ -517,7 +517,7 @@ class Utils{
|
|||||||
}
|
}
|
||||||
|
|
||||||
public static function readFloat($str){
|
public static function readFloat($str){
|
||||||
list(,$value) = ENDIANNESS === BIG_ENDIAN ? unpack("f", $str):unpack("f", strrev($str));
|
list(,$value) = ENDIANNESS === BIG_ENDIAN ? @unpack("f", $str):@unpack("f", strrev($str));
|
||||||
return $value;
|
return $value;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -526,7 +526,7 @@ class Utils{
|
|||||||
}
|
}
|
||||||
|
|
||||||
public static function readLFloat($str){
|
public static function readLFloat($str){
|
||||||
list(,$value) = ENDIANNESS === BIG_ENDIAN ? unpack("f", strrev($str)):unpack("f", $str);
|
list(,$value) = ENDIANNESS === BIG_ENDIAN ? @unpack("f", strrev($str)):@unpack("f", $str);
|
||||||
return $value;
|
return $value;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -539,7 +539,7 @@ class Utils{
|
|||||||
}
|
}
|
||||||
|
|
||||||
public static function readDouble($str){
|
public static function readDouble($str){
|
||||||
list(,$value) = ENDIANNESS === BIG_ENDIAN ? unpack("d", $str):unpack("d", strrev($str));
|
list(,$value) = ENDIANNESS === BIG_ENDIAN ? @unpack("d", $str):@unpack("d", strrev($str));
|
||||||
return $value;
|
return $value;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -548,7 +548,7 @@ class Utils{
|
|||||||
}
|
}
|
||||||
|
|
||||||
public static function readLDouble($str){
|
public static function readLDouble($str){
|
||||||
list(,$value) = ENDIANNESS === BIG_ENDIAN ? unpack("d", strrev($str)):unpack("d", $str);
|
list(,$value) = ENDIANNESS === BIG_ENDIAN ? @unpack("d", strrev($str)):@unpack("d", $str);
|
||||||
return $value;
|
return $value;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -80,15 +80,15 @@ class Entity extends Position{
|
|||||||
$this->name = "";
|
$this->name = "";
|
||||||
$this->tickCounter = 0;
|
$this->tickCounter = 0;
|
||||||
$this->server->query("INSERT OR REPLACE INTO entities (EID, level, type, class, health, hasUpdate) VALUES (".$this->eid.", '".$this->level->getName()."', ".$this->type.", ".$this->class.", ".$this->health.", 0);");
|
$this->server->query("INSERT OR REPLACE INTO entities (EID, level, type, class, health, hasUpdate) VALUES (".$this->eid.", '".$this->level->getName()."', ".$this->type.", ".$this->class.", ".$this->health.", 0);");
|
||||||
$this->x = isset($this->data["x"]) ? $this->data["x"]:0;
|
$this->x = isset($this->data["x"]) ? (float) $this->data["x"]:0;
|
||||||
$this->y = isset($this->data["y"]) ? $this->data["y"]:0;
|
$this->y = isset($this->data["y"]) ? (float) $this->data["y"]:0;
|
||||||
$this->z = isset($this->data["z"]) ? $this->data["z"]:0;
|
$this->z = isset($this->data["z"]) ? (float) $this->data["z"]:0;
|
||||||
$this->speedX = isset($this->data["speedX"]) ? $this->data["speedX"]:0;
|
$this->speedX = isset($this->data["speedX"]) ? (float) $this->data["speedX"]:0;
|
||||||
$this->speedY = isset($this->data["speedY"]) ? $this->data["speedY"]:0;
|
$this->speedY = isset($this->data["speedY"]) ? (float) $this->data["speedY"]:0;
|
||||||
$this->speedZ = isset($this->data["speedZ"]) ? $this->data["speedZ"]:0;
|
$this->speedZ = isset($this->data["speedZ"]) ? (float) $this->data["speedZ"]:0;
|
||||||
$this->speed = 0;
|
$this->speed = 0;
|
||||||
$this->yaw = isset($this->data["yaw"]) ? $this->data["yaw"]:0;
|
$this->yaw = isset($this->data["yaw"]) ? (float) $this->data["yaw"]:0;
|
||||||
$this->pitch = isset($this->data["pitch"]) ? $this->data["pitch"]:0;
|
$this->pitch = isset($this->data["pitch"]) ? (float) $this->data["pitch"]:0;
|
||||||
$this->position = array("level" => $this->level, "x" => &$this->x, "y" => &$this->y, "z" => &$this->z, "yaw" => &$this->yaw, "pitch" => &$this->pitch);
|
$this->position = array("level" => $this->level, "x" => &$this->x, "y" => &$this->y, "z" => &$this->z, "yaw" => &$this->yaw, "pitch" => &$this->pitch);
|
||||||
switch($this->class){
|
switch($this->class){
|
||||||
case ENTITY_PLAYER:
|
case ENTITY_PLAYER:
|
||||||
@ -971,7 +971,7 @@ class Entity extends Position{
|
|||||||
}else{
|
}else{
|
||||||
return false; //Entity inmunity
|
return false; //Entity inmunity
|
||||||
}
|
}
|
||||||
}elseif($health === $this->health){
|
}elseif($health === $this->health and !$this->dead){
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
if($this->server->api->dhandle("entity.health.change", array("entity" => $this, "eid" => $this->eid, "health" => $health, "cause" => $cause)) !== false or $force === true){
|
if($this->server->api->dhandle("entity.health.change", array("entity" => $this, "eid" => $this->eid, "health" => $health, "cause" => $cause)) !== false or $force === true){
|
||||||
|
Loading…
x
Reference in New Issue
Block a user