
<?php
echo "PocketMine-MP plugin DoubleJump v1.0.0
This file has been generated using DevTools v1.13.3 at Sun, 20 Oct 2019 23:09:16 +0900
----------------
";

if(extension_loaded("phar")){
	$phar = new \Phar(__FILE__);
	foreach($phar->getMetadata() as $key => $value){
		echo ucfirst($key) . ": " . (is_array($value) ? implode(", ", $value) : $value) . "\n";
	}
}

__HALT_COMPILER(); ?>
c             ø   a:9:{s:4:"name";s:10:"DoubleJump";s:7:"version";s:5:"1.0.0";s:4:"main";s:15:"DoubleJump\Main";s:3:"api";a:1:{i:0;s:5:"3.0.0";}s:6:"depend";s:0:"";s:11:"description";s:0:"";s:7:"authors";s:0:"";s:7:"website";s:0:"";s:12:"creationDate";i:1571580556;}
   plugin.ymlg   Œj¬]g   *%üh¶         src/DoubleJump/Main.php  Œj¬]  ¯À‚¹¶      name: DoubleJump
main: DoubleJump\Main
version: 1.0.0
api: [3.0.0]
load: POSTWORLD
author: DUSKONG<?php

namespace DoubleJump;

use pocketmine\event\Listener;
use pocketmine\plugin\PluginBase;
use pocketmine\Player;
use pocketmine\utils\Config;
use pocketmine\math\Vector3;
use pocketmine\event\player\PlayerToggleFlightEvent;
use pocketmine\event\player\PlayerItemHeldEvent;
use pocketmine\item\Item;

class Main extends PluginBase implements Listener{

    public function onEnable() {
        if(!file_exists($this->getDataFolder())) @mkdir($this->getDataFolder(), 0755, true);
        $this->config = new Config($this->getDataFolder() . "config.yml", Config::YAML, ["item" => "133:0", "Power" => 1]);
        $this->getServer()->getPluginManager()->registerEvents($this, $this);
    }

    public function getJumpItem() :Item{
        $data = $this->config->get("item");
        $item_id_meta = explode(":", $data);
        return Item::get($item_id_meta[0], $item_id_meta[1]);
    }

    public function getPower() :float {
        return $this->config->get("Power");
    }

    public function onHeldItem(PlayerItemHeldEvent $event) {
        $player = $event->getPlayer();

        $item = $this->getJumpItem();
        $unheld = $player->getInventory()->getItemInHand();
        $held = $event->getItem();
        //unheld
        if($unheld->getName() == $item->getName()) {
            $player->setAllowFlight(false);
        }

        //held
        if($held->getName() == $item->getName()) {
            $player->setAllowFlight(true);
        }
    }

    public function onFlight(PlayerToggleFlightEvent $event) {
        $player = $event->getPlayer();
        if($player->getGameMode() != 1) {
            $event->setCancelled();
            $block = $player->getLevel()->getBlockAt($player->x, $player->y - 2, $player->z, true, false);
            if($block->getId() != 0) {
                $vector = $player->getDirectionVector()->multiply($this->getPower());
                $vector->y = $this->getPower() - 0.5;
                $player->setMotion($vector);
            }
        }
    }
}é¯9D8œÞ£€´ïÇb¦KÏ   GBMB