From 905d572d428480f75e6577c80402acbf99fda3ed Mon Sep 17 00:00:00 2001 From: Shoghi Cervantes Date: Wed, 4 Jun 2014 17:08:09 +0200 Subject: [PATCH] Added RakLib library --- .gitmodules | 6 ++- src/pocketmine/PocketMine.php | 23 +++++++- src/pocketmine/gui | 2 +- src/pocketmine/network/SourceInterface.php | 53 +++++++++++++++++++ .../network/protocol/DataPacket.php | 10 ---- src/raklib | 1 + src/spl/SplClassLoader.php | 2 +- 7 files changed, 82 insertions(+), 15 deletions(-) create mode 100644 src/pocketmine/network/SourceInterface.php create mode 160000 src/raklib diff --git a/.gitmodules b/.gitmodules index 078637a03..76848a4c1 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,4 +1,8 @@ [submodule "src/pocketmine/gui"] path = src/pocketmine/gui - url = https://github.com/PocketMine/PocketMine-MP-GUI.git + url = git://github.com/PocketMine/PocketMine-MP-GUI.git + branch = master +[submodule "src/raklib"] + path = src/raklib + url = git://github.com/PocketMine/RakLib.git branch = master diff --git a/src/pocketmine/PocketMine.php b/src/pocketmine/PocketMine.php index 2972c856a..ec456fa17 100644 --- a/src/pocketmine/PocketMine.php +++ b/src/pocketmine/PocketMine.php @@ -315,12 +315,31 @@ namespace pocketmine { $logger->warning("Non-packaged PocketMine-MP installation detected, do not use on production."); } - $server = new Server($autoloader, $logger, \pocketmine\PATH, \pocketmine\DATA, \pocketmine\PLUGIN_PATH); + include_once("../RakLib/raklib/RakLib.php"); + \raklib\RakLib::bootstrap($autoloader); + $server = new \raklib\server\RakLibServer($logger, $autoloader, 19132, "192.168.1.1"); + $socket = $server->getExternalSocket(); + while(true){ + if(($len = @socket_read($socket, 4)) !== ""){ + $packet = socket_read($socket, Binary::readInt($len)); + $id = ord($packet{0}); + if($id === \raklib\RakLib::PACKET_ENCAPSULATED){ + $len = ord($packet{1}); + $identifier = substr($packet, 2, $len); + $buffer = substr($packet, 2 + $len); + $pk = \raklib\protocol\EncapsulatedPacket::fromBinary($buffer); + var_dump($pk); + + } + } + usleep(1000); + } + /*$server = new Server($autoloader, $logger, \pocketmine\PATH, \pocketmine\DATA, \pocketmine\PLUGIN_PATH); $server->start(); $logger->shutdown(); $logger->join(); kill(getmypid()); - exit(0); + exit(0);*/ } diff --git a/src/pocketmine/gui b/src/pocketmine/gui index 729b3d8c9..1b900a16e 160000 --- a/src/pocketmine/gui +++ b/src/pocketmine/gui @@ -1 +1 @@ -Subproject commit 729b3d8c97e2e66431c28063027060c11bdd3c15 +Subproject commit 1b900a16eaf5bbd800828e3105432a3e96403f87 diff --git a/src/pocketmine/network/SourceInterface.php b/src/pocketmine/network/SourceInterface.php new file mode 100644 index 000000000..57e0bd838 --- /dev/null +++ b/src/pocketmine/network/SourceInterface.php @@ -0,0 +1,53 @@ +