Todos for PocketMine/PocketMine-MP

These are TODOs that are seen in the code

LightPopulationTask.php
          
            );
		if($chunk === null){
			//TODO error
			return;
		}

		$chunk->recalculateHeightMap();
		$chunk-
          
          
            ::fromFastBinary($this->chunk, $level->getProvider());
			if($chunk === null){
				//TODO error
				return
          
      
Cobweb.php
          
            ){
		$entity->resetFallDistance();
	}

	public function getDrops(Item $item){
		//TODO: correct drops
		return [];
	}
}
          
      
Potion.php
          
            , "Potion");
	}

	public function canBeConsumed() : bool{
		return true;
	}

	public function onConsume(Entity $entity){
		// TODO: Implement potions
	}
}

          
      
MountainsBiome.php
          
            >setBaseAmount(1);

		$this->addPopulator($tallGrass);

		//TODO: add emerald

		$this->setElevation(63, 127
          
      
GenerationTask.php
          
            ($this->chunk);
		if($chunk === null){
			//TODO error
			return;
		}

		$manager->setChunk($chunk-
          
          
            , $level->getProvider());
			if($chunk === null){
				//TODO error
				return;
			}
			$level-
          
      
Anvil.php
          
            () >= Tool::TIER_WOODEN){
			return [
				[$this->id, 0, 1], //TODO break level
			];
		}else{
			return [];
		}
	}
}
          
      
DoublePlant.php
          
            ;
			}
		}

		return false;
	}

	public function getDrops(Item $item){
		//TODO

		return [];
	}

}
          
      
Mycelium.php
          
            ){
		if($type === Level::BLOCK_UPDATE_RANDOM){
			//TODO: light levels
			$x = mt_rand($this-
          
      
NetherBrickFence.php
          
            ){
		//TODO: activate comments when the NetherBrickFenceGate class has been created.
		return ($block
          
      
Stonecutter.php
          
             pocketmine\Player;

//TODO: check orientation
class Stonecutter extends Solid{

	protected $id
          
      
Workbench.php
          
             pocketmine\Player;

//TODO: check orientation
class Workbench extends Solid{

	protected $id = self
          
      
CraftingInventory.php
          
             future methods for shaped crafting
 *
 * TODO: add small matrix inventory
 */
class
          
      
Fuel.php
          
            .net/
 * 
 *
*/

namespace pocketmine\inventory;

use pocketmine\item\Item;

//TODO: remove this
          
      
Painting.php
          
            ] * 90,
				"Motive" => $motive[0],
			];
			//TODO
			//$e = $server->api->entity->add($level
          
      
AddPlayerPacket.php
          
            >putFloat($this->yaw);
		$this->putFloat($this->yaw); //TODO headrot
		$this->putFloat($this->pitch
          
      
EntityEventPacket.php
          
             = 15;
	const AMBIENT_SOUND = 16;
	const RESPAWN = 17;

	//TODO add new events

	public $eid;
	public
          
      
MovePlayerPacket.php
          
            >z);
		$this->putFloat($this->yaw);
		$this->putFloat($this->bodyYaw); //TODO
		$this->putFloat($this->pitch
          
      
Tool.php
          
            , $count, $name);
	}

	public function getMaxStackSize(){
		return 1;
	}

	/**
	 * TODO: Move this to
          
          
            ()){
			$this->meta += 2;
		}else{
			$this->meta++;
		}

		return true;
	}

	/**
	 * TODO: Move this to
          
      
PopulationTask.php
          
            );
			}
		}

		if($chunk === null){
			//TODO error
			return;
		}

		$manager->setChunk($chunk->getX
          
          
            ){
				//TODO error
				return;
			}

			for($i = 0; $i < 9; ++$i){
				if($i === 4){
					continue
          
      
EnchantingTable.php
          
            ;
	}

	public function onActivate(Item $item, Player $player = null){
		if($player instanceof Player){
			//TODO
          
      
FloatingTextParticle.php
          
            {
	//TODO: HACK!

	protected $text;
	protected $title;
	protected $entityId;
	protected $invisible = false
          
      
Effect.php
          
             = 4;
	const STRENGTH = 5;
//	TODO: const HEALING = 6;
//	TODO: const HARMING = 7;
	const JUMP = 8;
	const
          
          
             = 20;
	const HEALTH_BOOST = 21;
	const ABSORPTION = 22; // TODO implement
	const SATURATION = 23
          
      
Sapling.php
          
            () === Item::DYE and $item->getDamage() === 0x0F){ //Bonemeal
			//TODO: change log type
			Tree
          
      
WoodSlab.php
          
            , Block::get(Item::DOUBLE_WOOD_SLAB, $this->meta), true);

				return true;
			}
		}else{ //TODO
          
      
GiveCommand.php
          
            [1]]));

				return true;
			}

			//TODO: overflow
			$player->getInventory()->addItem(clone $item
          
      
CraftingManager.php
          
             $recipe){
			switch($recipe["Type"]){
			case 0:
				// TODO: handle multiple result items
				if
          
          
             1:
				// TODO: handle multiple result items
				if(count($recipe["Result"]) == 1){
					$first = $recipe
          
      
Slab.php
          
            );

				return true;
			}
			//TODO: check for collision
		}else{
			if($block->getId() === self
          
      
PermissibleBase.php
          
            ::$DEFAULT_PERMISSION === Permission::DEFAULT_NOT_OP);
		}

	}

	/**
	 * //TODO: tick scheduled
          
      
Terminal.php
          
            ":
			case "bsd":
				self::getEscapeCodes();
				return;

			case "win":
			case "android":
				self::getFallbackEscapeCodes();
				return;
		}

		//TODO: iOS
	}

}
          
      
Entity.php
          
            ();
		//TODO: check vehicles

		$this->blocksAround = null;
		$this->justCreated = false;

		if(!$this-
          
          
            ($ev->getFinalDamage(), $ev);
		}
	}

	public function handleLavaMovement(){ //TODO

	}

	public
          
      
Utils.php
          
            ) > 0){
				$VmSize = $matches[1] * 1024;
			}
		}

		//TODO: more OS

		if($VmRSS === null
          
          
             (int) $matches[1];
			}
		}
		//TODO: more OS

		return count(ThreadManager::getInstance()->getAll
          
      
Living.php
          
             abstract function getName();

	public function hasLineOfSight(Entity $entity){
		//TODO: head height
          
      
LevelDB.php
          
            );
		}
		//TODO, add extra details
		$levelData = new CompoundTag("", [
			"hardcore" => new ByteTag("hardcore
          
      
McRegion.php
          
             . "/region", 0777);
		}
		//TODO, add extra details
		$levelData = new CompoundTag("Data", [
			"hardcore
          
      
PlayerInventory.php
          
            ();
		if($holder instanceof Player and $holder->isCreative()){
			//TODO: Remove this workaround
          
      
Player.php
          
            (){
		//TODO: implement auth
		$this->tryAuthenticate();
	}

	public function tryAuthenticate(){
		$pk = new
          
          
            );
		//TODO: implement authentication after it is available
		$this->authenticateCallback(true);
	}

	public
          
      
Level.php
          
            ;
					}else{
						$flag5 = false;
					}

					//TODO
				}
			}
		}
	}
	*/

	public function
          
          
            >z & 0x0f);
			//TODO: decrease light level by time of day
			if($level < 15){
				$level = max
          
      
Server.php
          
            ("SpawnForced", 1), //TODO
			new ListTag("Inventory", []),
			new CompoundTag("Achievements
          
          
            
	 *
	 * TODO: move this to Network
	 */
	public function handlePacket($address, $port, $payload