From f2fa13119a308d9c7284678e42e4dced8f367dec Mon Sep 17 00:00:00 2001 From: Shoghi Cervantes Date: Fri, 11 Jul 2014 02:23:40 +0200 Subject: [PATCH] Added upload/download speed on title bar, referenced ChunkRequestTask --- src/pocketmine/Player.php | 1 + src/pocketmine/Server.php | 2 +- src/pocketmine/level/ChunkRequestTask.php | 4 ++-- src/pocketmine/network/RakLibInterface.php | 17 ++++++++++++++++- src/pocketmine/scheduler/ServerScheduler.php | 2 +- src/raklib | 2 +- 6 files changed, 22 insertions(+), 6 deletions(-) diff --git a/src/pocketmine/Player.php b/src/pocketmine/Player.php index 27dcd3b50..e6461cb40 100644 --- a/src/pocketmine/Player.php +++ b/src/pocketmine/Player.php @@ -502,6 +502,7 @@ class Player extends Human implements CommandSender, InventoryHolder, IPlayer{ $pk->chunkX = $x; $pk->chunkZ = $z; $this->dataPacket($pk); + $this->getLevel()->freeChunk($x, $z, $this); unset($this->usedChunks[$index]); } unset($this->loadQueue[$index]); diff --git a/src/pocketmine/Server.php b/src/pocketmine/Server.php index c3004393f..5f601a621 100644 --- a/src/pocketmine/Server.php +++ b/src/pocketmine/Server.php @@ -1980,7 +1980,7 @@ class Server{ public function titleTick(){ if(defined("pocketmine\\DEBUG") and \pocketmine\DEBUG >= 0 and \pocketmine\ANSI === true){ - echo "\x1b]0;PocketMine-MP " . $this->getPocketMineVersion() . " | Online " . count($this->players) . "/" . $this->getMaxPlayers() . " | RAM " . round((memory_get_usage() / 1024) / 1024, 2) . "/" . round((memory_get_usage(true) / 1024) / 1024, 2) . " MB | U -1 D -1 kB/s | TPS " . $this->getTicksPerSecond() . "\x07"; + echo "\x1b]0;PocketMine-MP " . $this->getPocketMineVersion() . " | Online " . count($this->players) . "/" . $this->getMaxPlayers() . " | RAM " . round((memory_get_usage() / 1024) / 1024, 2) . "/" . round((memory_get_usage(true) / 1024) / 1024, 2) . " MB | U ". round($this->mainInterface->getUploadUsage() / 1024, 2) ." D ". round($this->mainInterface->getDownloadUsage() / 1024, 2) ." kB/s | TPS " . $this->getTicksPerSecond() . "\x07"; } } diff --git a/src/pocketmine/level/ChunkRequestTask.php b/src/pocketmine/level/ChunkRequestTask.php index f102949c3..db0c46486 100644 --- a/src/pocketmine/level/ChunkRequestTask.php +++ b/src/pocketmine/level/ChunkRequestTask.php @@ -114,7 +114,7 @@ class ChunkRequestTask extends AsyncTask{ $this->setResult($ordered); } - public function getColumn($data, $x, $z){ + public function getColumn(&$data, $x, $z){ $i = ($z << 4) + $x; $column = ""; for($y = 0; $y < 128; ++$y){ @@ -123,7 +123,7 @@ class ChunkRequestTask extends AsyncTask{ return $column; } - public function getHalfColumn($data, $x, $z){ + public function getHalfColumn(&$data, $x, $z){ $i = ($z << 3) + ($x >> 1); $column = ""; if(($x & 1) === 0){ diff --git a/src/pocketmine/network/RakLibInterface.php b/src/pocketmine/network/RakLibInterface.php index 9580d3b83..f996c70d0 100644 --- a/src/pocketmine/network/RakLibInterface.php +++ b/src/pocketmine/network/RakLibInterface.php @@ -99,6 +99,9 @@ class RakLibInterface implements ServerInstance, SourceInterface{ private $tickTask; + private $upload = 0; + private $download = 0; + public function __construct(Server $server){ $this->server = $server; $this->identifers = new \SplObjectStorage(); @@ -181,7 +184,19 @@ class RakLibInterface implements ServerInstance, SourceInterface{ } public function handleOption($name, $value){ - //TODO + if($name === "bandwidth"){ + $v = unserialize($value); + $this->upload = $v["up"]; + $this->download = $v["down"]; + } + } + + public function getUploadUsage(){ + return $this->upload; + } + + public function getDownloadUsage(){ + return $this->download; } public function putPacket(Player $player, DataPacket $packet, $needACK = false, $immediate = false){ diff --git a/src/pocketmine/scheduler/ServerScheduler.php b/src/pocketmine/scheduler/ServerScheduler.php index c4a3b4854..8e77034a5 100644 --- a/src/pocketmine/scheduler/ServerScheduler.php +++ b/src/pocketmine/scheduler/ServerScheduler.php @@ -29,7 +29,7 @@ use pocketmine\Server; use pocketmine\utils\ReversePriorityQueue; class ServerScheduler{ - public static $WORKERS = 3; + public static $WORKERS = 4; /** * @var ReversePriorityQueue */ diff --git a/src/raklib b/src/raklib index bf60d62c0..9b0c3a587 160000 --- a/src/raklib +++ b/src/raklib @@ -1 +1 @@ -Subproject commit bf60d62c08353720ef0e65ae1c5c399c80e16b87 +Subproject commit 9b0c3a587251d47cf63dbe0f9432126177b417a5