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[]
*/
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;

View File

@ -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){

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

View File

@ -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);
}
}