From 79cc6ca559fc3aea4577367f0ae39d97a8b70ce1 Mon Sep 17 00:00:00 2001 From: Shoghi Cervantes Date: Wed, 25 Jun 2014 02:03:58 +0200 Subject: [PATCH] Multiple fixes --- src/pocketmine/Player.php | 9 ++++----- src/pocketmine/Server.php | 6 ++++-- src/pocketmine/event/player/PlayerJoinEvent.php | 3 --- src/pocketmine/network/RakLibInterface.php | 4 +++- 4 files changed, 11 insertions(+), 11 deletions(-) diff --git a/src/pocketmine/Player.php b/src/pocketmine/Player.php index ab6266812..3fbfefaec 100644 --- a/src/pocketmine/Player.php +++ b/src/pocketmine/Player.php @@ -160,7 +160,7 @@ class Player extends Human implements CommandSender, InventoryHolder, IPlayer{ /** * @var \pocketmine\scheduler\TaskHandler[] */ - private $tasks = []; + protected $tasks = []; /** @var PermissibleBase */ private $perm = null; @@ -728,7 +728,7 @@ class Player extends Human implements CommandSender, InventoryHolder, IPlayer{ return false; } - $identifier = $this->interface->putPacket($this, $packet, $needACK); + $identifier = $this->interface->putPacket($this, $packet, $needACK, false); if($needACK and $identifier !== null){ $this->needACK[$identifier] = false; @@ -1086,7 +1086,6 @@ class Player extends Human implements CommandSender, InventoryHolder, IPlayer{ if($this->connected === false){ return; } - $packet->decode(); $this->server->getPluginManager()->callEvent($ev = new DataPacketReceiveEvent($this, $packet)); if($ev->isCancelled()){ @@ -2022,7 +2021,7 @@ class Player extends Human implements CommandSender, InventoryHolder, IPlayer{ if($m !== ""){ $pk = new MessagePacket; - $pk->author = ""; //Do not use this ;) + $pk->source = ""; //Do not use this ;) $pk->message = $this->removeFormat === false ? $m : TextFormat::clean($m); $this->dataPacket($pk); } @@ -2043,8 +2042,8 @@ class Player extends Human implements CommandSender, InventoryHolder, IPlayer{ } } - $this->interface->close($this, $reason); $this->connected = false; + $this->interface->close($this, $reason); $this->server->removePlayer($this); $this->getLevel()->freeAllChunks($this); $this->loggedIn = false; diff --git a/src/pocketmine/Server.php b/src/pocketmine/Server.php index 737505587..ec1ca8339 100644 --- a/src/pocketmine/Server.php +++ b/src/pocketmine/Server.php @@ -68,7 +68,6 @@ use pocketmine\plugin\Plugin; use pocketmine\plugin\PluginLoadOrder; use pocketmine\plugin\PluginManager; use pocketmine\scheduler\CallbackTask; -use pocketmine\scheduler\ExampleTask; use pocketmine\scheduler\SendUsageTask; use pocketmine\scheduler\ServerScheduler; use pocketmine\tile\Tile; @@ -1352,6 +1351,7 @@ class Server{ "spawn-animals" => true, "spawn-mobs" => true, "gamemode" => 0, + "force-gamemode" => false, "hardcore" => false, "pvp" => true, "difficulty" => 1, @@ -1487,6 +1487,7 @@ class Server{ * @return int */ public function broadcast($message, $permissions){ + /** @var CommandSender[] $recipients */ $recipients = []; foreach(explode(";", $permissions) as $permission){ foreach($this->pluginManager->getPermissionSubscriptions($permission) as $permissible){ @@ -1495,6 +1496,7 @@ class Server{ } } } + foreach($recipients as $recipient){ $recipient->sendMessage($message); } @@ -1633,7 +1635,7 @@ class Server{ $this->pluginManager->disablePlugins(); foreach($this->players as $player){ - $player->kick($this->getProperty("settings.shutdown-message", "Server closed")); + $player->close($this->getProperty("settings.shutdown-message", "Server closed"), "server closed"); } foreach($this->getLevels() as $level){ diff --git a/src/pocketmine/event/player/PlayerJoinEvent.php b/src/pocketmine/event/player/PlayerJoinEvent.php index 52f5a7bb7..c684f442c 100644 --- a/src/pocketmine/event/player/PlayerJoinEvent.php +++ b/src/pocketmine/event/player/PlayerJoinEvent.php @@ -38,9 +38,6 @@ class PlayerJoinEvent extends PlayerEvent{ } /** - * Sets the join message. This won't work on Minecraft: PE <= 0.8.1, since the join message is client-side - * We'll see if Mojang adds this in Minecraft: PE 0.9.0 ^.^ - * * @param string $joinMessage */ public function setJoinMessage($joinMessage){ diff --git a/src/pocketmine/network/RakLibInterface.php b/src/pocketmine/network/RakLibInterface.php index d625ba375..d3c5908b9 100644 --- a/src/pocketmine/network/RakLibInterface.php +++ b/src/pocketmine/network/RakLibInterface.php @@ -149,7 +149,9 @@ class RakLibInterface implements ServerInstance, SourceInterface{ public function handleEncapsulated($identifier, EncapsulatedPacket $packet, $flags){ if(isset($this->players[$identifier])){ - $this->players[$identifier]->handleDataPacket($this->getPacket($packet->buffer)); + $pk = $this->getPacket($packet->buffer); + $pk->decode(); + $this->players[$identifier]->handleDataPacket($pk); } }