Multiple fixes

This commit is contained in:
Shoghi Cervantes 2014-06-25 02:03:58 +02:00
parent fd9fdc30cb
commit 79cc6ca559
4 changed files with 11 additions and 11 deletions

View File

@ -160,7 +160,7 @@ class Player extends Human implements CommandSender, InventoryHolder, IPlayer{
/** /**
* @var \pocketmine\scheduler\TaskHandler[] * @var \pocketmine\scheduler\TaskHandler[]
*/ */
private $tasks = []; protected $tasks = [];
/** @var PermissibleBase */ /** @var PermissibleBase */
private $perm = null; private $perm = null;
@ -728,7 +728,7 @@ class Player extends Human implements CommandSender, InventoryHolder, IPlayer{
return false; return false;
} }
$identifier = $this->interface->putPacket($this, $packet, $needACK); $identifier = $this->interface->putPacket($this, $packet, $needACK, false);
if($needACK and $identifier !== null){ if($needACK and $identifier !== null){
$this->needACK[$identifier] = false; $this->needACK[$identifier] = false;
@ -1086,7 +1086,6 @@ class Player extends Human implements CommandSender, InventoryHolder, IPlayer{
if($this->connected === false){ if($this->connected === false){
return; return;
} }
$packet->decode();
$this->server->getPluginManager()->callEvent($ev = new DataPacketReceiveEvent($this, $packet)); $this->server->getPluginManager()->callEvent($ev = new DataPacketReceiveEvent($this, $packet));
if($ev->isCancelled()){ if($ev->isCancelled()){
@ -2022,7 +2021,7 @@ class Player extends Human implements CommandSender, InventoryHolder, IPlayer{
if($m !== ""){ if($m !== ""){
$pk = new MessagePacket; $pk = new MessagePacket;
$pk->author = ""; //Do not use this ;) $pk->source = ""; //Do not use this ;)
$pk->message = $this->removeFormat === false ? $m : TextFormat::clean($m); $pk->message = $this->removeFormat === false ? $m : TextFormat::clean($m);
$this->dataPacket($pk); $this->dataPacket($pk);
} }
@ -2043,8 +2042,8 @@ class Player extends Human implements CommandSender, InventoryHolder, IPlayer{
} }
} }
$this->interface->close($this, $reason);
$this->connected = false; $this->connected = false;
$this->interface->close($this, $reason);
$this->server->removePlayer($this); $this->server->removePlayer($this);
$this->getLevel()->freeAllChunks($this); $this->getLevel()->freeAllChunks($this);
$this->loggedIn = false; $this->loggedIn = false;

View File

@ -68,7 +68,6 @@ use pocketmine\plugin\Plugin;
use pocketmine\plugin\PluginLoadOrder; use pocketmine\plugin\PluginLoadOrder;
use pocketmine\plugin\PluginManager; use pocketmine\plugin\PluginManager;
use pocketmine\scheduler\CallbackTask; use pocketmine\scheduler\CallbackTask;
use pocketmine\scheduler\ExampleTask;
use pocketmine\scheduler\SendUsageTask; use pocketmine\scheduler\SendUsageTask;
use pocketmine\scheduler\ServerScheduler; use pocketmine\scheduler\ServerScheduler;
use pocketmine\tile\Tile; use pocketmine\tile\Tile;
@ -1352,6 +1351,7 @@ class Server{
"spawn-animals" => true, "spawn-animals" => true,
"spawn-mobs" => true, "spawn-mobs" => true,
"gamemode" => 0, "gamemode" => 0,
"force-gamemode" => false,
"hardcore" => false, "hardcore" => false,
"pvp" => true, "pvp" => true,
"difficulty" => 1, "difficulty" => 1,
@ -1487,6 +1487,7 @@ class Server{
* @return int * @return int
*/ */
public function broadcast($message, $permissions){ public function broadcast($message, $permissions){
/** @var CommandSender[] $recipients */
$recipients = []; $recipients = [];
foreach(explode(";", $permissions) as $permission){ foreach(explode(";", $permissions) as $permission){
foreach($this->pluginManager->getPermissionSubscriptions($permission) as $permissible){ foreach($this->pluginManager->getPermissionSubscriptions($permission) as $permissible){
@ -1495,6 +1496,7 @@ class Server{
} }
} }
} }
foreach($recipients as $recipient){ foreach($recipients as $recipient){
$recipient->sendMessage($message); $recipient->sendMessage($message);
} }
@ -1633,7 +1635,7 @@ class Server{
$this->pluginManager->disablePlugins(); $this->pluginManager->disablePlugins();
foreach($this->players as $player){ 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){ foreach($this->getLevels() as $level){

View File

@ -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 * @param string $joinMessage
*/ */
public function setJoinMessage($joinMessage){ public function setJoinMessage($joinMessage){

View File

@ -149,7 +149,9 @@ class RakLibInterface implements ServerInstance, SourceInterface{
public function handleEncapsulated($identifier, EncapsulatedPacket $packet, $flags){ public function handleEncapsulated($identifier, EncapsulatedPacket $packet, $flags){
if(isset($this->players[$identifier])){ 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);
} }
} }